@import url('https://fonts.googleapis.com/css2?family=Libre+Baskerville:wght@400;700&family=Libre+Franklin:wght@400;500;600&display=swap');

:root { --cream:#f4efe4; --paper:#fffdf8; --olive:#596348; --ink:#30372a; --black:#191814; --line:#c8c5af; --warm:#9a7655; --serif:'Libre Baskerville', Georgia, serif; --sans:'Libre Franklin', Arial, sans-serif; }
* { box-sizing:border-box; }
[hidden] { display:none !important; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:#24231e; font-family:var(--sans); font-size:15px; line-height:1.6; }
img { display:block; max-width:100%; height:auto; }
a { color:inherit; text-decoration-thickness:1px; text-underline-offset:3px; }
a:focus-visible, button:focus-visible { outline:3px solid var(--warm); outline-offset:4px; }
.skip-link { position:absolute; top:-5rem; left:1rem; padding:.7rem 1rem; background:var(--olive); color:var(--cream); z-index:100; }
.skip-link:focus { top:1rem; }
.container { width:min(1120px, calc(100% - 40px)); margin-inline:auto; }
.eyebrow { margin:0 0 .65rem; color:var(--olive); font-size:.72rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
h1,h2,h3 { font-family:var(--serif); color:var(--olive); font-weight:600; line-height:1.05; }
h1 { font-size:clamp(2.7rem, 5.4vw, 4.7rem); letter-spacing:-.025em; margin:.1em 0 .3em; }
h2 { font-size:clamp(2.2rem, 3.8vw, 3.25rem); letter-spacing:-.02em; margin:0 0 1rem; }
h3 { font-size:1.45rem; margin:.2rem 0 .3rem; }
p { margin:.15rem 0 1rem; }
.section { padding:clamp(4rem, 8vw, 7rem) 0; background:var(--cream); }
.section--paper { background:var(--paper); }
.landing-content { width:min(820px,calc(100% - 40px)); margin-inline:auto; font-size:clamp(1rem,1.25vw,1.12rem); line-height:1.75; }
.landing-content h2 { margin:0 0 1.2rem; color:var(--olive); }
.landing-content h3 { margin:1.2rem 0 .35rem; color:var(--ink); font-size:1.2rem; }
.landing-content li { margin:.45rem 0; }
.landing-facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; margin:2rem 0 0; padding:0; list-style:none; }
.landing-facts li { display:flex; flex-direction:column; gap:.2rem; margin:0; padding:1.15rem; border:1px solid var(--line); background:rgba(255,255,255,.35); }
.landing-facts strong { color:var(--olive); font-size:.78rem; letter-spacing:.09em; text-transform:uppercase; }
.landing-faq article { padding:1rem 0; border-top:1px solid var(--line); }
.landing-faq article p { margin:0; }
.page-hero.landing-hero { height:auto; min-height:361px; padding:clamp(2.5rem,5vw,4.5rem) 0; }
.landing-hero > .container { min-width:0; }
.page-hero.landing-hero h1 { max-width:22ch; font-size:clamp(2rem,4.8vw,4.25rem); line-height:1.12; overflow-wrap:anywhere; text-wrap:balance; }
.page-hero.landing-hero p:not(.eyebrow) { max-width:65ch; }
.landing-hero .button { max-width:100%; text-align:center; white-space:normal; }
.landing-hero .button--outline { color:var(--cream); border-color:#e2bd67; }
.landing-hero .button--outline:hover { color:var(--black); background:#e2bd67; }
@media (max-width:600px) {
  .landing-hero .button-row { flex-direction:column; align-items:stretch; }
  .landing-content h2 { font-size:clamp(1.8rem,7.5vw,2.5rem); overflow-wrap:anywhere; }
}
.divider { border:0; border-top:1px solid var(--line); margin:0; }
.button { display:inline-flex; align-items:center; justify-content:center; min-height:46px; padding:.7rem 1.15rem; border:1px solid var(--olive); color:var(--cream); background:var(--olive); font-size:.78rem; font-weight:700; letter-spacing:.08em; text-decoration:none; text-transform:uppercase; transition:background .2s,color .2s; }
.button:hover { color:var(--olive); background:transparent; }
.button--outline { color:var(--olive); background:transparent; }
.button--outline:hover { color:var(--cream); background:var(--olive); }
.button-row { display:flex; flex-wrap:wrap; gap:.7rem; margin-top:1.5rem; }

.site-header { background:var(--cream); border-bottom:1px solid var(--line); position:relative; z-index:10; }
.nav-wrap { min-height:88px; display:flex; align-items:center; justify-content:space-between; gap:1.5rem; }
.logo { width:76px; flex:0 0 auto; }
.nav-toggle { display:none; border:0; padding:.75rem; color:var(--olive); background:transparent; font:inherit; font-weight:700; letter-spacing:.1em; }
.nav-list { display:flex; align-items:center; gap:clamp(1rem,3vw,2.25rem); list-style:none; padding:0; margin:0; }
.nav-list a { color:var(--olive); font-size:.74rem; font-weight:700; letter-spacing:.11em; text-decoration:none; text-transform:uppercase; }
.nav-list a[aria-current='page'],.nav-list a:hover { text-decoration:underline; }
.nav-list a.nav-social-link { display:inline-flex; width:36px; min-height:44px; align-items:center; justify-content:center; text-decoration:none; }
.nav-social-icon { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.nav-social-icon__dot { fill:currentColor; stroke:none; }
.nav-social-link:hover .nav-social-icon { transform:scale(1.08); }

.hero { width:100%; height:calc(100vh - 88px); min-height:361px; aspect-ratio:auto; margin-inline:auto; position:relative; overflow:hidden; background:var(--black); border-radius:0; }
.hero-inner { height:100%; min-height:0; display:flex; align-items:center; }
.hero-copy { position:relative; z-index:2; max-width:610px; padding:.65rem 0; color:var(--cream); opacity:1; transform:none; }
.hero.is-copy-visible .hero-copy { opacity:1; transform:translateY(0); }
.hero-video { position:absolute; inset:0; z-index:0; width:100%; height:100%; object-fit:cover; object-position:center; }
.hero--video::after { content:''; position:absolute; inset:0; z-index:1; opacity:1; background:linear-gradient(90deg,rgba(15,14,11,.82) 0%,rgba(15,14,11,.47) 42%,rgba(15,14,11,.06) 72%); pointer-events:none; }
.hero--video::before { content:'ROCK PAPER SISTERS'; position:absolute; left:clamp(1.2rem,4vw,3rem); bottom:clamp(1.2rem,4vw,3rem); z-index:2; color:rgba(244,239,228,.92); font-size:.74rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; pointer-events:none; opacity:0; }
.hero-copy .logo { width:130px; margin-bottom:1.25rem; }
.hero-kicker { max-width:360px; color:#efe7d6; font-size:.78rem; font-weight:700; letter-spacing:.13em; text-transform:uppercase; }
.hero h1 { max-width:620px; color:var(--cream); font-size:clamp(2.5rem,4vw,3.5rem); }
.hero-copy > p:not(.hero-kicker) { max-width:42ch; margin-bottom:.65rem; font-size:1rem; }
.hero .caption { color:#efe7d6 !important; }
.scroll-note { display:flex; gap:.6rem; align-items:center; margin-top:2rem; color:var(--olive); font-size:.74rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.scroll-note span { font-size:1.25rem; }
.hero-art { height:min(74vh,700px); position:relative; display:flex; align-items:center; justify-content:flex-end; background:#d8cebd; border-radius:30px; overflow:hidden; }
.hero-art img { width:100%; height:100%; object-fit:contain; object-position:center; animation:float-dabeli 5s ease-in-out infinite; }
.hero-art::before { content:'SWEET · SPICY · TANGY · CRUNCHY'; position:absolute; bottom:1rem; left:50%; width:max-content; transform:translateX(-50%); color:var(--olive); font-size:.68rem; font-weight:700; letter-spacing:.13em; }
.hero .button { color:var(--cream); background:var(--olive); border-color:var(--olive); }
.hero .button:hover { color:var(--olive); background:transparent; }
.hero .button--outline { color:#26351f; background:rgba(244,239,228,.9); border-color:#26351f; }
.hero .button--outline:hover { color:var(--cream); background:#26351f; border-color:#26351f; }
@keyframes float-dabeli { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-13px); } }
.meal-includes { padding:0; background:var(--olive); color:var(--cream); }
.meal-includes-grid { display:grid; grid-template-columns:1.3fr repeat(3,1fr); border-left:1px solid #4c493c; }
.meal-includes-grid > div { display:flex; min-height:168px; padding:1.7rem; flex-direction:column; justify-content:center; border-right:1px solid #70785e; border-bottom:1px solid #70785e; }
.meal-includes-grid > div:not(:first-child) { justify-content:center; }
.meal-includes-grid > div:not(:first-child) p { min-height:3em; }
.meal-includes-grid h2,.meal-includes-grid h3 { color:var(--cream); }
.meal-includes-grid h2 { font-size:2.5rem; }
.meal-includes-grid h3 { font-size:1.35rem; }
.meal-includes-grid p { color:#d6d0bd; font-size:.9rem; }
.catering-callout { padding:clamp(3.5rem,7vw,6rem) 0; background:#e9dfca; }
.catering-callout__card { display:grid; grid-template-columns:minmax(300px,.9fr) minmax(0,1.1fr); overflow:hidden; background:var(--olive); box-shadow:0 28px 75px rgba(25,24,20,.14); }
.catering-callout__image { min-height:470px; }
.catering-callout__image img { width:100%; height:100%; object-fit:cover; }
.catering-callout__copy { display:flex; padding:clamp(2.2rem,5vw,4.5rem); flex-direction:column; justify-content:center; color:var(--cream); }
.catering-callout__copy .eyebrow { color:#e2bd67; }
.catering-callout__copy h2 { max-width:11ch; color:var(--cream); font-size:clamp(2.5rem,4.6vw,4.25rem); line-height:.96; }
.catering-callout__copy > p:not(.eyebrow) { max-width:52ch; color:#eee8da; font-size:1rem; }
.catering-callout__details { display:flex; padding:0; margin:1rem 0 1.8rem; flex-wrap:wrap; gap:.55rem; list-style:none; }
.catering-callout__details li { padding:.45rem .7rem; color:#f4efe4; border:1px solid rgba(244,239,228,.35); font-size:.7rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.catering-callout .button { align-self:flex-start; color:var(--black); background:#e2bd67; border-color:#e2bd67; }
.catering-callout .button:hover { color:#e2bd67; background:transparent; }
.peanut-picker { max-width:980px; margin:3.5rem auto 0; }
.peanut-picker > .eyebrow { margin-bottom:1.5rem !important; color:var(--olive); font-family:var(--serif); font-size:clamp(2rem,3.5vw,3rem); font-weight:600; letter-spacing:-.02em; line-height:1.05; text-transform:none; }
.peanut-options { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }
.peanut-option { position:relative; min-height:350px; padding:0 0 1.4rem; overflow:hidden; cursor:pointer; color:var(--ink); background:var(--paper); border:1px solid var(--line); font:inherit; text-align:center; transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease; }
.peanut-option img { width:100%; height:220px; padding:1.15rem; object-fit:contain; margin:0 0 1.15rem; }
.peanut-option:nth-child(1) img { background:#e8dcc3; }
.peanut-option:nth-child(2) img { background:#c96f45; }
.peanut-option:nth-child(3) img { background:#b98755; }
.peanut-option span { display:block; padding:0 1rem; margin-bottom:.35rem; color:var(--olive); font-family:var(--serif); font-size:1.7rem; line-height:1.15; }
.peanut-option small { display:block; padding:0 1rem; color:#5d5b52; font-size:.78rem; letter-spacing:.02em; }
.peanut-option::after { content:'✓'; position:absolute; top:.75rem; right:.75rem; display:grid; place-items:center; width:30px; height:30px; color:transparent; background:rgba(244,239,228,.9); border:1px solid transparent; border-radius:50%; font-weight:700; transition:color .2s ease,background .2s ease; }
.peanut-option:hover { transform:translateY(-4px); border-color:var(--olive); box-shadow:0 12px 26px rgba(25,24,20,.12); }
.peanut-option[aria-pressed='true'] { color:var(--ink); background:var(--paper); border-color:var(--black); box-shadow:inset 0 0 0 2px var(--black); }
.peanut-option[aria-pressed='true']::after { color:var(--cream); background:var(--black); }
.peanut-result { min-height:1.6em; margin:1.15rem 0 0; color:var(--olive); font-size:.86rem; font-weight:600; letter-spacing:.04em; text-align:center; text-transform:uppercase; }
.hero-cta { display:flex; gap:.65rem; margin-top:.8rem; }

/* Home-page Dabeli preview */
/* The original card preview is retained in the markup for now, but the
   explorable Dabeli below is the single shared build-your-own experience. */
section:has(.peanut-picker) { display:none; }
section:has(.peanut-picker) .step-heading { margin-bottom:2.4rem; }
section:has(.peanut-picker) .step-heading .eyebrow { color:#e2bd67; }
section:has(.peanut-picker) .step-heading h2 { color:var(--cream); }
section:has(.peanut-picker) .step-heading > p:not(.eyebrow) { color:#ebe7da; }
section:has(.peanut-picker) .pick-grid { gap:1rem; border:0; }
section:has(.peanut-picker) .pick { min-height:230px; padding:1.7rem; border:0; background:#e7ddc5; }
section:has(.peanut-picker) .pick:nth-child(2) { background:#cf754c; }
section:has(.peanut-picker) .pick:nth-child(3) { background:#aeb895; }
section:has(.peanut-picker) .pick h3 { color:var(--black); }
section:has(.peanut-picker) .pick p { color:#34352c; }
section:has(.peanut-picker) .pick .number { margin-bottom:1.8rem; color:#57482e; }
section:has(.peanut-picker) .peanut-picker { display:none; }
section:has(.peanut-picker) .button { margin-top:2.1rem; color:var(--black); background:#e2bd67; border-color:#e2bd67; }
section:has(.peanut-picker) .button:hover { color:#e2bd67; background:transparent; }

.intro-grid,.story-grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(2.5rem,7vw,7rem); align-items:center; }
.story-grid--reverse img { order:2; }
.story-grid--reverse > div { order:1; }
.home-intro .intro-grid { grid-template-columns:minmax(0,.95fr) minmax(420px,1fr); gap:clamp(3rem,7vw,8rem); }
.intro-image { position:relative; }
.home-intro .intro-image img { width:100%; aspect-ratio:4 / 3; object-fit:cover; box-shadow:0 24px 70px rgba(25,24,20,.12); }
.intro-image img { width:100%; }
.caption { margin-top:.75rem; color:var(--olive); font-family:var(--serif); font-size:1.12rem; font-style:italic; }
.statement { max-width:55ch; font-size:1.15rem; }
.home-intro .statement { max-width:54ch; margin-bottom:1.8rem; color:var(--black); font-size:clamp(1.05rem,1.6vw,1.28rem); line-height:1.55; }
.dabeli-breakdown { margin:0 0 1.45rem; border-top:1px solid var(--line); }
.dabeli-breakdown article { display:grid; grid-template-columns:54px minmax(0,1fr); gap:1rem; align-items:center; padding:1rem 0; border-bottom:1px solid var(--line); }
.dabeli-breakdown span { display:grid; place-items:center; width:42px; height:42px; color:var(--black); background:#e2bd67; border-radius:50%; font-family:var(--serif); font-size:.95rem; font-weight:700; line-height:1; }
.dabeli-breakdown h3 { margin:0 0 .1rem; color:var(--black); font-size:1.25rem; line-height:1.1; }
.dabeli-breakdown p { margin:0; color:#4e5546; font-size:.9rem; line-height:1.45; }
.home-intro .caption { margin-top:.85rem; }
.anatomy { width:min(500px,100%); margin:2rem auto 0; border:1px solid var(--line); }
.anatomy { display:none; }
.photo-strip { display:none; }
.step-heading { text-align:center; max-width:590px; margin:0 auto 2.8rem; }
.pick-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.pick { min-height:200px; padding:1.7rem; border-right:1px solid var(--line); }
.pick:last-child { border:0; }
.number { display:block; margin-bottom:1.5rem; color:var(--warm); font-family:var(--serif); font-size:1.5rem; }
.pick p { color:#545a4d; font-size:.9rem; }
.meal { display:grid; grid-template-columns:1.1fr .9fr; gap:3.5rem; align-items:center; }
.meal img { width:100%; aspect-ratio:4/3; object-fit:cover; }
.meal--deal { grid-template-columns:minmax(0,1.05fr) minmax(360px,.9fr); gap:clamp(3rem,6vw,5.2rem); }
.meal--deal img { min-height:390px; border:1px solid var(--line); object-position:center; box-shadow:0 28px 75px rgba(25,24,20,.1); }
.meal--deal h2 { color:var(--olive); font-size:clamp(2.2rem,3.8vw,3.25rem); line-height:.98; }
.meal--deal p:not(.eyebrow) { max-width:58ch; color:var(--black); font-size:1.02rem; }
.meal-list { list-style:none; padding:0; margin:1.4rem 0; border-top:1px solid var(--line); }
.meal-list li { padding:.7rem 0; border-bottom:1px solid var(--line); color:var(--olive); font-family:var(--serif); font-size:1.25rem; }
.meal--deal .meal-list { margin:1.8rem 0 1.9rem; }
.meal--deal .meal-list li { padding:.85rem 0; font-size:clamp(1.28rem,2.2vw,1.72rem); line-height:1.25; }
.meal--deal .button { min-width:140px; color:var(--olive); background:transparent; }
.meal--deal .button:hover { color:var(--cream); background:var(--olive); }
.meet-image { width:100%; aspect-ratio:4/5; object-fit:cover; }
.popups-section { background:linear-gradient(135deg,#f9f6ee 0%,#f1eadb 100%); }
.popups-grid { display:grid; grid-template-columns:minmax(0,.9fr) minmax(360px,1fr); gap:clamp(2rem,6vw,5rem); align-items:center; }
.popups-grid .statement { max-width:560px; margin-top:1rem; color:#48513d; font-size:clamp(1.05rem,2vw,1.3rem); line-height:1.55; }
.event { position:relative; max-width:680px; padding:clamp(1.6rem,4vw,2.5rem); border:1px solid rgba(83,97,67,.45); background:rgba(255,253,248,.78); box-shadow:0 26px 70px rgba(42,38,28,.09); }
.event::before { content:''; position:absolute; inset:12px; border:1px solid rgba(229,192,92,.38); pointer-events:none; }
.event-badge { display:inline-flex; margin-bottom:1.2rem; padding:.45rem .75rem; border-radius:999px; color:var(--black); background:var(--gold); font-size:.75rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.event h3 { margin:0 0 1rem; color:var(--olive); font-size:clamp(1.8rem,3vw,2.6rem); line-height:1; }
.event p { max-width:52ch; color:#48513d; }
.event-actions { display:flex; flex-wrap:wrap; gap:.8rem; margin-top:1.7rem; }
.event .button { position:relative; z-index:1; }
.favourites-marquee { overflow:hidden; }
.favourites-marquee .eyebrow { margin-bottom:1.2rem; }
.photo-strip { display:block; width:100%; overflow:hidden; }
.photo-strip__track { display:flex; width:max-content; gap:12px; animation:favourites-scroll 28s linear infinite; will-change:transform; }
.photo-strip:hover .photo-strip__track { animation-play-state:paused; }
.photo-strip img { flex:0 0 auto; width:clamp(280px,42vw,560px); height:340px; object-fit:cover; object-position:center; }
.photo-strip img.photo-strip__image--people { object-position:center 18%; }
@keyframes favourites-scroll { from { transform:translateX(0); } to { transform:translateX(calc(-50% - 6px)); } }
.faq { max-width:800px; }
details { border-top:1px solid var(--line); }
details:last-child { border-bottom:1px solid var(--line); }
summary { display:flex; justify-content:space-between; cursor:pointer; padding:1.1rem 0; color:var(--olive); font-family:var(--serif); font-size:1.28rem; }
summary::after { content:'+'; font-family:var(--sans); }
details[open] summary::after { content:'−'; }
details p { max-width:65ch; padding-bottom:.8rem; }
.final-cta { text-align:center; }
.final-cta p { max-width:500px; margin:0 auto 1.5rem; }
.site-footer { padding:2.5rem 0; color:var(--cream); background:var(--olive); }
.footer-grid { display:grid; grid-template-columns:84px minmax(0,1fr) minmax(220px,auto); gap:clamp(1.5rem,4vw,3.5rem); align-items:center; }
.footer-logo { width:78px; }
.footer-links { display:flex; flex-wrap:wrap; gap:.45rem 1.35rem; align-items:center; }
.footer-links a { font-size:.77rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.footer-socials { display:flex; flex:0 0 100%; gap:.2rem; margin-top:.15rem; }
.footer-social-link { display:inline-grid; width:44px; height:44px; margin:0; place-items:center; border-radius:50%; text-decoration:none; transition:background-color .2s ease; }
.footer-social-link:hover { background:rgba(244,239,228,.12); }
.footer-social-icon { width:22px; height:22px; overflow:visible; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.footer-social-icon__dot { fill:currentColor; stroke:none; }
.footer-note { margin:0; font-family:var(--serif); font-size:1.05rem; font-style:italic; line-height:1.3; }
.footer-meta { display:grid; gap:.35rem; justify-items:end; text-align:right; }
.footer-credit { max-width:260px; margin:0; color:rgba(244,239,228,.82); font-size:.7rem; font-weight:600; letter-spacing:.08em; line-height:1.45; text-transform:uppercase; }
.footer-credit a { color:var(--cream); text-decoration-color:rgba(244,239,228,.45); }
.footer-credit a:hover { text-decoration-color:currentColor; }
.menu-allergen-note { padding:1rem 0; color:#4c503f; background:#f8f3e7; border-top:1px solid var(--line); text-align:center; }
.menu-allergen-note p { margin:0; font-size:.9rem; font-weight:600; }
.menu-allergen-note a { color:var(--olive); font-weight:800; }
.allergen-layout { display:grid; grid-template-columns:minmax(250px,.42fr) minmax(0,1fr); gap:clamp(1.4rem,4vw,3rem); align-items:start; }
.allergen-warning { position:sticky; top:1rem; padding:clamp(1.25rem,3vw,1.8rem); color:var(--cream); background:var(--olive); border:1px solid var(--olive); }
.allergen-warning .eyebrow { color:#e2bd67; }
.allergen-warning h2 { margin-bottom:.8rem; color:var(--cream); font-size:clamp(2rem,3.7vw,3.1rem); }
.allergen-warning p:not(.eyebrow) { margin:0; color:#eee8da; }
.allergen-intro { max-width:760px; margin-bottom:1.2rem; }
.allergen-intro p:not(.eyebrow) { color:#4f5548; font-size:1rem; }
.allergen-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem; }
.allergen-grid article { min-height:150px; padding:1rem; background:var(--paper); border:1px solid var(--line); }
.allergen-grid span { display:block; margin-bottom:.55rem; color:var(--warm); font-family:var(--serif); font-size:1.2rem; }
.allergen-grid h3 { margin:0 0 .35rem; color:var(--black); font-size:1.15rem; }
.allergen-grid p { margin:0; color:#555a4d; font-size:.9rem; line-height:1.5; }
.allergen-footnote { margin:1.1rem 0 0; color:var(--olive); font-weight:700; }
.allergen-matrix { border-top:1px solid var(--line); }
.allergen-matrix h2 { font-size:clamp(1.6rem,3vw,2.4rem); }
.allergen-matrix__image-link { display:block; }
.allergen-matrix__image-link img { display:block; width:100%; max-width:100%; height:auto; }
.allergen-matrix__image-link:focus-visible { outline:3px solid var(--olive); outline-offset:4px; }

.page-hero,
.builder-hero { padding:clamp(2.7rem,5vw,4.25rem) 0; color:var(--cream); background:radial-gradient(circle at 82% 10%,rgba(216,182,106,.16),transparent 28%),linear-gradient(135deg,#15150f 0%,#27291f 100%); border-bottom:1px solid rgba(216,182,106,.32); text-align:left; }
.page-hero { display:flex; height:361px; min-height:361px; padding:1.5rem 0; align-items:center; }
.page-hero h1,
.catering-shop__intro h1 { margin:0 0 .55rem; color:var(--cream); font-size:clamp(3rem,5.2vw,4.6rem); letter-spacing:-.035em; }
.builder-hero h1 { margin:0 0 .55rem; color:var(--cream); font-size:clamp(3rem,6.2vw,5.6rem); letter-spacing:-.035em; }
.page-hero .eyebrow,
.builder-hero .eyebrow { margin-bottom:.55rem; color:#e2bd67; }
.page-hero p,
.builder-hero__copy { max-width:620px; margin:0; color:#ece7db; font-size:clamp(.98rem,1.35vw,1.1rem); }
.story-hero__grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(280px,.68fr); gap:clamp(1.4rem,5vw,4rem); align-items:center; }
.builder-hero__inner { display:grid; grid-template-columns:minmax(0,1fr) minmax(280px,.68fr); gap:clamp(1.4rem,5vw,4rem); align-items:center; }
.story-hero p:not(.eyebrow) { max-width:620px; margin:0; font-size:clamp(.98rem,1.35vw,1.1rem); }
.story-hero h2,
.catering-shop__intro p:not(.eyebrow) { max-width:620px; margin:.8rem 0 0; color:#ece7db; font-family:var(--sans); font-size:clamp(.98rem,1.35vw,1.1rem); font-weight:400; line-height:1.5; }
.story-hero img { width:100%; height:208px; max-height:208px; aspect-ratio:auto; object-fit:cover; object-position:center 14%; border:1px solid rgba(216,182,106,.34); box-shadow:0 24px 70px rgba(0,0,0,.22); }
.story-opening { position:relative; overflow:hidden; }
.story-opening::before { content:'02'; position:absolute; top:clamp(2rem,5vw,4rem); left:max(20px,calc((100vw - 1120px) / 2)); color:#d7c9aa; font-family:var(--serif); font-size:clamp(4rem,9vw,8rem); line-height:1; opacity:.55; }
.story-opening__copy { position:relative; width:min(760px,calc(100% - 40px)); padding-left:clamp(0rem,8vw,7rem); color:#394033; font-size:clamp(1rem,1.35vw,1.12rem); }
.story-opening__copy p { margin:0 0 1.35rem; }
.story-opening__copy .story-lead { margin-bottom:1.7rem; color:var(--olive); font-family:var(--serif); font-size:clamp(1.55rem,3vw,2.35rem); line-height:1.3; }
.story-photo-break { height:clamp(360px,52vw,680px); margin:0; overflow:hidden; background:var(--black); }
.story-photo-break img { width:100%; height:100%; object-fit:cover; object-position:center 37%; }
.story-pitch { color:var(--cream); background:var(--olive); }
.story-pitch__grid { display:grid; grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr); gap:clamp(2.5rem,8vw,7rem); align-items:start; }
.story-pitch__heading { position:sticky; top:2rem; }
.story-pitch__heading span { display:block; margin-bottom:1rem; color:#e2bd67; font-family:var(--serif); font-size:1.4rem; }
.story-pitch__heading h2 { max-width:12ch; color:var(--cream); font-size:clamp(2.4rem,4.8vw,4rem); }
.story-pitch__copy { max-width:700px; color:#eee8da; font-size:clamp(1rem,1.35vw,1.12rem); }
.story-pitch__copy p { margin:0 0 1.35rem; }
.story-closing-quote { margin:2.2rem 0 0; padding:1.6rem 0 0; color:#f0ce78; border-top:1px solid rgba(244,239,228,.32); font-family:var(--serif); font-size:clamp(1.7rem,3.5vw,3rem); font-style:italic; line-height:1.2; }
.story-about__grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(2rem,7vw,6rem); align-items:start; }
.story-about__intro h2 { color:var(--black); font-size:clamp(2.2rem,4.8vw,4rem); }
.story-about__intro .statement { margin-top:1.4rem; color:#30372a; }
.story-copy { max-width:690px; color:#394033; font-size:clamp(1rem,1.45vw,1.12rem); }
.story-copy p { margin-bottom:1.25rem; }
.story-signoff { margin-top:2rem; color:var(--olive); font-family:var(--serif); font-size:clamp(1.45rem,2.5vw,2.2rem); line-height:1.18; }
.story-values { color:var(--cream); background:var(--black); }
.story-values__grid { display:grid; grid-template-columns:repeat(3,1fr); }
.story-values article { min-height:260px; padding:clamp(1.5rem,3vw,2.5rem); border-right:1px solid #4b473b; display:flex; flex-direction:column; justify-content:center; }
.story-values article:last-child { border-right:0; }
.story-values span { margin-bottom:1.1rem; color:#d8b66a; font-family:var(--serif); font-size:1.55rem; }
.story-values h2 { max-width:12ch; color:var(--cream); font-size:clamp(1.9rem,3.2vw,3rem); }
.story-values p { margin:0; color:#d9d3c4; }
.story-food__grid { display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(2rem,6vw,5rem); align-items:center; }
.story-food img { width:100%; aspect-ratio:4/3; object-fit:cover; border:1px solid var(--line); }
.option-group { padding:3rem 0; border-top:1px solid var(--line); }
.option-group h2 { margin-bottom:.35rem; }
.options { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; margin-top:2rem; }
.option { border-bottom:1px solid var(--line); padding-bottom:1.2rem; }
.option img { width:100%; aspect-ratio:1.15/1; object-fit:cover; margin-bottom:1rem; }
.option h3 { font-size:1.25rem; }
.option p { font-size:.88rem; }
.include-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line); border:1px solid var(--line); margin-top:2rem; }
.include-grid div { padding:2rem; background:var(--paper); }
.include-grid p { color:var(--olive); font-family:var(--serif); font-size:1.5rem; }
.story-image { width:100%; max-height:700px; object-fit:cover; }
.prose { max-width:700px; margin:0 auto; font-size:1.05rem; }
.legal-hero { padding:clamp(2.5rem,5vw,3.75rem) 0; color:var(--ink); background:var(--cream); border-bottom:1px solid var(--line); }
.legal-hero .container { max-width:800px; }
.legal-hero .eyebrow { color:var(--olive); }
.legal-hero h1 { margin-bottom:.8rem; color:var(--black); font-size:clamp(2.35rem,5vw,3.75rem); letter-spacing:-.025em; }
.legal-hero p { max-width:660px; color:#555a4d; font-size:1rem; line-height:1.7; }
.legal-content { padding:clamp(2.75rem,6vw,4.75rem) 0; }
.legal-prose { max-width:760px; color:#3f4539; font-size:1rem; line-height:1.75; }
.legal-prose > p:first-child { margin-bottom:2rem; color:#686d61; font-size:.84rem; }
.legal-prose h2 { margin:2.2rem 0 .55rem; padding-top:2.2rem; color:var(--black); border-top:1px solid #ded9cc; font-family:var(--sans); font-size:1.08rem; font-weight:700; letter-spacing:0; line-height:1.35; }
.legal-prose p { margin:0 0 1rem; }
.legal-prose ul { margin:.15rem 0 1.25rem; padding-left:1.3rem; }
.legal-prose li { margin:.35rem 0; padding-left:.2rem; }
.legal-prose a:not(.button) { color:var(--olive); font-weight:600; }
.notice { max-width:760px; padding:2rem; background:var(--paper); border-left:4px solid var(--olive); }
.not-found { min-height:70vh; display:grid; place-items:center; text-align:center; }
.not-found .logo { width:130px; margin:0 auto 1.5rem; }

@media (max-width:700px) {
  .container { width:min(100% - 32px, 1120px); }
  .legal-hero { padding:2rem 0 2.25rem; }
  .legal-hero h1 { font-size:clamp(2rem,10vw,2.65rem); }
  .legal-content { padding:2.25rem 0 3rem; }
  .legal-prose h2 { margin-top:1.8rem; padding-top:1.8rem; font-size:1rem; }
  .nav-wrap { min-height:75px; gap:0; }
  .logo { width:64px; }
  .nav-toggle { position:relative; display:block; width:48px; height:48px; padding:0; margin-left:auto; color:var(--olive); background:linear-gradient(currentColor,currentColor) center/24px 2px no-repeat; border:0; font-size:0; }
  .nav-toggle::before,.nav-toggle::after { content:''; position:absolute; top:calc(50% - 1px); left:12px; width:24px; height:2px; background:currentColor; transition:transform .2s ease; }
  .nav-toggle::before { transform:translateY(-8px); }
  .nav-toggle::after { transform:translateY(8px); }
  .nav-toggle[aria-expanded='true'] { background:none; }
  .nav-toggle[aria-expanded='true']::before { transform:rotate(45deg); }
  .nav-toggle[aria-expanded='true']::after { transform:rotate(-45deg); }
  .nav-list { display:none; position:absolute; top:75px; left:0; right:0; padding:1rem 16px 1.4rem; background:var(--cream); border-bottom:1px solid var(--line); flex-direction:column; align-items:flex-start; }
  .nav-list[data-open='true'] { display:flex; }
  .nav-list a { display:flex; min-height:44px; align-items:center; padding:.55rem 0; }
  .nav-list a.nav-social-link { width:44px; min-height:44px; padding:.55rem 0; }
  .footer-links a:not(.footer-social-link) { display:inline-flex; min-height:44px; align-items:center; }
  .hero { width:100%; height:calc(100vh - 75px); min-height:calc(100vh - 75px); aspect-ratio:auto; border-radius:0; }
  .hero-inner { height:100%; min-height:0; padding-top:0; }
  .hero-copy { padding:2rem 0; text-align:left; }
  .hero-copy .logo { width:100px; margin-inline:auto; }
  .hero-kicker { margin-inline:auto; }
  .scroll-note { justify-content:center; margin-top:1.2rem; }
  .hero-video { object-fit:cover; object-position:center; }
  .hero--video::after { background:linear-gradient(90deg,rgba(15,14,11,.76),rgba(15,14,11,.18)); }
  .hero-art::before { bottom:0; font-size:.58rem; }
  .hero-cta { justify-content:flex-start; gap:.65rem; margin:1rem 0 2.5rem; }
  .intro-grid,.story-grid,.meal,
  .home-intro .intro-grid { grid-template-columns:1fr; gap:2rem; }
  .story-grid--reverse img,
  .story-grid--reverse > div { order:initial; }
  .meal--deal { gap:1.6rem; }
  .meal--deal img { min-height:0; }
  .meal--deal p:not(.eyebrow) { font-size:1rem; }
  .meal--deal .meal-list { margin:1.35rem 0 1.5rem; }
  .meal--deal .meal-list li { padding:.75rem 0; font-size:1.22rem; }
  .home-intro .statement { margin-bottom:1.45rem; font-size:1rem; }
  .dabeli-breakdown article { grid-template-columns:46px minmax(0,1fr); gap:.8rem; padding:.9rem 0; }
  .dabeli-breakdown span { width:36px; height:36px; font-size:.82rem; }
  .dabeli-breakdown h3 { font-size:1.08rem; }
  .dabeli-breakdown p { font-size:.78rem; }
  .intro-grid .anatomy { order:-1; }
  .pick-grid,.options { grid-template-columns:1fr; }
  .landing-facts { grid-template-columns:1fr; }
  .pick { min-height:0; padding:1.35rem 0; border-right:0; border-bottom:1px solid var(--line); }
  .pick:last-child { border-bottom:0; }
  section:has(.peanut-picker) .pick-grid { gap:.75rem; }
  section:has(.peanut-picker) .pick { min-height:0; padding:1.35rem; border:0; }
  .number { margin-bottom:.5rem; }
  .popups-grid { grid-template-columns:1fr; gap:1.4rem; }
  .popups-grid .statement { font-size:1rem; }
  .event { padding:1.35rem; }
  .event::before { inset:8px; }
  .event-actions { display:grid; gap:.7rem; }
  .photo-strip { margin-inline:0; }
  .photo-strip__track { gap:10px; animation-duration:24s; }
  .photo-strip img { width:78vw; height:260px; max-height:none; }
  .photo-strip img.photo-strip__image--people { object-position:center 12%; }
  .meal-includes-grid { grid-template-columns:1fr; }
  .meal-includes-grid > div { min-height:0; }
  .catering-callout { padding:2.25rem 0; }
  .catering-callout__card { grid-template-columns:1fr; }
  .catering-callout__image { min-height:0; aspect-ratio:4 / 3; }
  .catering-callout__copy { padding:1.75rem 1.4rem 2rem; }
  .catering-callout__copy h2 { font-size:clamp(2.35rem,12vw,3.25rem); }
  .catering-callout__details { display:grid; gap:.45rem; }
  .catering-callout .button { width:100%; }
  .peanut-options { grid-template-columns:1fr; }
  .peanut-picker > .eyebrow { text-align:left !important; }
  .peanut-option { display:grid; grid-template-columns:145px 1fr; grid-template-rows:auto auto; min-height:158px; padding:0 1rem 0 0; text-align:left; align-items:end; }
  .peanut-option img { grid-row:1 / 3; width:145px; height:100%; min-height:158px; padding:.7rem; margin:0; }
  .peanut-option span { align-self:end; padding:0 0 .25rem 1rem; }
  .peanut-option small { align-self:start; padding:0 0 0 1rem; }
  .site-footer { padding:2rem 0; }
  .footer-grid { grid-template-columns:minmax(0,1fr); gap:1.25rem; align-items:start; }
  .footer-grid > a { justify-self:center; }
  .footer-logo { width:64px; }
  .footer-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 .75rem; width:100%; max-width:480px; justify-self:center; }
  .footer-links > a { justify-content:center; text-align:center; }
  .footer-socials { grid-column:1 / -1; justify-content:center; gap:.5rem; margin-top:.65rem; }
  .footer-meta { width:100%; min-width:0; justify-items:center; text-align:center; gap:.55rem; padding-top:1rem; border-top:1px solid rgba(244,239,228,.25); }
  .footer-meta > a { display:inline-flex; align-items:center; min-height:44px; max-width:100%; font-size:.9rem; overflow-wrap:anywhere; }
  .footer-credit { max-width:100%; font-size:.65rem; }
  .allergen-layout { grid-template-columns:1fr; }
  .allergen-warning { position:static; }
  .allergen-grid { grid-template-columns:1fr; gap:.65rem; }
  .allergen-grid article { min-height:0; padding:.95rem; }
  .options { gap:2.2rem; }
  .option { display:grid; grid-template-columns:135px 1fr; gap:1rem; align-items:center; }
  .option img { grid-row:span 2; height:135px; margin:0; }
  .option h3,.option p { margin:0; }
  .include-grid { grid-template-columns:1fr; }
}

/* Reviews page */
.reviews-hero { padding:clamp(2.25rem,4vw,3.25rem) 0; color:var(--cream); }
.reviews-hero h1 { font-size:clamp(3rem,5vw,4.3rem); }
.reviews-hero h1,.reviews-hero p { color:var(--cream); }
.reviews-hero .eyebrow { color:#e2bd67; }
.reviews-section { padding:clamp(2.25rem,4vw,3.75rem) 0; }
.reviews-layout { display:grid; grid-template-columns:minmax(0,.9fr) minmax(390px,1.1fr); gap:clamp(1rem,2.5vw,1.75rem); align-items:start; max-width:1080px; }
.reviews-panel { padding:clamp(1.35rem,2.5vw,1.85rem); background:var(--paper); border:1px solid var(--line); border-top:3px solid var(--olive); }
.reviews-panel--public { color:var(--ink); }
.reviews-panel--form { position:sticky; top:1rem; }
.reviews-heading { margin-bottom:1.15rem; padding-bottom:1rem; border-bottom:1px solid var(--line); }
.reviews-heading .eyebrow { margin-bottom:.45rem; }
.reviews-heading h2,.review-form-heading h2 { margin:0; font-size:clamp(1.75rem,2.4vw,2.35rem); line-height:1.1; }
.reviews-heading h2 { color:var(--olive); }
.review-form-heading { margin-bottom:1rem; padding-bottom:1rem; border-bottom:1px solid var(--line); }
.review-form-heading h2 { color:var(--olive); }
.review-form-heading > p:last-child { max-width:46ch; margin:.5rem 0 0; color:#565447; font-size:.9rem; }
.reviews-list { display:grid; gap:.9rem; }
.reviews-muted { margin:0; padding:.65rem 0; color:#5e5b51; font-size:.95rem; line-height:1.55; }
.review-card { padding:1.15rem; background:#fffaf0; border:1px solid #d7cfbd; }
.review-card__top { display:flex; gap:1rem; align-items:center; justify-content:space-between; margin-bottom:.35rem; }
.review-card__top strong { color:var(--black); font-family:var(--serif); font-size:1.15rem; }
.review-card__top span { color:#766c59; font-size:.72rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.review-stars { margin:0 0 .55rem; color:#b68125; letter-spacing:.06em; }
.review-auth > p { margin-bottom:1rem; color:#4d4b43; }
.review-login-actions { display:grid; gap:.7rem; margin-top:1.1rem; }
.review-login-actions .button,.review-form .button { width:100%; }
.review-login-actions .button:disabled { cursor:not-allowed; opacity:.58; }
.review-user-bar { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1rem; padding:0 0 .85rem; border-bottom:1px solid var(--line); }
.review-user-bar p { margin:0; color:#4d4b43; font-size:.86rem; }
.review-link-button { padding:0; cursor:pointer; color:var(--olive); background:transparent; border:0; font:700 .78rem var(--sans); letter-spacing:.08em; text-transform:uppercase; text-decoration:underline; text-underline-offset:3px; }
.review-type { display:grid; grid-template-columns:1fr 1fr; gap:.6rem; margin:0 0 1rem; padding:0; border:0; }
.review-type legend { grid-column:1 / -1; margin-bottom:.45rem; color:var(--black); font-weight:700; }
.review-type label { display:flex; min-height:48px; align-items:center; gap:.55rem; padding:.7rem .75rem; cursor:pointer; background:transparent; border:1px solid #d7cfbd; }
.review-type label:has(input:checked) { background:#f4efe4; border-color:var(--olive); }
.review-type input { accent-color:var(--olive); }
.review-field { display:block; margin:.9rem 0 .35rem; color:var(--black); font-weight:700; }
.review-field span { color:#6b6557; font-weight:400; }
.review-form select,.review-form textarea,.review-form input[type='email'] { width:100%; padding:.85rem; color:var(--black); background:#fffdf8; border:1px solid #aaa48f; border-radius:0; font:1rem var(--sans); }
.review-form textarea { resize:vertical; min-height:120px; }
.review-form-note { min-height:1.5em; margin:.9rem 0 0; color:#5c594f; font-size:.82rem; }

@media (max-width:800px) {
  .reviews-layout { grid-template-columns:1fr; }
  .reviews-panel--form { position:static; }
  .review-card__top { align-items:flex-start; flex-direction:column; gap:.1rem; }
}

@media (max-width:480px) {
  .review-type { grid-template-columns:1fr; }
  .review-type legend { grid-column:auto; }
  .review-user-bar { align-items:flex-start; flex-direction:column; gap:.45rem; }
}
@media (prefers-reduced-motion:reduce) { *,::before,::after { scroll-behavior:auto!important; transition-duration:.01ms!important; animation-duration:.01ms!important; } }

/* Visual Dabeli order builder */
.builder-page { background:var(--paper); }

/* The home-page guide is intentionally the same experience on desktop and
   mobile: tap/click a labelled layer, then take that choice to the menu. */
.mobile-layer-guide { display:block; padding:clamp(4rem,7vw,6.5rem) 0; background:var(--paper); }
.mobile-layer-guide .container { display:grid; grid-template-columns:minmax(0,1fr) minmax(270px,360px); gap:clamp(2rem,6vw,5.5rem); align-items:center; }
.layer-guide__heading { grid-column:1 / -1; max-width:640px; margin:0 auto .25rem; text-align:center; }
.layer-guide__heading h2 { margin:.1rem 0 .55rem; color:var(--olive); font-size:clamp(3rem,5vw,5rem); line-height:.98; }
.layer-guide__heading p:not(.eyebrow) { margin:0; color:#555a4d; }
.layer-guide__stage { position:relative; min-height:540px; height:min(55vw,690px); }
.layer-guide__stage > img { display:block; width:100%; height:100%; object-fit:contain; object-position:center; }
.layer-hotspot { position:absolute; z-index:1; display:flex; min-height:44px; align-items:center; padding:0; cursor:pointer; color:var(--ink); background:transparent; border:0; font:inherit; }
.layer-hotspot--chutney { top:25%; left:0; }
.layer-hotspot--peanuts { top:57%; right:0; flex-direction:row-reverse; }
.layer-hotspot--finish { top:72%; left:0; }
.layer-hotspot__label { padding:.6rem .7rem; color:var(--black); background:rgba(255,253,248,.95); border:1px solid #aaa48f; font-size:.71rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; transition:background .2s ease,color .2s ease,border-color .2s ease; }
.layer-hotspot__line { width:clamp(38px,5vw,76px); height:1px; background:#695a42; }
.layer-hotspot__dot { width:12px; height:12px; background:#e2bd67; border:2px solid var(--paper); border-radius:50%; box-shadow:0 0 0 1px #695a42; transition:background .2s ease,transform .2s ease; }
.layer-hotspot[aria-pressed='true'] .layer-hotspot__label { color:var(--cream); background:var(--olive); border-color:var(--olive); }
.layer-hotspot[aria-pressed='true'] .layer-hotspot__dot { background:#cf754c; transform:scale(1.25); }
.layer-hotspot:focus-visible { outline:3px solid #b68125; outline-offset:4px; }
.layer-guide__detail { align-self:center; padding:clamp(1.5rem,3vw,2.4rem); color:var(--cream); background:var(--olive); }
.layer-guide__detail .eyebrow { color:#e2bd67; }
.layer-guide__detail h3 { margin:.1rem 0 .6rem; color:var(--cream); font-size:clamp(1.65rem,2.3vw,2.25rem); }
.layer-guide__detail > p:not(.eyebrow) { margin-bottom:1.25rem; color:#e6e2d7; }
.layer-guide__detail .button { color:var(--black); background:#e2bd67; border-color:#e2bd67; }

/* Rock Paper Scissors Shoot — fair practice game. */
.dabeli-game { overflow:hidden; color:var(--cream); background:linear-gradient(135deg,#11120f 0%,#202318 100%); }
.dabeli-game__grid { display:grid; grid-template-columns:minmax(260px,.78fr) minmax(0,1fr); gap:clamp(1.5rem,5vw,5rem); align-items:center; padding:clamp(2.2rem,5vw,4.3rem) 0; }
.dabeli-game__intro .eyebrow { color:#e2bd67; }
.dabeli-game__intro h2 { margin:.1rem 0 .7rem; color:var(--cream); font-size:clamp(2.45rem,4vw,4.15rem); }
.dabeli-game__intro > p:not(.eyebrow) { max-width:30rem; color:#e7e1d2; font-size:1rem; }
.dabeli-game__intro .caption { color:#e2bd67; }
.dabeli-game__play { display:grid; gap:1.05rem; }
.rps-game__console { max-width:720px; margin-left:auto; }
.game-slot { display:grid; min-height:160px; gap:.55rem; place-items:center; text-align:center; color:var(--cream); }
.game-slot__label { color:#e2bd67; font-size:.75rem; font-weight:900; letter-spacing:.24em; text-transform:uppercase; }
.game-slot__gesture { display:block; margin:.15rem 0 .35rem; font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif; font-size:clamp(3.2rem,7vw,5.6rem); line-height:1; filter:drop-shadow(0 12px 18px rgba(0,0,0,.32)); }
.game-slot__result { display:block; max-width:28rem; margin-top:.1rem; color:var(--cream); font-family:var(--sans); font-size:clamp(.98rem,1.45vw,1.2rem); font-weight:900; letter-spacing:.08em; line-height:1.18; text-transform:uppercase; }
.game-slot__subcopy { max-width:26rem; color:#d6d0bd; font-size:.85rem; }
.rps-game.is-spinning .game-slot__gesture { animation:slot-bounce .38s ease-in-out infinite; }
.rps-game[data-result="win"] .game-slot__result { color:#e2bd67; }
.rps-game[data-result="lose"] .game-slot__result { color:#e5a487; }
.rps-game[data-result="draw"] .game-slot__result { color:#d6d0bd; }
.button--gold { color:var(--black); background:#e2bd67; border-color:#e2bd67; }
.button--gold:hover { color:#e2bd67; background:transparent; }
.game-start { width:100%; }
.game-moves { display:flex; justify-content:center; gap:clamp(.7rem,2vw,1.2rem); }
.game-move { display:inline-flex; align-items:center; justify-content:center; gap:.5rem; min-width:0; min-height:48px; padding:.25rem .4rem; cursor:pointer; color:#f4efe4; background:transparent; border:0; border-bottom:1px solid rgba(226,189,103,.45); font:800 clamp(.75rem,1vw,.9rem)/1 var(--sans); letter-spacing:.08em; text-align:center; transition:transform .18s ease,color .18s ease,border-color .18s ease,opacity .18s ease; }
.game-move:hover { color:#e2bd67; border-color:#e2bd67; transform:translateY(-2px); }
.game-move:focus-visible,.game-play-again:focus-visible { outline:3px solid #e2bd67; outline-offset:3px; }
.game-move[aria-pressed="true"] { color:#e2bd67; border-color:#e2bd67; }
.game-move:disabled { cursor:not-allowed; opacity:.42; transform:none; }
.game-move:disabled:hover { color:#f4efe4; border-color:rgba(226,189,103,.45); }
.game-move__number { display:none; }
.game-move__gesture { font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif; font-size:1.35rem; line-height:1; }
.game-result { display:grid; grid-template-columns:1fr auto; gap:.2rem 1rem; align-items:center; min-height:0; padding:.2rem 0 0; }
.game-result .eyebrow { color:#e2bd67; }
.game-result h3 { display:none; }
.game-result p:not(.eyebrow) { grid-column:1; max-width:37rem; margin:0; color:#e7e1d2; font-size:.82rem; }
.game-play-again { padding:0; cursor:pointer; color:#e2bd67; background:transparent; border:0; border-bottom:1px solid currentColor; font:700 .75rem var(--sans); letter-spacing:.1em; text-transform:uppercase; }
.game-claim { padding:.9rem; background:#e7ddc5; color:var(--black); }
.game-claim label { display:block; margin-bottom:.55rem; font-family:var(--serif); font-size:1.05rem; font-weight:600; line-height:1.1; }
.game-claim__row { display:flex; gap:.55rem; }
.game-claim input { min-width:0; flex:1; padding:.8rem .9rem; color:var(--black); background:#fffdf8; border:1px solid #8d826a; border-radius:0; font:1rem var(--sans); }
.game-claim .button { color:var(--cream); background:var(--olive); border-color:var(--olive); white-space:nowrap; }
.game-claim .button:disabled { cursor:wait; opacity:.72; }
.game-claim__note { margin:.7rem 0 0; color:#625a49; font-size:.78rem; }
.confetti-canvas { position:fixed; inset:0; z-index:9999; width:100%; height:100%; pointer-events:none; }
@keyframes slot-bounce {
  0%,100% { transform:translateY(0) rotate(-2deg) scale(1); }
  50% { transform:translateY(-8px) rotate(2deg) scale(1.04); }
}
.builder-hero h1 span { display:block; white-space:nowrap; }
.builder-hero__note { margin:1rem 0 0; color:#d8b66a; font-family:var(--serif); font-style:italic; }
.builder-hero__guide { margin:.75rem 0; font-size:.9rem; }
.builder-hero__links { display:flex; flex-wrap:wrap; gap:.25rem 1.25rem; }
.builder-hero__links a { display:inline-flex; align-items:center; min-height:44px; color:#e2bd67; font-size:.9rem; text-underline-offset:.2em; }
.order-screen__notice { margin:1.25rem 0 0; color:#e4dfd2; font-size:.9rem; }
.dabeli-builder { margin:0; }
.builder-step { padding:clamp(4rem,7vw,6.5rem) 0; background:var(--paper); border-bottom:1px solid var(--line); }
.builder-step:has(+ .builder-step) { padding-bottom:clamp(5.5rem,8vw,7.5rem); }
.builder-step--tint { background:#ebe3d4; }
.builder-step__heading { display:flex; gap:1.4rem; align-items:flex-start; margin-bottom:2.25rem; }
.builder-step__heading h2 { margin:0; color:var(--black); font-size:clamp(2.1rem,4vw,3.6rem); }
.builder-step__number { flex:0 0 auto; display:grid; place-items:center; width:54px; height:54px; color:var(--black); border:1px solid var(--black); border-radius:50%; font-family:var(--serif); font-weight:700; }
.choice-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.choice-grid--peanuts { grid-template-columns:repeat(4,minmax(0,1fr)); }
.choice-card { display:block; min-width:0; cursor:pointer; }
.choice-card input,.drink-choice input { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
.choice-card__inner { position:relative; display:block; height:100%; overflow:hidden; background:var(--paper); border:1px solid #aaa48f; transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease; }
.choice-card__image { position:relative; display:block; height:270px; overflow:hidden; }
.choice-card__image--rose { background:#b25e4f; }
.choice-card__image--saffron { background:#cd7a3f; }
.choice-card__image--mint { background:#667052; }
.choice-card__image--sand { background:#d9c8a7; }
.choice-card__image--cream { background:#f4efe4; }
.choice-card__image--lilac { background:#8f6c82; }
.choice-card__image img { width:100%; height:100%; padding:1rem; object-fit:contain; filter:drop-shadow(0 14px 13px rgba(37,28,10,.2)); transition:transform .25s ease; }
.choice-card__copy { position:relative; display:flex; min-height:115px; padding:1.2rem 3.25rem 1.2rem 1.25rem; flex-direction:column; justify-content:center; }
.choice-card__copy strong { color:var(--black); font-family:var(--serif); font-size:clamp(1.2rem,2vw,1.55rem); line-height:1.2; }
.choice-card__title { display:flex; align-items:center; gap:.5rem; }
.choice-card__title > span { min-width:0; }
.choice-card__stamp { width:clamp(34px,4vw,46px); height:clamp(34px,4vw,46px); flex:0 0 auto; object-fit:contain; transform:rotate(-8deg); filter:drop-shadow(0 3px 5px rgba(25,24,20,.18)); }
.choice-card__stamp--small { width:clamp(28px,3vw,36px); height:clamp(28px,3vw,36px); }
.choice-card__copy small { margin-top:.35rem; color:#5b5b51; font-size:.78rem; }
.choice-card__tick { position:absolute; top:50%; right:1rem; display:grid; place-items:center; width:30px; height:30px; color:transparent; border:1px solid #8c8878; border-radius:50%; transform:translateY(-50%); transition:color .2s ease,background .2s ease,border-color .2s ease; }
.choice-card:hover .choice-card__inner { transform:translateY(-4px); border-color:var(--black); box-shadow:0 14px 28px rgba(25,24,20,.12); }
.choice-card:hover img { transform:scale(1.035); }
.choice-card input:focus-visible + .choice-card__inner,.drink-choice input:focus-visible + span { outline:3px solid #b68125; outline-offset:4px; }
.choice-card input:checked + .choice-card__inner { border-color:var(--black); box-shadow:inset 0 0 0 3px var(--black),0 14px 28px rgba(25,24,20,.13); }
.choice-card input:checked + .choice-card__inner .choice-card__tick { color:var(--cream); background:var(--black); border-color:var(--black); }
.builder-step--drink { color:var(--cream); background:var(--olive); border-bottom:0; }
.drink-layout { display:grid; grid-template-columns:1fr; gap:2rem; align-items:start; }
.builder-step__heading--light { margin:0; }
.builder-step__heading--light h2,.builder-step__heading--light .eyebrow { color:var(--cream); }
.builder-step__heading--light .builder-step__number { color:var(--cream); border-color:#d5cfbc; }
.choice-grid--drinks { grid-template-columns:repeat(4,minmax(0,1fr)); }
.choice-card--drink .choice-card__image img { padding:0; object-fit:cover; filter:none; }
.choice-card__image-stamp { position:absolute; top:14px; right:14px; z-index:2; display:block; width:76px; height:76px; overflow:hidden; pointer-events:none; background:transparent; border-radius:50%; box-shadow:0 5px 14px rgba(25,24,20,.18); transform:rotate(5deg); }
.choice-card__image .choice-card__image-stamp img,
.choice-card--drink .choice-card__image .choice-card__image-stamp img { width:100%; height:100%; padding:0; object-fit:cover; border-radius:50%; filter:none; transform:none; transition:none; }
.drink-grid { display:grid; grid-template-columns:1fr 1fr; gap:.8rem; }
.drink-choice { cursor:pointer; }
.drink-choice > span { position:relative; display:flex; min-height:120px; padding:1.3rem 3.4rem 1.3rem 1.4rem; flex-direction:column; justify-content:center; color:var(--black); background:var(--cream); border:2px solid transparent; transition:background .2s ease,border-color .2s ease; }
.drink-choice strong { font-family:var(--serif); font-size:1.25rem; }
.drink-choice small { color:#5b5b51; }
.drink-choice b { position:absolute; top:50%; right:1.2rem; display:grid; place-items:center; width:28px; height:28px; color:transparent; border:1px solid #777567; border-radius:50%; transform:translateY(-50%); }
.drink-choice input:checked + span { background:#e4c779; border-color:var(--black); }
.drink-choice input:checked + span b { color:var(--cream); background:var(--black); }
.deal-includes { margin:.2rem 0 0; color:#e5dfd0; font-size:.9rem; text-align:center; }
.builder-action { position:sticky; bottom:0; z-index:8; padding:.7rem 0; color:var(--cream); background:rgba(25,24,20,.9); border-top:1px solid #4a493e; box-shadow:0 -10px 30px rgba(0,0,0,.16); backdrop-filter:blur(10px); }
.builder-action__inner { display:flex; gap:2rem; align-items:center; justify-content:space-between; }
.builder-action .eyebrow { margin-bottom:.2rem; color:#d8b66a; }
.builder-action p { margin:0; }
.builder-show-order { min-width:220px; color:var(--black); background:#e4c779; border-color:#e4c779; }
.builder-show-order:hover { color:#e4c779; background:transparent; }
.builder-show-order:disabled { cursor:not-allowed; color:#96948c; background:#373630; border-color:#55534a; }
.order-screen[hidden] { display:none; }
.order-screen { position:fixed; inset:0; z-index:1000; overflow:auto; color:var(--cream); background:var(--black); }
.order-screen__close { position:fixed; top:1rem; right:1rem; z-index:1; display:grid; place-items:center; width:50px; height:50px; padding:0; cursor:pointer; color:var(--cream); background:transparent; border:1px solid #8f8b7d; border-radius:50%; font:300 2rem/1 var(--sans); }
.order-screen__close:hover { color:var(--black); background:#e4c779; border-color:#e4c779; }
.order-screen__inner { width:min(920px,calc(100% - 40px)); min-height:100%; margin:auto; padding:clamp(3.5rem,7vw,6rem) 0; display:flex; flex-direction:column; justify-content:center; }
.order-screen__kicker { margin:0 0 1rem; color:#e4c779; font-size:.75rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; }
.order-screen h2 { margin:0 0 2rem; color:var(--cream); font-size:clamp(3.2rem,8vw,7rem); }
.order-screen__list { border-top:1px solid #777367; }
.order-screen__list p { display:grid; grid-template-columns:76px 140px 1fr; gap:1rem; align-items:center; margin:0; padding:.85rem 0; border-bottom:1px solid #777367; }
.order-screen__thumb { width:64px; height:64px; object-fit:cover; object-position:center; background:#f4efe4; border:1px solid #777367; }
.order-screen__list span { color:#d8b66a; font-size:.7rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.order-screen__list strong { color:var(--cream); font-family:var(--serif); font-size:clamp(1.1rem,2.6vw,1.8rem); }
.order-screen__included { margin-top:1rem !important; padding:1rem !important; background:var(--olive); border-bottom:0 !important; }
.order-screen__footer { margin:2rem 0 0; color:#e4c779; font-family:var(--serif); font-size:clamp(1.3rem,3vw,2rem); font-style:italic; text-align:right; }
body.is-order-open { overflow:hidden; }

@media (max-width:1000px) and (min-width:701px) {
  .choice-grid--peanuts { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

.catering-page { background:var(--cream); }
.catering-shop { background:#f2efe8; }
.catering-shop__intro { display:flex; min-height:361px; align-items:center; padding:clamp(2.7rem,5vw,4.25rem) 0; color:var(--cream); background:radial-gradient(circle at 82% 10%,rgba(216,182,106,.16),transparent 28%),linear-gradient(135deg,#15150f 0%,#27291f 100%); border-bottom:1px solid rgba(216,182,106,.32); }
.catering-shop__intro .container { max-width:1180px; }
.catering-shop__intro-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(260px,.42fr); gap:clamp(1.4rem,4vw,3rem); align-items:center; }
.catering-shop__intro .eyebrow { margin-bottom:.55rem; color:#e2bd67; }
.catering-allergen-strip { padding:clamp(1.2rem,3vw,1.8rem) 0; background:#f8f2e6; border-top:1px solid #e4dac8; }
.catering-allergen-note { margin:0; text-align:center; color:#7a3b24; font-weight:800; }
.catering-allergen-note a { color:#5a6545; font-weight:900; text-underline-offset:.18em; }
.catering-shop__intro img { width:100%; height:208px; object-fit:cover; object-position:center 54%; border:1px solid rgba(226,189,103,.38); box-shadow:0 24px 70px rgba(0,0,0,.24); }
.catering-basket .section { padding:clamp(2rem,5vw,4rem) 0; }
.catering-shop__grid { display:grid; grid-template-columns:minmax(210px,.32fr) minmax(0,1fr); gap:clamp(1.25rem,4vw,3rem); align-items:start; }
.catering-shop__heading { position:sticky; top:1rem; }
.catering-shop__heading h2 { margin:.1rem 0 .65rem; color:var(--black); font-size:clamp(2rem,3.5vw,3.25rem); }
.catering-shop__heading p:not(.eyebrow) { color:#596348; }
.basket-card { overflow:hidden; background:#fffdf8; border:1px solid var(--line); box-shadow:0 18px 40px rgba(25,24,20,.07); }
.basket-row { position:relative; display:grid; grid-template-columns:96px minmax(0,1fr) minmax(112px,140px); gap:1rem; align-items:center; padding:1rem clamp(1rem,2.2vw,1.35rem); border-bottom:1px solid #e3ddcf; }
.basket-row__image { width:96px; height:96px; object-fit:contain; padding:.45rem; background:#efe4cf; border:1px solid #dfd2ba; box-shadow:inset 0 0 0 6px rgba(255,255,255,.28); }
.basket-row strong { display:block; margin-bottom:.2rem; color:var(--black); font-family:var(--serif); font-size:clamp(1.15rem,2vw,1.45rem); line-height:1.15; }
.basket-row__title { display:flex !important; align-items:center; gap:.48rem; margin-bottom:.08rem !important; }
.basket-row .basket-row__title > span { display:inline; color:inherit; }
.basket-row__stamp { width:clamp(34px,4.2vw,48px); height:clamp(34px,4.2vw,48px); flex:0 0 auto; object-fit:contain; transform:rotate(-8deg); filter:drop-shadow(0 3px 5px rgba(25,24,20,.18)); }
.spice-meter { display:flex; flex-wrap:wrap; align-items:center; gap:.24rem; margin:.08rem 0 .28rem; color:#7e4324; font:800 .68rem var(--sans); letter-spacing:.08em; line-height:1.25; text-transform:uppercase; }
.spice-meter__label { margin-right:.08rem; color:#5d634e; }
.spice-meter__chillies { display:inline-flex; align-items:center; gap:.05rem; font-size:.78rem; line-height:1; letter-spacing:0; filter:saturate(1.08); }
.basket-row span { display:block; color:#625b4f; }
.basket-row > div > span,.basket-choice-card strong small { color:#625b4f; font-family:var(--sans); font-size:15px; font-weight:400; letter-spacing:normal; line-height:1.6; }
.basket-row label { display:grid; gap:.35rem; color:var(--olive); font-size:.72rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.basket-row input { width:100%; min-height:48px; padding:.65rem .75rem; color:var(--black); background:#fff; border:1px solid var(--line); border-radius:0; font:800 1.15rem var(--sans); text-align:center; }
/* Native spinner gutters offset centred numbers, even while the arrows are hidden. */
.catering-basket input[type="number"] { appearance:textfield; -moz-appearance:textfield; }
.catering-basket input[type="number"]::-webkit-inner-spin-button,
.catering-basket input[type="number"]::-webkit-outer-spin-button { -webkit-appearance:none; margin:0; }
.basket-total { display:grid; grid-template-columns:1fr auto; gap:.1rem 1rem; align-items:center; padding:1rem clamp(1rem,2.2vw,1.35rem); background:#596348; color:var(--cream); }
.basket-total span { font-size:.76rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.basket-total strong { grid-row:span 2; color:#e2bd67; font-family:var(--serif); font-size:clamp(2.5rem,5vw,4rem); line-height:.9; }
.basket-total small { color:#efe8d7; font-weight:700; }
.basket-total.is-ready small { color:#f5d483; }
.basket-card--split { display:grid; grid-template-columns:1fr 1fr; gap:.7rem; }
.basket-card--choices { align-items:stretch; padding:.7rem; background:#fbf4e5; border-color:#dacdac; box-shadow:0 20px 44px rgba(62,54,34,.11); }
.basket-options { display:grid; align-content:start; gap:.75rem; margin:0; padding:1.15rem clamp(.85rem,1.3vw,1.1rem); background:#fffdf8; border:1px solid #dccfb4; border-radius:18px; box-shadow:inset 0 0 0 1px rgba(255,255,255,.55); }
.basket-options:last-child { border-right:1px solid #dccfb4; }
.basket-options legend { width:max-content; margin:0 0 .75rem; padding:.32rem .75rem; color:#3f4d32; background:#efe6d1; border:1px solid #d7c8aa; border-radius:999px; font-family:var(--sans); font-size:.74rem; font-weight:900; letter-spacing:.14em; line-height:1.1; text-transform:uppercase; }
.basket-options__image { width:100%; height:170px; margin-bottom:.35rem; object-fit:cover; object-position:center; border:1px solid #dfd2ba; }
.basket-options label { display:flex; align-items:center; gap:.6rem; min-height:44px; color:#3f4537; font-weight:700; }
.basket-options input { width:18px; height:18px; flex:0 0 auto; }
.basket-choice-grid { display:grid; grid-template-columns:1fr; gap:.65rem; }
.basket-choice-card { position:relative; display:block !important; min-height:0 !important; cursor:pointer; }
.basket-choice-card input { position:absolute; inline-size:1px !important; block-size:1px !important; min-height:0 !important; opacity:0; pointer-events:none; }
.basket-choice-card > span { display:grid; grid-template-columns:104px minmax(0,1fr); align-items:center; min-height:96px; overflow:hidden; background:#fffefa; border:1px solid #dfd2ba; border-radius:16px; box-shadow:0 8px 18px rgba(62,54,34,.06); transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease; }
.basket-choice-card img { width:104px; height:96px; object-fit:cover; object-position:center; background:#efe4cf; }
.basket-choice-card strong { display:flex; align-items:center; min-height:0; padding:.85rem 2.35rem .85rem 1rem; color:#263021; font-family:var(--serif); font-size:clamp(1.05rem,1.55vw,1.22rem); line-height:1.1; letter-spacing:-.015em; text-transform:none; }
.basket-choice-card strong small { display:block; margin-top:.28rem; text-transform:none; }
.basket-choice-card:hover > span { transform:translateY(-2px); border-color:#bfa052; box-shadow:0 10px 20px rgba(25,24,20,.1); }
.basket-choice-card input:focus-visible + span { outline:3px solid #b68125; outline-offset:3px; }
.basket-choice-card input:checked + span { border-color:var(--black); box-shadow:inset 0 0 0 3px var(--black),0 12px 24px rgba(25,24,20,.12); }
.basket-choice-card input:checked + span::after { content:"✓"; position:absolute; top:50%; right:.8rem; display:grid; place-items:center; width:30px; height:30px; color:var(--black); background:#e2bd67; border:1px solid rgba(25,24,20,.18); border-radius:50%; font-weight:900; transform:translateY(-50%); }
.basket-choice-card--quantity { display:grid !important; grid-template-columns:88px minmax(0,1fr) 4.65rem; gap:.55rem; align-items:center; min-height:88px; padding:.55rem; background:#fffefa; border:1px solid #dfd2ba; cursor:default; }
.basket-choice-card--quantity > span { display:contents; min-width:0; }
.basket-choice-card--quantity img { width:88px; height:82px; background:#efe4cf; }
.basket-choice-card--quantity strong { display:flex; flex-direction:column; align-items:flex-start; min-width:0; padding:0; color:#263021; font-family:var(--serif); font-size:clamp(.98rem,1.35vw,1.12rem); line-height:1.08; letter-spacing:-.015em; }
.basket-choice-card--quantity .basket-choice-card__title { flex-direction:row; align-items:center; gap:.4rem; }
.basket-choice-card__title > span { display:flex; min-width:0; flex-direction:column; }
.basket-choice-card--quantity .basket-choice-card__stamp { width:28px; height:28px; flex:0 0 28px; object-fit:contain; background:transparent; transform:rotate(-8deg); filter:drop-shadow(0 2px 3px rgba(25,24,20,.15)); }
.basket-choice-card--quantity:hover > span { transform:none; }
.basket-choice-card--quantity label { display:grid; gap:.35rem; align-content:center; min-height:0; padding:0; color:#3f4d32; background:transparent; border:0; border-radius:0; font-family:var(--sans); font-size:.7rem; font-weight:900; letter-spacing:.12em; text-align:center; text-transform:uppercase; }
@media (min-width:701px) and (max-width:1100px) {
  .basket-card--split { grid-template-columns:minmax(0,1fr); }
}
.basket-choice-card--quantity input[type="number"] { position:static; inline-size:100% !important; block-size:auto !important; width:100%; min-height:48px !important; padding:.45rem .35rem; opacity:1; pointer-events:auto; color:var(--black); background:#fffefa; border:1px solid #cfc3ac; border-radius:0; font:900 1.05rem var(--sans); text-align:center; }
.basket-choice-card--quantity input[type="number"]:focus-visible { outline:3px solid #b68125; outline-offset:2px; }
.catering-details[hidden] { display:none !important; }
.catering-details .catering-form { box-shadow:none; border:0; background:transparent; }
.catering-details .catering-form .button:disabled { cursor:not-allowed; opacity:.5; }
.catering-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.9rem; padding:clamp(1rem,3vw,1.5rem); background:var(--paper); border:1px solid var(--line); box-shadow:0 18px 40px rgba(25,24,20,.08); }
.catering-form label,.catering-form fieldset { display:grid; gap:.4rem; margin:0; color:var(--olive); font-size:.78rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.catering-form > label { align-content:start; }
.catering-form input,.catering-form select,.catering-form textarea { width:100%; min-height:46px; padding:.75rem .85rem; color:var(--black); background:#fffefa; border:1px solid var(--line); border-radius:0; font:1rem var(--sans); letter-spacing:0; text-transform:none; }
.catering-form input[type="date"],.catering-form input[type="time"] { height:60px; min-height:60px; padding:.5rem .85rem; }
.catering-field-note { color:#626858; font-size:.72rem; font-weight:500; letter-spacing:0; line-height:1.35; text-transform:none; }
.catering-form [hidden] { display:none !important; }
.catering-form textarea,.catering-form fieldset,.catering-form__status,.catering-form .button { grid-column:1 / -1; }
.catering-form__notes { grid-column:1 / -1; }
.catering-form fieldset { border:1px solid var(--line); padding:.85rem; grid-template-columns:repeat(2,minmax(0,1fr)); }
.catering-form legend { padding:0 .35rem; color:var(--olive); }
.catering-form fieldset label { display:flex; align-items:center; gap:.5rem; min-height:36px; color:#3f4537; font-size:.82rem; letter-spacing:0; text-transform:none; }
.catering-form input[type="checkbox"],.catering-form input[type="radio"] { width:18px; min-height:18px; height:18px; flex:0 0 auto; }
.catering-form__check { grid-column:1 / -1; display:grid; gap:.55rem; padding:.85rem; background:#fffefa; border:1px solid var(--line); color:#3f4537; }
.catering-form__check > strong { color:var(--olive); font-size:.78rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.catering-form__check label { display:flex; align-items:flex-start; gap:.65rem; min-height:0; color:#3f4537; font-size:.92rem; font-weight:700; letter-spacing:0; line-height:1.35; text-transform:none; }
.catering-form__status { min-height:1.2rem; margin:0; color:#8a3d28; font-weight:700; }
.catering-form .button { justify-self:start; }
.catering-address { grid-column:1 / -1; display:grid; gap:.75rem; min-width:0; }
.catering-address p { margin:0; }
.catering-address__manual { justify-self:start; min-height:44px; border:0; padding:0 .25rem; background:transparent; color:var(--olive); font:inherit; text-decoration:underline; cursor:pointer; }

@media (max-width:700px) {
  .hero { height:calc(100vh - 75px); min-height:calc(100vh - 75px); }
  .hero-inner { height:100%; min-height:0; }
  .hero-copy { padding:.65rem 0; }
  .page-hero,
  .builder-hero,
  .catering-shop__intro { display:block; min-height:0; padding:2.45rem 0; }
  .page-hero { height:auto; }
  .builder-hero__inner,
  .story-hero__grid { grid-template-columns:1fr; gap:1.2rem; }
  .story-hero h2 { max-width:18ch; }
  .story-opening::before { top:1.5rem; left:16px; font-size:4.5rem; }
  .story-opening__copy { width:min(100% - 32px,1120px); padding-left:2.5rem; }
  .story-photo-break { height:auto; aspect-ratio:1672 / 941; }
  .story-photo-break img { object-position:center center; }
  .story-pitch__grid { grid-template-columns:1fr; gap:1.6rem; }
  .story-pitch__heading { position:static; }
  .story-pitch__heading h2 { max-width:14ch; font-size:clamp(2.25rem,11vw,3.15rem); }
  .page-hero h1,
  .builder-hero h1,
  .story-hero h1,
  .catering-shop__intro h1 { font-size:clamp(2.85rem,14vw,4rem); }
  .builder-hero h1 { max-width:100%; font-size:clamp(2.65rem,13vw,3.6rem); }
  .builder-hero h1 span { white-space:normal; }
  .builder-hero__copy { font-size:.98rem; }
  .builder-hero__note { margin:.55rem 0 0; }
  .story-hero__grid,.story-about__grid,.story-food__grid { grid-template-columns:1fr; gap:1.6rem; }
  .story-hero img { height:clamp(180px,52vw,240px); max-height:240px; object-position:center 10%; }
  .story-about__intro h2 { font-size:clamp(2.35rem,11vw,3.25rem); }
  .story-values__grid { grid-template-columns:1fr; }
  .story-values article { min-height:0; padding:1.6rem; border-right:0; border-bottom:1px solid #4b473b; }
  .story-values h2 { max-width:none; font-size:2rem; }
  .story-food img { order:-1; }
  .builder-step { padding:3.2rem 0; }
  .builder-step__heading { gap:.9rem; margin-bottom:1.5rem; }
  .builder-step__number { width:42px; height:42px; font-size:.82rem; }
  .choice-grid { grid-template-columns:1fr; gap:.75rem; }
  .choice-grid--drinks { grid-template-columns:1fr; }
  .choice-card__inner { display:grid; grid-template-columns:125px 1fr; min-height:132px; }
  .choice-card__image { height:100%; min-height:132px; }
  .choice-card__image img { padding:.5rem; }
  .choice-card__image-stamp { top:8px; right:8px; width:52px; height:52px; }
  .choice-card__copy { min-height:132px; padding:1rem 2.8rem 1rem 1rem; }
  .choice-card__copy strong { font-size:1.15rem; }
  .choice-card__title { align-items:flex-start; gap:.38rem; }
  .choice-card__stamp { width:30px; height:30px; margin-top:-.16rem; }
  .choice-card:hover .choice-card__inner { transform:none; }
  .drink-layout { grid-template-columns:1fr; gap:1.6rem; }
  .drink-grid { grid-template-columns:1fr; }
  .drink-choice > span { min-height:86px; }
  .deal-includes { grid-column:1; margin-top:0; }
  .builder-action { padding:.55rem 0; }
  .builder-action__inner { gap:.75rem; }
  .builder-action__inner > div { max-width:46%; }
  .builder-action .eyebrow { display:none; }
  .builder-action p { font-size:.75rem; line-height:1.35; }
  .builder-show-order { min-width:0; padding:.7rem .85rem; }
  .order-screen__inner { width:min(100% - 32px,920px); padding:4.5rem 0 2.5rem; justify-content:flex-start; }
  .order-screen h2 { margin-bottom:1.4rem; font-size:clamp(3rem,17vw,5rem); }
  .order-screen__list p { grid-template-columns:58px 1fr; gap:.2rem .75rem; padding:.65rem 0; }
  .order-screen__thumb { grid-row:span 2; width:50px; height:50px; }
  .order-screen__list span { align-self:end; }
  .order-screen__list strong { align-self:start; }
  .order-screen__list strong { font-size:1.15rem; }
  .order-screen__included { gap:.25rem !important; }
  .order-screen__footer { text-align:left; }
  .catering-shop__intro-grid,
  .catering-shop__grid,
  .basket-card--split { display:grid; grid-template-columns:1fr; }
  .catering-shop .container { width:100%; max-width:100%; padding-inline:16px; }
  .catering-shop__intro-grid > div,
  .catering-shop__heading,
  .basket-row > div { width:100%; max-width:100%; min-width:0; }
  .catering-shop__intro-grid > div,
  .catering-shop__heading { max-width:calc(100vw - 40px); }
  .catering-shop { overflow-x:hidden; }
  .catering-shop__intro-grid { gap:1.2rem; }
  .catering-shop__intro h1 { overflow-wrap:normal; }
  .catering-shop__heading h2 { max-width:12ch; font-size:clamp(1.65rem,7.6vw,2rem); }
  .catering-shop__intro p:not(.eyebrow),
  .catering-shop__heading p:not(.eyebrow) { width:100%; max-width:32ch; font-size:.88rem; overflow-wrap:anywhere; white-space:normal; }
  .catering-shop__intro p:not(.eyebrow) { max-width:620px; font-size:.98rem; overflow-wrap:normal; }
  .catering-shop__intro img { height:clamp(180px,52vw,300px); order:initial; object-position:center 54%; }
  .catering-shop__heading { position:static; }
  .basket-card { width:100%; max-width:calc(100vw - 32px); min-width:0; }
  .basket-row { grid-template-columns:64px minmax(0,1fr) 76px; gap:.5rem .65rem; padding:.7rem; align-items:center; }
  .basket-row > div,
  .basket-row label { min-width:0; }
  .basket-row label { display:grid; width:100%; grid-template-columns:1fr; gap:.28rem; align-items:start; justify-self:end; color:#4e5a3f; font-size:.62rem; }
  .basket-row__image { width:64px; height:64px; padding:.28rem; }
  .basket-row input { width:100%; min-height:44px; padding:.4rem .35rem; font-size:1rem; }
  .basket-row strong { margin-bottom:.1rem; font-size:1.02rem; line-height:1.02; letter-spacing:-.015em; text-wrap:balance; }
  .basket-row__title { gap:.34rem; align-items:flex-start; }
  .basket-row__stamp { width:30px; height:30px; margin-top:-.16rem; }
  .spice-meter { display:block; margin:.03rem 0 .18rem; font-size:.52rem; letter-spacing:.055em; }
  .spice-meter__label { display:block; margin:0 0 .1rem; }
  .spice-meter__chillies { display:flex; gap:.03rem; font-size:.62rem; }
  .basket-row > div > span,.basket-choice-card strong small { font-size:.78rem; line-height:1.2; }
  .basket-options__image { height:150px; }
  .basket-options { padding:1rem; border-right:1px solid #dccfb4; border-bottom:0; }
  .basket-options legend { margin-bottom:.75rem; font-size:.72rem; }
  .basket-choice-grid { grid-template-columns:1fr; gap:.55rem; }
  .basket-choice-card > span { grid-template-columns:82px minmax(0,1fr); min-height:78px; }
  .basket-choice-card img { width:82px; height:78px; aspect-ratio:auto; }
  .basket-choice-card strong { padding:.65rem 2.25rem .65rem .85rem; font-size:.92rem; line-height:1.18; }
  .basket-choice-card--quantity { grid-template-columns:82px minmax(0,1fr) 76px; gap:.5rem .65rem; min-height:78px; padding:.7rem; }
  .basket-choice-card--quantity img { width:82px; height:78px; }
  .basket-choice-card--quantity strong { padding:0; font-size:.92rem; line-height:1.18; }
  .basket-choice-card--quantity label { min-height:0; padding:0; font-size:.62rem; }
  .basket-choice-card--quantity input[type="number"] { min-height:44px !important; padding:.4rem .35rem; font-size:1rem; }
  .basket-choice-card input:checked + span::after { right:.65rem; width:26px; height:26px; font-size:.78rem; }
  .basket-options:last-child { border-bottom:0; }
  .catering-form,
  .catering-form fieldset { grid-template-columns:1fr; }
  .catering-form .button { width:100%; }
}

@media (max-width:700px) {
  /* A compact version of the meal deal for small screens. */
  .meal-includes .container { width:100%; }
  .meal-includes-grid { grid-template-columns:repeat(3,1fr); border-left:0; }
  .meal-includes-grid > div { min-height:166px; padding:1rem .8rem; justify-content:center; border-right:1px solid #70785e; }
  .meal-includes-grid > div:not(:first-child) { justify-content:center; }
  .meal-includes-grid > div:not(:first-child) p { min-height:4.35em; }
  .meal-includes-grid > div:first-child { grid-column:1 / -1; min-height:0; padding:1.5rem 1.35rem; }
  .meal-includes-grid h2 { margin:0; font-size:clamp(2.3rem,11vw,3rem); }
  .meal-includes-grid h3 { margin:0 0 .55rem; font-size:1.02rem; line-height:1.15; }
  .meal-includes-grid p { margin:0; color:#e1ddcf; font-size:.73rem; line-height:1.45; }

  /* Keep the shared guide compact without changing its interaction. */
  .mobile-layer-guide { display:block; padding:3.25rem 0; background:var(--paper); }
  .mobile-layer-guide .container { display:grid; grid-template-columns:1fr; gap:0; }
  .layer-guide__heading { max-width:330px; margin:0 auto 1.5rem; text-align:center; }
  .layer-guide__heading h2 { margin-bottom:.5rem; color:var(--olive); font-size:clamp(2.45rem,12vw,3.25rem); }
  .layer-guide__heading p:not(.eyebrow) { margin:0; color:#555a4d; }
  .layer-guide__stage { position:relative; height:520px; margin:0 -4px; }
  .layer-guide__stage > img { width:100%; height:100%; object-fit:contain; object-position:center; }
  .layer-hotspot { position:absolute; z-index:1; display:flex; min-height:44px; align-items:center; padding:0; cursor:pointer; color:var(--ink); background:transparent; border:0; font:inherit; }
  .layer-hotspot--chutney { top:26%; left:0; }
  .layer-hotspot--peanuts { top:57%; right:0; flex-direction:row-reverse; }
  .layer-hotspot--finish { top:72%; left:0; }
  .layer-hotspot__label { padding:.48rem .55rem; color:var(--black); background:rgba(255,253,248,.94); border:1px solid #aaa48f; font-size:.64rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; transition:background .2s ease,color .2s ease,border-color .2s ease; }
  .layer-hotspot__line { width:42px; height:1px; background:#695a42; }
  .layer-hotspot__dot { width:11px; height:11px; background:#e2bd67; border:2px solid var(--paper); border-radius:50%; box-shadow:0 0 0 1px #695a42; transition:background .2s ease,transform .2s ease; }
  .layer-hotspot[aria-pressed='true'] .layer-hotspot__label { color:var(--cream); background:var(--olive); border-color:var(--olive); }
  .layer-hotspot[aria-pressed='true'] .layer-hotspot__dot { background:#cf754c; transform:scale(1.25); }
  .layer-hotspot:focus-visible { outline:3px solid #b68125; outline-offset:4px; }
  .layer-guide__detail { padding:1.45rem; color:var(--cream); background:var(--olive); }
  .layer-guide__detail .eyebrow { color:#e2bd67; }
  .layer-guide__detail h3 { margin:.1rem 0 .55rem; color:var(--cream); font-size:1.65rem; }
  .layer-guide__detail > p:not(.eyebrow) { margin-bottom:1.1rem; color:#e6e2d7; }
  .layer-guide__detail .button { color:var(--black); background:#e2bd67; border-color:#e2bd67; }

  .dabeli-game .container { width:100%; padding-inline:16px; }
  .dabeli-game__grid { grid-template-columns:1fr; gap:1.15rem; padding:2.2rem 0; }
  .dabeli-game__intro h2 { font-size:clamp(2.35rem,10.5vw,3.15rem); }
  .dabeli-game__intro > p:not(.eyebrow) { margin-bottom:.55rem; font-size:.92rem; }
  .dabeli-game__intro::after { display:none; }
  .dabeli-game__play,
  .rps-game__console { width:100%; max-width:none; margin-inline:0; }
  .dabeli-game__play { gap:.9rem; }
  .game-slot { min-height:146px; gap:.42rem; }
  .game-slot__gesture { font-size:2.9rem; }
  .game-slot__result { font-size:.86rem; line-height:1.2; }
  .game-slot__subcopy { font-size:.7rem; }
  .game-moves { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.35rem; }
  .game-move { width:100%; min-height:44px; padding:.25rem .1rem; font-size:.62rem; letter-spacing:.045em; }
  .game-move__gesture { font-size:1.25rem; }
  .game-result { grid-template-columns:1fr; padding:.25rem 0 0; }
  .game-result h3 { font-size:1.35rem; }
  .game-result p:not(.eyebrow) { font-size:.78rem; }
  .game-claim { margin-top:.65rem; padding:.85rem; }
  .game-claim__row { flex-direction:column; }
  .game-claim .button { width:100%; }
}

@supports (height:100svh) {
  .hero { height:calc(100svh - 88px); }
  @media (max-width:700px) {
    .hero { height:calc(100svh - 75px); min-height:calc(100svh - 75px); }
  }
}
