/* Herbology NYC — site styles (2026-10 redesign, "pinned poster").
   One family (Archivo, variable width), five sizes, one accent (the brand yellow on actions), square corners.
   Brand colours kept: black, the wordmark yellow, a neutral paper. */

@font-face{font-family:'Archivo';font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/fonts/archivo-wdth.woff2) format('woff2-variations'),url(/fonts/archivo-wdth.woff2) format('woff2')}

:root{
  --black:#0b0b0a;
  --paper:#ebebe8;
  --yellow:#f5c518;
  --slate:#29353b;
  --stone:#d6ccb9;
  --ink:#0b0b0a;
  --ink-inv:#f4f4f2;
  --soft-dark:#c4c1b8;   /* secondary notes on dark grounds */
  --soft-light:#45433e;  /* secondary notes on light grounds */
  /* names Herb's chat styles expect */
  --cream:#f4f4f2;--dust:#a8a59c;--line:rgba(244,244,242,.14);--panel:#171716;

  --font:'Archivo',system-ui,-apple-system,'Segoe UI',sans-serif;
  --step-small:14px;
  --step-body:clamp(18px,17.4px + .1vw,19px);
  --step-lead:clamp(20px,2.1vw,30px);
  --step-head:clamp(36px,4.4vw,68px);
  --step-display:clamp(88px,14vw,240px);

  --margin:clamp(16px,2.2vw,32px);
  --gutter:clamp(16px,2vw,32px);
  --section:clamp(96px,12vw,200px);

  --ease-out:cubic-bezier(.22,1,.36,1);
  --ease-soft:cubic-bezier(.33,1,.68,1);
  --t-press:140ms;--t-hover:180ms;--t-reveal:800ms;
}

/* ---------- reset ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;background:var(--black);color:var(--ink-inv);font-family:var(--font);font-size:var(--step-body);line-height:1.5;font-stretch:100%;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
h1,h2,h3,h4,p,figure,blockquote,ul,ol,dl,dd{margin:0}
ul[class],ol[class]{padding:0;list-style:none}
img,video,svg,canvas{display:block;max-width:100%}
img{height:auto}
button,input,select,textarea{font:inherit;color:inherit}
button{background:none;border:0;padding:0;cursor:pointer}
a{color:inherit}
:focus-visible{outline:3px solid var(--yellow);outline-offset:3px}
::selection{background:var(--yellow);color:var(--black)}
[hidden]{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
p{max-width:62ch;text-wrap:pretty}
h1,h2,h3{font-weight:850;font-stretch:112%;line-height:1.02;letter-spacing:-.025em;text-wrap:balance}
.nums{font-variant-numeric:tabular-nums}

/* nothing may widen the page sideways (iPhone zoom-out fix) */
body,main,footer{overflow-x:clip}

/* ---------- controls: one button, square corners ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 26px;background:var(--yellow);color:var(--black);font-weight:800;font-stretch:112%;font-size:var(--step-body);text-decoration:none;white-space:nowrap;border:0;border-radius:0;transition:transform var(--t-press) var(--ease-out),background-color var(--t-hover) ease,color var(--t-hover) ease}
.btn:active{transform:scale(.97)}
.btn-ink{background:var(--black);color:var(--ink-inv)}
.btn-paper{background:var(--paper);color:var(--black)}
.link{font-weight:700;text-decoration:underline;text-underline-offset:.22em;text-decoration-thickness:.08em;text-decoration-color:currentColor;transition:text-decoration-color var(--t-hover) ease,color var(--t-hover) ease}
@media (hover:hover) and (pointer:fine){
  .btn:hover{background:var(--ink-inv);color:var(--black)}
  .btn-ink:hover{background:var(--yellow);color:var(--black)}
  .btn-paper:hover{background:var(--yellow)}
  .link:hover{text-decoration-color:transparent}
}

/* ---------- header: wordmark, four links, one action ---------- */
.site-head{position:relative;z-index:40;background:var(--black);color:var(--ink-inv)}
.site-head .bar{display:flex;align-items:center;gap:clamp(16px,2.4vw,40px);padding:14px var(--margin);min-height:72px}
.site-head .brand{display:block;flex:none}
.site-head .brand img{height:38px;width:auto}
.site-head .status{font-size:var(--step-small);font-weight:600;color:var(--soft-dark);white-space:nowrap}
.site-head .status.is-open [data-status-line]{color:var(--yellow)}
.site-head nav{margin-left:auto;display:flex;align-items:center;gap:clamp(16px,2vw,32px)}
.site-head nav a,.site-head .ask{font-weight:700;text-decoration:none;white-space:nowrap;transition:color var(--t-hover) ease}
.site-head nav a[aria-current="page"]{color:var(--yellow)}
.site-head nav .btn{min-height:44px;padding:0 20px}
.site-head .toggle{display:none;margin-left:auto;min-height:44px;padding:0 16px;font-weight:800;background:var(--paper);color:var(--black)}
@media (hover:hover) and (pointer:fine){.site-head nav a:not(.btn):hover,.site-head .ask:hover{color:var(--yellow)}}
@media (max-width:860px){
  .site-head .brand img{height:30px}
  .site-head .toggle{display:inline-flex;align-items:center}
  .site-head nav{display:none;position:fixed;inset:0;z-index:60;margin:0;background:var(--black);flex-direction:column;align-items:flex-start;justify-content:center;gap:8px;padding:88px var(--margin) 40px}
  .site-head nav a:not(.btn),.site-head nav .ask{font-size:var(--step-head);font-weight:850;font-stretch:112%;line-height:1.15;text-align:left}
  .site-head nav .btn{margin-top:24px;min-height:56px;width:100%}
  .site-head.is-open nav{display:flex}
  .site-head.is-open .toggle{position:fixed;top:14px;right:var(--margin);z-index:61}
}

/* ---------- phone action bar ---------- */
.mobar{display:none}
@media (max-width:860px){
  .mobar{position:fixed;left:0;right:0;bottom:0;z-index:45;display:grid;grid-template-columns:repeat(5,1fr);background:var(--yellow);padding-bottom:env(safe-area-inset-bottom);transition:transform 260ms var(--ease-out)}
  .mobar-away .mobar{transform:translateY(110%)}
  .mobar a,.mobar button{display:flex;align-items:center;justify-content:center;min-height:56px;color:var(--black);font-weight:800;font-size:var(--step-small);text-decoration:none}
  .mobar a:active,.mobar button:active{background:#e3b512}
  body{padding-bottom:calc(56px + env(safe-area-inset-bottom))}
}

/* ---------- hero: the pinned poster ---------- */
.poster{position:relative;background:var(--black)}
.poster-pin{position:sticky;top:0;height:100svh;z-index:3;pointer-events:none}
.poster-panels{position:relative;margin-top:-100svh}
.poster-title{position:absolute;left:50%;top:clamp(40px,7vh,96px);width:min(64%,1100px);transform:translateX(-50%);margin:0;font-size:var(--step-head);pointer-events:auto}
.poster-title img{width:100%;height:auto}
.panel{position:relative;min-height:max(100svh,600px);grid-template-rows:1fr auto;background:var(--g,var(--black));color:var(--c,var(--ink-inv));display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gutter);padding:0 var(--margin)}
.panel-photo{grid-column:4/10;grid-row:1/3;align-self:end;justify-self:center;margin:90px 0 0;height:calc(100svh - 90px);min-height:510px;aspect-ratio:2/3;overflow:hidden;background:rgba(0,0,0,.18)}
.panel-photo img{width:100%;height:100%;object-fit:cover}
.panel-say{grid-column:1/4;grid-row:2;align-self:end;padding-bottom:32px;font-weight:750;font-stretch:106%;max-width:26ch}
.panel-say .t{display:block;font-size:var(--step-lead);font-weight:850;font-stretch:112%;line-height:1.1;letter-spacing:-.02em;margin-bottom:10px}
.panel-say .link{display:block;width:fit-content;margin-top:12px}
.panel-act{grid-column:10/13;grid-row:2;align-self:end;justify-self:end;padding-bottom:32px}
.panel:first-of-type .panel-say{font-size:var(--step-body)}
.panel-say .open{display:block;margin-top:12px;font-weight:600;color:var(--soft,currentColor)}
@media (max-width:860px){
  .poster-title{top:14px;width:78vw}
  .panel{display:block;padding:76px var(--margin) 48px;min-height:auto}
  .panel-photo{margin:0 auto;width:auto;max-width:100%;height:min(58svh,calc((100vw - 32px) * 1.25));min-height:0;aspect-ratio:4/5}
  .panel:first-child .panel-say{font-size:var(--step-lead);line-height:1.3;font-weight:700}
  .panel-say{max-width:none;padding:24px 0 0}
  .panel-act{padding:20px 0 0}
  .panel-act .btn{width:100%}
}

/* ---------- section frame ---------- */
.sec{padding:var(--section) var(--margin)}
.h-sec{font-size:var(--step-head)}
.sec-lede{margin-top:20px;font-size:var(--step-body)}
.on-paper{background:var(--paper);color:var(--ink)}
.on-yellow{background:var(--yellow);color:var(--black)}
.on-slate{background:var(--slate);color:var(--ink-inv)}

/* ---------- the menu board: one type size, fixed column starts ---------- */
.board{background:var(--paper);color:var(--ink);padding:var(--section) var(--margin)}
.board-top{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gutter);align-items:end;margin-bottom:clamp(40px,6vw,88px)}
.board-intro{grid-column:1/6;align-self:end}
.board-intro .sec-lede{margin-top:20px;color:var(--ink)}
.board-stage{grid-column:7/13}
.board-tools{display:flex;flex-wrap:wrap;gap:12px;margin:0 0 96px}
.board-tools label{display:flex;flex-direction:column;gap:6px;font-size:var(--step-small);font-weight:700}
.board-tools input,.board-tools select,.chip{font-size:var(--step-body)}
.board-tools input,.board-tools select{min-height:48px;padding:0 14px;background:#fff;color:var(--ink);border:0;border-radius:0;min-width:min(260px,100%)}
.board-tools .chips{display:flex;flex-wrap:wrap;gap:8px;align-self:flex-end}
.chip{min-height:48px;padding:0 18px;background:#fff;color:var(--ink);font-weight:750;transition:background-color var(--t-hover) ease,color var(--t-hover) ease}
.chip[aria-pressed="true"]{background:var(--black);color:var(--ink-inv)}
@media (hover:hover) and (pointer:fine){.chip:hover{background:var(--yellow);color:var(--black)}}
.shelf{margin:0}
.shelf+.shelf{margin-top:clamp(56px,6vw,72px)}
.shelf-name{display:flex;justify-content:space-between;align-items:baseline;gap:16px;background:var(--paper);padding:12px 0 18px;font-size:var(--step-lead);font-weight:850;font-stretch:112%;letter-spacing:-.01em;color:var(--ink)}
.shelf-name a{font-size:var(--step-body);font-weight:700;font-stretch:100%;white-space:nowrap}
.shelf-name .count{font-size:var(--step-body);font-weight:600;font-stretch:100%;color:var(--soft-light)}
.rows{display:block}
.row{display:grid;grid-template-columns:38% 22% 1fr auto;column-gap:var(--gutter);align-items:baseline;padding:.25em 0;font-size:var(--step-lead);line-height:1.25;color:var(--ink);text-decoration:none;transition:color var(--t-hover) ease,transform var(--t-hover) var(--ease-out)}
.row>span{min-width:0;overflow-wrap:anywhere}
.row .r-price{text-align:right;font-variant-numeric:tabular-nums;font-weight:700;white-space:nowrap}
.row .r-meta{color:var(--soft-light)}
.row:active{transform:translateX(4px)}
@media (hover:hover) and (pointer:fine){.row:hover{color:#7a5b00}.row:hover .r-meta{color:#7a5b00}}
.board-empty{font-size:var(--step-lead);max-width:36ch}
.board-more{margin-top:28px;display:flex;flex-wrap:wrap;gap:12px 28px;align-items:center;font-weight:700}
.board-note{margin-top:40px;font-size:var(--step-small);color:var(--soft-light);max-width:70ch}
@media (max-width:860px){
  .board-top{display:flex;flex-direction:column;gap:32px}
  .board-intro,.board-stage{width:100%}
  .row{grid-template-columns:1fr auto;grid-template-areas:"name price" "meta meta";padding:9px 0;font-size:var(--step-lead);line-height:1.2}
  .row .r-name{grid-area:name}
  .row .r-brand{display:none}
  .row .r-meta{grid-area:meta;font-size:var(--step-small);line-height:1.4;margin-top:2px}
  .row .r-price{grid-area:price}

  .board-tools{flex-direction:column}
}

/* ---------- three verbs, one per screen ---------- */
.verbs{position:relative;background:var(--black)}
.verbs-title{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.verb{position:relative;min-height:100svh;display:flex;flex-direction:column;overflow:clip;color:var(--ink-inv)}
.verb>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.verb-run{position:relative;z-index:2;flex:1;padding:14vh 0 6vh}
.verb-word{position:sticky;top:calc(50% - .45em);display:block;text-align:center;font-size:var(--step-display);font-weight:900;font-stretch:118%;line-height:1;letter-spacing:-.04em;color:var(--yellow);padding:0 var(--margin)}
.verb-say{position:relative;z-index:2;align-self:flex-start;max-width:min(560px,100%);padding:28px var(--margin) 32px;background:var(--black);color:var(--ink-inv)}
.verb-say p{max-width:42ch}
@media (max-width:860px){.verb-word{font-size:24vw}.verb-say{align-self:stretch;max-width:none}.verb-run{padding-top:10vh}}

/* ---------- delivery: cards crossing a held photograph ---------- */
.zone{position:relative;background:var(--black)}
.zone-stage{position:relative}
.zone-photo{width:100%;aspect-ratio:4/5;object-fit:cover;filter:brightness(.6)}
.zone-head{padding:0 var(--margin);margin:-1.2em 0 0;position:relative;font-size:var(--step-head);color:var(--ink-inv)}
.zone-track{display:grid;gap:24px;padding:40px var(--margin) 72px}
.zone-card{background:var(--g,var(--stone));color:var(--ink)}
.zone-card img{width:100%;aspect-ratio:4/3;object-fit:cover}
.zone-card .zc-body{display:flex;flex-direction:column;gap:8px;padding:20px}
.zone-card .zc-name{font-size:var(--step-lead);font-weight:850;font-stretch:112%;line-height:1.05}
.zone-card .zc-desc{max-width:34ch}
@media (min-width:861px){
  .zone-photo{aspect-ratio:21/9}
  .zone-head{margin-top:-1.15em;max-width:16ch}
  .zone-track{grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--gutter);padding:48px var(--margin) var(--section)}
  .zone-card .zc-body{flex-direction:column;align-items:flex-start;gap:8px}
  .zone-card .zc-desc{text-align:left}
}
@media (min-width:861px) and (max-width:1180px){.zone-track{grid-template-columns:repeat(3,minmax(0,1fr))}}
.check{background:var(--yellow);color:var(--black);padding:clamp(72px,8vw,120px) var(--margin)}
.check-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gutter);row-gap:32px;align-items:start}
.check-copy{grid-column:1/7}
.check-copy .h-sec{max-width:14ch}
.check-copy p{margin-top:18px}
.check-form{grid-column:7/13;align-self:end}
.check-form label{display:block;font-weight:800;margin-bottom:10px}
.check-form .field-row{display:flex;gap:10px}
.check-form input{flex:1;min-width:0;min-height:56px;padding:0 16px;border:0;border-radius:0;background:#fff;color:var(--black);font-size:var(--step-body)}
.check-form .btn-ink{min-height:56px}
.addr-out{margin-top:16px;min-height:3em;font-size:var(--step-body);font-weight:600}
.addr-out b{font-weight:850}
.addr-out a{font-weight:800}
.check-form .fine{margin-top:12px;font-size:var(--step-small)}
@media (max-width:860px){.check-copy,.check-form{grid-column:1/-1}.check-form .field-row{flex-direction:column}}

/* ---------- visit card on a photograph ---------- */
.shopvisit{position:relative;min-height:100svh;background:var(--black)}
.shopvisit>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.visit-card{position:absolute;top:60px;right:60px;width:380px;background:var(--paper);color:var(--ink);padding:32px 32px 0;display:flex;flex-direction:column}
.visit-card h2{font-size:var(--step-lead);font-weight:850}
.visit-card address{font-style:normal;margin-top:16px}
.visit-card .hours{margin:20px 0 0;display:grid;grid-template-columns:max-content 1fr;gap:6px 16px;font-variant-numeric:tabular-nums}
.visit-card .hours dd{margin:0;text-align:right}
.visit-card .hours dt{font-weight:700}
.visit-card .phone{margin-top:20px;font-weight:700}
.visit-card .btn{margin:28px -32px 0;min-height:52px}
@media (max-width:860px){
  .shopvisit{min-height:0;display:flex;flex-direction:column;padding-bottom:144px}
  .shopvisit>img{position:relative;height:70svh}
  .visit-card{position:relative;top:auto;right:auto;width:auto;margin:-80px var(--margin) 0}
  .visit-card .btn{min-height:56px}
}

/* ---------- names running off the edges ---------- */
.names{background:var(--yellow);color:var(--black);height:34vh;min-height:220px;display:flex;align-items:center;overflow:hidden}
.names-track{display:flex;flex:none;white-space:nowrap;animation:names 48s linear infinite}
.names-track span{font-size:var(--step-display);font-weight:900;font-stretch:112%;letter-spacing:-.03em;line-height:1;padding-right:.4em}
.names-track span::after{content:"";display:inline-block;width:.24em;height:.24em;border-radius:50%;background:currentColor;margin-left:.4em;vertical-align:.2em}
@keyframes names{to{transform:translateX(-50%)}}
.names-say{padding:24px var(--margin) 0;font-weight:600}
.names-say a{font-weight:800}
@media (max-width:860px){.names{height:22vh;min-height:150px}.names-track span{font-size:15vw}}

/* ---------- questions beside a tall photograph ---------- */
.gtk{background:var(--slate);color:var(--ink-inv);padding:0 var(--margin) clamp(80px,8vw,120px);display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gutter)}
.faq-copy{grid-column:1/6;padding-top:var(--section)}

.faq-facts{margin-top:24px;display:grid;gap:4px;font-weight:600}
.faq-list{margin-top:36px;display:grid;gap:28px}
.faq-list summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:20px;font-weight:750;min-height:44px;align-items:center}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{content:"";flex:none;width:10px;height:10px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translate(-2px,-2px);transition:transform var(--t-hover) var(--ease-out)}
.faq-list details[open] summary::after{transform:rotate(225deg) translate(-2px,-2px)}
.faq-list details p{margin-top:10px}
.faq-act{margin-top:40px;display:flex;flex-wrap:wrap;gap:16px 28px;align-items:center}
.faq-pics{grid-column:7/13;position:relative;margin-bottom:80px}
.faq-pics .tall{width:100%;aspect-ratio:3/4;object-fit:cover}
.faq-pics .sq{position:absolute;left:-40px;bottom:-40px;width:34%;aspect-ratio:1;object-fit:cover}
@media (max-width:860px){
  .gtk{display:flex;flex-direction:column-reverse;padding-top:0}
  .faq-pics{margin:0 calc(var(--margin)*-1)}
  .faq-pics .tall{aspect-ratio:4/5}
  .faq-pics .sq{left:auto;right:16px;bottom:-32px;width:38%}
  .faq-copy{padding-top:72px}
  .faq-list{gap:24px}
  .faq-act .btn{width:100%}
}

/* ---------- footer: an invitation over the cropped name ---------- */
.site-foot{position:relative;background:var(--paper);color:var(--ink);overflow:hidden;padding:clamp(80px,9vw,140px) var(--margin) 0}
.foot-top{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gutter);row-gap:40px}
.foot-invite{grid-column:1/8}
.foot-invite p.big{font-size:var(--step-head);font-weight:850;font-stretch:112%;line-height:1.02;letter-spacing:-.025em;max-width:12ch}
.foot-invite .btn{margin-top:28px}
.foot-links{grid-column:10/13;display:grid;gap:10px;align-content:start;font-weight:700}
.foot-links a{text-decoration:none}
.foot-shop{grid-column:1/13;display:flex;flex-wrap:wrap;gap:10px 28px;font-weight:700}
.foot-shop a{text-decoration:none}
@media (hover:hover) and (pointer:fine){.foot-links a:hover,.foot-shop a:hover{text-decoration:underline;text-underline-offset:.2em}}
.foot-warn{margin-top:56px;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gutter);row-gap:16px;font-size:var(--step-small);line-height:1.5}
.foot-warn .warn{grid-column:1/8;background:var(--black);color:var(--ink-inv);padding:20px 24px}
.foot-warn .warn p+p{margin-top:8px}
.foot-warn .legal{grid-column:9/13;display:grid;gap:8px;align-content:start}
.foot-name{margin:48px calc(var(--margin)*-1) 0;transform:translateY(28%)}
.foot-name img{width:100%;height:auto}
.foot-credit{font-size:var(--step-small);margin-top:8px}
@media (max-width:860px){
  .foot-invite,.foot-links,.foot-warn .warn,.foot-warn .legal{grid-column:1/-1}
  .foot-invite p.big{font-size:11vw}
  .foot-invite .btn{width:100%}
  .foot-links{display:flex;flex-wrap:wrap;gap:10px 20px}
  .foot-name{margin-top:32px}
}

/* ---------- inner pages: a title band and prose ---------- */
.page-head{background:var(--yellow);color:var(--black);padding:clamp(48px,6vw,96px) var(--margin);display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gutter);row-gap:20px;align-content:end}
.page-head .crumbs{grid-column:1/8;font-size:var(--step-small);font-weight:700}
.page-head .crumbs a{text-decoration:none}
.page-head h1{grid-column:1/8;font-size:var(--step-head)}
.page-head .lede{grid-column:1/8;font-size:var(--step-body);font-weight:600;max-width:52ch}
.page-head .acts{grid-column:1/8;display:flex;flex-wrap:wrap;gap:12px;margin-top:8px}
.page-head .pic{grid-column:8/13;grid-row:1/span 4;align-self:stretch;min-height:280px;overflow:hidden;margin:0}
.page-head .pic img{width:100%;height:100%;object-fit:cover}
.page-head:not(:has(.pic)) h1,.page-head:not(:has(.pic)) .lede{grid-column:1/11}
@media (max-width:860px){.page-head .crumbs,.page-head h1,.page-head .lede,.page-head .acts,.page-head .pic{grid-column:1/-1;grid-row:auto}.page-head .pic{min-height:0;aspect-ratio:16/10;order:5}}
.board-top .board-intro:only-child{grid-column:1/9}
.qa{padding:var(--section) var(--margin);display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gutter)}
.qa>h2{grid-column:1/6;font-size:var(--step-head)}
.qa>.faq-list{grid-column:7/13;margin:0}
@media (max-width:860px){.qa>h2,.qa>.faq-list{grid-column:1/-1}.qa>.faq-list{margin-top:32px}}
.next{padding:clamp(72px,8vw,120px) var(--margin);display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gutter);row-gap:16px}
.next h2{grid-column:1/6;font-size:var(--step-head)}
.next ul{grid-column:7/13;display:grid;gap:0}
.next li a{display:flex;justify-content:space-between;gap:16px;padding:14px 0;font-size:var(--step-lead);font-weight:800;font-stretch:112%;text-decoration:none}
.next li a span{font-size:var(--step-body);font-weight:600;font-stretch:100%}
@media (hover:hover) and (pointer:fine){.next li a:hover{color:var(--yellow)}.on-paper .next li a:hover,.next.on-paper li a:hover{color:#7a5b00}}
@media (max-width:860px){.next h2,.next ul{grid-column:1/-1}}

/* ---------- ordering (Dutchie checkout) ---------- */
.order{background:var(--paper);color:var(--ink);padding:24px var(--margin) 80px}
.order-bar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;font-weight:700}
.dutchie-menu{min-height:70vh;max-width:100%;overflow-x:clip}
.dutchie-menu iframe{width:1px!important;min-width:100%!important;max-width:100%}

/* ---------- the 3D shelf (kept from the last build, restyled) ---------- */
.shelf3d-band{background:var(--black);padding:var(--section) var(--margin);display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gutter);row-gap:32px;align-items:center}
.shelf3d-band .copy{grid-column:1/6}
.shelf3d-band .copy p{margin-top:18px}
.shelf3d-band .cats{margin-top:28px;display:grid;grid-template-columns:1fr 1fr;gap:0 24px}
.shelf3d-band .cats a{display:flex;justify-content:space-between;gap:12px;padding:12px 0;font-size:var(--step-lead);font-weight:850;font-stretch:112%;text-decoration:none}
.shelf3d-band .cats a span{font-size:var(--step-small);font-weight:600;font-stretch:100%;color:var(--soft-dark);align-self:center}
@media (hover:hover) and (pointer:fine){.shelf3d-band .cats a:hover{color:var(--yellow)}}
.shelf3d-band .stage{grid-column:7/13}
.shelf3d{position:relative;aspect-ratio:1520/1240;background:#141311;overflow:hidden}
.shelf3d .shelf-still{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.shelf3d canvas{position:absolute;inset:0;width:100%!important;height:100%!important;max-width:100%}
.shelf3d .shelf-tip{position:absolute;left:16px;bottom:16px;z-index:2;margin:0;padding:8px 12px;background:var(--black);color:var(--ink-inv);font-size:var(--step-small);font-weight:600}
@media (max-width:860px){.shelf3d-band .copy,.shelf3d-band .stage{grid-column:1/-1}.shelf3d-band .stage{order:-1}.shelf3d-band .cats{grid-template-columns:1fr}}

/* ---------- age gate ---------- */
.gate{position:fixed;inset:0;z-index:100;background:var(--black);display:flex;align-items:center;justify-content:center;padding:24px var(--margin)}
.gate .box{max-width:560px;width:100%}
.gate .box img{width:min(420px,100%);height:auto;margin-bottom:32px}
.gate h2{font-size:var(--step-head)}
.gate p{margin-top:16px}
.gate .btn-row{margin-top:32px;display:flex;flex-wrap:wrap;gap:12px}
.gate .btn-row .btn{flex:1 1 200px}

/* ---------- Herb (chat): opened from the header and the phone bar, so no floating button covers the menu ---------- */
.hb-chat-btn{display:none!important}
@media (max-width:860px){.hb-chat{bottom:calc(64px + env(safe-area-inset-bottom))!important}}

/* ---------- entrances: content is visible without script ---------- */
@media (prefers-reduced-motion:no-preference){
  .board[data-live] .row{animation:rowin 600ms var(--ease-out) both;animation-delay:calc(var(--i,0) * 40ms)}
  .js [data-reveal]{opacity:0;transform:translateY(24px);transition:opacity 700ms var(--ease-out),transform 900ms var(--ease-out);transition-delay:calc(var(--i,0) * 80ms)}
  .js [data-reveal].is-in{opacity:1;transform:none}
  .panel-photo img{transition:transform 1.6s var(--ease-soft)}
  .panel.is-near .panel-photo img{transform:scale(1.04)}
}
@media (prefers-reduced-motion:reduce){
  .names-track{animation:none}
  *{scroll-behavior:auto}
}

@keyframes rowin{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}

/* ================= inner pages: the earlier build's content patterns, restyled to this system ================= */
main>section:not([class]),main>section[class=""],main>section.cream,main>section[style],main>section.visit,main>section.brandstrip,main>article.article{padding:var(--section) 0}
.wrap{padding-inline:var(--margin)}
.cream{background:var(--paper);color:var(--ink)}
.lead{font-size:var(--step-lead);line-height:1.35;max-width:44ch}
.muted{color:var(--soft-dark)}
.cream .muted,.on-paper .muted{color:var(--soft-light)}
.wrap>h2,.sec-head h2,.prose h2,.radius h2,.visit h2,.cta-band h2,.article h2{font-size:var(--step-head);margin:0 0 28px}
.sec-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px 32px;margin-bottom:40px}
.sec-head h2{margin:0}
.sec-head p{margin-top:14px}
.btn-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
/* two columns: copy and its picture */
.wrap.prose{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);column-gap:var(--gutter);row-gap:32px;align-items:start}
.wrap.prose p+p{margin-top:1em}
.wrap.prose>img{width:100%;aspect-ratio:4/5;object-fit:cover}
/* three types, three steps */
.types,.steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gutter)}
.type,.step{background:rgba(255,255,255,.06);padding:28px;color:inherit;text-decoration:none}
.cream .type,.cream .step{background:#fff}
.type h3,.step h3{font-size:var(--step-lead);margin:0 0 10px}
.step::before{content:none!important}
a.step{transition:background-color var(--t-hover) ease}
@media (hover:hover) and (pointer:fine){a.step:hover{background:var(--yellow);color:var(--black)}}
/* questions */
.faq{display:grid;gap:28px;max-width:900px}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:20px;font-weight:750;min-height:44px;align-items:center}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";flex:none;width:10px;height:10px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translate(-2px,-2px);transition:transform var(--t-hover) var(--ease-out)}
.faq details[open] summary::after{transform:rotate(225deg) translate(-2px,-2px)}
.faq details p{margin-top:10px}
/* brand logos, moving slowly */
.brandstrip{background:var(--black)}
.brandstrip .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px 24px;margin-bottom:32px}
.brandstrip .wrap h2{margin:0}
.brandstrip .wrap a{font-weight:700}
.marquee-track{overflow:hidden}
.marquee--logos{display:flex;align-items:center;gap:64px;width:max-content;animation:names 70s linear infinite;padding:0 var(--margin)}
.marquee--logos img{height:56px;width:auto;max-width:180px;object-fit:contain}
@media (prefers-reduced-motion:reduce){.marquee--logos{animation:none;flex-wrap:wrap;width:auto}}
@media (hover:hover){.marquee-track:hover .marquee--logos{animation-play-state:paused}}
/* guide cards */
.posts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gutter)}
.post{display:grid;grid-template-rows:auto 1fr;background:rgba(255,255,255,.06);color:inherit;text-decoration:none;transition:background-color var(--t-hover) ease}
.cream .post{background:#fff}
.post img{width:100%;aspect-ratio:16/9;object-fit:cover}
.post div{padding:24px 28px 32px}
.post .tag{display:block;font-size:var(--step-small);font-weight:700;margin-bottom:10px}
.post h3{font-size:var(--step-lead);margin:0 0 10px}
@media (hover:hover) and (pointer:fine){.post:hover{background:var(--yellow);color:var(--black)}}
/* more links */
.explore{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--gutter)}
.explore a{display:flex;flex-direction:column;gap:4px;padding:18px 0;font-size:var(--step-lead);font-weight:850;font-stretch:112%;line-height:1.1;text-decoration:none}
.explore a small{font-size:var(--step-small);font-weight:600;font-stretch:100%}
@media (hover:hover) and (pointer:fine){.explore a:hover{color:var(--yellow)}.cream .explore a:hover{color:#7a5b00}}
/* closing band */
.cta-band{background:var(--yellow);color:var(--black);padding:clamp(72px,8vw,120px) 0}
.cta-band .wrap{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gutter);row-gap:16px;align-items:end}
.cta-band h2{grid-column:1/7;margin:0}
.cta-band p{grid-column:1/7}
.cta-band .btn{grid-column:10/13;justify-self:end;grid-row:1/3;background:var(--black);color:var(--ink-inv)}
/* neighbourhood tiles */
.tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gutter)}
.tile{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;color:var(--ink-inv);text-decoration:none;background:var(--panel)}
.tile img{width:100%;height:100%;object-fit:cover;transition:transform 900ms var(--ease-soft)}
.tile span{position:absolute;left:0;bottom:0;padding:14px 18px;background:var(--black);font-size:var(--step-lead);font-weight:850;font-stretch:112%}
.tile i,.tile small{display:none}
@media (hover:hover) and (pointer:fine){.tile:hover img{transform:scale(1.04)}}
/* visit block with a map */
.visit .grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:var(--gutter);align-items:stretch}
.visit-map,.radius-map{min-height:420px;background:var(--panel)}
.hours{display:grid;grid-template-columns:max-content 1fr;gap:6px 20px;margin-top:24px;font-variant-numeric:tabular-nums}
.map-fallback{padding:24px;font-weight:700}
/* delivery zone block */
.wrap.radius{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,6fr);gap:var(--gutter);align-items:start}
.served{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:28px;font-weight:700}
.served a{text-decoration:underline;text-underline-offset:.2em}
.facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gutter);margin-top:32px}
.fact{display:flex;flex-direction:column;gap:4px}
.fact b{font-size:var(--step-lead);font-weight:850;font-stretch:112%}
.addr-check{margin-top:28px}
.addr-check label{display:block;font-weight:800;margin-bottom:10px}
.addr-row{display:flex;gap:10px}
.addr-row input{flex:1;min-width:0;min-height:56px;padding:0 16px;border:0;border-radius:0;background:#fff;color:var(--black);font-size:var(--step-body)}
.addr-row button{min-height:56px;padding:0 24px;background:var(--black);color:var(--ink-inv);font-weight:800}
.addr-note{margin-top:10px;font-size:var(--step-small)}
.addr-out.is-yes b,.addr-out.is-no b{font-weight:850}
/* brands page */
.brandgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--gutter)}
.brandgrid a{display:flex;flex-direction:column;align-items:flex-start;gap:12px;padding:24px;background:rgba(255,255,255,.06);color:inherit;text-decoration:none;transition:background-color var(--t-hover) ease}
.brandgrid img{height:64px;width:auto;max-width:100%;object-fit:contain}
.brandgrid b{font-size:var(--step-head);font-weight:900;line-height:1}
.brandgrid span{font-weight:700}
@media (hover:hover) and (pointer:fine){.brandgrid a:hover{background:var(--yellow);color:var(--black)}}
/* guide articles */
.article .wrap>*{max-width:68ch}
.article .wrap>p+p{margin-top:1em}
.article .wrap>h2{margin:48px 0 16px;font-size:var(--step-lead)}
.article .lead{margin-bottom:32px}
.article a:not(.btn){font-weight:700;text-underline-offset:.2em}
/* the old status row and the floating bag are retired */
.led,.led-row{display:none}
.bag{display:none!important}
@media (max-width:860px){
  .wrap.prose,.visit .grid,.wrap.radius{grid-template-columns:1fr}
  .types,.steps,.posts,.tiles,.facts{grid-template-columns:1fr}
  .explore{grid-template-columns:1fr 1fr}
  .cta-band h2,.cta-band p,.cta-band .btn{grid-column:1/-1;grid-row:auto;justify-self:start}
  .addr-row{flex-direction:column}
  .marquee--logos img{height:44px}
}

.shelf-name .shelf-pic{width:72px;height:72px;object-fit:cover;flex:none;margin-right:16px}
.shelf-name>span{display:flex;align-items:center;flex-wrap:wrap;gap:0 12px}
/* title bands carry a big picture so the first screen has one dominant thing */
@media (min-width:861px){
  .page-head{position:relative}
  .page-head:has(.pic){min-height:min(78svh,760px);align-content:center}
  .page-head .pic{position:absolute;top:0;right:0;bottom:0;width:48%;min-height:0;margin:0;grid-column:auto;grid-row:auto}
  .page-head:has(.pic) .crumbs,.page-head:has(.pic) h1,.page-head:has(.pic) .lede,.page-head:has(.pic) .acts{grid-column:1/7}
}
/* inner-page question lists sit beside their heading */
@media (min-width:861px){
  .wrap:has(> .faq){display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gutter);align-items:start}
  .wrap:has(> .faq)>h2{grid-column:1/6;margin:0!important}
  .wrap:has(> .faq)>.faq{grid-column:7/13;max-width:none}
  .wrap:has(> .faq)>*:not(h2):not(.faq){grid-column:7/13}
}
.sec-head p{font-size:var(--step-body)}
.post .tag{display:none}
.leaflet-container .leaflet-control-attribution{font-size:13px}
@media (max-width:860px){.wrap.radius{row-gap:104px}}

/* round 3 fixes for the inner pages */
.page-head h1{font-size:clamp(36px,3.8vw,56px)}
.page-head + .board{padding-top:clamp(56px,6vw,96px)}
.post h3{font-size:var(--step-body);font-weight:800;font-stretch:106%}
.visit .lead,.wrap.radius .lead{font-size:var(--step-body);max-width:52ch}
.brandgrid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
.brandgrid span{font-size:var(--step-body)!important}
.brandgrid b{font-size:var(--step-lead)}
.board-top .board-stage .shelf3d{max-height:62svh;margin-left:auto}
.shelf-name .shelf-pic{width:160px;height:120px}
@media (max-width:860px){.facts{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.shelf-name .shelf-pic{width:72px;height:72px}}

/* round 4 */
.foot-warn .warn,.foot-warn .legal{font-size:var(--step-body)}
.foot-credit{font-size:var(--step-small)}
.explore a{font-size:var(--step-body);font-weight:850}
@media (max-width:860px){.page-head h1{font-size:32px;font-stretch:100%}}
.shelves-sec{padding:var(--section) var(--margin) 0}
.shelves-sec h2{font-size:var(--step-head);margin-bottom:32px}
.shelves-sec + .site-foot,.shelves-sec{padding-bottom:var(--section)}

.page-head h1{font-stretch:100%}
@media (min-width:861px){.wrap:has(> .faq)>h2{font-size:clamp(36px,3.6vw,52px);font-stretch:100%}}

.row .r-price small{display:block;font-size:var(--step-small);font-weight:600;color:var(--soft-light);text-decoration:line-through}
