/* Self-hosted fonts (SIL Open Font License; latin subset, variable woff2 from Google Fonts). No third-party requests. */
@font-face{font-family:'Fraunces'; font-style:normal; font-weight:500 700; font-display:swap; src:url('/fonts/fraunces-latin.woff2') format('woff2'); unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Fraunces'; font-style:italic; font-weight:400 500; font-display:swap; src:url('/fonts/fraunces-italic-latin.woff2') format('woff2'); unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Public Sans'; font-style:normal; font-weight:400 700; font-display:swap; src:url('/fonts/public-sans-latin.woff2') format('woff2'); unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'JetBrains Mono'; font-style:normal; font-weight:500 600; font-display:swap; src:url('/fonts/jetbrains-mono-latin.woff2') format('woff2'); unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}

/* Layout concept: a tall sequence of alternating cream/forest panels, each
   one slide-like and introducing a single idea (menu, trust, story, voice,
   join), bookended by a bold editorial hero and a grounded footer. */
:root{
  --forest-950:#0C1A11; --forest-900:#142A1C; --forest-800:#1C3826; --forest-700:#2E4B3B; --forest-600:#3C7350; --moss-400:#5FA36E;
  --cream-50:#FFFDF7; --cream-100:#FAF6EC; --cream-200:#F1EBDA;
  --gold-500:#C0982C; --gold-300:#E8C873; --gold-700:#8A6A1E;
  --coral:#E8562F; --coral-50:#FDEDE7;
  --ink:#1C2A18; --ink-soft:#5B6B57;
  --on-dark:#F3EFE2; --on-dark-soft:#B9C7B9;
  --white:#FFFFFF;
  --bg:#FFFFFF; --fg:var(--ink); --card:var(--cream-50); --border:#E7E2D4;
  --accent:var(--gold-700);
  color-scheme:light;
}
/* Sumeza's site is a committed light/white brand identity, not a
   light-dark-adaptive utility page — it ignores the visitor's system/app
   dark-mode setting on purpose, so these tokens never flip and a card's
   background and its text color can never land on the same side again. */
*{box-sizing:border-box;}
body{
  margin:0; background:var(--bg); color:var(--fg);
  font-family:'Public Sans',-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;
  padding-inline:0; -webkit-font-smoothing:antialiased;
}
h1,h2,h3{font-family:'Fraunces',Georgia,serif; font-weight:600; margin:0; text-wrap:balance;}
p{margin:0; line-height:1.6;}
img{max-width:100%;}
a{color:inherit;}
.wrap{max-width:1180px; margin:0 auto; padding-inline:24px;}
@media (max-width:640px){ .wrap{padding-inline:18px;} }
.mono{font-family:'JetBrains Mono',monospace;}
.eyebrow{display:inline-flex; align-items:center; gap:7px; font-weight:800; font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--coral); background:var(--coral-50); padding:6px 13px 6px 10px; border-radius:999px; transform:rotate(-1.4deg);}
.eyebrow::before{content:"✺"; font-size:13px; line-height:1;}
.zone-forest .eyebrow{background:color-mix(in srgb, var(--gold-300) 18%, transparent); color:var(--gold-300);}
.btn{display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:14px 26px; border-radius:999px; font-weight:700; font-size:14.5px; text-decoration:none; border:1px solid transparent; cursor:pointer; transition:transform .22s cubic-bezier(.34,1.56,.64,1), box-shadow .22s ease; font-family:'Public Sans',sans-serif;}
.btn:hover{transform:translateY(-2px) scale(1.035) rotate(-.6deg);}
.btn:active{transform:translateY(0) scale(.97);}
.btn-gold{background:var(--gold-500); color:#20190A; box-shadow:0 10px 22px -10px color-mix(in srgb, var(--gold-500) 70%, transparent);}
.btn-ghost{border-color:color-mix(in srgb, var(--fg) 30%, transparent); color:var(--fg); background:transparent;}
.zone-forest .btn-ghost{border-color:color-mix(in srgb, var(--on-dark) 40%, transparent); color:var(--on-dark);}
.btn-forest{background:var(--forest-800); color:var(--on-dark);}
.btn:disabled{opacity:.6; cursor:not-allowed; transform:none;}

/* reveal-on-scroll */
.reveal{opacity:1; transform:none;}
@media (prefers-reduced-motion: no-preference){
  .reveal{opacity:0; transform:translateY(22px) scale(.97); transition:opacity .55s ease, transform .55s cubic-bezier(.3,1.4,.5,1);}
  .reveal.in{opacity:1; transform:none;}
}

/* nav */
header.nav{position:sticky; top:env(safe-area-inset-top,0px); z-index:50; background:color-mix(in srgb, var(--bg) 86%, transparent); backdrop-filter:blur(10px) saturate(1.1); border-bottom:1px solid var(--border);}
.nav-inner{display:flex; align-items:center; justify-content:space-between; gap:16px; padding-block:12px; max-width:1180px; margin:0 auto; padding-inline:24px;}
@media (max-width:640px){ .nav-inner{padding-inline:18px;} }
.brandmark{display:flex; align-items:center; gap:10px; text-decoration:none;}
.brandmark .logo-box{height:40px; width:40px; flex-shrink:0; display:flex; align-items:center; justify-content:center;}
.brandmark .logo-box img{width:100%; height:100%; object-fit:contain;}
.brandmark .name{font-family:'Fraunces',serif; font-weight:700; font-size:17px; letter-spacing:.03em; text-transform:uppercase;}
.brandmark .sub{display:block; font-size:9px; letter-spacing:.18em; color:var(--gold-500); text-transform:uppercase; font-weight:600; margin-top:1px;}
nav.links{display:flex; gap:26px; font-size:13.5px; font-weight:600;}
nav.links a{text-decoration:none; opacity:.82;}
nav.links a:hover{opacity:1;}
@media (max-width:860px){ nav.links{display:none;} }
.nav-cta{display:flex; align-items:center; gap:10px;}
.nav-cta .btn{padding:10px 20px; font-size:13.5px;}

/* hero — white, product-led; green kept to one small accent word + the
   product stage, never a full wash */
.hero{position:relative; background:var(--white); color:var(--ink); overflow:hidden; padding-block:48px 56px;}
.hero::before{content:""; position:absolute; inset:-10%; background:
  radial-gradient(640px 520px at 88% -10%, color-mix(in srgb, var(--gold-300) 22%, transparent), transparent 60%),
  radial-gradient(560px 480px at -8% 6%, color-mix(in srgb, var(--moss-400) 14%, transparent), transparent 65%),
  radial-gradient(520px 440px at 70% 92%, color-mix(in srgb, var(--coral) 9%, transparent), transparent 62%);
  filter:blur(6px); pointer-events:none;}
.hero-grid{position:relative; display:grid; grid-template-columns:1.05fr .95fr; gap:40px; align-items:center;}
@media (max-width:900px){ .hero-grid{grid-template-columns:1fr; gap:60px;} }
.hero h1{font-size:clamp(34px,5.4vw,58px); line-height:1.02; letter-spacing:-.02em; margin-top:16px; color:var(--ink);}
.hero h1 em{font-style:italic; color:var(--forest-800);}
.hero .dek{font-family:'Fraunces',serif; font-style:italic; font-weight:400; color:var(--ink-soft); font-size:clamp(15.5px,1.8vw,18px); margin-top:12px; max-width:52ch;}
.hero-cta-row{display:flex; gap:12px; flex-wrap:wrap; margin-top:22px;}
.hero-chips{display:flex; flex-wrap:wrap; gap:9px; margin-top:22px;}
.chip{display:inline-flex; align-items:center; gap:7px; padding:7px 13px; border-radius:999px; border:1px solid var(--border); background:var(--cream-50); font-size:12px; font-weight:600; color:var(--ink-soft);}
.chip .dot{width:6px; height:6px; border-radius:50%; background:var(--forest-700);}

.hero-visual{position:relative; display:flex; align-items:center; justify-content:center; perspective:1200px;}
.hero-blob{position:relative; z-index:0; width:min(300px,68vw); aspect-ratio:1; display:flex; align-items:center; justify-content:center; transform-style:preserve-3d; transition:transform .25s cubic-bezier(.2,.8,.2,1); will-change:transform;}
.hero-blob .ring{position:absolute; inset:0; border-radius:48% 52% 55% 45%/55% 45% 55% 45%; background:linear-gradient(145deg, var(--gold-300), var(--forest-700) 72%); opacity:.95; animation:blobmove 11s ease-in-out infinite; box-shadow:0 24px 48px -20px rgba(28,42,24,.35);}
@keyframes blobmove{0%,100%{border-radius:48% 52% 55% 45%/55% 45% 55% 45%;} 50%{border-radius:55% 45% 48% 52%/45% 55% 45% 55%;}}
@media (prefers-reduced-motion: reduce){ .hero-blob .ring{animation:none;} }
.hero-blob img{position:relative; width:58%; filter:drop-shadow(0 18px 30px rgba(0,0,0,.28));}
/* the hero now runs the real product video, full and untrimmed, inside a
   hard-edge organic blob crop — same idea as a Wix/Squarespace video card:
   no chroma-key, no alpha feathering, just object-fit:cover clipped by the
   container's own (animated) border-radius. The raw footage's own baked-in
   border/ring never has a chance to show because it's always clipped well
   outside the visible blob. */
.hero-blob.has-media{width:min(460px,88vw); border-radius:48% 52% 55% 45%/55% 45% 55% 45%; overflow:hidden; box-shadow:0 0 0 4px var(--gold-500), 0 24px 48px -20px rgba(28,42,24,.35); animation:blobmove 11s ease-in-out infinite;}
@media (prefers-reduced-motion: reduce){ .hero-blob.has-media{animation:none;} }
.hero-blob.has-media .ring{display:none;}
.hero-blob.has-media video{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:none;}
.hero-sticker{position:absolute; font-size:20px; color:var(--gold-500); animation:stickerfloat 4.5s ease-in-out infinite; pointer-events:none;}
.hero-sticker-1{top:6%; left:4%; color:var(--coral); font-size:24px; animation-delay:0s;}
.hero-sticker-2{bottom:10%; right:2%; font-size:30px; animation-delay:.8s;}
.hero-sticker-3{top:46%; left:-2%; color:var(--forest-700); font-size:16px; animation-delay:1.6s;}

/* floating glass cards — layered UI-preview panels around the product
   mark, the way a modern product site shows "proof" floating in space
   instead of a single flat image */
.glass-card{position:absolute; z-index:2; display:flex; align-items:center; gap:10px; padding:11px 16px; border-radius:16px; background:color-mix(in srgb, var(--white) 72%, transparent); backdrop-filter:blur(14px) saturate(1.3); -webkit-backdrop-filter:blur(14px) saturate(1.3); border:1px solid color-mix(in srgb, var(--white) 60%, var(--border)); box-shadow:0 20px 40px -18px rgba(28,42,24,.28); animation:cardfloat 6s ease-in-out infinite;}
.glass-card .gc-dot{width:9px; height:9px; border-radius:50%; flex-shrink:0;}
.glass-card .gc-label{font-family:'JetBrains Mono',monospace; font-size:10.5px; font-weight:600; letter-spacing:.04em; color:var(--ink-soft); text-transform:uppercase; line-height:1.3;}
.glass-card .gc-value{font-family:'Fraunces',serif; font-weight:700; font-size:15px; color:var(--ink); line-height:1.2;}
.glass-card-1{top:2%; left:-8%; animation-delay:0s;}
.glass-card-1 .gc-dot{background:#3fbf6e; box-shadow:0 0 0 4px rgba(63,191,110,.18);}
.glass-card-2{bottom:4%; right:-10%; animation-delay:1.2s;}
.glass-card-2 .gc-dot{background:var(--coral); box-shadow:0 0 0 4px rgba(232,86,47,.18);}
@media (max-width:900px){ .glass-card-1{left:2%;} .glass-card-2{right:2%;} }
@media (max-width:560px){ .glass-card{padding:8px 12px; gap:7px;} .glass-card .gc-value{font-size:13px;} .glass-card-1{top:-4%;} .glass-card-2{bottom:-2%;} }
@keyframes cardfloat{0%,100%{transform:translateY(0) translateX(var(--mx,0px)) rotate(-2deg);} 50%{transform:translateY(-9px) translateX(var(--mx,0px)) rotate(1deg);}}
.glass-card{transition:transform .2s ease-out;}
@media (prefers-reduced-motion: reduce){ .glass-card{animation:none;} }
@keyframes stickerfloat{0%,100%{transform:translateY(0) rotate(0deg);} 50%{transform:translateY(-10px) rotate(14deg);}}
@media (prefers-reduced-motion: reduce){ .hero-sticker{animation:none;} }

/* marquee — a playful scrolling trust strip, the kind of kinetic band
   quick-commerce / D2C food brands use to keep the page feeling alive */
.marquee{background:var(--forest-900); overflow:hidden; padding-block:12px; transform:rotate(-1deg); margin-block:-6px; position:relative; z-index:2;}
.marquee-track{display:flex; width:max-content; gap:28px; animation:marquee 26s linear infinite; white-space:nowrap;}
.marquee-track span{font-family:'JetBrains Mono',monospace; font-size:12.5px; font-weight:600; letter-spacing:.04em; color:var(--on-dark); text-transform:uppercase;}
.marquee-track .sep{color:var(--gold-300); font-size:11px;}
@keyframes marquee{from{transform:translateX(0);} to{transform:translateX(-50%);}}
@media (prefers-reduced-motion: reduce){ .marquee-track{animation:none;} }

/* generic section — tightened rhythm so the whole story reads in roughly
   one confident scroll instead of long empty-feeling gaps */
section{padding-block:48px;}
.zone-cream{background:var(--white); color:var(--ink);}
.zone-cream .eyebrow, .zone-cream .section-head p.lede{color:var(--ink-soft);}
#voice{position:relative; overflow:hidden; background:var(--cream-100);}
#voice::before{content:""; position:absolute; inset:-20%; background:
  radial-gradient(520px 420px at 92% 6%, color-mix(in srgb, var(--coral) 12%, transparent), transparent 62%),
  radial-gradient(480px 400px at 4% 94%, color-mix(in srgb, var(--moss-400) 16%, transparent), transparent 65%);
  filter:blur(4px); pointer-events:none;}
#voice .wrap{position:relative;}
.glass-form-card{position:relative; background:color-mix(in srgb, var(--white) 68%, transparent); backdrop-filter:blur(16px) saturate(1.3); -webkit-backdrop-filter:blur(16px) saturate(1.3); border:1px solid color-mix(in srgb, var(--white) 55%, var(--border)); border-radius:24px; padding:30px 32px; box-shadow:0 26px 50px -22px rgba(28,42,24,.22);}
@media (max-width:640px){ .glass-form-card{padding:22px 20px;} }
/* keeps the form itself compact — the questions scroll inside a fixed
   height instead of pushing the whole card (and page) taller */
.feedback-scroll{max-height:360px; overflow-y:auto; overflow-x:hidden; padding-right:10px; margin-right:-10px; scrollbar-width:thin; scrollbar-color:var(--border) transparent; -webkit-overflow-scrolling:touch;}
.feedback-scroll::-webkit-scrollbar{width:6px;}
.feedback-scroll::-webkit-scrollbar-track{background:transparent;}
.feedback-scroll::-webkit-scrollbar-thumb{background:var(--border); border-radius:99px;}
@media (max-width:640px){ .feedback-scroll{max-height:320px;} }
/* desktop: match the form card's total height to the left column (Live
   Pulse card's bottom) exactly, via JS below — the scroll area absorbs
   whatever doesn't fit, the card never runs further down than the left
   column does. */
@media (min-width:901px){
  .voice-form-col{display:flex; flex-direction:column;}
  .voice-form-col .glass-form-card{display:flex; flex-direction:column; flex:1 1 auto; min-height:0; overflow:hidden;}
  .voice-form-col .glass-form-card form{display:flex; flex-direction:column; flex:1 1 auto; min-height:0;}
  .voice-form-col .feedback-scroll{flex:1 1 auto; min-height:60px; max-height:none;}
}
.zone-forest{position:relative; background:linear-gradient(165deg, var(--forest-950) 0%, var(--forest-900) 45%, var(--forest-700) 100%); color:var(--on-dark); overflow:hidden;}

/* freshness background — content stays dark and fully legible at all
   times (no washed-out obscuring pane); a roaming warm-gold spotlight
   with fine frost-crystal glints follows the cursor, blended with
   mix-blend-mode:screen so it only ever ADDS light, never covers
   anything. reads as a premium, cold-glass shimmer rather than a
   fog layer you have to clear away. desktop/mouse only — on touch
   the section is left exactly as its plain dark self. */
@property --fx{ syntax:'<percentage>'; inherits:true; initial-value:50%; }
@property --fy{ syntax:'<percentage>'; inherits:true; initial-value:35%; }
#freshness{isolation:isolate;}
#freshness .trust-grid{position:relative; z-index:1;}
.frost-layer{display:none;}
@media (hover:hover) and (pointer:fine){
  .frost-layer{display:block; position:absolute; inset:0; z-index:2; pointer-events:none; mix-blend-mode:screen;
    background-image:
      radial-gradient(circle 280px at var(--fx) var(--fy), color-mix(in srgb, var(--gold-300) 45%, transparent), transparent 68%),
      radial-gradient(circle, rgba(255,255,255,.95) 1px, transparent 1.7px),
      radial-gradient(circle, rgba(255,255,255,.6) 1px, transparent 1.5px);
    background-size:100% 100%, 46px 46px, 71px 71px;
    background-position:0 0, 0 0, 20px 34px;
    -webkit-mask-image:radial-gradient(circle 280px at var(--fx) var(--fy), black 0%, transparent 72%);
    mask-image:radial-gradient(circle 280px at var(--fx) var(--fy), black 0%, transparent 72%);
  }
}
@media (prefers-reduced-motion: reduce){ .frost-layer{display:none;} }
.zone-forest::after{content:""; position:absolute; inset:0; opacity:.06; mix-blend-mode:overlay; pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");}
.zone-forest .wrap{position:relative;}
.zone-forest .eyebrow{color:var(--gold-300);}
.zone-forest .eyebrow::before{background:var(--gold-300);}
.section-head{max-width:640px; margin-bottom:30px;}
.section-head h2{font-size:clamp(24px,3.1vw,34px); margin-top:8px; line-height:1.14;}
.section-head p.lede{margin-top:10px; font-size:16px; color:var(--ink-soft);}
.zone-forest .section-head p.lede{color:var(--on-dark-soft);}

/* menu */
/* one scrollable row instead of a wrapping grid — swipe/scroll
   through the cards rather than stacking them */
.menu-rail{position:relative;}
.menu-grid{display:flex; gap:18px; overflow-x:auto; overflow-y:hidden; scroll-snap-type:x proximity; -webkit-overflow-scrolling:touch; padding:4px 4px 16px; margin:0 -4px; scrollbar-width:thin; scrollbar-color:var(--border) transparent;}
.menu-grid::-webkit-scrollbar{height:6px;}
.menu-grid::-webkit-scrollbar-track{background:transparent;}
.menu-grid::-webkit-scrollbar-thumb{background:var(--border); border-radius:99px;}
.menu-rail::after{content:""; position:absolute; top:0; right:0; bottom:16px; width:48px; background:linear-gradient(90deg, transparent, var(--bg)); pointer-events:none;}
.menu-card{position:relative; perspective:1400px; background:var(--card); border-radius:26px; overflow:hidden; display:flex; flex-direction:column; box-shadow:0 1px 2px rgba(12,26,17,.07), 0 20px 36px -22px rgba(12,26,17,.32); transition:transform .32s cubic-bezier(.34,1.56,.64,1), box-shadow .32s ease; flex:0 0 min(78vw,290px); scroll-snap-align:start;}
.pcard-inner{position:relative; transition:transform .6s cubic-bezier(.3,.9,.3,1); transform-style:preserve-3d;}
.menu-card.is-flipped .pcard-inner{transform:rotateY(180deg);}
.pcard-front{display:flex; flex-direction:column; backface-visibility:hidden; -webkit-backface-visibility:hidden; transition:visibility 0s linear .6s;}
.pcard-back{position:absolute; inset:0; backface-visibility:hidden; -webkit-backface-visibility:hidden; transform:rotateY(180deg); background:linear-gradient(165deg, var(--forest-950), var(--forest-800)); color:var(--on-dark); border-radius:26px; padding:24px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; gap:12px;
  /* backface-visibility alone isn't reliable on every phone/GPU — some
     builds still keep the rotated-away face hit-testable even though it's
     invisible, which (since .pcard-back is position:absolute;inset:0, i.e.
     sitting right on top of the front face) would silently eat every tap
     on the front — button and photo both — which matches "tap does
     nothing" exactly. Belt and braces: force it non-interactive until the
     card has actually finished flipping to it. */
  visibility:hidden; pointer-events:none; transition:visibility 0s linear .6s;}
.menu-card.is-flipped .pcard-back{visibility:visible; pointer-events:auto; transition-delay:.6s;}
.menu-card.is-flipped .pcard-front{visibility:hidden; transition-delay:.6s;}
.pcard-back h4{font-family:'Fraunces',serif; font-weight:700; font-size:17px; color:var(--on-dark); max-width:22ch;}
.pcard-rate-row{display:flex; gap:12px;}
.pcard-rate-btn{width:46px; height:46px; border-radius:50%; border:1.5px solid color-mix(in srgb, var(--on-dark) 25%, transparent); background:color-mix(in srgb, var(--forest-700) 55%, transparent); font-size:20px; cursor:pointer; transition:transform .2s cubic-bezier(.34,1.56,.64,1), background .2s ease, border-color .2s ease; touch-action:manipulation;}
.pcard-rate-btn:hover{transform:scale(1.15) translateY(-2px);}
.pcard-rate-btn.is-picked{background:var(--gold-500); border-color:var(--gold-500);}
.pcard-thanks{font-size:12.5px; color:var(--on-dark-soft);}
.pcard-flip-btn{position:absolute; top:12px; right:12px; width:38px; height:38px; border-radius:50%; background:color-mix(in srgb, var(--white) 88%, transparent); border:none; display:flex; align-items:center; justify-content:center; cursor:pointer; box-shadow:0 6px 14px -6px rgba(12,26,17,.3); transition:transform .25s cubic-bezier(.34,1.56,.64,1); z-index:2; animation:pcardnudge 3.2s ease-in-out .6s infinite; touch-action:manipulation;}
.pcard-flip-btn:hover{transform:scale(1.14) rotate(50deg);}
/* the icon-plate itself is also a tap target for flipping — the small
   corner button alone is an easy miss on a real finger, especially
   since the whole rail scrolls horizontally: a touch that drifts even
   a few px while aiming for a 38px button gets eaten by the browser's
   scroll-gesture detection and the click never fires. A much bigger
   hit area plus touch-action:manipulation (skips the ambiguous-gesture
   wait) makes the flip reliably register on a real tap. */
.menu-card .icon-plate{cursor:pointer; touch-action:manipulation;}
@keyframes pcardnudge{0%,78%,100%{transform:scale(1) rotate(0deg);} 85%{transform:scale(1.12) rotate(-14deg);} 92%{transform:scale(1) rotate(6deg);}}
@media (prefers-reduced-motion: reduce){ .pcard-flip-btn{animation:none;} }
.pcard-flip-btn svg{width:15px; height:15px; color:var(--forest-800);}
@media (prefers-reduced-motion: reduce){ .pcard-inner{transition:none;} }
.menu-card:nth-child(2){transition-delay:.02s;}
.menu-card:nth-child(3){transition-delay:.04s;}
.menu-card:hover{transform:translateY(-8px) rotate(-1.2deg) scale(1.015); box-shadow:0 1px 2px rgba(12,26,17,.09), 0 34px 52px -20px rgba(12,26,17,.42);}
.menu-card:nth-child(2):hover{transform:translateY(-8px) rotate(1.2deg) scale(1.015);}
.menu-card .icon-plate{width:100%; aspect-ratio:1; background:radial-gradient(130% 130% at 50% 18%, color-mix(in srgb, var(--gold-300) 26%, var(--cream-200)), var(--cream-200) 70%); display:flex; align-items:center; justify-content:center; position:relative; overflow:hidden;}
.menu-card .icon-plate::before{content:""; position:absolute; width:80%; height:80%; border-radius:50%; border:1.5px solid color-mix(in srgb, var(--gold-500) 32%, transparent); box-shadow:inset 0 3px 14px rgba(12,26,17,.1); pointer-events:none;}
.menu-card .icon-plate::after{content:""; position:absolute; left:50%; bottom:13%; width:48%; height:9%; transform:translateX(-50%); background:radial-gradient(ellipse at center, rgba(12,26,17,.26), transparent 72%); filter:blur(1px);}
.menu-card .icon-plate svg{position:relative; width:76%; height:76%; filter:drop-shadow(0 16px 20px rgba(12,26,17,.24)); transition:transform .28s ease;}
.menu-card:hover .icon-plate svg{transform:translateY(-4px) scale(1.03);}
/* a real product photo (feathered alpha baked in, so it blends into the
   plate background with no hard edge) sized a little larger than the SVG
   illustrations since its own edges already fade out. */
.menu-card .icon-plate img{position:relative; width:92%; height:92%; object-fit:contain; transition:transform .28s ease;}
.menu-card:hover .icon-plate img{transform:translateY(-4px) scale(1.03);}
.plate-shine{position:absolute; top:-60%; left:-70%; width:36%; height:240%; background:linear-gradient(100deg, transparent, rgba(255,255,255,.55), transparent); transform:rotate(18deg) translateX(-140%); transition:transform .75s ease; pointer-events:none; z-index:1;}
.menu-card:hover .plate-shine{transform:rotate(18deg) translateX(260%);}
@media (prefers-reduced-motion: reduce){ .plate-shine{display:none;} }
.menu-card .status{position:absolute; top:14px; left:14px; font-size:10.5px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; padding:7px 13px; border-radius:999px; transform:rotate(-3deg); box-shadow:0 6px 14px -6px rgba(12,26,17,.3);}
.status-live{background:var(--coral); color:var(--white);}
.status-soon{background:var(--white); color:var(--ink); border:1.5px dashed var(--gold-500);}
.menu-card .body{padding:24px 26px 28px; display:flex; flex-direction:column; gap:14px; flex:1;}
.menu-card h3{font-size:24px;}
.menu-card .tag{font-size:12.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--gold-700);}
.menu-card p.desc{font-size:14.5px; color:var(--ink-soft); flex:1;}
.menu-card .price-row{display:flex; align-items:baseline; justify-content:space-between; border-top:1px dashed var(--border); padding-top:14px;}
.menu-card .price{font-family:'Fraunces',serif; font-size:22px; font-weight:700;}

/* anonymous "tap to show interest" chip on each product card — a separate,
   lighter-weight signal from the existing would-you-try-it thumbs rating on
   the flip side: no form, one tap, visible count. Marketing wants the
   number itself visible as social proof, so it's shown even at 0 (unlike
   the persona picker's quieter badge) once the stats call has resolved. */
.interest-tap{margin-top:2px;}
.interest-tap-btn{display:inline-flex; align-items:center; gap:7px; padding:8px 14px; border-radius:999px; border:1.5px solid var(--border); background:var(--cream-100); font-family:'Public Sans',sans-serif; font-size:12.5px; font-weight:700; color:var(--forest-800); cursor:pointer; transition:transform .2s cubic-bezier(.34,1.56,.64,1), border-color .2s ease, background .2s ease; touch-action:manipulation;}
.interest-tap-btn:hover{transform:translateY(-2px); border-color:var(--gold-500);}
.interest-tap-btn:active{transform:translateY(0) scale(.97);}
.interest-tap-btn .it-emoji{font-size:14px;}
.interest-tap-btn .it-count{font-family:'JetBrains Mono',monospace; color:var(--gold-700); min-width:1ch;}
.interest-tap-btn.is-tapped{background:var(--gold-500); border-color:var(--gold-500); color:#20190A; cursor:default;}
.interest-tap-btn.is-tapped:hover{transform:none;}

/* why — the problems we solve */
.why-grid{display:grid; grid-template-columns:repeat(5,1fr); gap:14px; margin-top:26px;}
@media (max-width:980px){ .why-grid{grid-template-columns:repeat(3,1fr);} }
@media (max-width:640px){ .why-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:420px){ .why-grid{grid-template-columns:1fr;} }
.pain-card{background:var(--cream-50); border:1px solid var(--border); border-radius:16px; padding:18px 16px; display:flex; flex-direction:column; gap:9px; transition:transform .22s ease, box-shadow .22s ease;}
.pain-card:hover{transform:translateY(-3px); box-shadow:0 18px 30px -20px rgba(28,42,24,.3);}
.pain-card svg{width:21px; height:21px; color:var(--coral);}
.pain-card h4{font-size:14px; font-weight:700; line-height:1.2;}
.pain-card p{font-size:12px; color:var(--ink-soft); line-height:1.45;}
.why-sub{margin-top:40px;}
.why-sub .kicker{font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:.1em; text-transform:uppercase; font-weight:700; color:var(--forest-700);}
.solve-row{display:grid; grid-template-columns:repeat(5,1fr); gap:14px; margin-top:16px;}
@media (max-width:980px){ .solve-row{grid-template-columns:repeat(3,1fr);} }
@media (max-width:640px){ .solve-row{grid-template-columns:repeat(2,1fr);} }
@media (max-width:420px){ .solve-row{grid-template-columns:1fr;} }
.solve-card{background:linear-gradient(150deg, var(--forest-800), var(--forest-900)); color:var(--on-dark); border-radius:16px; padding:17px 15px; display:flex; flex-direction:column; gap:6px;}
.solve-card .tag{font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:var(--gold-300); font-weight:700;}
.solve-card p{font-size:12px; color:var(--on-dark-soft); line-height:1.5;}
.why-close{margin-top:30px; display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; padding:20px 24px; border-radius:18px; background:var(--cream-100); border:1px dashed var(--gold-500);}
.why-close p{font-size:14px; color:var(--ink-soft); max-width:56ch;}
.why-close p strong{color:var(--ink); font-weight:700;}
@media (max-width:640px){ .why-close{flex-direction:column; align-items:flex-start;} }

/* freshness */
.trust-grid{display:grid; grid-template-columns:1.05fr .95fr; gap:40px; align-items:start;}
@media (max-width:900px){ .trust-grid{grid-template-columns:1fr;} }
.pillar-grid{display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:24px;}
@media (max-width:460px){ .pillar-grid{grid-template-columns:1fr;} }
.pillar{padding:18px; border-radius:16px; border:1px solid color-mix(in srgb, var(--on-dark) 14%, transparent); transition:background .22s ease, transform .22s ease, border-color .22s ease; cursor:pointer;}
.pillar:hover{background:color-mix(in srgb, var(--on-dark) 6%, transparent); transform:translateY(-3px);}
.pillar.is-open{background:color-mix(in srgb, var(--on-dark) 7%, transparent); border-color:color-mix(in srgb, var(--gold-300) 45%, transparent);}
.pillar svg{width:21px; height:21px; color:var(--gold-300); margin-bottom:10px; transition:transform .3s cubic-bezier(.34,1.56,.64,1);}
.pillar:hover svg, .pillar.is-open svg{transform:scale(1.14) rotate(-6deg);}
.pillar h4{font-size:14.5px; font-family:'Public Sans',sans-serif; font-weight:700; color:var(--on-dark);}
.pillar p{margin-top:5px; font-size:13px; color:var(--on-dark-soft); line-height:1.5;}
.pillar-check{display:flex; align-items:center; gap:5px; margin-top:0; font-size:11px; font-family:'JetBrains Mono',monospace; letter-spacing:.03em; color:var(--gold-300); opacity:0; max-height:0; overflow:hidden; transition:opacity .25s ease, max-height .25s ease, margin-top .25s ease;}
.pillar.is-open .pillar-check{opacity:1; max-height:20px; margin-top:8px;}
@media (prefers-reduced-motion: reduce){ .pillar svg, .pillar-check{transition:none;} }

/* live production log — a terminal-style "tail -f" feed, clearly marked
   as a simulated preview (same honesty rule as the reviews teaser: no
   fabricated data presented as real) */
.live-log{background:var(--forest-950); border-radius:18px; padding:18px 20px; max-width:620px; overflow:hidden; box-shadow:0 20px 40px -22px rgba(12,26,17,.35); border:1px solid color-mix(in srgb, var(--gold-300) 18%, transparent);}
.live-log-head{display:flex; align-items:center; gap:8px; margin-bottom:12px; font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:.07em; text-transform:uppercase; color:var(--on-dark-soft);}
.live-log-body{display:flex; flex-direction:column; gap:7px; max-height:168px; overflow-y:hidden;}
.live-line{font-family:'JetBrains Mono',monospace; font-size:12.5px; color:var(--on-dark-soft); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; flex-shrink:0;}
.live-line.is-in{animation:livein .4s ease forwards;}
@keyframes livein{from{opacity:0; transform:translateY(8px);} to{opacity:1; transform:translateY(0);}}
.live-sim-tag{display:inline-flex; margin-top:14px; font-family:'JetBrains Mono',monospace; font-size:11px; color:var(--ink-soft); gap:6px; align-items:center;}
.live-sim-tag .dot{width:6px; height:6px; border-radius:50%; background:var(--gold-500);}
@media (prefers-reduced-motion: reduce){ .live-line.is-in{animation:none;} }
.chain-card{background:color-mix(in srgb, var(--forest-800) 60%, transparent); border:1px solid color-mix(in srgb, var(--gold-300) 30%, transparent); border-radius:18px; padding:28px;}
.chain-card h4{font-size:15px; font-family:'Public Sans',sans-serif; font-weight:700; color:var(--on-dark);}
.chain-stop .dot{position:relative;}
.chain-stop .dot::after{content:""; position:absolute; inset:-5px; border-radius:50%; border:1.5px solid var(--gold-300); opacity:0; animation:chainpulse 2.6s ease-out infinite;}
.chain-stop:nth-child(2) .dot::after{animation-delay:.5s;}
.chain-stop:nth-child(3) .dot::after{animation-delay:1s;}
.chain-stop:nth-child(4) .dot::after{animation-delay:1.5s;}
@keyframes chainpulse{0%{opacity:.55; transform:scale(.6);} 100%{opacity:0; transform:scale(1.9);}}
@media (prefers-reduced-motion: reduce){ .chain-stop .dot::after{animation:none;} }
.chain-row{display:flex; justify-content:space-between; margin-top:22px; position:relative;}
.chain-row::before{content:""; position:absolute; left:6px; right:6px; top:7px; height:2px; background:linear-gradient(90deg, var(--gold-300), var(--forest-700));}
.chain-stop{display:flex; flex-direction:column; align-items:center; gap:8px; position:relative; z-index:1;}
.chain-stop .dot{width:14px; height:14px; border-radius:50%; background:var(--gold-300); border:3px solid var(--forest-900);}
.chain-stop span{font-size:10px; text-align:center; color:var(--on-dark-soft); font-family:'JetBrains Mono',monospace;}
.chain-stop b{font-size:12px; color:var(--on-dark);}
.chain-link{margin-top:22px; display:inline-flex; align-items:center; gap:6px; font-size:13.5px; font-weight:700; color:var(--gold-300); text-decoration:none;}

/* story teaser */
.story-grid{display:grid; grid-template-columns:.8fr 1.2fr; gap:40px; align-items:center;}
@media (max-width:860px){ .story-grid{grid-template-columns:1fr;} }
.story-mark{width:100%; max-width:260px; margin:0 auto; transition:transform .4s cubic-bezier(.34,1.56,.64,1);}
.story-mark:hover{transform:rotate(-6deg) scale(1.05);}
.story-grid h2{font-size:clamp(26px,3.2vw,36px);}
.story-grid p{margin-top:16px; font-size:16px; color:var(--ink-soft); max-width:56ch;}
.story-link{margin-top:20px; display:inline-flex; align-items:center; gap:6px; font-weight:700; font-size:14.5px; color:var(--forest-800); text-decoration:none; border-bottom:1.5px solid var(--gold-500); padding-bottom:2px;}

/* about / brand foundations — full mark, values, closing notes */
.mark-chips{display:flex; flex-wrap:wrap; gap:9px; margin-top:20px;}
.mark-chip{display:inline-flex; align-items:center; gap:4px; padding:7px 14px; border-radius:999px; background:var(--cream-100); border:1px solid var(--border); font-size:12.5px; font-weight:600; color:var(--ink-soft);}
.mark-chip b{font-family:'Fraunces',serif; font-style:italic; font-size:14px; color:var(--forest-700);}
.mark-chip.alt{background:var(--coral-50);}
.mark-chip.alt b{color:var(--coral);}
.value-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-top:28px;}
@media (max-width:860px){ .value-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:480px){ .value-grid{grid-template-columns:1fr;} }
.value-card{background:var(--cream-50); border:1px solid var(--border); border-radius:16px; padding:20px 18px; transition:transform .22s ease, box-shadow .22s ease;}
.value-card:hover{transform:translateY(-3px); box-shadow:0 18px 30px -20px rgba(28,42,24,.3);}
.value-card .vc-bar{width:26px; height:3px; border-radius:2px; background:var(--gold-500);}
.value-card:nth-child(even) .vc-bar{background:var(--forest-700);}
.value-card h4{font-family:'Fraunces',serif; font-style:italic; font-size:18px; margin-top:12px; margin-bottom:7px;}
.value-card p{font-size:13.3px; color:var(--ink-soft); line-height:1.5;}
.about-close-grid{display:grid; grid-template-columns:1fr 1fr; gap:22px; margin-top:50px;}
@media (max-width:760px){ .about-close-grid{grid-template-columns:1fr;} }
.about-close-card{background:var(--cream-100); border-radius:16px; padding:24px 22px;}
.about-close-card .ac-kicker{font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:.1em; text-transform:uppercase; font-weight:700; color:var(--forest-700); display:block; margin-bottom:9px;}
.about-close-card p{font-size:14.3px; color:var(--ink-soft); line-height:1.55;}

/* contact */
.contact-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:30px;}
@media (max-width:860px){ .contact-grid{grid-template-columns:1fr;} }
.contact-card{background:color-mix(in srgb, var(--forest-800) 55%, transparent); border:1px solid color-mix(in srgb, var(--on-dark) 16%, transparent); border-radius:16px; padding:22px 20px;}
.cc-kicker{font-family:'JetBrains Mono',monospace; font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; font-weight:700; color:var(--gold-300); display:block;}
.contact-card h4{margin-top:10px; font-size:17px; color:var(--on-dark);}
.contact-link{display:inline-flex; margin-top:12px; font-weight:700; font-size:14px; color:var(--on-dark); text-decoration:none; border-bottom:1.5px solid var(--gold-500); padding-bottom:2px;}
.contact-loc{display:block; margin-top:8px; font-size:13px; color:var(--on-dark-soft);}
.contact-social{margin-top:34px; display:flex; gap:12px;}
.social-icon{display:inline-flex; align-items:center; justify-content:center; width:38px; height:38px; border-radius:50%; background:color-mix(in srgb, var(--forest-800) 55%, transparent); border:1px solid color-mix(in srgb, var(--on-dark) 16%, transparent); color:var(--on-dark-soft); transition:transform .22s ease, color .22s ease; text-decoration:none;}
.social-icon svg{width:18px; height:18px; fill:currentColor;}
.social-icon:hover{color:var(--gold-300); transform:translateY(-2px);}

/* voice / feedback */
.voice-grid{display:grid; grid-template-columns:.85fr 1.15fr; gap:36px; align-items:start;}
@media (max-width:900px){ .voice-grid{grid-template-columns:1fr;} }
/* reviews teaser — a "data incoming" card instead of a flat empty-state,
   with a slow animated gradient ring and shimmering skeleton rows */
.rt-border{position:relative; border-radius:18px; padding:22px; margin-top:22px; overflow:hidden; background:var(--cream-50); border:1px solid var(--border);}
.rt-border::before{content:""; position:absolute; inset:-60%; background:conic-gradient(from 0deg, var(--gold-300), var(--coral) 30%, var(--moss-400) 60%, var(--gold-300) 100%); animation:rtspin 7s linear infinite; z-index:0;}
.rt-border::after{content:""; position:absolute; inset:2px; background:var(--cream-50); border-radius:16px; z-index:0;}
.rt-border > *{position:relative; z-index:1;}
@keyframes rtspin{to{transform:rotate(360deg);}}
.rt-head{display:flex; align-items:center; gap:8px; margin-bottom:16px; font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:.07em; text-transform:uppercase; color:var(--ink-soft);}
.rt-dot{width:7px; height:7px; border-radius:50%; background:#3fbf6e; box-shadow:0 0 0 4px rgba(63,191,110,.18); animation:rtpulse 1.8s ease-in-out infinite; flex-shrink:0;}
@keyframes rtpulse{0%,100%{opacity:1;} 50%{opacity:.35;}}
.rt-cursor{display:inline-block; margin-left:2px; animation:rtblink 1s step-end infinite;}
@keyframes rtblink{50%{opacity:0;}}
.rt-skel-row{display:flex; gap:12px; align-items:center; margin-bottom:14px;}
.rt-avatar, .rt-line{background:linear-gradient(90deg, var(--border) 25%, color-mix(in srgb, var(--border) 40%, white) 50%, var(--border) 75%); background-size:200% 100%; animation:rtshimmer 1.7s ease-in-out infinite;}
.rt-avatar{width:34px; height:34px; border-radius:50%; flex-shrink:0;}
.rt-lines{flex:1;}
.rt-line{height:9px; border-radius:5px;}
.rt-line.w70{width:70%;} .rt-line.w60{width:58%;} .rt-line.w40{width:38%; margin-top:7px;} .rt-line.w30{width:26%; margin-top:7px;}
@keyframes rtshimmer{0%{background-position:200% 0;} 100%{background-position:-200% 0;}}
.rt-note{margin-top:2px; font-size:13.5px; color:var(--ink-soft);}
@media (prefers-reduced-motion: reduce){ .rt-border::before, .rt-dot, .rt-cursor, .rt-avatar, .rt-line{animation:none;} }

/* live pulse — a small animated results panel, same honest-data pattern
   as the review-count badge: reads a backend-published aggregate when
   the team has set one, and plainly says "no answers yet" otherwise.
   never shows a fabricated number. */
.pulse-card{position:relative; border-radius:18px; padding:20px 22px; margin-top:22px; background:var(--cream-50); border:1px solid var(--border);}
.pulse-head{display:flex; align-items:center; gap:8px; font-family:'JetBrains Mono',monospace; font-size:11.5px; letter-spacing:.05em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:14px;}
.pulse-dot{width:7px; height:7px; border-radius:50%; background:var(--coral); box-shadow:0 0 0 3px var(--coral-50); animation:pulsedot 1.8s ease-in-out infinite; flex-shrink:0;}
@keyframes pulsedot{0%,100%{opacity:1;} 50%{opacity:.35;}}
.pulse-count{margin-left:auto; font-weight:700; color:var(--ink);}
.pulse-row{margin-top:12px;}
.pulse-row:first-of-type{margin-top:0;}
.pulse-row-top{display:flex; justify-content:space-between; gap:10px; font-size:13px; font-weight:700; color:var(--ink); margin-bottom:6px;}
.pulse-row-val{font-family:'JetBrains Mono',monospace; color:var(--ink-soft); font-weight:600; flex-shrink:0;}
.pulse-bar{height:8px; border-radius:99px; background:var(--cream-200); overflow:hidden;}
.pulse-bar-fill{height:100%; width:0%; border-radius:99px; background:linear-gradient(90deg, var(--gold-500), var(--gold-300)); transition:width 1.1s cubic-bezier(.22,.9,.3,1);}
.pulse-bar-coral{background:linear-gradient(90deg, var(--coral), var(--gold-300));}
.pulse-note{margin-top:12px; font-size:12.5px; color:var(--ink-soft);}
@media (prefers-reduced-motion: reduce){ .pulse-dot{animation:none;} .pulse-bar-fill{transition:none;} }

/* a tiny reaction bubble pops off a pill when it's checked — the
   "someone just answered" liveliness of a live workshop poll, without
   claiming it's anyone but you */
.pc-reaction{position:absolute; top:-8px; right:-6px; background:var(--forest-900); color:var(--on-dark); font-size:10.5px; font-weight:700; padding:3px 9px; border-radius:999px; white-space:nowrap; pointer-events:none; opacity:0; animation:pcreact 1.15s ease-out forwards; z-index:3;}
@keyframes pcreact{0%{opacity:0; transform:translateY(4px) scale(.8);} 15%{opacity:1; transform:translateY(-8px) scale(1);} 100%{opacity:0; transform:translateY(-30px) scale(.92);}}
@media (prefers-reduced-motion: reduce){ .pc-reaction{display:none;} }

/* review-count badge — small live stat pulled from the backend's generic
   published-content store, same graceful-fallback pattern as the
   waitlist counter */
.review-count-badge{display:inline-flex; align-items:center; gap:8px; margin-top:16px; padding:8px 14px; border-radius:999px; background:var(--cream-50); border:1px solid var(--border); font-size:13px; font-weight:600; color:var(--ink-soft);}
.rcb-dot{width:7px; height:7px; border-radius:50%; background:#3fbf6e; box-shadow:0 0 0 4px rgba(63,191,110,.18); animation:rtpulse 1.8s ease-in-out infinite; flex-shrink:0;}
@media (prefers-reduced-motion: reduce){ .rcb-dot{animation:none;} }

/* scratch card — a canvas scratch-off reward, revealed after an honest
   feedback submit; the reveal text is backend-fed via the same
   published-content store, never hardcoded to one prize */
.scratch-wrap{margin-top:24px; padding-top:24px; border-top:1px dashed var(--border); opacity:0; transform:translateY(10px) scale(.98); animation:panelpop .4s cubic-bezier(.3,1.4,.5,1) forwards;}
.scratch-intro{font-size:14.5px; font-weight:700; color:var(--ink); margin-bottom:14px;}
.scratch-card{position:relative; width:100%; max-width:360px; height:140px; border-radius:18px; overflow:hidden; box-shadow:0 20px 38px -18px rgba(12,26,17,.32);}
.scratch-reveal{position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; background:linear-gradient(135deg, var(--forest-900), var(--forest-700)); text-align:center; padding:16px;}
.scratch-reveal-label{font-family:'JetBrains Mono',monospace; font-size:10.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--gold-300);}
.scratch-reveal-value{font-family:'Fraunces',serif; font-weight:700; font-size:19px; color:var(--on-dark); max-width:30ch;}
.scratch-canvas{position:absolute; inset:0; width:100%; height:100%; cursor:grab; touch-action:none;}
.scratch-canvas.is-cleared{opacity:0; transition:opacity .5s ease; pointer-events:none;}
.scratch-hint{position:absolute; left:50%; bottom:12px; transform:translateX(-50%); font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:.06em; text-transform:uppercase; color:color-mix(in srgb, var(--white) 75%, transparent); pointer-events:none; animation:scratchhint 1.6s ease-in-out infinite;}
.scratch-hint.is-hidden{display:none;}
@keyframes scratchhint{0%,100%{opacity:.5;} 50%{opacity:1;}}
@media (prefers-reduced-motion: reduce){ .scratch-wrap{animation:none; opacity:1; transform:none;} .scratch-hint{animation:none;} }
.scratch-note{margin-top:12px; font-size:12.5px; color:var(--ink-soft);}
.scale-row{display:flex; gap:8px; margin-top:8px;}
.scale-btn{position:relative; width:42px; height:42px; border-radius:12px; border:1px solid var(--border); background:var(--cream-50); font-weight:700; cursor:pointer; font-family:'JetBrains Mono',monospace; transition:transform .2s cubic-bezier(.34,1.56,.64,1);}
.scale-btn:hover{transform:translateY(-2px) scale(1.1) rotate(-3deg);}
.scale-btn[aria-pressed="true"]{background:var(--forest-800); color:var(--on-dark); border-color:var(--forest-800);}
.scale-btn.is-popping{animation:scalepop .45s cubic-bezier(.3,1.7,.4,1);}
@keyframes scalepop{0%{transform:scale(1);} 35%{transform:scale(1.35) rotate(-8deg);} 60%{transform:scale(.92) rotate(4deg);} 100%{transform:scale(1.08) rotate(0);}}
.scale-caption{margin-top:10px; font-size:13.5px; font-weight:700; color:var(--forest-800); min-height:19px; opacity:0; transform:translateY(-4px) scale(.9); transform-origin:left center;}
.scale-caption.is-in{animation:captionpop .4s cubic-bezier(.3,1.5,.4,1) forwards;}
@keyframes captionpop{to{opacity:1; transform:translateY(0) scale(1);}}
@media (prefers-reduced-motion: reduce){ .scale-btn.is-popping{animation:none;} .scale-caption.is-in{animation:none; opacity:1; transform:none;} }
.pill-check{position:relative; display:inline-flex; align-items:center; gap:8px; padding:10px 16px; border-radius:999px; border:1.5px solid var(--border); background:var(--cream-50); font-size:13.5px; font-weight:700; cursor:pointer; transition:transform .2s cubic-bezier(.34,1.56,.64,1), background .2s ease, border-color .2s ease;}
.pill-check .pc-emoji{font-size:17px; line-height:1;}
.pill-check:hover{transform:translateY(-2px) rotate(-1deg); background:var(--cream-200);}
.pill-check:has(input:checked){background:var(--coral-50); border-color:var(--coral);}
.pill-check.is-popping{animation:pcpop .4s cubic-bezier(.3,1.7,.4,1);}
@keyframes pcpop{0%{transform:scale(1) rotate(0);} 35%{transform:scale(1.14) rotate(-4deg);} 65%{transform:scale(.95) rotate(3deg);} 100%{transform:scale(1) rotate(0);}}
/* the generic .field input rule below (meant for text inputs) was
   leaking onto these checkboxes since pill-row sits inside a .field
   wrapper too — stretching them full-width with text-input padding.
   this reset is deliberately higher-specificity so it always wins
   regardless of source order or browser quirks (showed up worst on
   iOS Safari, which honors width/padding on checkboxes more literally
   than desktop Chromium does). */
.pill-row .pill-check input{appearance:auto; -webkit-appearance:auto; width:17px; height:17px; min-width:17px; max-width:17px; padding:0; margin:0; border-radius:5px; border:1.5px solid var(--border); background:var(--white); accent-color:var(--coral); flex-shrink:0; box-sizing:border-box;}
.pill-row{display:flex; flex-wrap:wrap; gap:9px; margin-top:8px;}
@media (prefers-reduced-motion: reduce){ .pill-check.is-popping{animation:none;} }
.form-reassure{display:flex; align-items:center; gap:6px; font-size:12px; font-weight:600; color:var(--ink-soft); margin:2px 0 16px; line-height:1.4;}
.form-reassure .fr-dot{width:6px; height:6px; border-radius:50%; background:#3a8a52; flex-shrink:0; animation:frpulse 1.8s ease-in-out infinite;}
@keyframes frpulse{0%,100%{opacity:1; transform:scale(1);} 50%{opacity:.4; transform:scale(.7);}}
@media (prefers-reduced-motion: reduce){ .form-reassure .fr-dot{animation:none;} }
.auto-capture-note{display:inline-flex; align-items:center; gap:5px; font-size:11.5px; font-weight:700; color:#3a8a52; opacity:0; transform:translateY(-2px); margin-left:12px; transition:opacity .3s ease, transform .3s ease; vertical-align:middle;}
.auto-capture-note::before{content:"\25cf"; font-size:8px;}
.auto-capture-note.is-shown{opacity:1; transform:translateY(0);}

/* forms */
.field{display:flex; flex-direction:column; gap:6px;}
.field label{font-size:12.5px; font-weight:700; letter-spacing:.03em; color:var(--ink-soft);}
.zone-forest .field label{color:var(--on-dark-soft);}
.field input, .field select, .field textarea{font-family:'Public Sans',sans-serif; font-size:15px; padding:12px 14px; border-radius:10px; border:1px solid var(--border); background:var(--cream-50); color:var(--ink); width:100%;}
.zone-forest .field input, .zone-forest .field select, .zone-forest .field textarea{background:color-mix(in srgb, var(--forest-800) 55%, transparent); border-color:color-mix(in srgb, var(--on-dark) 25%, transparent); color:var(--on-dark);}
.field input:focus, .field select:focus, .field textarea:focus{outline:2px solid var(--gold-500); outline-offset:1px;}
.form-grid{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
@media (max-width:560px){ .form-grid{grid-template-columns:1fr;} }
.field-error{font-size:12.5px; color:#d9534f; min-height:15px;}
.consent-row{display:flex; align-items:flex-start; gap:10px; font-size:13px; color:var(--ink-soft); margin-top:4px;}
.zone-forest .consent-row{color:var(--on-dark-soft);}
.consent-row input{margin-top:3px; accent-color:var(--gold-500);}
.form-status{font-size:14px; margin-top:14px; min-height:20px;}
.form-status.ok{color:#3a8a52;}
.form-status.err{color:#d9534f;}
.hp{position:absolute; left:-9999px; width:1px; height:1px; opacity:0;}

/* waitlist — a light, restrained panel (same recipe as the B2B glass
   card below it) holding a row of persona tiles. tapping a tile
   flips only that tile, in place, to a small inline form — no
   auto-play, no separate panel pushed down the page. */
#waitlist{position:relative; overflow:hidden; background:var(--cream-100);}
#waitlist::before{content:""; position:absolute; inset:-20%; background:
  radial-gradient(520px 420px at 10% 0%, color-mix(in srgb, var(--gold-300) 20%, transparent), transparent 65%),
  radial-gradient(460px 380px at 95% 100%, color-mix(in srgb, var(--moss-400) 16%, transparent), transparent 62%);
  filter:blur(4px); pointer-events:none;}
.waitlist-panel{position:relative; max-width:900px; margin:0 auto; padding:34px 36px; border-radius:24px; background:color-mix(in srgb, var(--white) 68%, transparent); backdrop-filter:blur(16px) saturate(1.3); -webkit-backdrop-filter:blur(16px) saturate(1.3); border:1px solid color-mix(in srgb, var(--white) 55%, var(--border)); box-shadow:0 26px 50px -22px rgba(28,42,24,.3);}
@media (max-width:640px){ .waitlist-panel{padding:26px 22px;} }
.waitlist-top{display:flex; justify-content:space-between; align-items:flex-start; gap:24px; flex-wrap:wrap; position:relative;}
.waitlist-counter{font-family:'JetBrains Mono',monospace; font-size:13px; color:var(--ink-soft); display:flex; align-items:center; gap:8px;}
.waitlist-counter .dot{width:7px; height:7px; border-radius:50%; background:#3a8a52; box-shadow:0 0 0 3px rgba(58,138,82,.2);}

/* persona tiles — five small, independent flip cards. clicking one
   flips only that tile to reveal its own compact form right there */
.persona-grid{display:grid; grid-template-columns:repeat(5,1fr); gap:12px; margin-top:26px;}
@media (max-width:760px){ .persona-grid{grid-template-columns:repeat(3,1fr);} }
@media (max-width:480px){ .persona-grid{grid-template-columns:repeat(2,1fr);} }
.persona-tile{perspective:1400px;}
.persona-flip{position:relative; display:grid; transition:transform .55s cubic-bezier(.4,.05,.25,1); transform-style:preserve-3d;}
.persona-tile.is-flipped .persona-flip{transform:rotateY(180deg);}
.persona-front, .persona-back{grid-area:1/1; backface-visibility:hidden; -webkit-backface-visibility:hidden; border-radius:16px;}
.persona-back{transform:rotateY(180deg);}
@media (prefers-reduced-motion: reduce){ .persona-flip{transition:none;} }
.persona-front{display:flex; flex-direction:column; align-items:center; justify-content:center; gap:7px; text-align:center; padding:18px 10px; min-height:128px; background:var(--cream-50); border:1.5px solid var(--border); cursor:pointer; font-family:inherit; transition:transform .2s cubic-bezier(.34,1.56,.64,1), border-color .2s ease, box-shadow .2s ease;}
.persona-front:hover{transform:translateY(-3px); border-color:var(--gold-500); box-shadow:0 14px 26px -16px rgba(28,42,24,.25);}
.persona-front svg{width:26px; height:26px; color:var(--forest-700); flex-shrink:0;}
.persona-front .pn-label{font-family:'Fraunces',serif; font-weight:700; font-size:14.5px; color:var(--ink); line-height:1.2;}
.persona-front .pn-hint{font-family:'JetBrains Mono',monospace; font-size:9.5px; letter-spacing:.05em; text-transform:uppercase; color:var(--ink-soft);}
/* anonymous "tap to show interest" count badge — a quiet social-proof
   number under the hint text, fed live from /public/interest/stats; empty
   (and not rendered at all) until at least one real tap exists, same
   honesty rule as the Live Pulse card: never show a fabricated 0/placeholder. */
.persona-front .pn-count{font-family:'JetBrains Mono',monospace; font-size:10px; font-weight:700; color:var(--gold-700); display:none; align-items:center; gap:4px;}
.persona-front .pn-count.has-count{display:inline-flex;}
.persona-front .pn-count .dot{width:5px; height:5px; border-radius:50%; background:var(--moss-400);}
.persona-back{background:var(--cream-50); border:1.5px solid var(--gold-300); padding:16px; display:flex; flex-direction:column; gap:10px; box-shadow:0 14px 26px -16px rgba(28,42,24,.22);}
.persona-back-head{display:flex; align-items:center; justify-content:space-between; gap:8px;}
.persona-back-head b{font-family:'Fraunces',serif; font-size:13.5px; color:var(--ink);}
.persona-close{width:22px; height:22px; border-radius:50%; border:none; background:var(--cream-100); color:var(--ink-soft); font-size:13px; line-height:1; cursor:pointer; flex-shrink:0;}
.persona-close:hover{background:var(--border);}
.persona-mini-field{display:flex; flex-direction:column; gap:4px;}
.persona-mini-field label{font-size:10.5px; font-weight:700; letter-spacing:.02em; color:var(--ink-soft);}
.persona-mini-field input{font-family:'Public Sans',sans-serif; font-size:13.5px; padding:8px 10px; border-radius:8px; border:1px solid var(--border); background:var(--white); color:var(--ink); width:100%;}
.persona-mini-field input:focus{outline:2px solid var(--gold-500); outline-offset:1px;}
.persona-mini-consent{display:flex; align-items:flex-start; gap:7px; font-size:11.5px; color:var(--ink-soft);}
.persona-mini-consent input{margin-top:2px; accent-color:var(--gold-500);}
.persona-note{font-size:12.5px; color:var(--ink-soft); line-height:1.5;}
.persona-mini-status{font-size:11.5px; min-height:14px;}
.persona-mini-status.ok{color:#3a8a52;}
.persona-mini-status.err{color:#d9534f;}

/* B2B — a bulk-order enquiry styled like the hero's floating glass
   cards: no price shown on the page, just a minimal-info enquiry that
   gets a real person to call back with pricing */
.b2b-section{position:relative; padding-block:56px; background:var(--cream-100); overflow:hidden;}
.b2b-section::before{content:""; position:absolute; inset:-20%; background:
  radial-gradient(520px 420px at 85% 0%, color-mix(in srgb, var(--moss-400) 22%, transparent), transparent 65%),
  radial-gradient(460px 380px at 5% 100%, color-mix(in srgb, var(--coral) 14%, transparent), transparent 62%);
  filter:blur(4px); pointer-events:none;}
.b2b-card{position:relative; max-width:900px; margin:0 auto; padding:34px 36px; border-radius:24px; background:color-mix(in srgb, var(--white) 68%, transparent); backdrop-filter:blur(16px) saturate(1.3); -webkit-backdrop-filter:blur(16px) saturate(1.3); border:1px solid color-mix(in srgb, var(--white) 55%, var(--border)); box-shadow:0 26px 50px -22px rgba(28,42,24,.3); overflow:hidden;}
.b2b-top h3{font-size:clamp(20px,2.6vw,26px); margin-top:8px; max-width:34ch;}
.b2b-top p{margin-top:8px; font-size:14.5px; color:var(--ink-soft); max-width:42ch;}
.b2b-stats{display:flex; gap:10px; flex-wrap:wrap; margin-top:22px;}
.stat-chip{display:flex; align-items:center; gap:9px; padding:10px 15px; border-radius:14px; background:color-mix(in srgb, var(--white) 80%, transparent); backdrop-filter:blur(10px); border:1px solid var(--border); box-shadow:0 10px 20px -14px rgba(28,42,24,.22);}
.stat-chip .gc-dot{width:8px; height:8px; border-radius:50%; background:var(--forest-700); flex-shrink:0;}
.stat-chip .gc-label{font-family:'JetBrains Mono',monospace; font-size:9.5px; font-weight:600; letter-spacing:.04em; color:var(--ink-soft); text-transform:uppercase; line-height:1.3; display:block;}
.stat-chip .gc-value{font-family:'Fraunces',serif; font-weight:700; font-size:14px; color:var(--ink);}
.stat-row{display:flex; gap:10px; flex-wrap:wrap;}
.stat-chip-sm{display:flex; align-items:center; gap:7px; padding:7px 11px; border-radius:11px; background:color-mix(in srgb, var(--white) 70%, var(--cream-200)); border:1px solid var(--border);}
.stat-chip-sm .gc-dot{width:6px; height:6px; border-radius:50%; background:var(--forest-700); flex-shrink:0;}
.stat-chip-sm .gc-label{font-family:'JetBrains Mono',monospace; font-size:8.5px; font-weight:600; letter-spacing:.04em; color:var(--ink-soft); text-transform:uppercase; line-height:1.3; display:block;}
.stat-chip-sm .gc-value{font-family:'Fraunces',serif; font-weight:700; font-size:12px; color:var(--ink);}
.zone-forest .stat-chip-sm{background:color-mix(in srgb, var(--forest-800) 55%, transparent); border-color:color-mix(in srgb, var(--gold-300) 25%, transparent);}
.zone-forest .stat-chip-sm .gc-label{color:var(--on-dark-soft);}
.zone-forest .stat-chip-sm .gc-value{color:var(--on-dark);}
.b2b-cta-row{margin-top:24px;}
/* the whole card flips — front pitch to back enquiry form — instead
   of expanding a panel underneath it */
.b2b-flip-wrap{perspective:1800px;}
.b2b-flip{position:relative; display:grid; transition:transform .6s cubic-bezier(.4,.05,.25,1); transform-style:preserve-3d; will-change:transform;}
.b2b-card.is-flipped .b2b-flip{transform:rotateY(180deg);}
.b2b-face{grid-area:1/1; width:100%; backface-visibility:hidden; -webkit-backface-visibility:hidden;}
.b2b-face-back{transform:rotateY(180deg);}
/* backface-visibility alone is not reliable enough on every browser/GPU —
   some (notably older WebKit / some Android Chrome builds) still paint a
   faint remnant of the face that is rotated away, which looked like a
   leftover scrap of the other side poking through after flipping. Belt and
   braces: also fully hide the non-visible face with visibility+pointer-events,
   which has none of backface-visibility's compositing edge cases. */
.b2b-face-back{visibility:hidden; pointer-events:none; transition:visibility 0s linear .6s;}
.b2b-face-front{transition:visibility 0s linear .6s;}
.b2b-card.is-flipped .b2b-face-back{visibility:visible; pointer-events:auto; transition-delay:.6s;}
.b2b-card.is-flipped .b2b-face-front{visibility:hidden; pointer-events:none; transition-delay:.6s;}
@media (prefers-reduced-motion: reduce){ .b2b-face-back, .b2b-face-front{transition:none;} }
@media (prefers-reduced-motion: reduce){ .b2b-flip{transition:none;} }
.b2b-back-head{display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:18px;}
.b2b-back-head h3{font-size:clamp(18px,2.2vw,22px); max-width:30ch;}
.b2b-close{width:30px; height:30px; border-radius:50%; border:none; background:var(--cream-100); color:var(--ink-soft); font-size:16px; line-height:1; cursor:pointer; flex-shrink:0;}
.b2b-close:hover{background:var(--border);}
.b2b-note{font-size:13px; color:var(--ink-soft); margin-top:12px;}
@media (max-width:640px){ .b2b-card{padding:26px 22px;} }

/* footer */
footer{background:var(--forest-950); color:var(--on-dark-soft); padding-block:40px 24px;}
.footer-grid{display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:40px;}
@media (max-width:760px){ .footer-grid{grid-template-columns:1fr; gap:28px;} }
footer h5{font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--on-dark-soft); font-weight:700; margin-bottom:14px;}
.footer-links{display:flex; flex-direction:column; gap:10px; font-size:14px;}
.footer-links a{text-decoration:none; color:var(--on-dark-soft);}
.footer-links a:hover{color:var(--on-dark);}
.footer-bottom{margin-top:44px; padding-top:22px; border-top:1px solid color-mix(in srgb, var(--on-dark) 14%, transparent); display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; font-size:12.5px;}

/* =====================================================================
   Sumeza website v3 additions (multi-page). Everything above is the
   original single-page stylesheet, kept as the brand's design language.
   ===================================================================== */

/* accessibility + contrast tune-ups (WCAG AA on small text) */
.eyebrow{color:#B5401C;}
.brandmark .sub{color:var(--gold-700);}
.field-error, .form-status.err, .persona-mini-status.err{color:#B3261E;}
.form-status.ok, .persona-mini-status.ok{color:#2E7041;}
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible{outline:3px solid var(--gold-500); outline-offset:2px; border-radius:6px;}
.zone-forest :where(a, button):focus-visible, footer :where(a, button):focus-visible{outline-color:var(--gold-300);}
.skip-link{position:absolute; left:12px; top:-60px; z-index:100; background:var(--forest-800); color:var(--on-dark); padding:10px 16px; border-radius:10px; font-weight:700; text-decoration:none;}
.skip-link:focus{top:10px;}
.sr-only{position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;}
[hidden]{display:none !important;}
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; scroll-behavior:auto !important;}
  .btn:hover, .menu-card:hover, .pill-check:hover{transform:none;}
}
html{scroll-padding-top:76px;}
body{overflow-x:hidden;}
main{display:block;}
img, video{height:auto;}
.btn-sm{padding:10px 18px; font-size:13.5px;}
button.text-link{background:none; border:0; padding:0; font-family:inherit; cursor:pointer;}
.text-link{font-weight:700; font-size:14px; color:var(--forest-800); text-decoration:underline; text-decoration-color:var(--gold-500); text-underline-offset:3px;}
.link-btn{background:none; border:none; padding:0; font:inherit; font-weight:700; color:inherit; text-decoration:underline; cursor:pointer;}
.fine{font-size:12.5px; color:var(--ink-soft); line-height:1.5;}
.loading{color:var(--ink-soft); font-size:14px; padding:18px 0;}

/* nav: real links on every page + mobile menu + cart */
nav.links a[aria-current="page"]{opacity:1; text-decoration:underline; text-decoration-color:var(--gold-500); text-decoration-thickness:2px; text-underline-offset:6px;}
.cart-link{position:relative; display:inline-flex; align-items:center; justify-content:center; width:42px; height:42px; border-radius:50%; border:1px solid var(--border); background:var(--cream-50); color:var(--forest-800); flex-shrink:0;}
.cart-link svg{width:20px; height:20px;}
.cart-count{position:absolute; top:-4px; right:-4px; min-width:19px; height:19px; padding:0 5px; border-radius:999px; background:#C23F1B; color:#fff; font-size:11px; font-weight:800; display:flex; align-items:center; justify-content:center;}
.nav-toggle{display:none; align-items:center; gap:6px; height:42px; padding:0 14px; border-radius:999px; border:1px solid var(--border); background:var(--white); font:600 13.5px 'Public Sans',sans-serif; color:var(--ink); cursor:pointer;}
.nav-toggle svg{width:18px; height:18px;}
@media (max-width:860px){ .nav-toggle{display:inline-flex;} }
@media (max-width:480px){ .nav-cta .btn-gold{display:none;} .brandmark .name{font-size:15px;} }
.mobile-nav{border-top:1px solid var(--border); background:var(--white); padding:8px 18px 16px; max-height:calc(100vh - 70px); overflow-y:auto;}
.mobile-nav a{display:block; padding:13px 4px; font-weight:600; font-size:16px; text-decoration:none; border-bottom:1px solid var(--border);}
.mobile-nav a:last-child{border-bottom:none;}
.mobile-nav a[aria-current="page"]{color:var(--forest-600);}
.mock-banner{position:fixed; left:12px; bottom:12px; z-index:200; background:#20190A; color:#FFE9A8; font:600 12px 'JetBrains Mono',monospace; padding:8px 12px; border-radius:10px; box-shadow:0 8px 20px rgba(0,0,0,.25);}

/* inner page header */
.page-head{position:relative; padding-block:44px 30px; background:var(--cream-100); overflow:hidden; border-bottom:1px solid var(--border);}
.page-head::before{content:""; position:absolute; inset:-30%; background:radial-gradient(520px 380px at 92% 0%, color-mix(in srgb, var(--gold-300) 22%, transparent), transparent 62%), radial-gradient(460px 360px at 0% 100%, color-mix(in srgb, var(--moss-400) 14%, transparent), transparent 65%); pointer-events:none;}
.page-head .wrap{position:relative;}
.page-head h1{font-size:clamp(30px,4.6vw,48px); line-height:1.06; letter-spacing:-.015em; margin-top:12px; max-width:22ch;}
.page-head h1 em{font-style:italic; color:var(--forest-800);}
.page-head .dek{font-family:'Fraunces',serif; font-style:italic; color:var(--ink-soft); font-size:clamp(15.5px,1.8vw,18px); margin-top:12px; max-width:60ch;}
.crumbs{font-size:13px; color:var(--ink-soft); display:flex; gap:6px; flex-wrap:wrap; margin-bottom:14px;}
.crumbs a{color:var(--ink-soft);}
.hero-cta-row .btn-ghost{background:var(--white);}

/* notices */
.notice{border-radius:14px; padding:14px 16px; font-size:14.5px; line-height:1.5; border:1px solid var(--border); background:var(--cream-50);}
.notice-ok{background:#EEF7F0; border-color:#B9DCC2;}
.notice-warn{background:#FFF7E3; border-color:#EED7A0;}
.notice-err{background:#FDEDEB; border-color:#F2C2BC;}
.catalog-note{margin-top:14px;}
.ph{background:#FFF3C4; color:#5A4300; outline:1px dashed var(--gold-500); padding:0 4px; border-radius:4px; font-family:'JetBrains Mono',monospace; font-size:.86em;}
footer .ph{background:color-mix(in srgb, var(--gold-300) 22%, transparent); color:var(--gold-300);}

/* product cards (shared by home rail + /products grid) */
.menu-card .icon-plate picture{position:relative; width:92%; height:92%; display:flex; align-items:center; justify-content:center;}
.menu-card .icon-plate picture img{width:100%; height:100%; object-fit:contain;}
.menu-card h3 a.card-title-link{text-decoration:none;}
.menu-card h3 a.card-title-link:hover{text-decoration:underline; text-decoration-color:var(--gold-500);}
.menu-card .tag:empty{display:none;}
.price .mrp{font-size:14px; font-weight:500; color:var(--ink-soft); margin-left:6px;}
.price-soon{font-size:16px !important;}
.price-muted{opacity:.55;}
.price-note{font-size:12px; color:var(--ink-soft);}
.card-actions{display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap;}
.product-grid{display:grid; grid-template-columns:repeat(auto-fill, minmax(250px,1fr)); gap:22px;}
.product-grid .menu-card{flex:initial;}
.menu-card.no-flip:hover{transform:translateY(-6px);}
.veg-mark{display:inline-flex; align-items:center; justify-content:center; width:16px; height:16px; border:1.5px solid; border-radius:3px; vertical-align:middle; margin-left:4px; position:relative; top:-2px;}
.veg-mark span{width:8px; height:8px; border-radius:50%; background:currentColor;}
.veg-mark.veg{color:#1E8E3E;}
.veg-mark.nonveg{color:#8B3A1A;}
.veg-mark.nonveg span{border-radius:0; width:0; height:0; background:none; border-left:5px solid transparent; border-right:5px solid transparent; border-bottom:8px solid currentColor;}

/* product detail */
.pd{display:block;}
/* product page v4: hero = [photo, At a glance, How to serve] | [name, story, actions, Product details];
   below it a 2-column card grid (Who it's for | Take care; Nutrition | Allergens) and the FAQ. No sticky column.
   Below 900 px one column: photo, name, actions, At a glance, How to serve, details, cards, FAQ. */
.pd-hero{display:flex; flex-direction:column; gap:20px;}
.pd-hero > .pd-gallery, .pd-hero > .pd-info{display:contents;}
.pd-hero .pd-main{order:1; width:100%; max-width:520px; margin-inline:auto;} .pd-hero .pd-thumbs{order:2; margin-top:-8px;} .pd-hero .pd-head{order:3;} .pd-hero .pd-cta{order:4;} .pd-hero .pd-glance{order:5;} .pd-hero .pd-serve{order:6;} .pd-hero .pd-details-card{order:7;} .pd-hero .pd-allergen{order:8;}
@media (min-width:900px){
  /* two equal columns, as on the live page: the photo fills its column (544 px at 1440+, 458 px at 1024) */
  .pd-hero{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:44px; align-items:start;}
  .pd-hero > .pd-gallery, .pd-hero > .pd-info{display:block;}
  .pd-hero .pd-thumbs{margin-top:12px;}
  .pd-gallery .pd-main{max-width:none; width:100%;}
  .pd-gallery .pd-glance{margin-top:16px;}
  .pd-info .pd-cta{margin-top:4px;}
  .pd-hero .pd-card{margin-top:16px;}
  .pd-info .pd-details-card{margin-top:22px;}
}
.pd-glance{border:1px solid var(--border); border-radius:16px; padding:16px 18px; background:var(--white);}
.pd-glance-top{display:flex; align-items:center; justify-content:space-between; gap:12px;}
.pd-glance-h{font-family:'JetBrains Mono',monospace; font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--forest-700); margin:0;}
.pd-glance-list{list-style:none; margin:12px 0 0; padding:0; display:flex; flex-wrap:wrap; gap:8px;}
.pd-glance-list li{display:inline-flex; align-items:center; gap:6px; font-size:13.5px; font-weight:600; padding:6px 11px; border-radius:999px; background:var(--cream-50); border:1px solid var(--border);}
.pd-glance-list .veg-mark{margin-left:0; top:0;}
.pd-cta .pd-buy{margin-top:18px;}
.pd-cta .fine{margin-top:8px;}
.pd-share-row{display:flex; align-items:center; gap:10px; margin-top:12px; flex-wrap:wrap;}
.pd-share{background:none; border:0; padding:4px 0; font:inherit; font-size:14px; font-weight:700; color:var(--forest-700); text-decoration:underline; text-underline-offset:3px; cursor:pointer;}
.pd-share-status{font-size:13px; color:var(--ink-soft); overflow-wrap:anywhere;}
.pd-info .pd-desc{margin-top:16px;}
/* the cards */
.pd-more{margin-top:36px;}
.pd-cards{display:grid; gap:22px; max-width:1200px; margin-inline:auto;}
@media (min-width:900px){ .pd-cards{grid-template-columns:repeat(2,minmax(0,1fr));} .pd-card.is-wide{grid-column:1 / -1;} }
.pd-card{background:var(--white); border:1px solid var(--border); border-radius:16px; padding:22px; min-width:0;}
.pd-card h3{font-size:clamp(18px,2vw,21px); line-height:1.25; margin:0;}
.pd-card .pd-facts{margin-top:12px;}
.pd-card .pd-facts > div:last-child{border-bottom:0; padding-bottom:0;}
.pd-steps{margin:14px 0 0; padding-left:22px; display:grid; gap:8px; font-size:15px; line-height:1.55;}
.pd-tip{margin-top:14px; padding:10px 12px; border-radius:12px; background:var(--cream-50); font-size:14px; color:var(--ink-soft);}
.pd-list{margin:12px 0 0; padding-left:20px; display:grid; gap:7px; font-size:14.5px; line-height:1.55;}
.pd-card .fine{margin-top:12px;}
.pd-good{background:#F3FAF5; border-color:#B9DCC2;}
.pd-care{background:#FFF9EA; border-color:#EED7A0;}
.pd-good .tick-list{margin-top:12px;}
.pd-good .tick-list li{font-size:14.5px;}
.pd-nutri-card .nutri{margin-top:10px;}
.pd-nutri-card.is-wide .nutri, .pd-nutri-card.is-wide .pd-footnote{max-width:560px;}
.pd-footnote{margin-top:10px; font-size:13px; color:var(--ink-soft);}
.pd-more .pd-faq{max-width:840px; margin:36px auto 0;}
.pd-more .pd-faq h2{font-size:clamp(20px,2.4vw,24px); margin:0 0 6px;}
.pd-more .guide-link{max-width:840px; margin:16px auto 0;}
.pd-main{position:relative; aspect-ratio:1; border-radius:28px; overflow:hidden; display:flex; align-items:center; justify-content:center; background:radial-gradient(130% 130% at 50% 18%, color-mix(in srgb, var(--gold-300) 26%, var(--cream-200)), var(--cream-200) 70%);}
.pd-main > img, .pd-main picture{width:88%; height:88%; display:flex; align-items:center; justify-content:center;}
.pd-main img{object-fit:contain; width:100%; height:100%;}
.pd-main svg{width:70%;}
.pd-thumbs{display:flex; gap:10px; margin-top:12px; flex-wrap:wrap;}
.pd-thumb{width:72px; height:72px; border-radius:14px; border:2px solid var(--border); padding:0; overflow:hidden; background:var(--cream-100); cursor:pointer;}
.pd-thumb.is-active{border-color:var(--gold-500);}
.pd-thumb img{width:100%; height:100%; object-fit:cover;}
.pd-info h1{font-size:clamp(30px,4vw,44px); line-height:1.08; margin-top:14px;}
.pd-info .dek{font-family:'Fraunces',serif; font-style:italic; color:var(--ink-soft); font-size:17px; margin-top:10px;}
.pd .status{position:static; display:inline-block; font-size:10.5px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; padding:7px 13px; border-radius:999px; transform:rotate(-2deg);}
.pd-price{display:flex; align-items:baseline; gap:10px; margin:18px 0 14px;}
.pd-price .price{font-family:'Fraunces',serif; font-size:30px; font-weight:700;}
.pd-buy{display:flex; flex-wrap:wrap; gap:12px; align-items:center; margin-top:20px;}
.pd-buy + .fine{margin-top:10px;}
.pd-desc{margin-top:22px; color:var(--ink-soft); font-size:15.5px; max-width:60ch;}
.pd-facts{margin:24px 0 0; border-top:1px solid var(--border);}
.pd-facts > div{display:grid; grid-template-columns:150px 1fr; gap:14px; padding:13px 0; border-bottom:1px solid var(--border);}
@media (max-width:480px){ .pd-facts > div{grid-template-columns:1fr; gap:4px;} }
.pd-facts dt{font-weight:700; font-size:13px; color:var(--ink-soft); letter-spacing:.02em;}
.pd-facts dd{margin:0; font-size:14.5px;}
.pd-missing{grid-column:1/-1; text-align:center; padding:40px 0;}
.pd-missing h1{font-size:30px;}
.pd-missing p{margin-top:12px;}

/* quantity stepper */
.qty{display:inline-flex; align-items:center; border:1px solid var(--border); border-radius:999px; background:var(--white); overflow:hidden;}
.qty-btn{width:42px; height:42px; border:none; background:transparent; font-size:20px; font-weight:700; color:var(--forest-800); cursor:pointer;}
.qty-btn:disabled{opacity:.35; cursor:not-allowed;}
.qty input{width:44px; height:42px; border:none; text-align:center; font:700 16px 'Public Sans',sans-serif; -moz-appearance:textfield; appearance:textfield; background:transparent;}
.qty input::-webkit-inner-spin-button{-webkit-appearance:none;}
.qty-val{min-width:28px; text-align:center; font-weight:700;}

/* quick "notify me / call me back" — deliberately lighter than the main CTA */
.quick-form{border:1.5px dashed color-mix(in srgb, var(--gold-500) 60%, var(--border)); border-radius:18px; padding:16px 18px; background:color-mix(in srgb, var(--white) 70%, transparent); max-width:560px;}
.quick-title{font-weight:700; font-size:14.5px;}
.quick-sub{font-size:13px; color:var(--ink-soft); margin-top:2px;}
.quick-row{display:flex; gap:8px; margin-top:12px;}
.quick-row input{flex:1; min-width:0; font:15px 'Public Sans',sans-serif; padding:11px 14px; border-radius:999px; border:1px solid var(--border); background:var(--white); color:var(--ink);}
.quick-row input[aria-invalid="true"]{border-color:#B3261E;}
.quick-row .btn{padding:11px 18px; font-size:13.5px; white-space:nowrap;}
@media (max-width:420px){ .quick-row{flex-direction:column;} .quick-row .btn{width:100%;} }
.quick-chips{display:flex; flex-wrap:wrap; gap:7px; margin-top:10px; border:none; padding:0;}
.quick-chips legend{font-size:12px; color:var(--ink-soft); margin-bottom:6px; padding:0;}
.quick-chips .pill-check{padding:6px 12px; font-size:12.5px;}
.quick-chips .pill-check input{width:14px; height:14px; min-width:14px; max-width:14px;}
.quick-form .consent-row{font-size:12px; margin-top:10px;}
.quick-form .form-status{font-size:13px; margin-top:8px; min-height:0;}
.zone-forest .quick-form{background:color-mix(in srgb, var(--forest-800) 50%, transparent); border-color:color-mix(in srgb, var(--gold-300) 45%, transparent); color:var(--on-dark);}
.zone-forest .quick-form .quick-sub, .zone-forest .quick-form .consent-row, .zone-forest .quick-chips legend{color:var(--on-dark-soft);}
.zone-forest .quick-form a{color:var(--gold-300);}
.zone-forest .quick-chips .pill-check{color:var(--ink);}
.zone-forest .form-status.ok{color:#9FE0B0;}
.zone-forest .form-status.err{color:#FFB4A8;}

/* forms (full) */
.form-card{background:var(--white); border:1px solid var(--border); border-radius:22px; padding:28px; box-shadow:0 26px 50px -30px rgba(28,42,24,.25);}
@media (max-width:640px){ .form-card{padding:20px 16px; border-radius:18px;} }
@media (max-width:640px){ .form-grid{grid-template-columns:1fr; gap:14px;} }
.field .opt{font-weight:500; color:var(--ink-soft); letter-spacing:0;}
.field [aria-invalid="true"]{border-color:#B3261E; background:#FFF8F7;}
.input-err{font-size:12px; color:#B3261E;}
.input-err:empty{display:none;}
.field-full{grid-column:1/-1;}
.form-actions{display:flex; flex-wrap:wrap; align-items:center; gap:14px; margin-top:18px;}
.consent-row{margin-top:14px;}
.consent-row a{color:var(--forest-800); font-weight:600;}
.consent-row label{line-height:1.45;}
.segmented{display:flex; flex-wrap:wrap; gap:8px; border:none; padding:0; margin:0 0 18px;}
.segmented legend{font-size:12.5px; font-weight:700; letter-spacing:.03em; color:var(--ink-soft); margin-bottom:8px; padding:0; width:100%;}
.segmented label{display:inline-flex; align-items:center; gap:8px; padding:10px 16px; border-radius:999px; border:1.5px solid var(--border); background:var(--cream-50); font-weight:700; font-size:13.5px; cursor:pointer;}
.segmented label:has(input:checked){background:var(--forest-800); color:var(--on-dark); border-color:var(--forest-800);}
.segmented input{accent-color:var(--gold-500);}
.form-hint{font-size:13px; color:var(--ink-soft); margin:-6px 0 16px;}

/* checkout */
.checkout{display:grid; grid-template-columns:1.25fr .75fr; gap:32px; align-items:start;}
@media (max-width:900px){ .checkout{grid-template-columns:1fr; gap:0;} }
.checkout-aside{position:sticky; top:84px;}
@media (max-width:900px){ .checkout-aside{position:static;} }
.step-card{background:var(--white); border:1px solid var(--border); border-radius:20px; padding:22px; margin-bottom:18px;}
@media (max-width:640px){ .step-card{padding:18px 14px;} }
.step-card h2{font-size:20px; display:flex; align-items:center; gap:10px;}
.step-num{display:inline-flex; align-items:center; justify-content:center; width:26px; height:26px; border-radius:50%; background:var(--forest-800); color:var(--on-dark); font:700 13px 'Public Sans',sans-serif;}
.step-card > p{margin-top:6px; font-size:14px; color:var(--ink-soft);}
.is-locked .form-grid, .is-locked .pay-options{opacity:.55;}
.cart-lines{list-style:none; padding:0; margin:16px 0 0;}
.cart-line{display:grid; grid-template-columns:1fr auto auto auto; gap:12px; align-items:center; padding:12px 0; border-bottom:1px solid var(--border);}
.cart-line:last-child{border-bottom:none;}
@media (max-width:560px){ .cart-line{grid-template-columns:1fr auto;} .cart-line .cl-price{text-align:right;} .cart-line .cl-remove{justify-self:start;} }
.cl-name a{font-weight:700; text-decoration:none;}
.cl-pack{display:block; font-size:12.5px; color:var(--ink-soft);}
.cl-warn{display:block; font-size:12.5px; color:#8A4B00;}
.cart-line.is-unavailable .cl-name a{color:var(--ink-soft);}
.cl-price{font-weight:700; min-width:64px; text-align:right;}
.cl-remove{background:none; border:none; color:var(--ink-soft); text-decoration:underline; cursor:pointer; font-size:13px; padding:6px;}
.cart-lines.compact .cart-line{grid-template-columns:1fr auto auto;}
.empty-basket{padding:8px 0;}
.empty-basket p + p{margin-top:8px;}
.pin-row{display:flex; gap:10px; margin-top:14px; flex-wrap:wrap;}
.pin-row input{flex:1 1 160px; min-width:0; font:16px 'Public Sans',sans-serif; padding:12px 14px; border-radius:10px; border:1px solid var(--border); background:var(--cream-50); letter-spacing:.08em;}
.pin-row input[aria-invalid="true"]{border-color:#B3261E;}
#pin-result, #notify-area{margin-top:14px;}
.pay-options{display:grid; gap:10px; margin-top:6px; border:none; padding:0;}
.pay-options legend{font-size:12.5px; font-weight:700; letter-spacing:.03em; color:var(--ink-soft); margin-bottom:6px; padding:0;}
.pay-opt{display:flex; align-items:center; gap:10px; padding:13px 14px; border:1.5px solid var(--border); border-radius:12px; font-weight:600; font-size:14.5px;}
.pay-opt:has(input:checked){border-color:var(--forest-700); background:#F2F7F3;}
.pay-opt.is-disabled{color:var(--ink-soft); background:var(--cream-100); border-style:dashed;}
.pay-opt .soon{margin-left:auto; font:700 10.5px 'JetBrains Mono',monospace; text-transform:uppercase; letter-spacing:.06em; color:var(--gold-700);}
.sum-row{display:flex; justify-content:space-between; gap:12px; padding:9px 0; font-size:14.5px;}
.sum-total{border-top:1px dashed var(--border); margin-top:6px; padding-top:12px; font-weight:800; font-size:16px;}
.order-guide{margin-top:12px;}
.order-guide a{font-weight:700; color:var(--forest-800);}
.done-card{max-width:620px; margin:0 auto; background:var(--white); border:1px solid var(--border); border-radius:24px; padding:30px;}
@media (max-width:640px){ .done-card{padding:22px 16px;} }
.done-card h2{font-size:clamp(26px,3.4vw,34px); margin-top:12px;}
.done-card p{margin-top:12px;}
.done-ref strong{font-size:20px;}

/* order status */
.status-card{max-width:680px; background:var(--white); border:1px solid var(--border); border-radius:22px; padding:26px;}
@media (max-width:640px){ .status-card{padding:18px 14px;} }
.status-head{display:flex; justify-content:space-between; align-items:flex-end; gap:10px; flex-wrap:wrap;}
.status-head h2{font-size:24px; margin-top:4px;}
.steps{list-style:none; padding:0; margin:22px 0 10px; display:grid; grid-template-columns:repeat(4,1fr); gap:8px;}
@media (max-width:520px){ .steps{grid-template-columns:1fr 1fr;} }
.step{display:flex; flex-direction:column; gap:8px; font-size:13px; font-weight:600; color:var(--ink-soft);}
.step-dot{height:6px; border-radius:99px; background:var(--border);}
.step-done .step-dot{background:var(--moss-400);}
.step-current{color:var(--ink);}
.step-current .step-dot{background:var(--gold-500);}

/* prose (legal + FAQ) */
.prose{max-width:74ch;}
.prose h2{font-size:clamp(21px,2.4vw,26px); margin-top:34px; line-height:1.2;}
.prose h3{font-size:18px; margin-top:22px;}
.prose p, .prose li{font-size:15.5px; line-height:1.7; color:#2C3A28;}
.prose p{margin-top:12px;}
.prose ul, .prose ol{margin:12px 0 0; padding-left:22px;}
.prose li + li{margin-top:6px;}
.prose a{color:var(--forest-700); font-weight:600;}
.prose table{width:100%; border-collapse:collapse; margin-top:14px; font-size:14.5px;}
.prose th, .prose td{border:1px solid var(--border); padding:10px 12px; text-align:left; vertical-align:top;}
.prose th{background:var(--cream-100);}
.table-scroll{overflow-x:auto;}
.updated{font-family:'JetBrains Mono',monospace; font-size:12px; color:var(--ink-soft); margin-top:10px;}
.toc{display:flex; flex-wrap:wrap; gap:8px; margin-top:18px;}
.toc a{font-size:13px; font-weight:600; padding:7px 12px; border-radius:999px; border:1px solid var(--border); background:var(--white); text-decoration:none;}
.faq details{border-bottom:1px solid var(--border); padding:4px 0;}
.faq summary{cursor:pointer; list-style:none; padding:16px 36px 16px 0; font-family:'Fraunces',serif; font-weight:600; font-size:18px; position:relative;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"+"; position:absolute; right:6px; top:12px; font:600 24px 'Public Sans',sans-serif; color:var(--gold-700);}
.faq details[open] summary::after{content:"\2212";}
.faq details > div{padding:0 0 18px;}
.faq details > div p{margin-top:0;}
.faq details > div p + p{margin-top:10px;}
.faq h2{margin-top:36px; font-size:13px; font-family:'JetBrains Mono',monospace; letter-spacing:.08em; text-transform:uppercase; color:var(--forest-700);}

/* cards used on business / about / contact */
.card-grid{display:grid; grid-template-columns:repeat(auto-fill, minmax(230px,1fr)); gap:16px;}
.info-card{background:var(--cream-50); border:1px solid var(--border); border-radius:18px; padding:20px;}
.info-card h3{font-size:18px;}
.info-card p{font-size:14px; color:var(--ink-soft); margin-top:8px;}
.info-card .kicker{font-family:'JetBrains Mono',monospace; font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; font-weight:700; color:var(--gold-700);}
.seg-card{display:flex; gap:12px; align-items:flex-start;}
.seg-card svg{width:26px; height:26px; flex-shrink:0; color:var(--forest-700); margin-top:2px;}
.seg-card h3{font-size:16.5px;}
.seg-card p{margin-top:4px; font-size:13.5px;}
.two-col{display:grid; grid-template-columns:1fr 1fr; gap:36px; align-items:start;}
@media (max-width:900px){ .two-col{grid-template-columns:1fr; gap:26px;} }
.partner-band{display:flex; justify-content:space-between; align-items:center; gap:20px; flex-wrap:wrap; padding:26px 28px; border-radius:22px; background:linear-gradient(150deg, var(--forest-800), var(--forest-950)); color:var(--on-dark);}
@media (max-width:640px){ .partner-band{padding:22px 18px;} }
.partner-band h2{font-size:clamp(22px,2.8vw,30px); color:var(--on-dark);}
.partner-band p{color:var(--on-dark-soft); margin-top:8px; max-width:54ch;}
.address-block{font-style:normal; line-height:1.7; font-size:15px;}
.company-facts{display:grid; grid-template-columns:auto 1fr; gap:6px 18px; font-size:14px; margin-top:14px;}
@media (max-width:420px){ .company-facts{grid-template-columns:1fr; gap:2px;} .company-facts dd{margin-bottom:8px;} }
.company-facts dt{font-weight:700; color:var(--ink-soft);}
.company-facts dd{margin:0; overflow-wrap:anywhere;}
.section-actions{display:flex; gap:12px; flex-wrap:wrap; margin-top:22px;}
.stack > * + *{margin-top:18px;}

/* home: hero CTA + teasers */
.hero .hero-cta-row{margin-top:24px;}
.hero-biz{margin-top:12px; font-size:14px; color:var(--ink-soft);}
.hero-blob.has-media{background:radial-gradient(120% 120% at 50% 20%, var(--gold-300), var(--forest-700) 80%);}
.pillar{font:inherit; text-align:left; color:inherit; background:transparent; width:100%;}
.ll-batch{color:var(--gold-300); font-weight:700;}
.pulse-cta{margin-top:18px;}
.persona-back{visibility:hidden; pointer-events:none; transition:visibility 0s linear .55s;}
.persona-tile.is-flipped .persona-back{visibility:visible; pointer-events:auto; transition-delay:0s;}
.persona-tile.is-flipped .persona-front{visibility:hidden; transition:visibility 0s linear .3s;}
a.persona-front{text-decoration:none; color:inherit;}
.b2b-teaser{display:grid; grid-template-columns:1.2fr .8fr; gap:28px; align-items:center;}
@media (max-width:860px){ .b2b-teaser{grid-template-columns:1fr;} }
.b2b-teaser h2{font-size:clamp(24px,3vw,34px); margin-top:10px;}
.b2b-teaser p.lede{margin-top:10px; color:var(--ink-soft); max-width:52ch;}

/* footer (4 columns + legal line) */
.footer-grid{grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:32px;}
@media (max-width:980px){ .footer-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:560px){ .footer-grid{grid-template-columns:1fr;} }
footer .brandmark{color:var(--on-dark); margin-bottom:14px;}
footer p{font-size:14px;}
.footer-legal{margin-top:28px; font-size:12.5px; line-height:1.7; color:var(--on-dark-soft);}
.footer-legal span{display:inline-block; margin-right:14px;}
.footer-bottom a{color:var(--on-dark-soft);}
footer .footer-h{font-family:'Public Sans',sans-serif; font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--on-dark-soft); font-weight:700; margin-bottom:14px;}
/* ratings */
.stars{display:inline-flex; align-items:center; gap:6px; font-size:14px; line-height:1;}
.stars-track{position:relative; display:inline-block; color:#D9D2BF; letter-spacing:1px;}
.stars-fill{position:absolute; left:0; top:0; overflow:hidden; white-space:nowrap; color:var(--gold-500);}
.stars-num{font-size:12.5px; font-weight:700; color:var(--ink-soft);}
.stars-lg{font-size:20px; margin-top:10px;}
.star-pick{display:flex; flex-direction:row-reverse; justify-content:flex-end; gap:4px; border:none; padding:0; margin:0;}
.star-pick legend{font-size:12.5px; font-weight:700; color:var(--ink-soft); margin-bottom:6px; padding:0; width:100%;}
.star-pick input{position:absolute; opacity:0; width:1px; height:1px;}
.star-pick label{font-size:32px; line-height:1; color:#D9D2BF; cursor:pointer; padding:2px;}
.star-pick label:hover, .star-pick label:hover ~ label, .star-pick input:checked ~ label{color:var(--gold-500);}
.star-pick input:focus-visible + label{outline:3px solid var(--gold-500); outline-offset:2px; border-radius:6px;}
/* careers */
.job-list{list-style:none; padding:0; margin:0; display:grid; gap:14px;}
.job{display:flex; justify-content:space-between; gap:18px; align-items:center; flex-wrap:wrap; background:var(--white); border:1px solid var(--border); border-radius:18px; padding:20px 22px;}
.job h3{font-size:19px;}
.job-meta{display:flex; flex-wrap:wrap; gap:8px; margin-top:8px;}
.job-meta span{font:600 11px 'JetBrains Mono',monospace; text-transform:uppercase; letter-spacing:.05em; padding:5px 10px; border-radius:999px; background:var(--cream-100); color:var(--ink-soft);}
.job p{font-size:14px; color:var(--ink-soft); margin-top:8px; max-width:62ch;}
/* headings promoted from h4 to h3 for a correct outline, same look */
.pain-card h3{font-size:14px; font-weight:700; line-height:1.2;}
.pillar h3{font-size:14.5px; font-family:'Public Sans',sans-serif; font-weight:700; color:var(--on-dark);}
.chain-card h3{font-size:15px; font-family:'Public Sans',sans-serif; font-weight:700; color:var(--on-dark);}
.value-card h3{font-family:'Fraunces',serif; font-style:italic; font-size:18px; margin-top:12px; margin-bottom:7px;}
#rating-form{max-width:720px;}
fieldset.field{border:none; padding:0; margin:0; min-width:0;}
fieldset.field > legend{font-size:12.5px; font-weight:700; letter-spacing:.03em; color:var(--ink-soft); margin-bottom:8px; padding:0;}
.scratch-skip{margin-top:10px;}

/* ---------- 17 Oct 2026: showcase merge, pre-launch order paths, trace, door tiles ---------- */
/* product badges (pills) + highlights (tick list) from the ERP */
.badge-row{list-style:none; padding:0; margin:0; display:flex; flex-wrap:wrap; gap:6px;}
.badge-pill{font:700 11px 'Public Sans',sans-serif; letter-spacing:.03em; padding:5px 10px; border-radius:999px; background:var(--coral-50); color:#8A2E14; border:1px solid color-mix(in srgb, var(--coral) 35%, transparent);}
.pd-info .badge-row{margin-top:12px;}
.tick-list{list-style:none; padding:0; margin:0; display:grid; gap:6px;}
.tick-list li{display:flex; gap:8px; align-items:flex-start; font-size:14px; line-height:1.4; color:var(--ink);}
.tick-list svg{width:16px; height:16px; flex-shrink:0; margin-top:2px; color:var(--forest-600);}
.pd-info .tick-list{margin-top:16px;}
.reserve-link{font-size:12.5px; font-weight:700; color:var(--forest-700); text-decoration:underline; text-decoration-color:var(--gold-500); text-underline-offset:3px; align-self:flex-start;}
.pd-info .reserve-link{display:inline-block; margin-top:10px;}
/* /products grouped by ERP category */
.menu-group + .menu-group{margin-top:36px;}
.menu-group-h{font-size:clamp(20px,2.4vw,26px); margin-bottom:16px;}
/* /order while ordering is closed: two paths */
.prelaunch{display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:24px; align-items:start;}
@media (max-width:900px){ .prelaunch{grid-template-columns:1fr;} }
.path-card{background:var(--white); border:1px solid var(--border); border-radius:22px; padding:26px; min-width:0;}
@media (max-width:640px){ .path-card{padding:20px 16px; border-radius:18px;} }
.path-home{border-color:color-mix(in srgb, var(--gold-500) 45%, var(--border)); box-shadow:0 26px 50px -30px rgba(28,42,24,.25);}
.path-kicker{font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:.1em; text-transform:uppercase; font-weight:700; color:var(--gold-700);}
.path-card h2{font-size:clamp(21px,2.4vw,26px); margin-top:8px; line-height:1.2;}
.path-sub{font-size:14.5px; color:var(--ink-soft); margin:8px 0 18px;}
.path-card .quick-form{max-width:none; margin-top:18px;}
.vol-set, .chip-set{border:none; padding:0; margin:0 0 4px; min-width:0;}
.vol-set legend, .chip-set legend{font-size:12.5px; font-weight:700; letter-spacing:.03em; color:var(--ink-soft); margin-bottom:8px; padding:0;}
.chip-set{display:flex; flex-wrap:wrap; gap:7px; margin-top:16px;}
.chip-set legend{width:100%;}
.chip-set .pill-check{padding:7px 12px; font-size:13px;}
.chip-set .pill-check input{position:absolute; opacity:0; width:1px; height:1px;}
.chip-set .pill-check:has(input:focus-visible){outline:3px solid var(--gold-500); outline-offset:2px;}
.vol-list{list-style:none; padding:0; margin:0; display:grid; gap:10px;}
.vol-row{display:grid; grid-template-columns:1fr auto auto; gap:10px; align-items:center; padding:10px 12px; border:1px solid var(--border); border-radius:14px; background:var(--cream-50);}
.vol-name{font-weight:700; font-size:15px; min-width:0;}
.vol-head{display:flex; align-items:center; gap:10px; min-width:0;}
.vol-thumb{flex:0 0 52px; width:52px; height:52px; border-radius:12px; object-fit:cover; background:var(--cream-100, #f3ead8); border:1px solid var(--border);}
.vol-row .qty input{width:68px;}
.vol-unit{font-size:12px; color:var(--ink-soft);}
@media (max-width:480px){ .vol-row{grid-template-columns:1fr auto;} .vol-unit{grid-column:1/-1; margin-top:-4px;} }
.reserve-form .consent-row{font-size:13.5px;}
.tap-list{list-style:none; padding:0; margin:0; display:grid; gap:10px;}
.tap-list li{display:flex; justify-content:space-between; align-items:center; gap:12px; padding:10px 12px; border:1px solid var(--border); border-radius:14px; background:var(--cream-50); font-weight:700; flex-wrap:wrap;}
.reserve-note{margin-top:16px; max-width:560px;}
.reserve-note a{font-weight:700; color:var(--forest-800);}
/* "Trace your pack" box */
.trace-box{margin-top:18px; max-width:520px;}
.trace-label{display:block; font-weight:700; font-size:15px;}
.trace-hint{font-size:13px; color:var(--ink-soft); margin-top:2px;}
.trace-box .quick-row input{font-family:'JetBrains Mono',monospace; letter-spacing:.04em;}
.trace-box .input-err{display:block; margin-top:6px;}
.zone-forest .trace-box .trace-hint{color:var(--on-dark-soft);}
.zone-forest .trace-box .trace-label{color:var(--on-dark);}
.zone-forest .trace-box .input-err{color:#FFB4A8;}
.zone-forest .trace-box .btn-forest{background:var(--gold-500); color:#20190A;}
.faq .trace-box{margin-top:12px;}
/* /trace page */
.trace{display:grid; gap:18px; max-width:760px;}
.trace-card{background:var(--white); border:1px solid var(--border); border-radius:20px; padding:22px; min-width:0;}
@media (max-width:640px){ .trace-card{padding:18px 14px;} }
.trace-card h2{font-size:20px;}
.trace-sub{font-size:14px; color:var(--ink-soft); margin-top:6px;}
.trace-status{display:inline-block; font:800 11px 'Public Sans',sans-serif; letter-spacing:.06em; text-transform:uppercase; padding:7px 12px; border-radius:999px;}
.trace-status.ok{background:#EEF7F0; color:#1E6B35; border:1px solid #B9DCC2;}
.trace-status.wait{background:#FFF7E3; color:#6B4E00; border:1px solid #EED7A0;}
.trace-status.bad{background:#FDEDEB; color:#9B2414; border:1px solid #F2C2BC; text-transform:none; letter-spacing:0; font-size:13px;}
.trace-status.bad a{color:inherit;}
.trace-summary .pd-facts{margin-top:14px;}
.journey{list-style:none; padding:0; margin:14px 0 0;}
.journey li{display:grid; grid-template-columns:18px 1fr auto; gap:10px; align-items:baseline; padding:9px 0; border-bottom:1px solid var(--border); font-size:14.5px;}
.journey li:last-child{border-bottom:none;}
.jr-dot{width:10px; height:10px; border-radius:50%; background:var(--gold-500); align-self:center;}
.journey li.is-qc .jr-dot{background:var(--moss-400);}
.journey li.is-fail .jr-dot{background:#C23F1B;}
.jr-label{font-weight:600; min-width:0;}
.jr-when{font-size:12.5px; color:var(--ink-soft); text-align:right;}
@media (max-width:480px){ .journey li{grid-template-columns:18px 1fr;} .jr-when{grid-column:2; text-align:left;} }
.cc-list{list-style:none; padding:0; margin:14px 0 0; display:grid; gap:6px;}
.cc-row{display:grid; grid-template-columns:1fr auto auto; gap:12px; align-items:center; padding:8px 12px; border-radius:10px; background:var(--cream-50); font-size:14px;}
.cc-row.is-ok{background:#EFF5FA;}
.cc-when{color:var(--ink-soft); min-width:0;}
.cc-temp{font:700 14px 'JetBrains Mono',monospace; color:var(--forest-800);}
.cc-row.is-ok .cc-temp{color:#1D4E7A;}
.cc-note{font:600 11px 'JetBrains Mono',monospace; text-transform:uppercase; color:var(--ink-soft);}
.nutri{width:100%; border-collapse:collapse; margin-top:16px; font-size:14px;}
.nutri caption{text-align:left; font-weight:700; font-size:13px; color:var(--ink-soft); padding-bottom:6px;}
.nutri th, .nutri td{padding:8px 0; border-bottom:1px solid var(--border); text-align:left; font-weight:500;}
.nutri td{text-align:right; font-family:'JetBrains Mono',monospace;}
.trace-empty h2{font-size:24px;}
.trace-empty p{margin-top:10px; color:var(--ink-soft);}
.trace-intro{color:var(--ink-soft); font-size:15px;}
.trace-again .trace-box{margin-top:26px;}
/* live production feed */
.live-sim-tag.is-live .dot{background:var(--moss-400); box-shadow:0 0 0 4px color-mix(in srgb, var(--moss-400) 25%, transparent);}
/* reusable link tiles (.door-tiles > li > a.door-tile) — "The right door" on /contact */
.door-tiles{list-style:none; padding:0; margin:12px 0 0; display:grid; grid-template-columns:1fr; gap:10px;}
@media (min-width:560px){ .door-tiles{grid-template-columns:1fr 1fr;} }
.door-tile{display:flex; align-items:center; gap:12px; min-height:56px; height:100%; padding:12px 14px; border-radius:14px; background:var(--white); border:1px solid var(--border); color:var(--ink); text-decoration:none; transition:border-color .18s ease, background .18s ease, box-shadow .18s ease;}
.door-icon{display:inline-flex; align-items:center; justify-content:center; width:36px; height:36px; border-radius:10px; background:var(--cream-100); color:var(--forest-700); flex-shrink:0; transition:background .18s ease, color .18s ease;}
.door-icon svg{width:20px; height:20px;}
.door-text{display:flex; flex-direction:column; gap:2px; min-width:0; flex:1;}
.door-title{font-weight:800; font-size:14.5px; line-height:1.25;}
.door-hint{font-size:12.5px; color:var(--ink-soft); line-height:1.35;}
.door-arrow{font-weight:800; color:var(--gold-700); flex-shrink:0; transition:transform .18s ease;}
.door-tile:hover{border-color:var(--gold-500); background:var(--cream-50); box-shadow:0 10px 22px -16px rgba(28,42,24,.45);}
.door-tile:hover .door-arrow{transform:translateX(3px);}
.door-tile:hover .door-icon, .door-tile:focus-visible .door-icon{background:var(--forest-800); color:var(--gold-300);}
.door-tile:focus-visible{outline:3px solid var(--gold-500); outline-offset:2px; border-color:var(--forest-700);}
@media (prefers-reduced-motion: reduce){ .door-tile, .door-arrow, .door-icon{transition:none;} .door-tile:hover .door-arrow{transform:none;} }
.live-log-body[role="list"]{max-height:260px; overflow-y:auto;}
.live-log-body[role="list"] .live-line{white-space:normal; overflow:visible; line-height:1.45;}
/* hero film caption + Media section (a list, so press items / photos can join later) */
.hero-visual{flex-direction:column;}
.hero-media-note{margin-top:12px; text-align:center; font:600 10.5px 'JetBrains Mono',monospace; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-soft);}
.media-list{list-style:none; padding:0; margin:0; display:grid; gap:22px;}
.media-player{margin:0; max-width:960px;}
.media-frame{position:relative; border-radius:22px; overflow:hidden; background:var(--forest-950); box-shadow:0 26px 50px -30px rgba(12,26,17,.45); aspect-ratio:960/464;}
.media-frame video{display:block; width:100%; height:100%; object-fit:cover;}
.media-play{position:absolute; inset:0; margin:auto; width:72px; height:72px; border-radius:50%; border:none; background:var(--gold-500); color:#20190A; cursor:pointer; display:flex; align-items:center; justify-content:center; box-shadow:0 12px 30px -10px rgba(0,0,0,.5); transition:transform .18s ease, background .18s ease;}
.media-play svg{width:30px; height:30px; margin-left:4px;}
.media-play:hover{transform:scale(1.06); background:var(--gold-300);}
.media-play:focus-visible{outline:3px solid var(--on-dark); outline-offset:3px;}
.media-play[hidden]{display:none;}
.media-player figcaption{margin-top:10px; font-size:13.5px; color:var(--ink-soft);}
.media-player figcaption strong{color:var(--ink);}
@media (max-width:640px){ .media-frame{border-radius:16px;} .media-play{width:58px; height:58px;} }
@media (prefers-reduced-motion: reduce){ .media-play{transition:none;} .media-play:hover{transform:none;} }
/* representative placeholder image (products without a photo) */
.rep-img{object-fit:cover;}
.icon-plate, .pd-main, .mc-img, .pd-missing-img{position:relative;}
.rep-cap{position:absolute; left:8px; bottom:8px; z-index:2; font:600 10px 'JetBrains Mono',monospace; letter-spacing:.04em; text-transform:uppercase; color:var(--on-dark); background:color-mix(in srgb, var(--forest-950) 72%, transparent); padding:3px 7px; border-radius:6px; pointer-events:none;}
.menu-card .icon-plate > .rep-img{width:100%; height:100%; object-fit:cover;}
.pd-main > .rep-img{width:100%; height:100%; object-fit:cover;}
.pd-missing-img{width:200px; max-width:60vw; aspect-ratio:1; margin:0 auto 18px; border-radius:22px; overflow:hidden;}
.pd-missing-img .rep-img{width:100%; height:100%; display:block;}

/* /products catalogue layout (3+ products): chips on phones, left rail on desktop */
.menu-shell{display:block;}
.mnav{position:sticky; top:var(--nav-h, 66px); z-index:20; background:color-mix(in srgb, var(--bg) 94%, transparent); backdrop-filter:blur(8px); margin:0 -18px 18px; padding:10px 0; border-bottom:1px solid var(--border);}
.mnav-list{list-style:none; margin:0; padding:0 18px; display:flex; gap:8px; overflow-x:auto; scroll-snap-type:x proximity; scrollbar-width:none; -webkit-overflow-scrolling:touch;}
.mnav-list::-webkit-scrollbar{display:none;}
.mnav-list li{flex-shrink:0; scroll-snap-align:start;}
.mnav-chip{display:inline-flex; align-items:center; gap:6px; min-height:40px; padding:8px 14px; border-radius:999px; border:1.5px solid var(--border); background:var(--cream-50); font:700 13.5px 'Public Sans',sans-serif; color:var(--ink); cursor:pointer; white-space:nowrap;}
.mnav-chip:hover{border-color:var(--gold-500);}
.mnav-chip.is-active{background:var(--forest-800); border-color:var(--forest-800); color:var(--on-dark);}
.mnav-n{font:600 11px 'JetBrains Mono',monospace; opacity:.7;}
.msec + .msec{margin-top:30px;}
.msec-h{font-size:clamp(20px,2.4vw,26px); margin-bottom:14px; scroll-margin-top:calc(var(--nav-h, 66px) + 70px);}
.mgrid{display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:12px;}
@media (min-width:640px){ .mgrid{grid-template-columns:repeat(3, minmax(0,1fr)); gap:16px;} }
@media (min-width:900px){
  .menu-shell{display:grid; grid-template-columns:200px minmax(0,1fr); gap:32px; align-items:start;}
  .mnav{top:calc(var(--nav-h, 66px) + 16px); margin:0; padding:0; border:none; background:none; backdrop-filter:none;}
  .mnav-list{flex-direction:column; overflow:visible; padding:0; gap:4px;}
  .mnav-chip{width:100%; justify-content:space-between; border-radius:12px; border-color:transparent; background:none; text-align:left; white-space:normal;}
  .mnav-chip:hover{background:var(--cream-100); border-color:transparent;}
  .mnav-chip.is-active{background:var(--forest-800); color:var(--on-dark);}
  .mgrid{grid-template-columns:repeat(4, minmax(0,1fr)); gap:18px;}
  .msec-h{scroll-margin-top:calc(var(--nav-h, 66px) + 16px);}
}
@media (min-width:1240px){ .mgrid{grid-template-columns:repeat(4, minmax(0,1fr));} }
.mcard{display:flex; flex-direction:column; background:var(--white); border:1px solid var(--border); border-radius:16px; overflow:hidden; min-width:0; transition:box-shadow .18s ease, border-color .18s ease;}
.mcard:hover{border-color:color-mix(in srgb, var(--gold-500) 55%, var(--border)); box-shadow:0 14px 26px -20px rgba(12,26,17,.45);}
.mc-img{display:flex; align-items:center; justify-content:center; aspect-ratio:1; background:radial-gradient(130% 130% at 50% 18%, color-mix(in srgb, var(--gold-300) 26%, var(--cream-200)), var(--cream-200) 70%); overflow:hidden;}
.mc-img img{width:100%; height:100%; object-fit:cover;}
.mc-img picture{width:92%; height:92%; display:flex;}
.mc-img picture img{object-fit:contain;}
.mc-body{display:flex; flex-direction:column; gap:6px; padding:10px 11px 12px; flex:1;}
.mc-name{font-size:15px; line-height:1.25; font-family:'Fraunces',serif;}
.mc-name a{text-decoration:none; color:var(--ink);}
.mc-name a:hover{text-decoration:underline; text-decoration-color:var(--gold-500);}
.mc-name .veg-mark{width:13px; height:13px; top:-1px;}
.mc-name .veg-mark span{width:6px; height:6px;}
.mc-pack{font-size:12px; color:var(--ink-soft);}
.mcard .badge-row{gap:4px;}
.mcard .badge-pill{font-size:10px; padding:3px 7px;}
.mc-foot{margin-top:auto; padding-top:8px; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px; border-top:1px dashed var(--border);}
.mc-price{font:700 15.5px 'Fraunces',serif;}
.mc-price s{font:500 12px 'Public Sans',sans-serif; color:var(--ink-soft); margin-left:3px;}
.mc-soon{font:700 11px 'JetBrains Mono',monospace; text-transform:uppercase; letter-spacing:.04em; color:var(--gold-700);}
.mc-add{padding:7px 14px; font-size:13px;}
.mcard .interest-tap-btn{padding:6px 10px; font-size:12px; gap:5px;}
@media (max-width:400px){ .mc-foot{flex-direction:column; align-items:flex-start;} }
@media (prefers-reduced-motion: reduce){ .mcard{transition:none;} }
/* ---------- live elements: ticker, testimonials, counters, nutrition ---------- */
.ticker{display:flex; align-items:center; gap:8px; background:var(--forest-900); color:var(--on-dark); padding:0 8px 0 0; min-height:36px; overflow:hidden;}
.ticker-viewport{flex:1; min-width:0; overflow:hidden; -webkit-mask-image:linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent); mask-image:linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent);}
.ticker-track{list-style:none; margin:0; padding:0; display:flex; width:max-content; animation:tickerscroll var(--ticker-dur, 40s) linear infinite;}
.ticker-track li{white-space:nowrap; padding:9px 22px; font:600 12.5px 'Public Sans',sans-serif; position:relative;}
.ticker-track li::after{content:"\2726"; position:absolute; right:-6px; color:var(--gold-300); font-size:10px; top:50%; transform:translateY(-50%);}
.ticker-track a{color:var(--on-dark); text-decoration:underline; text-decoration-color:color-mix(in srgb, var(--gold-300) 60%, transparent); text-underline-offset:3px;}
.ticker-track a:focus-visible{outline-color:var(--gold-300);}
.ticker:hover .ticker-track, .ticker:focus-within .ticker-track, .ticker.is-paused .ticker-track{animation-play-state:paused;}
@keyframes tickerscroll{from{transform:translateX(0);} to{transform:translateX(-50%);}}
.ticker-pause{flex-shrink:0; width:30px; height:30px; border-radius:50%; border:1px solid color-mix(in srgb, var(--on-dark) 35%, transparent); background:transparent; color:var(--on-dark); cursor:pointer; display:inline-flex; align-items:center; justify-content:center;}
.ticker-pause svg{width:14px; height:14px;}
.ticker-pause .i-play{display:none;}
.ticker.is-paused .ticker-pause .i-play{display:inline;}
.ticker.is-paused .ticker-pause .i-pause{display:none;}
.ticker-pause:focus-visible{outline:3px solid var(--gold-300); outline-offset:2px;}
.ticker.is-static .ticker-viewport{-webkit-mask-image:none; mask-image:none;}
.ticker.is-static .ticker-track{animation:none; width:auto; flex-wrap:wrap; padding:4px 12px;}
.ticker.is-static .ticker-track li{white-space:normal; padding:5px 14px 5px 0;}
@media (prefers-reduced-motion: reduce){ .ticker-track{animation:none;} }

.testimonials{padding-block:40px;}
.tm-head{display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:14px;}
.tm-head h2{font-size:clamp(22px,2.8vw,30px);}
.tm-pause{font:700 12.5px 'Public Sans',sans-serif; padding:7px 14px; border-radius:999px; border:1.5px solid var(--border); background:var(--white); color:var(--ink); cursor:pointer;}
.tm-row{display:flex; gap:16px; overflow-x:auto; scroll-snap-type:x mandatory; padding:4px 2px 14px; scrollbar-width:thin; scrollbar-color:var(--border) transparent; -webkit-overflow-scrolling:touch;}
.tm-row:focus-visible{outline:3px solid var(--gold-500); outline-offset:4px; border-radius:12px;}
.tm-card{flex:0 0 min(300px, 82%); scroll-snap-align:start; margin:0; background:var(--cream-50); border:1px solid var(--border); border-radius:18px; padding:18px; display:flex; flex-direction:column; gap:10px;}
.tm-stars{color:var(--gold-500); letter-spacing:2px; font-size:15px;}
.tm-stars-off{color:#D9D2BF;}
.tm-card blockquote{margin:0; flex:1;}
.tm-card blockquote p{font-family:'Fraunces',serif; font-style:italic; font-size:16px; line-height:1.45; color:var(--ink);}
.tm-card figcaption{display:flex; flex-wrap:wrap; gap:6px 10px; align-items:center; font-size:13px; color:var(--ink-soft);}
.tm-who{font-weight:700; color:var(--ink);}
.tm-verified{font:700 10.5px 'JetBrains Mono',monospace; text-transform:uppercase; letter-spacing:.04em; color:#1E6B35; background:#EEF7F0; border:1px solid #B9DCC2; padding:2px 7px; border-radius:999px;}
.tm-prod a{color:var(--forest-700); font-weight:600;}
.tm-note{margin-top:6px;}

.interest-tap{display:inline-flex; flex-direction:column; align-items:flex-start; gap:4px;}
.it-live{font:600 11.5px 'Public Sans',sans-serif; color:var(--forest-700);}
.pulse-biz{margin-top:10px; font-weight:700; font-size:13.5px; color:var(--forest-800);}
.publish-row{font-size:13.5px;}

.protein-chip{display:inline-flex; align-items:baseline; flex-wrap:wrap; gap:6px; font:700 12.5px 'Public Sans',sans-serif; color:var(--forest-800); background:#EEF7F0; border:1px solid #B9DCC2; border-radius:999px; padding:5px 11px; align-self:flex-start;}
.protein-chip.is-small{font-size:11px; padding:3px 8px;}
.calc-note{font-weight:500; font-size:11px; color:var(--ink-soft);}
.pd-info .protein-chip{margin-top:12px;}
.pd-nutri{margin-top:22px; max-width:520px;}
.pd-nutri .nutri th[scope="col"]{text-align:right; font-weight:700; font-size:12.5px; color:var(--ink-soft);}
.pd-nutri .nutri td{text-align:right;}
.calc-note-line{font-size:12.5px; color:var(--ink-soft); margin-top:8px;}
/* pipeline (in development, illustrated plates) */
.pipeline{padding-top:10px;}
.pipe-card .body h3{font-size:20px;}
.pipe-home{margin-top:34px;}
.pipe-home-h{font-size:clamp(18px,2.2vw,22px); margin-bottom:12px;}
.pipe-row{list-style:none; margin:0 0 10px; padding:4px 2px 12px; display:flex; gap:12px; overflow-x:auto; scroll-snap-type:x proximity; scrollbar-width:thin; scrollbar-color:var(--border) transparent; -webkit-overflow-scrolling:touch;}
.pipe-row:focus-visible{outline:3px solid var(--gold-500); outline-offset:4px; border-radius:12px;}
.pipe-mini{flex:0 0 172px; scroll-snap-align:start; display:flex; flex-direction:column; background:var(--cream-50); border:1px solid var(--border); border-radius:16px; overflow:hidden;}
.pm-plate{aspect-ratio:4/3; display:flex; align-items:center; justify-content:center; background:radial-gradient(130% 130% at 50% 18%, color-mix(in srgb, var(--gold-300) 26%, var(--cream-200)), var(--cream-200) 70%);}
.pm-plate svg{width:70%; height:auto; filter:drop-shadow(0 10px 12px rgba(12,26,17,.2));}
.pm-body{display:flex; flex-direction:column; gap:6px; padding:10px 12px 12px; flex:1;}
.pm-cat{font:700 10.5px 'Public Sans',sans-serif; letter-spacing:.08em; text-transform:uppercase; color:var(--gold-700);}
.pm-name{font-size:15px; line-height:1.25;}
.pipe-mini .interest-tap{margin-top:auto;}
.pipe-mini .interest-tap-btn{padding:6px 10px; font-size:12px;}
.vol-row.is-dev{background:var(--white);}
.vol-dev{display:block; font:600 10.5px 'JetBrains Mono',monospace; text-transform:uppercase; letter-spacing:.04em; color:var(--ink-soft); margin-top:2px;}
/* "verify human" status line under form buttons */
.human-line{font:600 12px 'Public Sans',sans-serif; color:var(--ink-soft); margin-top:8px; min-height:1em;}
.human-line:empty{display:none;}
.human-line.is-ok{color:#1E6B35;}
.zone-forest .human-line{color:var(--on-dark-soft);}
.zone-forest .human-line.is-ok{color:#9FE0B0;}
/* ---------- search, category pages, related, ticker slot ---------- */
.search-toggle{display:inline-flex; align-items:center; gap:7px; height:42px; padding:0 14px; border-radius:999px; border:1px solid var(--border); background:var(--white); color:var(--ink); font:600 13.5px 'Public Sans',sans-serif; cursor:pointer;}
.search-toggle svg{width:18px; height:18px;}
.search-toggle[aria-expanded="true"]{border-color:var(--forest-700); background:var(--cream-100);}
@media (max-width:1100px){ .search-toggle{width:42px; padding:0; justify-content:center;} .search-toggle-text{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0);} }
.search-panel{border-top:1px solid var(--border); background:var(--white); padding:14px 18px 16px; max-height:calc(100vh - 70px); overflow-y:auto;}
.search-panel .site-search{max-width:720px; margin:0 auto;}
.search-form{display:flex; gap:8px;}
.search-form input{flex:1; min-width:0; font:16px 'Public Sans',sans-serif; padding:11px 14px; border-radius:999px; border:1.5px solid var(--border); background:var(--cream-50); color:var(--ink);}
.search-form input:focus{outline:2px solid var(--gold-500); outline-offset:1px;}
.search-form .btn{padding:10px 18px; font-size:13.5px;}
@media (max-width:420px){ .search-form .btn{padding:10px 14px;} }
.search-results:empty{display:none;}
.search-results{margin-top:10px;}
.sr-list{list-style:none; margin:0; padding:0; display:grid; gap:6px;}
.sr-list a{display:grid; grid-template-columns:auto 1fr; gap:2px 10px; padding:10px 12px; border-radius:12px; border:1px solid var(--border); background:var(--cream-50); color:var(--ink); text-decoration:none;}
.sr-list a:hover, .sr-list a:focus-visible{border-color:var(--gold-500); background:var(--white);}
.sr-type{grid-row:span 2; align-self:center; font:700 10px 'JetBrains Mono',monospace; text-transform:uppercase; letter-spacing:.04em; color:var(--gold-700); min-width:86px;}
.sr-title{font-weight:700; font-size:14.5px;}
.sr-snip{font-size:12.5px; color:var(--ink-soft); min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
@media (max-width:480px){ .sr-list a{grid-template-columns:1fr;} .sr-type{grid-row:auto; min-width:0;} }
.sr-zero{padding:12px 14px; border:1.5px dashed color-mix(in srgb, var(--gold-500) 60%, var(--border)); border-radius:14px; background:var(--cream-50);}
.sr-zero p + p{margin-top:8px;}
.sr-want-form{margin-top:10px;}
.sr-want-form .consent-row{font-size:12px;}
.menu-search{margin-bottom:16px; max-width:640px;}
.cat-chips-static{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:22px;}
.cat-chips-static a, .cat-link{display:inline-flex; align-items:center; min-height:38px; padding:7px 14px; border-radius:999px; border:1.5px solid var(--border); background:var(--cream-50); color:var(--ink); font:700 13px 'Public Sans',sans-serif; text-decoration:none;}
.cat-chips-static a:hover, .cat-link:hover{border-color:var(--gold-500);}
.cat-link.is-current{background:var(--forest-800); border-color:var(--forest-800); color:var(--on-dark);}
.cat-links{display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin-top:28px;}
.cat-links-h{font-size:13px; font-weight:700; color:var(--ink-soft); margin-right:4px;}
.cat-faq{margin-top:30px;}
.cat-faq h2{font-size:clamp(20px,2.4vw,24px); margin-top:0;}
.related{margin-top:34px; padding-top:22px; border-top:1px solid var(--border);}
.related h2{font-size:clamp(20px,2.4vw,24px);}
.related-list{list-style:none; margin:14px 0 0; padding:0; display:grid; grid-template-columns:repeat(auto-fill, minmax(200px,1fr)); gap:10px;}
.related-list a{display:flex; flex-direction:column; gap:2px; padding:12px 14px; border-radius:14px; border:1px solid var(--border); background:var(--cream-50); color:var(--ink); text-decoration:none; min-height:56px;}
.related-list a:hover, .related-list a:focus-visible{border-color:var(--gold-500);}
.rel-name{font-weight:700;}
.rel-meta{font-size:12.5px; color:var(--ink-soft);}
.related-cat{margin-top:12px;}
/* ticker sits in a zero-height slot over the first section's top padding: no layout shift */
.ticker-slot{position:relative; height:0; z-index:5;}
.ticker-slot .ticker{position:absolute; left:0; right:0; top:0;}
.ticker-slot + .hero{padding-top:64px;}
.ticker-slot + .page-head{padding-top:58px;}
.brandmark .sub{white-space:nowrap;}
@media (max-width:400px){ .nav-cta{gap:6px;} .nav-toggle{width:42px; padding:0; justify-content:center;} .nav-toggle span{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0);} }
/* ---------- blog + media (pages rendered by the ERP with the site's partials) ---------- */
.post-list{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fill, minmax(260px,1fr)); gap:18px;}
.post-card a{display:flex; flex-direction:column; height:100%; background:var(--white); border:1px solid var(--border); border-radius:18px; overflow:hidden; color:var(--ink); text-decoration:none; transition:border-color .18s ease, box-shadow .18s ease;}
.post-card a:hover, .post-card a:focus-visible{border-color:var(--gold-500); box-shadow:0 14px 26px -20px rgba(12,26,17,.45);}
.post-cover{position:relative; aspect-ratio:16/9; overflow:hidden; background:var(--cream-200);}
.post-cover img{width:100%; height:100%; object-fit:cover; display:block;}
.post-card-body{display:flex; flex-direction:column; gap:6px; padding:14px 16px 16px; flex:1;}
.post-card-body h2, .post-card-body h3{font-size:18px; line-height:1.3;}
.post-card-body p{font-size:14px; color:var(--ink-soft);}
.post-card-body time{margin-top:auto; font:600 11.5px 'JetBrains Mono',monospace; color:var(--ink-soft); text-transform:uppercase; letter-spacing:.04em;}
.post-card-body .tag{font-size:11.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--gold-700);}
.pager{display:flex; justify-content:space-between; align-items:center; gap:12px; margin-top:24px; font-weight:700;}
.pager a{color:var(--forest-800);}
.stories-empty{max-width:620px; padding:28px 0;}
.stories-empty h2{font-size:clamp(24px,3vw,32px);}
.stories-empty p{color:var(--ink-soft); margin:10px 0 16px;}
.post-wrap{max-width:780px;}
.post h1{font-size:clamp(30px,4.4vw,46px); line-height:1.08; margin-top:6px;}
.post-meta{margin-top:10px; font-size:13.5px; color:var(--ink-soft);}
.post-cover-lg{margin:22px 0 0; border-radius:20px; overflow:hidden; position:relative;}
.post-cover-lg img{width:100%; height:auto; display:block;}
.post-body{margin-top:22px;}
.post-body img{max-width:100%; height:auto; border-radius:14px;}
.post-tags{display:flex; flex-wrap:wrap; gap:8px; margin-top:24px;}
.post-tag{font:700 12px 'Public Sans',sans-serif; padding:6px 12px; border-radius:999px; border:1.5px solid var(--border); background:var(--cream-50); color:var(--ink); text-decoration:none;}
.post-back{margin-top:22px;}
.page-blog .zone-cream, .page-media .zone-cream{padding-top:30px;}
.blog-row .post-list-row{grid-template-columns:repeat(3, minmax(0,1fr));}
@media (max-width:860px){ .blog-row .post-list-row{display:flex; overflow-x:auto; scroll-snap-type:x proximity; padding-bottom:10px;} .blog-row .post-card{flex:0 0 78%; scroll-snap-align:start;} }
.media-tabs{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:20px;}
.media-tabs a{font:700 13px 'Public Sans',sans-serif; padding:8px 14px; border-radius:999px; border:1.5px solid var(--border); background:var(--cream-50); color:var(--ink); text-decoration:none; min-height:38px; display:inline-flex; align-items:center;}
.media-tabs a[aria-current="page"]{background:var(--forest-800); border-color:var(--forest-800); color:var(--on-dark);}
.media-grid{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fill, minmax(320px,1fr)); gap:22px;}
@media (max-width:400px){ .media-grid{grid-template-columns:1fr;} }
.media-card figure{margin:0;}
.media-card .media-frame{aspect-ratio:16/9;}
.media-card .media-frame iframe{width:100%; height:100%; border:0; display:block;}
.yt-lite{display:block; position:relative; width:100%; height:100%; color:inherit;}
.yt-lite img{width:100%; height:100%; object-fit:cover; display:block;}
.yt-lite .media-play{pointer-events:none;}
.yt-lite:hover .media-play, .yt-lite:focus-visible .media-play{background:var(--gold-300);}
.yt-note{margin-top:4px;}
.carousel{position:relative;}
.carousel-track{display:flex; overflow-x:auto; scroll-snap-type:x mandatory; border-radius:22px; background:var(--cream-200); aspect-ratio:4/3; scrollbar-width:none; -webkit-overflow-scrolling:touch;}
.carousel-track::-webkit-scrollbar{display:none;}
.carousel-track:focus-visible{outline:3px solid var(--gold-500); outline-offset:3px;}
.carousel-slide{flex:0 0 100%; scroll-snap-align:start; display:flex; align-items:center; justify-content:center;}
.carousel-slide img{width:100%; height:100%; object-fit:cover; display:block;}
.carousel-nav{display:flex; align-items:center; justify-content:center; gap:14px; margin-top:10px;}
.carousel-nav button{width:40px; height:40px; border-radius:50%; border:1.5px solid var(--border); background:var(--white); color:var(--ink); font-size:18px; cursor:pointer;}
.carousel-nav button:disabled{opacity:.4; cursor:default;}
.carousel-nav button:not(:disabled):hover{border-color:var(--gold-500);}
.carousel-count{font:600 12.5px 'JetBrains Mono',monospace; color:var(--ink-soft); min-width:48px; text-align:center;}
.carousel figcaption, .media-card figcaption{margin-top:10px; font-size:13.5px; color:var(--ink-soft);}
.carousel figcaption strong, .media-card figcaption strong{color:var(--ink);}
@media (prefers-reduced-motion: reduce){ .carousel-track{scroll-behavior:auto;} .post-card a{transition:none;} }
.post{padding-block:28px 56px; background:var(--white);}
.quick-phone{display:flex; flex-direction:column; gap:4px; margin-top:8px; max-width:260px;}
.quick-phone label{font-size:12px; font-weight:700; color:var(--ink-soft);}
.quick-phone input{font:15px 'Public Sans',sans-serif; padding:9px 12px; border-radius:999px; border:1px solid var(--border); background:var(--white); color:var(--ink);}
.quick-phone input[aria-invalid="true"]{border-color:#B3261E;}
.zone-forest .quick-phone label{color:var(--on-dark-soft);}
.req{color:#B3261E; font-weight:800; margin-left:2px;}
.zone-forest .req{color:#FFB4A8;}
.guide-link{margin-top:12px;}
.guide{max-width:820px;}
.guide-pack-note{margin-bottom:18px;}
.guide-method{margin-top:22px;}
.guide-method h2{font-size:clamp(20px,2.4vw,24px);}
.guide-method ol{margin:10px 0 0; padding-left:22px; display:grid; gap:6px; font-size:15.5px; line-height:1.6;}
.guide-note{margin-top:18px; font-weight:600;}
.guide-products{margin-top:26px;}
.guide-products h2{font-size:20px;}
.guide-product-list{margin:10px 0 0; padding-left:20px; display:grid; gap:6px;}
.guide-tiles{margin-top:0;}
/* ---------- compact product card (owner, 18 Oct): one card everywhere ---------- */
.mcard{position:relative;}
.mcard:hover{border-color:color-mix(in srgb, var(--gold-500) 55%, var(--border));}
.mcard:has(.mc-link:focus-visible){outline:3px solid var(--gold-500); outline-offset:3px;}
.mc-link{color:var(--ink); text-decoration:none;}
.mc-link:focus-visible{outline:none;}
.mc-link::after{content:""; position:absolute; inset:0; z-index:1; border-radius:16px;}
.mcard .mc-foot .interest-tap, .mcard .mc-add{position:relative; z-index:2;}
.mc-img{position:relative;}
.mc-plate{background:radial-gradient(120% 120% at 50% 22%, var(--cream-50), var(--cream-200) 72%);}
.mc-plate svg{width:78%; height:auto; filter:drop-shadow(0 10px 12px rgba(12,26,17,.18));}
.mc-tag{position:absolute; top:8px; left:8px; z-index:1; font:800 9.5px 'Public Sans',sans-serif; letter-spacing:.08em; text-transform:uppercase; color:var(--ink); background:var(--white); border:1.5px dashed var(--gold-500); border-radius:999px; padding:3px 8px;}
.mc-body{gap:4px; padding:9px 10px 11px;}
.mc-cat{font:700 10px 'Public Sans',sans-serif; letter-spacing:.08em; text-transform:uppercase; color:var(--gold-700); white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.mc-name{font-size:14px; line-height:1.25; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; overflow-wrap:anywhere;}
.mc-line{font-size:11.5px; color:var(--ink-soft); white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.mc-badge{display:inline-block; max-width:100%; align-self:flex-start; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; font:700 10px 'Public Sans',sans-serif; padding:3px 8px; border-radius:999px; background:var(--coral-50); color:#8A2E14; border:1px solid color-mix(in srgb, var(--coral) 35%, transparent);}
.mc-foot{gap:6px; padding-top:7px;}
.mc-price{font:700 14.5px 'Fraunces',serif; display:inline-flex; align-items:baseline; gap:4px; flex-wrap:wrap;}
.mc-gst{font:500 10px 'Public Sans',sans-serif; color:var(--ink-soft);}
.mc-pill{font:700 10px 'Public Sans',sans-serif; letter-spacing:.03em; padding:3px 8px; border-radius:999px; background:var(--cream-100); border:1px dashed var(--gold-500); color:var(--ink); white-space:nowrap;}
.mcard .interest-tap{display:inline-flex;}
.mcard .interest-tap-btn{padding:5px 9px; font-size:11.5px; gap:4px;}
.mcard .it-count:empty{display:none;}
.mcard .mc-add{padding:6px 12px; font-size:12.5px;}
.mcard .veg-mark{width:12px; height:12px; top:-1px;}
.mcard .veg-mark span{width:5px; height:5px;}
@media (min-width:1200px){ .mgrid{grid-template-columns:repeat(5, minmax(0,1fr));} .menu-shell .mgrid{grid-template-columns:repeat(4, minmax(0,1fr));} }
/* home row: a proper horizontal scroller with snap; partial next card visible, no clipped text */
.menu-rail::after{display:none;}
.mrow{display:grid; grid-auto-flow:column; grid-auto-columns:minmax(150px, 44%); gap:12px; overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x mandatory; padding:4px 2px 14px; scrollbar-width:thin; scrollbar-color:var(--border) transparent; -webkit-overflow-scrolling:touch;}
.mrow > .mcard{scroll-snap-align:start; min-width:0;}
.mrow:focus-visible{outline:3px solid var(--gold-500); outline-offset:4px; border-radius:12px;}
@media (min-width:640px){ .mrow{grid-auto-columns:200px;} }
@media (min-width:1100px){ .mrow{grid-auto-columns:212px;} }

/* ---------- announcement bar (above the header, every page) ---------- */
.announce{background:var(--forest-900); color:var(--on-dark); font:600 13.5px/1.4 'Public Sans',sans-serif;}
.announce-inner{max-width:1180px; margin:0 auto; padding:8px 24px; display:flex; align-items:center; justify-content:center; gap:12px; min-height:38px;}
.announce-msg{margin:0; min-width:0; text-align:center;}
.announce-more{flex:none; background:none; border:0; color:var(--gold-300); font:inherit; text-decoration:underline; cursor:pointer; padding:4px 2px;}
.announce-link{flex:none; color:var(--gold-300); text-decoration:underline; text-underline-offset:3px; white-space:nowrap;}
.announce-link:hover,.announce-more:hover{color:var(--white);}
.announce-close{flex:none; display:inline-flex; align-items:center; justify-content:center; width:32px; height:32px; margin-left:auto; border:0; border-radius:999px; background:transparent; color:var(--on-dark); cursor:pointer;}
.announce-close:hover{background:rgba(255,255,255,.12);}
.announce-close svg{width:16px; height:16px;}
.announce a:focus-visible,.announce button:focus-visible{outline:2px solid var(--gold-300); outline-offset:2px;}
@media (min-width:641px){ .announce-close{margin-left:0;} .announce-msg{flex:0 1 auto;} }
@media (max-width:640px){
  .announce-inner{padding:6px 8px 6px 16px; justify-content:flex-start; gap:8px;}
  .announce-msg{flex:1 1 auto; text-align:left; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; font-size:13px;}
  .announce.is-clipped .announce-msg{cursor:pointer;}
  .announce.is-open .announce-inner{flex-wrap:wrap;}
  .announce.is-open .announce-msg{white-space:normal; flex-basis:calc(100% - 44px);}
}

/* ---------- home: section header with a link on the right ---------- */
.band-head{display:flex; justify-content:space-between; align-items:flex-end; gap:16px; margin-bottom:18px; flex-wrap:wrap;}
.band-head h2{margin-top:8px; font-size:clamp(24px,3vw,34px);}

/* ---------- home: media band (swipeable rail, max 6) ---------- */
.media-band{padding-top:clamp(36px,5vw,56px); padding-bottom:clamp(28px,4vw,44px);}
.media-rail{list-style:none; margin:0; padding:2px 2px 10px; display:flex; gap:18px; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:thin; -webkit-overflow-scrolling:touch;}
.media-rail:focus-visible{outline:3px solid var(--gold-500); outline-offset:4px; border-radius:12px;}
.media-rail > .media-card{flex:0 0 min(560px, 86%); scroll-snap-align:start; min-width:0;}
.media-rail > .media-card:only-child{flex-basis:min(760px, 100%);}
/* a film keeps its own shape (its width / height attributes) — cropping it to 16:9 cut the logo in the poster */
.media-rail .media-frame{aspect-ratio:auto;}
.media-rail .media-frame video{height:auto; aspect-ratio:auto;}
.media-rail .media-player.yt .media-frame{aspect-ratio:16/9;}
.media-rail .carousel-track{aspect-ratio:16/9;}
.media-rail figcaption{margin-top:10px; font-size:14px; color:var(--ink-soft);}

/* ---------- home: pre-order band (the primary call to action) ---------- */
.preorder-band{background:var(--gold-500); color:#20190A; padding-block:clamp(40px,6vw,64px);}
.preorder-head{max-width:720px; margin-bottom:22px;}
.preorder-head h2{margin-top:8px; font-size:clamp(26px,3.6vw,40px); color:#20190A;}
.po-grid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px;}
.po-card{background:var(--cream-50); color:var(--ink); border-radius:22px; padding:clamp(20px,3vw,30px); box-shadow:0 22px 40px -28px rgba(32,25,10,.55); display:flex; flex-direction:column; gap:10px; min-width:0;}
.po-kicker{font:700 12px 'Public Sans',sans-serif; letter-spacing:.08em; text-transform:uppercase; color:var(--gold-700);}
.po-card h3{font-size:clamp(22px,2.6vw,28px); margin:0;}
.po-card p{margin:0;}
.po-btn{align-self:flex-start; margin-top:6px; padding:14px 24px; font-size:15px;}
.po-proof{font-size:14px; font-weight:700; color:var(--forest-700);}
.po-card .quick-form{margin:0; padding:0; background:none; border:0; box-shadow:none;}
.po-card .quick-title{display:none;}
.po-card .btn:focus-visible{outline:3px solid var(--forest-900); outline-offset:3px;}
@media (max-width:760px){ .po-grid{grid-template-columns:1fr;} .po-btn{align-self:stretch; text-align:center; justify-content:center;} }

/* ---------- home: featured product ---------- */
.feat-grid{display:grid; grid-template-columns:minmax(0,5fr) minmax(0,6fr); gap:clamp(22px,4vw,48px); align-items:center;}
.feat-media img{width:100%; height:auto; aspect-ratio:1/1; object-fit:cover; border-radius:26px; display:block; box-shadow:0 26px 50px -30px rgba(12,26,17,.45);}
.feat-media figure{margin:0;}
.feat-body h2{margin-top:8px; font-size:clamp(26px,3.4vw,38px); font-style:normal;}
.feat-body h2 em{font-style:normal;}
.feat-body .lede{margin-top:10px;}
.feat-meta{display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:14px;}
.feat-meta:has(> :empty + :empty){display:none;}
.feat-meta .protein-chip{margin:0;}
/* "New" and other status tags: neutral gold, never error red */
.feat-body .badge-pill{background:color-mix(in srgb, var(--gold-300) 30%, var(--white)); color:var(--gold-700); border-color:color-mix(in srgb, var(--gold-500) 45%, transparent);}
.feat-tiles{list-style:none; margin:18px 0 0; padding:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px;}
.feat-tile{display:flex; flex-direction:column; align-items:flex-start; gap:8px; background:var(--white); border:1px solid var(--border); border-radius:16px; padding:14px; font-size:14.5px; line-height:1.4;}
.feat-tile svg{flex:none; width:24px; height:24px; color:var(--gold-700);}
@media (max-width:560px){ .feat-tiles{grid-template-columns:1fr;} .feat-tile{flex-direction:row; align-items:center;} }
.feat-note{margin-top:10px; font-size:13px; color:var(--ink-soft);}
/* one button system: 48 px, pill radius, 15 px labels; primary solid gold, secondary outlined, tertiary text link */
.feat-ctas{display:flex; flex-wrap:wrap; align-items:center; gap:12px 16px; margin-top:22px;}
.feat-ctas .btn, .feat-ctas .interest-tap-btn{min-height:48px; padding:0 24px; border-radius:999px; font:700 15px/1 'Public Sans',sans-serif; gap:8px;}
.feat-ctas .interest-tap-btn{background:var(--gold-500); border:1.5px solid var(--gold-500); color:#20190A; box-shadow:0 10px 22px -10px color-mix(in srgb, var(--gold-500) 70%, transparent);}
.feat-ctas .interest-tap-btn .it-count{color:#20190A;}
.feat-ctas .btn-ghost{border-width:1.5px; background:var(--white);}
.feat-ctas .interest-tap{margin:0;}
/* the tap's live count sits under the button without changing the row's height (all three stay 48 px, top-aligned) */
@media (min-width:421px){ .feat-ctas{row-gap:26px;} .feat-ctas .interest-tap{position:relative;} .feat-ctas .it-live{position:absolute; top:100%; left:4px; margin-top:4px; white-space:nowrap;} }
.feat-more{font-weight:700; font-size:15px; color:var(--forest-700); text-decoration:underline; text-underline-offset:3px; padding:12px 4px; display:inline-flex; align-items:center; min-height:48px;}
@media (max-width:420px){ .feat-ctas > *{flex:1 1 100%;} .feat-ctas .btn, .feat-ctas .interest-tap-btn{width:100%; justify-content:center;} .feat-more{justify-content:center;} }
@media (max-width:860px){ .feat-grid{grid-template-columns:1fr;} .feat-media{max-width:460px;} }

/* ---------- home: FAQ teaser ---------- */
.faq-teaser .faq-short{max-width:820px;}

/* ---------- reserve early supply: starting sizes, minimum order, units (17 Oct 2026) ---------- */
.vol-hint{margin:0 0 10px;}
.vol-type-hint{margin:0 0 10px; font-weight:600; color:var(--forest-700);}
.vol-type-hint:empty{display:none;}
.vol-row .vol-chips{grid-column:1 / -1; display:flex; flex-wrap:wrap; gap:6px;}
.vol-chip{display:inline-flex; align-items:center; gap:6px; min-height:36px; padding:6px 12px; border-radius:999px; border:1.5px solid var(--border); background:var(--white); font:700 13px 'Public Sans',sans-serif; color:var(--ink); cursor:pointer;}
.vol-chip:hover{border-color:var(--gold-500);}
.vol-chip[aria-pressed="true"]{background:var(--gold-500); border-color:var(--gold-500); color:#20190A;}
.vol-chip:focus-visible{outline:3px solid var(--gold-500); outline-offset:2px;}
.vol-chip.is-mid{border-color:var(--gold-700);}
.vol-chip-tag{font-size:11px; font-weight:600; color:var(--gold-700);}
.vol-chip[aria-pressed="true"] .vol-chip-tag{color:#20190A;}
.vol-row .vol-pcs{grid-column:1 / -1; font-size:12.5px; color:var(--ink-soft);}
.vol-row .vol-pcs:empty{display:none;}
.vol-row .vol-pcs.is-warn{color:#B5401C; font-weight:700;}
.vol-level{font:600 13px 'Public Sans',sans-serif; padding:6px 8px; border-radius:10px; border:1.5px solid var(--border); background:var(--white);}

/* ---------- business forms: location step + optional photos (17 Oct 2026) ---------- */
.bizloc{border:1.5px solid var(--border); border-radius:16px; padding:14px 16px; margin:16px 0; background:var(--cream-50); min-width:0;}
.bizloc legend{font-weight:800; font-size:14px; padding:0 6px;}
.bizloc .form-hint{margin:6px 0;}
.bizloc-q{display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:8px 0;}
.bizloc-q > span{font-weight:700; font-size:14px; margin-right:4px;}
.bizloc-q .pill-check{padding:7px 12px; font-size:13px;}
.bizloc-q .pill-check input{position:absolute; opacity:0; width:1px; height:1px;}
.bizloc-q .pill-check:has(input:focus-visible){outline:3px solid var(--gold-500); outline-offset:2px;}
.bizloc [data-bizloc-yes], .bizloc [data-bizloc-no]{display:grid; gap:6px; justify-items:start; margin-top:6px;}
.bizloc [hidden]{display:none !important;}
.bizloc-welcome{margin:6px 0;}
.bizloc-submit-hint{margin:8px 0 0; color:#B5401C; font-weight:600;}
.bizphotos{margin:12px 0;}
.bizphotos .field-label{font-weight:700; font-size:14px; margin:0 0 6px;}
.bizphotos-list{list-style:none; margin:0 0 8px; padding:0; display:flex; flex-wrap:wrap; gap:10px;}
.bizphotos-list li{display:grid; gap:4px; justify-items:center;}
.bizphotos-list img{width:72px; height:72px; object-fit:cover; border-radius:10px; border:1px solid var(--border);}
.bizphotos-status:empty{display:none;}

/* AI search (18 Oct 2026): product page intent blocks + use-case guides */
.uc-facts ul, .uc-notfor ul{margin:10px 0 0; padding-left:20px; display:grid; gap:6px; font-size:14.5px; line-height:1.55;}
.uc-notfor .fine, .uc-facts .fine{margin-top:10px;}
.pd-faq.faq summary{font-size:16.5px; padding-block:12px;}
.uc{max-width:820px;}
.uc .prose{max-width:none;}
.uc-facts, .uc-notfor{margin-top:26px;}
.uc-facts h2, .uc-notfor h2{font-size:clamp(19px,2.2vw,22px); margin:0;}
.uc-faq{margin-top:30px;}
.uc-faq h2{margin-top:0;}
.uc-cta{margin-top:32px; padding-top:24px; border-top:1px solid var(--border);}
.uc-cta h2{font-size:clamp(21px,2.4vw,26px);}
.uc-cta > p{margin-top:8px; color:var(--ink-soft); max-width:60ch;}
.uc-cta .pd-buy{margin-top:14px;}
.uc-cta .quick-form{margin-top:20px;}
.uc-byline{margin-top:10px;}
.facts table th[scope="row"]{width:30%; white-space:normal;}
.facts table ol{margin:0; padding-left:18px;}

/* ---------- account (sign in, profile, orders, business; 18 Oct 2026) ---------- */
.acct-link{display:inline-flex; align-items:center; height:42px; padding:0 12px; font:700 13.5px 'Public Sans',sans-serif; color:var(--forest-800); text-decoration:none; border-radius:999px; white-space:nowrap;}
.acct-link:hover{text-decoration:underline; text-underline-offset:3px;}
.acct-menu{position:relative;}
.acct-btn{height:42px; padding:0 14px; border-radius:999px; border:1px solid var(--border); background:var(--white); font:700 13.5px 'Public Sans',sans-serif; color:var(--forest-800); cursor:pointer; max-width:150px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.acct-pop{position:absolute; right:0; top:calc(100% + 8px); z-index:60; min-width:210px; background:var(--white); border:1px solid var(--border); border-radius:14px; box-shadow:0 18px 40px -20px rgba(20,42,28,.35); padding:6px; display:grid;}
.acct-pop a, .acct-pop button{display:block; text-align:left; padding:10px 12px; border-radius:10px; font:600 14px 'Public Sans',sans-serif; color:var(--ink); text-decoration:none; background:none; border:0; cursor:pointer;}
.acct-pop a:hover, .acct-pop button:hover{background:var(--cream-100);}
@media (max-width:480px){ .acct-link{padding:0 6px; font-size:13px;} .acct-btn{max-width:110px; padding:0 10px;} .search-toggle-text{display:none;} }
.acc-wrap{max-width:560px;}
.acc-why-join{margin-top:28px;}
.acc-why-join h2{font-size:22px;}
.acc-benefits{margin:12px 0 0; padding:0; list-style:none; display:grid; gap:10px;}
.acc-benefits li{position:relative; padding-left:26px; line-height:1.5;}
.acc-benefits li::before{content:""; position:absolute; left:4px; top:.55em; width:9px; height:9px; border-radius:50%; background:var(--gold-500);}
.acc-wrap.acc-wide{max-width:820px;}
.acc-card{background:var(--white); border:1px solid var(--border); border-radius:16px; padding:22px; margin-top:20px;}
.acc-card:first-of-type{margin-top:0;}
.acc-card h2{font-size:clamp(20px,2.4vw,24px); margin:0 0 6px;}
/* "Are you a business? Talk to our sales team" on /account/profile (19 Oct 2026): quiet, dismissible */
.acc-biz-promo{display:flex; gap:12px; align-items:flex-start; background:var(--white); border:1px solid var(--border); border-radius:16px; padding:16px; margin-bottom:20px;}
.acc-biz-promo[hidden]{display:none;}
.acc-biz-promo-icon{flex:none; width:40px; height:40px; border-radius:12px; background:var(--cream-100); color:var(--forest-700); display:flex; align-items:center; justify-content:center;}
.acc-biz-promo-body{flex:1; min-width:0;}
.acc-biz-promo-body h2{font-size:17px; margin:2px 0 4px;}
.acc-biz-promo-body p{margin:0 0 12px; font-size:14.5px; color:var(--ink-soft);}
.acc-biz-promo-body p:last-child{margin-bottom:0;}
.acc-biz-promo-body a:not(.btn){color:var(--forest-700); font-weight:700;}
.acc-biz-promo-x{flex:none; width:32px; height:32px; margin:-6px -6px 0 0; border:0; border-radius:50%; background:transparent; color:var(--ink-soft); font-size:22px; line-height:1; cursor:pointer;}
.acc-biz-promo-x:hover{background:var(--cream-100);}
.acc-biz-promo-x:focus-visible{outline:3px solid var(--gold-500); outline-offset:1px;}
.acc-sub{color:var(--ink-soft); font-size:15px; margin-top:4px;}
.acc-form .field{margin-top:14px;}
.acc-form .field label, .acc-otp .field label{display:block; font-weight:700; font-size:14px; margin-bottom:6px;}
.acc-form input:not([type=checkbox]), .acc-form select, .acc-otp input{width:100%; min-height:46px; padding:10px 12px; border:1px solid var(--border); border-radius:12px; font:500 16px 'Public Sans',sans-serif; background:var(--white); color:var(--ink);}
.acc-form input:focus-visible, .acc-otp input:focus-visible, .acc-form select:focus-visible{outline:3px solid var(--gold-500); outline-offset:1px;}
.acc-form .form-hint{display:block; margin-top:6px; font-size:13px; color:var(--ink-soft);}
.acc-form .form-actions{margin-top:16px; display:flex; flex-wrap:wrap; align-items:center; gap:12px;}
.acc-form button[type=submit]:disabled, .acc-otp button:disabled{opacity:.55; cursor:not-allowed;}
.acc-why{margin-top:8px; font-size:13.5px; color:var(--ink-soft); min-height:0;}
.acc-why:empty{display:none;}
.acc-otp{margin-top:12px; padding:14px; border:1px dashed var(--border); border-radius:14px;}
.acc-inline{display:flex; gap:8px; align-items:center;}
.acc-inline input{flex:1; min-width:0;}
.acc-prefix{font-weight:700; color:var(--ink-soft);}
.acc-inline-actions{display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-top:10px;}
.acc-timer{font-size:13.5px; color:var(--ink-soft); font-variant-numeric:tabular-nums;}
.acc-timer:empty, .acc-tries:empty{display:none;}
.acc-tries{margin-top:6px; font-size:13.5px; color:var(--gold-700); font-weight:600;}
.acc-change{margin-top:6px;}
.acc-links, .acc-switch{margin-top:14px; font-size:14px;}
.acc-links a, .acc-switch a{color:var(--forest-700); font-weight:700;}
.acc-or{display:flex; align-items:center; gap:12px; margin:18px 0 12px; color:var(--ink-soft); font-size:13px;}
.acc-or::before, .acc-or::after{content:""; flex:1; border-top:1px solid var(--border);}
.acc-google-slot{min-height:44px;}
.acc-google{width:100%;}
.acc-privacy{margin-top:18px;}
/* one-screen sign in / sign up (19 Oct 2026) */
.acc-flow [data-block="start"] .acc-google-slot{display:flex; justify-content:center;}
.acc-who{display:flex; flex-wrap:wrap; align-items:center; gap:6px 12px; margin-top:12px; padding:10px 14px; background:var(--cream-100); border:1px solid var(--border); border-radius:12px; font-weight:700; font-size:15px; overflow-wrap:anywhere;}
.acc-who .text-link{font-weight:700;}
.acc-remember{margin-top:10px;}
.acc-code{margin-top:18px; padding-top:16px; border-top:1px solid var(--border);}
.acc-flow input:disabled{background:var(--cream-100); color:var(--ink-soft);}
.acc-flow .acc-otp{margin-top:14px;}
.acc-flow .form-status:empty{display:none;}
.acc-flow [data-block="start"] .acc-or{margin-top:16px;}
.acc-tabs{display:flex; flex-wrap:wrap; gap:6px 14px; margin-top:16px; align-items:center;}
.acc-tabs a{font-weight:700; font-size:14.5px; color:var(--forest-700); padding:6px 0; text-decoration:none; border-bottom:2px solid transparent;}
.acc-tabs a[aria-current="page"]{border-color:var(--gold-500); color:var(--ink);}
.acc-tabs button{margin-left:auto;}
.acc-details summary{cursor:pointer; font-weight:700; color:var(--forest-700); margin-top:6px;}
.acc-addr-list{list-style:none; margin:10px 0 14px; padding:0; display:grid; gap:10px;}
.acc-addr{display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; padding:12px 14px; border:1px solid var(--border); border-radius:12px; font-size:14.5px; line-height:1.5;}
.acc-addr-actions{display:flex; gap:12px; align-items:flex-start;}
.acc-pill{display:inline-block; font:700 11.5px 'Public Sans',sans-serif; padding:3px 9px; border-radius:999px; background:var(--cream-100); border:1px solid var(--border);}
.acc-st-delivered{background:#EEF7F0; border-color:#B9DCC2;}
.acc-st-cancelled{background:#FDEDEB; border-color:#F2C2BC;}
.acc-orders{list-style:none; margin:0; padding:0; display:grid; gap:12px;}
.acc-order{background:var(--white); border:1px solid var(--border); border-radius:16px; padding:16px 18px;}
.acc-order-head{display:flex; justify-content:space-between; align-items:center; gap:10px;}
.acc-order .fine{margin-top:6px;}
.acc-order-actions{display:flex; gap:14px; align-items:center; margin-top:10px;}
.btn-sm{padding:8px 16px; font-size:13.5px;}
.acc-empty{padding:18px; border:1px dashed var(--border); border-radius:14px; color:var(--ink-soft);}
.acc-danger{border-color:#F2C2BC;}
.acc-loc{margin-top:16px;}
.acc-table-wrap{overflow-x:auto;}
.acc-trade th, .acc-trade td{padding:8px 10px 8px 0;}
.acc-trade .acc-own{display:inline-block; margin-top:3px; padding:2px 8px; border-radius:999px; background:var(--cream-100); color:var(--forest-700); font-size:12px; font-weight:700;}
.acc-trade .acc-onreq{color:var(--ink-soft);}
.acc-trade td{text-align:left; font-family:'Public Sans',sans-serif; vertical-align:top;}
.acc-trade td:nth-child(3){white-space:nowrap; font-weight:700;}
.acc-trade th:first-child, .acc-trade td:first-child{width:38%;}
.acc-trade td{text-align:left;}
.acc-addr-form .form-grid{margin-top:4px;}
