/*
  ORGANIC STORY オンラインショップの見本。Shopify のストアテーマによくある、飾りの少ない作り(白い地、細いヘッダー、
  大きな写真のバナー、商品が並ぶ一覧、メールの登録欄)に合わせた、自作の静的なページ。
  Horizon など既存テーマのコードは使っていない(Horizon のライセンスは、Shopify の外で使うことを禁じている)。
  見た目は、公式のデモ画面を見て合わせた。
*/
:root{--text:#2b2b2b;--mute:#6b6b6b;--line:#e3e3e3;--card:#ebeae6;--ink:#000;--font:"Inter","Zen Kaku Gothic Antique",system-ui,sans-serif;--pad:40px}
*{box-sizing:border-box;margin:0;padding:0}
body{background:#fff;color:var(--text);font-family:var(--font);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--ink);outline-offset:3px}

/* ヘッダー */
.hd{position:sticky;top:0;z-index:30;background:#fff}
.hd .in{display:flex;align-items:center;gap:22px;height:66px;padding:0 var(--pad)}
.logo img{height:15px;width:auto}
.nav{display:flex;gap:20px;font-size:14px}
.nav a:hover{text-decoration:underline;text-underline-offset:5px}
.tools{margin-left:0;display:flex;gap:6px}
.ic{width:40px;height:40px;display:grid;place-items:center;border-radius:50%;position:relative}
.ic svg{width:20px;height:20px;fill:none;stroke:var(--ink);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.cnt{position:absolute;top:2px;right:0;min-width:17px;height:17px;border-radius:9px;background:var(--ink);color:#fff;font-size:10.5px;line-height:17px;text-align:center;padding:0 4px}
.cnt[data-n="0"]{display:none}
.mbtn{display:none}

/* バナー */
.hero{position:relative;height:clamp(380px,58vh,540px);overflow:hidden;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;text-align:center;padding-bottom:clamp(40px,8vh,76px)}
.hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero h1,.hero a{position:relative;z-index:2}
.hero h1{font-size:clamp(32px,4.2vw,54px);font-weight:700;line-height:1.3;letter-spacing:.02em}
.hero .btn{margin-top:26px;padding:17px 28px;border:1px solid rgba(255,255,255,.85);border-radius:14px;font-size:15px;transition:background-color .25s,color .25s}
.hero .btn:hover{background:#fff;color:var(--ink)}

/* 商品の一覧 */
.sec{padding:56px var(--pad)}
.sec .top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:28px}
.sec h2{font-size:24px;font-weight:700;letter-spacing:.01em;color:var(--text)}
.sec .top a{font-size:15px}
.sec .top a:hover{text-decoration:underline;text-underline-offset:5px}
.grid{display:grid;grid-template-columns:repeat(5,1fr);gap:24px 12px}
.pc{position:relative}
.grid.c5{grid-template-columns:repeat(5,1fr)}
.pc .ph{position:relative;display:block;aspect-ratio:4/5;background:var(--card);overflow:hidden}
.pc .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:opacity .5s}
.pc .ph img.a{object-fit:contain;mix-blend-mode:multiply;padding:7% 4% 0}
.pc .ph img.a.cover{object-fit:cover;mix-blend-mode:normal;padding:0}
.pc .ph img.b{opacity:0}
.pc:hover .ph img.b{opacity:1}
.pc:hover .ph img.a{opacity:0}
.pc .qa{position:absolute;right:12px;bottom:12px;width:38px;height:38px;border-radius:50%;background:#fff;display:grid;place-items:center;opacity:0;transition:opacity .25s}
.pc:hover .qa,.pc .qa:focus-visible{opacity:1}
.pc .qa svg{width:17px;height:17px;fill:none;stroke:var(--ink);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.pc .t{margin-top:12px;font-size:14.5px;line-height:1.55}
.pc .p{margin-top:2px;font-size:13px;font-weight:500}
@media (hover:none){.pc .qa{opacity:1}}

/* メールの登録欄とフッター */
.club{margin:0 var(--pad);border-top:1px solid var(--line);padding:64px 0;display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}
.club h2{font-size:22px;font-weight:700}
.club p{margin-top:6px;font-size:14px;color:var(--mute)}
.club form{position:relative}
.club input{width:100%;height:52px;border:1px solid var(--line);border-radius:999px;padding:0 56px 0 28px;font:inherit}
.club button{position:absolute;right:6px;top:6px;width:40px;height:40px;border-radius:50%;display:grid;place-items:center}
.club svg{width:18px;height:18px;fill:none;stroke:var(--ink);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.ft{margin:0 var(--pad);border-top:1px solid var(--line);padding:26px 0 40px;font-size:12px;color:var(--mute);display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}
.ft nav{display:flex;gap:20px}
.ft a:hover{color:var(--ink)}

/* カート(横から出る) */
.ov{position:fixed;inset:0;background:rgba(0,0,0,.35);opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s;z-index:60}
.ov.on{opacity:1;visibility:visible}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(420px,100vw);background:#fff;z-index:61;transform:translateX(102%);transition:transform .4s cubic-bezier(.2,.8,.2,1);display:flex;flex-direction:column}
.drawer.on{transform:none}
.drawer header{display:flex;justify-content:space-between;align-items:center;padding:14px 22px;border-bottom:1px solid var(--line)}
.drawer h2{font-size:18px;font-weight:700}
.drawer .body{flex:1;overflow:auto;padding:6px 22px}
.li{display:grid;grid-template-columns:72px 1fr auto;gap:14px;padding:16px 0;border-bottom:1px solid var(--line);align-items:start}
.li img{width:72px;height:90px;object-fit:contain;background:var(--card);mix-blend-mode:multiply;padding:4px}
.li b{display:block;font-weight:500;font-size:13.5px;line-height:1.5}
.li small{display:block;font-size:12px;color:var(--mute)}
.qty{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;margin-top:8px}
.qty button{width:32px;height:32px;font-size:16px}
.qty span{min-width:22px;text-align:center;font-size:13.5px}
.li .rm{font-size:12px;color:var(--mute);text-decoration:underline;text-underline-offset:3px}
.empty{padding:48px 0;text-align:center;color:var(--mute)}
.drawer footer{padding:18px 22px 22px;border-top:1px solid var(--line)}
.sub{display:flex;justify-content:space-between;font-size:15px;font-weight:500}
.note{font-size:12px;color:var(--mute);margin:6px 0 14px}
.checkout{width:100%;background:var(--ink);color:#fff;border-radius:999px;padding:14px;font-size:14px}

/* 商品ページ */
.pdp{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);align-items:start}
.gal{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line)}
.gal figure{position:relative;aspect-ratio:4/5;background:var(--card);overflow:hidden}
.gal img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.gal img.contain{object-fit:contain;mix-blend-mode:multiply;padding:7% 4% 0}
.info{padding:40px 48px;position:sticky;top:66px}
.info h1{font-size:clamp(26px,2.6vw,36px);font-weight:700;line-height:1.3;letter-spacing:.01em}
.info .pr{margin-top:14px;font-size:15px}
.info .unit{font-size:12.5px;color:var(--mute)}
.info hr{border:0;border-top:1px solid var(--line);margin:22px 0}
.opt h4{display:none}
.opts{display:flex;flex-wrap:wrap;gap:8px}
.opts .pill{display:inline-flex;align-items:center;height:42px;padding:0 20px;border:1px solid var(--line);border-radius:999px;font-size:13.5px}
.opts .pill:hover{border-color:var(--ink)}
.opts .pill.on{background:var(--ink);border-color:var(--ink);color:#fff}
.opts button{height:42px;padding:0 20px;border:1px solid var(--line);border-radius:999px;font-size:13.5px}
.opts button:hover{border-color:var(--ink)}
.opts button.on{background:var(--ink);border-color:var(--ink);color:#fff}
.buy{display:flex;gap:10px;margin-top:22px}
.buy .qty{margin:0;height:52px}
.buy .qty button{width:42px;height:50px}
.add{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;background:var(--ink);color:#fff;border-radius:999px;height:52px;font-size:14px;font-weight:500}
.add svg{width:18px;height:18px;fill:none;stroke:#fff;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.add:hover{background:#222}
.now{display:flex;justify-content:center;align-items:center;margin-top:10px;height:52px;border-radius:999px;border:1px solid var(--ink);font-size:14px;font-weight:500;width:100%}
.now:hover{background:var(--ink);color:#fff}
.info .desc{margin-top:26px;font-size:14px;line-height:1.9}
.info .fine{margin-top:14px;font-size:12.5px;color:var(--mute);line-height:1.8}
table.nut{border-collapse:collapse;width:100%;font-size:13px;margin-top:8px}
table.nut td{padding:5px 0;border-bottom:1px solid var(--line)}
table.nut td+td{text-align:right}
.crumb{padding:18px var(--pad);font-size:12.5px;color:var(--mute)}
.crumb a:hover{color:var(--ink)}

@media (max-width:980px){
  :root{--pad:20px}
  .nav{display:none}
  .tools .ic[aria-label="検索"]{display:none!important}
  .logo img{height:11px}
  .ic{width:36px}
  .mbtn{display:grid}
  .hd .in{position:relative;display:flex;justify-content:space-between;gap:0;height:60px}
  .hd .l{display:flex}
  .shopname{display:none}
  .logo{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}
  .grid,.grid.c5{grid-template-columns:repeat(2,1fr)}
  .club{grid-template-columns:1fr;gap:20px}
  .pdp{grid-template-columns:1fr}
  .info{position:static;padding:28px var(--pad)}
  .gal{grid-template-columns:1fr 1fr}
}

/* 法人のログイン(小窓) */
.acct{position:fixed;top:62px;right:var(--pad);z-index:70;width:min(320px,calc(100vw - 32px));background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 12px 40px rgba(0,0,0,.14);padding:20px}
.acct h3{font-size:16px;font-weight:700;margin-bottom:12px}
.acct input{width:100%;height:44px;border:1px solid var(--line);border-radius:999px;padding:0 18px;font:inherit;margin-bottom:8px}
.acct .checkout{margin-top:6px}
.acct p{font-size:12px;color:var(--mute);line-height:1.8;margin-top:10px}
.ic.on::after{content:"";position:absolute;top:7px;right:7px;width:8px;height:8px;border-radius:50%;background:#1a9c4b}

.opt+.opt{margin-top:20px}

.hd .l{display:flex;align-items:center}
.nav{margin-left:auto}
.shopname{font-size:15px;font-weight:500;color:var(--text);letter-spacing:.08em;margin-left:14px;padding-left:14px;border-left:1px solid var(--line);line-height:1.2}
