/* Moongliscious website, v2 design. Hand-written CSS, no framework.
   Alignment system carried over from v1: one container (.wrap, max 1200, 28px gutters, 20px <=760),
   12-column grid with 24px gaps, 8-point spacing tokens. Asymmetry is placed on column lines. */
@font-face{font-family:"Oswald";src:url(../fonts/oswald-var.woff2) format("woff2");font-weight:200 700;font-display:swap}
@font-face{font-family:"DM Sans";src:url(../fonts/dmsans-var.woff2) format("woff2");font-weight:100 1000;font-style:normal;font-display:swap}
@font-face{font-family:"DM Sans";src:url(../fonts/dmsans-italic-var.woff2) format("woff2");font-weight:100 1000;font-style:italic;font-display:swap}

:root{
  --deep:#0B391E; --leaf:#218C44; --lime:#6ABD4F; --sun:#FFCC49; --cream:#FFF6E3; --paper:#fff;
  --ink:#0B391E; --line:rgba(11,57,30,.18);
  --wrap:1200px; --gutter:28px; --col-gap:24px;
  --col:calc((min(100vw, var(--wrap)) - 2*var(--gutter) - 11*var(--col-gap))/12);
  --sp-section:112px; --sp-head:56px; --sp-cta:48px;
  --header-h:76px; --r:20px;
  --display:"Oswald",Impact,"Arial Narrow",sans-serif;
  --body:"DM Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 16px)}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
html,body{overflow-x:clip}
body{margin:0;font-family:var(--body);font-size:18px;line-height:1.6;color:var(--ink);background:var(--cream);-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3,h4{font-family:var(--display);font-weight:700;line-height:1;letter-spacing:.003em;margin:0;text-transform:uppercase;text-wrap:balance}
p{margin:0 0 1em;text-wrap:pretty}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gutter)}
.skip{position:absolute;left:-999px;top:8px;background:var(--sun);padding:12px 16px;z-index:100;border-radius:8px}
.skip:focus{left:12px}
.sun{color:var(--sun)}
.eyebrow{font-family:var(--display);font-size:15px;font-weight:500;line-height:1.2;letter-spacing:.2em;text-transform:uppercase;color:var(--leaf);margin:0 0 16px}
.eyebrow.light{color:var(--sun)}
h2{font-size:clamp(40px,4.6vw,64px)}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;height:52px;padding:0 28px;font-family:var(--display);font-weight:600;font-size:18px;line-height:1;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;border-radius:999px;border:2px solid transparent;cursor:pointer;white-space:nowrap;transition:transform .2s ease,box-shadow .2s ease,background .2s}
.btn:hover{transform:translateY(-2px)}
.btn:focus-visible,a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--lime);outline-offset:3px}
.btn-sun{background:var(--sun);color:var(--deep);box-shadow:0 5px 0 #c99a1f}
.btn-ghost{border-color:var(--cream);color:var(--cream)}
.btn-deep{background:var(--deep);color:var(--cream)}
.btn-line{border-color:var(--deep);color:var(--deep)}
.btn-sm{height:44px;padding:0 20px;font-size:15px}
.btn em{font-style:normal;font-family:var(--body);font-weight:700;font-size:11px;letter-spacing:.04em;background:var(--sun);color:var(--deep);padding:2px 6px;border-radius:4px;text-transform:none;vertical-align:middle}
.cta-row{display:flex;flex-wrap:wrap;gap:16px}
.link-arrow{display:inline-flex;align-items:center;min-height:48px;font-family:var(--display);font-weight:600;font-size:18px;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;color:var(--leaf);background:linear-gradient(currentColor,currentColor) left calc(100% - 10px)/100% 2px no-repeat}
.link-arrow::after{content:"\00a0\2192"}
.link-arrow.light{color:var(--sun)}

/* Handwritten annotations: italic DM Sans + SVG strokes */
.note{position:absolute;display:flex;align-items:flex-end;gap:6px;margin:0;font-family:var(--body);font-style:italic;font-weight:500;font-size:18px;line-height:1.2;color:var(--sun);z-index:4;pointer-events:none}
.note .arrow{flex:none;color:currentColor;overflow:visible}

/* Speech bubbles for the mascot */
.bubble{position:absolute;z-index:6;margin:0;width:max-content;max-width:230px;background:var(--cream);color:var(--deep);font-family:var(--body);font-style:italic;font-weight:600;font-size:16px;line-height:1.35;padding:12px 16px;border:2px solid var(--deep);border-radius:18px;box-shadow:4px 4px 0 var(--deep);text-wrap:balance}
.bubble::after{content:"";position:absolute;width:16px;height:16px;background:inherit;border:inherit;border-width:0 2px 2px 0;border-style:solid;border-color:var(--deep);bottom:-9px;left:28px;transform:rotate(45deg)}
.mascot{display:block;filter:drop-shadow(0 10px 14px rgba(0,0,0,.25))}

/* Header */
.site-header{position:sticky;top:0;z-index:50;background:var(--deep);border-bottom:1px solid rgba(255,246,227,.08)}
.header-inner{display:flex;align-items:center;gap:28px;height:var(--header-h)}
.brand{display:flex;align-items:center}
.brand img{width:178px}
.nav{display:flex;align-items:center;gap:26px;margin-left:auto}
.nav a{display:inline-flex;align-items:center;min-height:44px;font-family:var(--display);font-weight:500;font-size:16px;line-height:1;letter-spacing:.08em;text-transform:uppercase;color:var(--cream);text-decoration:none}
.nav a:hover,.nav a[aria-current]{color:var(--sun)}
.nav-toggle,.burger{display:none}

/* ---------- HERO ---------- */
.hero{position:relative;z-index:3;background:var(--deep);color:var(--cream);padding-top:72px;overflow-x:clip}
.hero::before{content:"";position:absolute;inset:0;background:radial-gradient(55% 75% at 85% 60%,rgba(33,140,68,.55),transparent 70%);pointer-events:none}
.hero-grid{position:relative;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--col-gap)}
.hero-copy{grid-column:1 / 7;padding-bottom:var(--sp-section);container-type:inline-size}
.kicker{font-family:var(--display);font-size:15px;font-weight:500;line-height:1.2;letter-spacing:.2em;text-transform:uppercase;color:var(--lime);margin:0 0 24px}
.hero h1,.m-hero h1{margin:0 0 32px;line-height:.9}
h1 .h-big,h1 .h-aside,h1 .h-sun{display:block;white-space:nowrap}
h1 .h-big{font-size:calc(100cqw / 5.16)}
h1 .h-aside{font-family:var(--body);font-style:italic;font-weight:500;text-transform:none;letter-spacing:0;font-size:calc(100cqw / 14);line-height:1.3;color:var(--lime);margin:4px 0 2px 4px}
h1 .h-sun{color:var(--sun);font-size:calc(100cqw / 5.62)}
.lede{font-size:20px;max-width:28em;color:rgba(255,246,227,.88);margin-bottom:32px}

.hero-food{grid-column:7 / 13;position:relative}
.disc{position:absolute;left:0;bottom:-96px;width:calc(100% + 8*var(--col-gap) + 72px);margin:0;transform:rotate(-7deg);transform-origin:30% 60%}
.disc-img{width:100%;filter:drop-shadow(0 34px 34px rgba(0,0,0,.45))}
.note-rim{left:auto;right:34%;bottom:-19%;flex-direction:row;align-items:flex-start;transform:rotate(7deg);color:var(--deep)}
.note-rim .arrow{order:0;width:80px;height:80px;margin-top:-64px;margin-right:2px;transform:scaleX(-1)}
.note-paneer{right:-4px;top:56px;flex-direction:column;align-items:flex-start;text-align:left}
.note-paneer .arrow{width:120px;height:110px;margin-left:80px;margin-top:2px}
.mascot-perch{position:absolute;z-index:5;left:-12%;bottom:-150px;width:31%;max-width:180px}
.mascot-perch .mascot{width:100%;transform:rotate(-4deg)}
.bubble-hero{right:92%;bottom:46%}
.bubble-hero::after{left:auto;right:18px}
.bubble-hero{max-width:270px;text-wrap:wrap}

/* ---------- OVERSIZED TYPE BAND ---------- */
.band{position:relative;z-index:1;background:var(--cream);padding:calc(var(--sp-section) + 120px) 0 var(--sp-section)}
.band-grid{position:relative;container-type:inline-size}
.band-type{margin:0;font-family:var(--display);font-weight:700;text-transform:uppercase;line-height:.92;color:var(--deep)}
.band-type span{display:block;white-space:nowrap;font-size:calc(100cqw / 8.62)}
.band-type span:last-child{text-align:right}
.band-type em{font-style:normal;color:var(--leaf)}
.band-note{position:absolute;left:auto;right:0;bottom:-76px;color:var(--leaf);flex-direction:row;align-items:flex-end;text-align:left}
.band-note .arrow{order:0;width:90px;height:60px;margin:0 6px 14px 0;transform:scaleY(-1)}

/* ---------- DISH RAIL ---------- */
.rail-sec{background:var(--paper);padding:var(--sp-section) 0}
.rail-head{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--col-gap);align-items:end;margin-bottom:var(--sp-head)}
.rail-title{grid-column:1 / 8}
.rail-title h2{margin:0}
.rail-aside{grid-column:9 / 13;position:relative;display:flex;align-items:flex-end;justify-content:flex-end;gap:16px;min-height:150px}
.mascot-namaste{width:96px;margin-right:auto;transform:rotate(-4deg)}
.bubble-rail{left:72px;bottom:118px}
.rail-btns{display:flex;gap:12px}
.rbtn{width:52px;height:52px;border-radius:50%;border:2px solid var(--deep);background:var(--paper);color:var(--deep);display:grid;place-items:center;cursor:pointer}
.rbtn svg{width:22px;height:22px}
.rbtn:hover{background:var(--sun)}
.rail{--card:calc(var(--col)*4 + var(--col-gap)*3);--pad:max(var(--gutter), calc((100vw - var(--wrap))/2 + var(--gutter)));list-style:none;margin:0;display:grid;grid-auto-flow:column;grid-auto-columns:var(--card);gap:var(--col-gap);overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;padding:4px var(--pad) 24px;scroll-padding-inline:var(--pad);scrollbar-width:thin;scrollbar-color:var(--leaf) transparent}
.rail:focus-visible{outline:3px solid var(--lime);outline-offset:-3px}
.dish{scroll-snap-align:start}
.dish-link{display:block;text-decoration:none;color:var(--deep)}
.dish-photo{display:block;border-radius:var(--r);overflow:hidden;aspect-ratio:4/5;background:var(--cream)}
.dish-photo img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.dish-link:hover .dish-photo img{transform:scale(1.05)}
.dish-name{display:block;font-family:var(--display);font-weight:700;font-size:28px;line-height:1.05;text-transform:uppercase;margin:20px 0 8px}
.dish-desc{display:block;font-size:16px;line-height:1.5;color:rgba(11,57,30,.82)}
.rail-foot{margin-top:24px}

/* ---------- EDITORIAL SPLIT ---------- */
.story{position:relative;background:var(--deep);color:var(--cream);padding:var(--sp-section) 0;min-height:760px}
.story-photo{position:absolute;left:0;top:0;bottom:0;width:calc(50% - var(--col-gap)/2)}
.story-photo img{width:100%;height:100%;object-fit:cover}
.story-grid{position:relative;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--col-gap);align-items:center;min-height:536px}
.story-chef{grid-column:4 / 8;align-self:end;position:relative;margin-bottom:-24px}
.story-chef img{width:100%;border-radius:var(--r);border:6px solid var(--cream);box-shadow:0 24px 40px -16px rgba(0,0,0,.6);transform:rotate(-3deg)}
.bubble-chef{left:-12px;top:-64px}
.story-copy{grid-column:8 / 13}
.story-copy h2{margin-bottom:40px}
.verbs{list-style:none;margin:0;padding:0}
.verbs li{display:grid;grid-template-columns:minmax(0,190px) 1fr;column-gap:24px;align-items:baseline;padding:16px 0;border-top:1px solid rgba(255,246,227,.16)}
.verbs li:last-child{border-bottom:1px solid rgba(255,246,227,.16)}
.verb{font-family:var(--display);font-weight:700;font-size:44px;line-height:1;text-transform:uppercase}
.verbs li > span:last-child{font-size:17px;color:rgba(255,246,227,.85)}

/* ---------- FULL-BLEED PHOTO WITH ANNOTATION ---------- */
.bleed{position:relative;background:var(--sun);overflow:hidden}
.bleed-img{width:100%;aspect-ratio:2/1;object-fit:cover}
.bleed-wrap{position:absolute;inset:0;padding-top:56px;pointer-events:none}
.bleed-card{width:calc(var(--col)*5 + var(--col-gap)*4);background:var(--deep);color:var(--cream);border-radius:var(--r);padding:32px;pointer-events:auto;box-shadow:0 24px 40px -18px rgba(0,0,0,.5)}
.bleed-card .eyebrow{color:var(--sun)}
.bleed-card h2{font-size:clamp(36px,3.8vw,52px);margin-bottom:16px}
.bleed-card p:not(.eyebrow){font-size:17px;color:rgba(255,246,227,.88);margin-bottom:8px}
.bleed-card .link-arrow{color:var(--sun)}
.bn{color:var(--deep);font-size:19px;font-weight:600}
.bn span{background:var(--cream);color:var(--deep);padding:8px 12px;border-radius:10px;box-shadow:3px 3px 0 var(--deep);white-space:nowrap}
.bn{color:var(--deep)}
.bn-edge{left:3%;top:79%;flex-direction:row;align-items:center;transform:rotate(-3deg)}
.bn-edge .arrow{order:2;width:72px;height:48px;margin-left:4px}
.bn-fill{left:62%;top:85%;flex-direction:row;align-items:center;transform:rotate(2deg)}
.bn-fill .arrow{order:0;width:56px;height:56px;margin-right:4px;transform:scaleX(-1)}
.bn-dip{left:auto;right:14%;top:5%;flex-direction:column;align-items:center;transform:rotate(3deg)}
.bn-dip .arrow{order:2;width:64px;height:64px;margin:2px 0 0 60px;transform:rotate(90deg)}

/* ---------- MIZZA STACK ---------- */
.mizza{background:var(--leaf);color:var(--cream);padding:var(--sp-section) 0}
.mizza-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--col-gap);align-items:center}
.mizza-copy{grid-column:1 / 6}
.mizza-copy h2{margin-bottom:24px}
.mizza-copy p{color:rgba(255,246,227,.9);margin-bottom:32px}
.stack{grid-column:7 / 13;position:relative;padding-bottom:120px}
.st{margin:0;position:relative}
.st img{width:100%;border-radius:var(--r);box-shadow:0 26px 40px -20px rgba(0,0,0,.55)}
.st figcaption{position:absolute;left:16px;top:16px;font-family:var(--display);font-weight:600;font-size:14px;letter-spacing:.12em;text-transform:uppercase;background:var(--cream);color:var(--deep);padding:6px 12px;border-radius:999px}
.st-b{position:absolute;width:calc(var(--col)*2 + var(--col-gap)*2);right:calc(-1 * var(--col-gap));bottom:0;transform:rotate(3deg)}
.st-b img{border:6px solid var(--cream)}
.st-note{left:0;bottom:24px;color:var(--sun);flex-direction:column;align-items:flex-start}
.st-note .arrow{order:2;width:120px;height:68px;margin-left:170px;margin-top:-58px}
.quiet{margin:var(--sp-head) 0 0;font-size:15px;color:rgba(255,246,227,.82);max-width:46em}

/* ---------- OUTLETS ---------- */
.outlets-sec{background:var(--cream);padding:var(--sp-section) 0}
.outlets-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--col-gap);align-items:start}
.outlets-head{grid-column:1 / 5;position:sticky;top:calc(var(--header-h) + 32px)}
.outlets-head h2{margin-bottom:24px}
.walker{position:relative;margin-top:96px;width:120px}
.walker .mascot{width:120px;transform:rotate(-5deg)}
.bubble-walk{left:104px;top:-56px}
.outlet-list{grid-column:5 / 13}
.outlet{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));column-gap:var(--col-gap);row-gap:20px;padding:32px 0;border-top:2px solid var(--deep)}
.outlet:last-of-type{border-bottom:2px solid var(--deep)}
.o-name{grid-column:1 / 4}
.o-name .area{display:inline-block;font-family:var(--display);font-size:13px;line-height:1.4;letter-spacing:.14em;text-transform:uppercase;background:var(--deep);color:var(--cream);padding:4px 10px;border-radius:999px;margin:0 0 12px}
.o-name h3{font-size:30px;white-space:nowrap}
.o-info{grid-column:4 / 9}
.line{display:flex;gap:10px;font-size:16px;line-height:1.5;margin:0 0 8px}
.line svg{flex:none;width:20px;height:20px;color:var(--leaf);margin-top:2px}
.o-actions{grid-column:4 / 9;display:flex;flex-wrap:wrap;align-items:center;gap:16px 32px}
.o-btns{display:flex;gap:12px}
.o-order{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.o-label{font-family:var(--display);font-size:13px;letter-spacing:.14em;text-transform:uppercase}
.o-note{font-size:15px;color:rgba(11,57,30,.72)}
.o-foot{margin:32px 0 0;font-size:17px}
.o-foot a{font-weight:700;color:var(--leaf)}

/* ---------- REVIEWS ---------- */
.reviews{background:var(--deep);color:var(--cream);padding:var(--sp-section) 0}
.reviews-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--col-gap)}
.rev-head{grid-column:1 / 5}
.review{position:relative;margin:0;border-radius:var(--r);padding:40px 32px 28px;background:rgba(255,246,227,.06);display:flex;flex-direction:column}
.review blockquote{margin:0 0 16px;font-style:italic;color:var(--cream)}
.review blockquote p{margin:0}
.review blockquote::before{content:"\201C";display:block;font-family:var(--display);font-size:72px;line-height:.6;color:var(--sun);font-style:normal;margin-bottom:8px}
.review figcaption{margin-top:auto;font-family:var(--display);font-size:15px;letter-spacing:.1em;text-transform:uppercase;color:var(--sun)}
.review-big{grid-column:5 / 13;grid-row:1 / 3}
.review-big blockquote{font-size:30px;line-height:1.3}
.r2{grid-column:5 / 9}.r3{grid-column:9 / 13}
.r2 blockquote,.r3 blockquote{font-size:19px}
.rev-link{grid-column:1 / 5;grid-row:2;align-self:end;margin:0}
.ph-tag{position:absolute;top:-13px;left:24px;font-family:var(--display);font-size:12px;letter-spacing:.14em;text-transform:uppercase;background:var(--sun);color:var(--deep);padding:4px 10px;border-radius:6px}

/* ---------- ENQUIRE ---------- */
.enquire{background:var(--cream);padding:var(--sp-section) 0}
.enquire-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--col-gap);row-gap:var(--sp-head);align-items:start}
.enq-head{grid-column:1 / 8;grid-row:1}
.enq-head h2{margin:0}
.tile{position:relative;background:var(--paper);border:2px solid var(--deep);border-radius:24px;padding:32px;box-shadow:8px 8px 0 var(--deep)}
#catering{grid-column:1 / 8;grid-row:2}
#hello{grid-column:8 / 13;grid-row:1 / 3;margin-top:120px}
.tile-sun{background:var(--sun)}
.tile-tag{font-family:var(--display);font-size:14px;line-height:1.2;letter-spacing:.18em;text-transform:uppercase;color:var(--leaf);margin:0 0 8px}
.tile-sun .tile-tag{color:var(--deep)}
.tile h3{font-size:36px;margin-bottom:16px}
.tile > p:not(.tile-tag){font-size:17px;margin-bottom:0}
.squad-perch{position:absolute;left:24px;right:24px;top:-112px}
.squad-perch img{width:62%;border-radius:16px;border:5px solid var(--cream);box-shadow:0 18px 28px -14px rgba(0,0,0,.5);transform:rotate(-3deg)}
.bubble-squad{right:0;top:8px}
.bubble-squad::after{left:-9px;bottom:auto;top:18px;transform:rotate(135deg)}
#hello{padding-top:132px}
.enq-foot{grid-column:1 / 8;grid-row:3;margin:0;font-size:17px}
.enq-foot a{font-weight:700;color:var(--leaf)}

/* ---------- FAQ ---------- */
.faq{background:var(--paper);padding:var(--sp-section) 0}
.faq-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--col-gap);align-items:start}
.faq-side{grid-column:1 / 5}
.faq-mascot{position:relative;margin-top:120px;width:200px}
.faq-mascot .mascot{width:200px}
.bubble-faq{left:96px;bottom:118px}
.faq-main{grid-column:6 / 13}
details{border-top:2px solid var(--line)}
details:last-of-type{border-bottom:2px solid var(--line)}
summary{cursor:pointer;list-style:none;display:flex;align-items:center;min-height:64px;padding:12px 56px 12px 0;position:relative;font-family:var(--display);font-weight:600;font-size:24px;line-height:1.2;text-transform:uppercase}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";position:absolute;right:0;top:50%;transform:translateY(-50%);width:40px;height:40px;border-radius:50%;background:var(--cream);display:grid;place-items:center;font-size:26px;line-height:1;color:var(--leaf)}
details[open] summary::after{content:"\2013";background:var(--sun);color:var(--deep)}
details p{margin:0 0 24px;font-size:17px;max-width:40em}
.faq-more{margin:24px 0 0}

/* ---------- FOOTER ---------- */
.site-footer{background:var(--deep);color:var(--cream);padding:72px 0 32px}
.foot-top{display:flex;align-items:center;justify-content:space-between;gap:32px;padding-bottom:40px;border-bottom:1px solid rgba(255,246,227,.15)}
.foot-logo{width:220px}
.foot-sign{margin:0;text-align:right}
.foot-sign span{font-family:var(--display);font-weight:700;font-size:clamp(34px,4.4vw,60px);text-transform:uppercase;display:block;line-height:1}
.foot-sign svg{width:220px;height:22px;color:var(--lime);margin-top:6px}
.foot-cols{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:var(--col-gap);row-gap:32px;padding:40px 0}
.foot-cols h4{font-size:18px;line-height:1.2;letter-spacing:.14em;color:var(--sun);margin-bottom:16px}
.foot-cols ul{list-style:none;margin:0;padding:0;font-size:15.5px}
.foot-cols li{margin-bottom:10px}
.foot-cols li span{opacity:.75;font-size:14px}
.foot-cols a{text-decoration:none;border-bottom:1px solid rgba(255,246,227,.3)}
.foot-legal{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:13.5px;opacity:.75;border-top:1px solid rgba(255,246,227,.15);padding-top:24px}
.foot-legal p{margin:0}
.mobile-bar{display:none}

/* ---------- MENU PAGE ---------- */
.m-hero{background:var(--deep);color:var(--cream);padding:72px 0 var(--sp-section);overflow-x:clip}
.m-hero-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--col-gap);align-items:end}
.m-hero-copy{grid-column:1 / 8;container-type:inline-size}
.m-hero h1 .h-big{font-size:calc(100cqw / 4.02)}
.m-hero h1 .h-sun{font-size:calc(100cqw / 6.84)}
.m-hero h1 .h-aside{font-size:calc(100cqw / 18)}
.m-price-note{border-top:1px solid rgba(255,246,227,.2);padding-top:24px}
.m-price-note p{font-size:17px;color:rgba(255,246,227,.88);margin-bottom:24px}
.m-price-note strong{color:var(--sun);font-weight:700}
.m-hero-mascot{grid-column:10 / 13;position:relative;justify-self:end;width:180px}
.m-hero-mascot .mascot{width:180px;transform:rotate(-4deg)}
.bubble-menu{right:120px;bottom:100%;margin-bottom:-8px}
.bubble-menu::after{left:auto;right:24px}
.cat-nav{position:sticky;top:var(--header-h);z-index:40;background:var(--cream);border-bottom:2px solid var(--deep)}
.cat-nav ul{list-style:none;margin:0;padding:12px 0;display:flex;gap:12px;overflow-x:auto;scrollbar-width:none}
.cat-nav a{display:inline-flex;align-items:center;height:48px;padding:0 20px;border-radius:999px;border:2px solid var(--deep);font-family:var(--display);font-weight:600;font-size:16px;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;white-space:nowrap;color:var(--deep)}
.cat-nav a:hover{background:var(--sun)}
.mcat{padding:var(--sp-section) 0;background:var(--cream);scroll-margin-top:calc(var(--header-h) + 74px)}
.mcat.flip{background:var(--paper)}
.mcat-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--col-gap);align-items:start}
.mcat-side{grid-column:1 / 6;position:sticky;top:calc(var(--header-h) + 74px + 32px)}
.items{grid-column:7 / 13;list-style:none;margin:0;padding:0}
.mcat.flip .mcat-side{grid-column:8 / 13;grid-row:1}
.mcat.flip .items{grid-column:1 / 7;grid-row:1}
.mcat-photo{margin:0 0 32px;border-radius:var(--r);overflow:hidden;aspect-ratio:4/3}
.mcat-photo img{width:100%;height:100%;object-fit:cover}
.mcat-side h2{margin-bottom:16px}
.mcat-intro{font-family:var(--display);font-size:22px;line-height:1.25;text-transform:uppercase;letter-spacing:.02em;color:var(--leaf);margin-bottom:12px}
.mcat-note{font-size:17px;margin-bottom:32px}
.item{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:24px;align-items:start;padding:24px 0;border-top:1.5px dashed var(--line)}
.item:first-child{border-top:2px solid var(--deep);padding-top:24px}
.item:last-child{border-bottom:2px solid var(--deep)}
.item-lvl{font-family:var(--display);font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--leaf);margin:0 0 6px}
.item h3{font-size:28px;line-height:1.05;margin-bottom:8px}
.item-desc{font-size:16.5px;margin:0;color:rgba(11,57,30,.86)}
.item-tags{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 0}
.tag{display:inline-flex;align-items:center;gap:6px;font-family:var(--display);font-size:13px;letter-spacing:.1em;text-transform:uppercase;border:1.5px solid var(--deep);border-radius:999px;padding:4px 10px}
.tag-pro{border-color:var(--leaf);color:var(--leaf)}
.price{margin:0;font-family:var(--display);font-weight:600;font-size:20px;line-height:1;white-space:nowrap;border:2px dashed #c99a1f;border-radius:999px;padding:10px 14px}
.price em{font-style:normal;font-family:var(--body);font-weight:700;font-size:12px;background:var(--sun);padding:2px 6px;border-radius:4px;vertical-align:middle}
.m-end{background:var(--deep);color:var(--cream);padding:var(--sp-section) 0}
.m-end-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--col-gap);align-items:end}
.m-end-type{grid-column:1 / 8;margin:0;font-family:var(--display);font-weight:700;font-size:clamp(56px,7vw,104px);line-height:.92;text-transform:uppercase}
.m-end-type span{display:block;color:var(--sun)}
.m-end-copy{grid-column:8 / 13}
.m-end .btn-line{border-color:var(--cream);color:var(--cream)}

/* ---------- Responsive ---------- */
@media (max-width:1180px){
  .nav{gap:18px}.nav a{font-size:15px}
}
@media (max-width:1100px){
  .note-rim{right:46%}
  .rail{--card:calc(var(--col)*5 + var(--col-gap)*4)}
  .o-name{grid-column:1 / 9}
  .o-info,.o-actions{grid-column:1 / 9}
  .review-big blockquote{font-size:26px}
}
@media (max-width:980px){
  :root{--sp-section:88px;--sp-head:48px;--sp-cta:40px}
  .nav-toggle{display:block;position:absolute;opacity:0;width:48px;height:48px;right:var(--gutter);top:calc((var(--header-h) - 48px)/2);margin:0;z-index:3;cursor:pointer}
  .burger{display:flex;flex-direction:column;justify-content:center;gap:6px;width:48px;height:48px;padding:0 4px;order:3}
  .burger span{display:block;height:3px;background:var(--cream);border-radius:2px;transition:.25s}
  .nav{position:absolute;top:var(--header-h);left:0;right:0;flex-direction:column;align-items:stretch;gap:0;background:var(--deep);padding:8px var(--gutter) 24px;border-bottom:3px solid var(--sun);display:none}
  .nav a{font-size:20px;min-height:56px;border-bottom:1px solid rgba(255,246,227,.1)}
  .nav-toggle:checked ~ .nav{display:flex}
  .nav-toggle:checked + .burger span:nth-child(1){transform:translateY(9px) rotate(45deg)}
  .nav-toggle:checked + .burger span:nth-child(2){opacity:0}
  .nav-toggle:checked + .burger span:nth-child(3){transform:translateY(-9px) rotate(-45deg)}
  .header-inner{gap:16px}
  .header-cta{margin-left:auto;order:2}
  .hero-copy{grid-column:1 / -1;padding-bottom:0;max-width:640px}
  .hero-food{grid-column:1 / -1;height:calc(min(100vw,980px) * .58);margin-top:96px}
  .disc{width:96%;left:6%;bottom:-72px}
  .note-rim{left:4%;right:auto;bottom:-14%}
  .note-rim .arrow{transform:none}
  .note-paneer{top:8px;right:0}
  .note-paneer .arrow{height:104px;width:100px;margin-left:96px;transform:rotate(28deg)}
  .mascot-perch{top:auto;bottom:-120px;left:auto;right:2%;width:160px}
  .bubble-hero{left:auto;right:92%;bottom:50%}
  .band{padding-top:calc(var(--sp-section) + 140px)}
  .rail-title{grid-column:1 / -1}
  .rail-aside{grid-column:1 / -1;margin-top:24px}
  .rail{--card:calc(var(--col)*6 + var(--col-gap)*5)}
  .story{padding-top:0;min-height:0}
  .story-photo{position:relative;width:100%;aspect-ratio:16/10}
  .story-grid{min-height:0}
  .story-chef{grid-column:1 / 7;margin:-120px 0 48px}
  .bubble-chef{left:8px}
  .story-copy{grid-column:1 / -1}
  .bleed-img{aspect-ratio:3/2}
  .mizza-copy{grid-column:1 / -1;margin-bottom:48px}
  .stack{grid-column:1 / -1}
  .st-a{width:calc(100% - var(--col)*2 - var(--col-gap)*2)}
  .st-b{right:0}
  .outlets-head{grid-column:1 / -1;position:relative;top:auto;margin-bottom:48px}
  .walker{position:absolute;right:0;top:0;margin:0}
  .outlets-head h2,.outlets-head > p{max-width:calc(100% - 160px)}
  .bubble-walk{left:auto;right:96px;top:-48px}
  .bubble-walk::after{left:auto;right:16px}
  .outlet-list{grid-column:1 / -1}
  .o-name{grid-column:1 / 4}.o-info{grid-column:4 / 9}.o-actions{grid-column:1 / 9}
  .o-name h3{font-size:28px}
  .rev-head{grid-column:1 / -1}
  .review-big{grid-column:1 / -1;grid-row:auto}
  .r2{grid-column:1 / 7}.r3{grid-column:7 / 13}
  .rev-link{grid-column:1 / -1;grid-row:auto}
  .enq-head,#catering,.enq-foot{grid-column:1 / -1;grid-row:auto}
  #hello{grid-column:1 / -1;grid-row:auto;margin-top:96px}
  .squad-perch img{width:300px}
  .bubble-squad{left:316px;right:auto}
  .faq-side{grid-column:1 / -1;position:relative;margin-bottom:40px}
  .faq-mascot{position:absolute;right:0;top:-24px;margin:0;width:150px}
  .faq-mascot .mascot{width:150px}
  .bubble-faq{left:auto;right:110px;bottom:84px}
  .bubble-faq::after{left:auto;right:18px}
  .faq-main{grid-column:1 / -1}
  .foot-cols{grid-template-columns:repeat(2,minmax(0,1fr))}
  .m-hero-copy{grid-column:1 / 10}
  .m-hero-mascot{grid-column:10 / 13;width:140px}
  .m-hero-mascot .mascot{width:140px}
  .mcat-side,.mcat.flip .mcat-side{grid-column:1 / -1;grid-row:auto;position:static;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--col-gap);margin-bottom:40px}
  .mcat-photo{grid-column:1 / 7;grid-row:1 / 6;margin:0}
  .mcat-side > :not(.mcat-photo){grid-column:7 / 13}
  .mcat-side .btn{justify-self:start}
  .items,.mcat.flip .items{grid-column:1 / -1;grid-row:auto}
  .m-end-type,.m-end-copy{grid-column:1 / -1}
  .m-end-type{margin-bottom:32px}
}
@media (max-width:760px){
  :root{--gutter:20px;--sp-section:72px;--sp-head:40px;--sp-cta:32px;--header-h:66px}
  body{font-size:17px}
  h2{font-size:clamp(34px,10vw,44px)}
  .brand img{width:140px}
  .header-cta{display:none}
  .burger{margin-left:auto}
  .btn-sm{height:48px}
  .hero{padding-top:40px}
  .hero-copy{max-width:none}
  .lede{font-size:18px}
  .cta-row .btn{flex:1 1 auto}
  .hero-food{height:84vw;margin-top:112px}
  .disc{width:132%;left:-12%;bottom:-40px;transform:rotate(-8deg)}
  .note-rim{left:17%;right:auto;bottom:auto;top:-26%;font-size:16px;transform:rotate(8deg);color:var(--sun);flex-direction:column}
  .note-rim .arrow{order:2;width:52px;height:52px;margin:2px 0 0 36px;transform:scaleY(-1)}
  .note-paneer{display:none}
  .mascot-perch{left:auto;right:0;bottom:auto;top:-64px;width:118px}
  .bubble-hero{left:auto;right:104px;bottom:auto;top:-30px;max-width:200px}
  .bubble-hero::after{left:auto;right:12px}
  .band{padding:calc(var(--sp-section) + 56px) 0 calc(var(--sp-section) + 72px)}
  .band-type span:last-child{text-align:left}
  .band-type span,.band-type span:first-child{font-size:calc(100cqw / 5.4);white-space:normal}
  .band-note{bottom:-88px;left:auto;right:0;align-items:flex-end;text-align:right}
  .band-note .arrow{order:0;margin:0 8px 18px 0;transform:scaleX(-1);width:72px;height:48px}
  .rail-head{margin-bottom:32px}
  .rail-aside{min-height:140px;margin-top:40px}
  .mascot-namaste{width:84px;margin-left:6px}
  .bubble-rail{left:96px;bottom:72px;max-width:200px}
  .rail{--card:76vw}
  .dish-name{font-size:26px}
  .story-photo{aspect-ratio:4/3}
  .story-chef{grid-column:1 / 11;margin:-88px 0 40px 8px}
  .bubble-chef{left:auto;right:-16px;top:-56px;max-width:180px}
  .bubble-chef::after{left:auto;right:24px}
  .verbs li{grid-template-columns:1fr;row-gap:4px}
  .verb{font-size:38px}
  .bleed-img{aspect-ratio:4/5}
  .bleed-wrap{position:relative;inset:auto;padding:0 var(--gutter);margin-top:-96px;padding-bottom:32px}
  .bleed{background:var(--cream)}
  .bleed-card{width:auto}
  .bn{font-size:17px}
  .bn-edge{left:auto;right:6%;top:8%}
  .bn-edge .arrow{transform:scaleY(-1);margin-top:40px}
  .bn-fill{left:6%;top:calc(100vw * 1.25 * .5);flex-direction:row}
  .bn-fill .arrow{order:2;margin:0 0 0 4px;width:48px;height:48px;transform:none}
  .bn-dip{display:none}
  .st-a{width:100%}
  .st-b{width:46%;right:4px;bottom:0}
  .stack{padding-bottom:150px}
  .st-note{left:0;bottom:16px}
  .st-note .arrow{margin-left:176px;margin-top:-44px;width:80px;height:50px}
  .outlets-head h2,.outlets-head > p{max-width:none}
  .walker{position:relative;margin-top:72px;margin-left:8px;width:96px}
  .walker .mascot{width:96px}
  .bubble-walk{left:88px;right:auto;top:-40px;max-width:200px}
  .bubble-walk::after{left:24px;right:auto}
  .outlet{row-gap:16px;padding:28px 0}
  .o-name,.o-info,.o-actions{grid-column:1 / -1}
  .o-name h3{font-size:30px}
  .o-actions{flex-direction:column;align-items:stretch;gap:16px}
  .o-btns .btn{flex:1}
  .o-order .btn{flex:1}
  .o-order .o-label{flex-basis:100%}
  .review{padding:36px 24px 24px}
  .review-big blockquote{font-size:22px}
  .r2,.r3{grid-column:1 / -1}
  .tile{padding:28px 24px;box-shadow:6px 6px 0 var(--deep)}
  .tile h3{font-size:30px}
  #hello{margin-top:120px;padding-top:128px}
  .squad-perch{left:16px;right:16px;top:-100px}
  .squad-perch img{width:72%}
  .bubble-squad{left:auto;right:0;top:auto;bottom:-6px;max-width:130px}
  .bubble-squad::after{display:none}
  .faq-mascot{width:110px;top:-8px}
  .faq-mascot .mascot{width:110px}
  .faq-side h2{max-width:calc(100% - 120px)}
  .bubble-faq{right:auto;left:-120px;bottom:auto;top:96px;max-width:200px;display:none}
  summary{font-size:20px;min-height:64px}
  .foot-top{flex-direction:column;align-items:flex-start}
  .foot-sign{text-align:left}
  .foot-cols{grid-template-columns:1fr;row-gap:24px}
  html{scroll-padding-bottom:88px}
  .site-footer{padding-bottom:calc(32px + 72px + env(safe-area-inset-bottom))}
  .mobile-bar{display:flex;gap:12px;position:fixed;left:0;right:0;bottom:0;z-index:60;background:var(--deep);padding:10px var(--gutter) calc(10px + env(safe-area-inset-bottom));box-shadow:0 -8px 20px rgba(0,0,0,.2);transition:transform .3s ease}
  .js .mobile-bar{transform:translateY(110%);visibility:hidden;transition:transform .3s ease,visibility 0s linear .3s}
  .js.show-bar .mobile-bar{transform:none;visibility:visible;transition:transform .3s ease}
  .mobile-bar .btn{flex:1;font-size:16px;padding:0 12px}
  .m-hero{padding-bottom:var(--sp-section)}
  .m-hero-copy{grid-column:1 / -1}
  .m-hero-mascot{grid-column:1 / -1;justify-self:start;width:100px;margin-top:40px;order:-1;margin-top:0;margin-bottom:24px;display:none}
  .mcat-side,.mcat.flip .mcat-side{display:block}
  .mcat-photo{margin-bottom:24px}
  .item{grid-template-columns:1fr;row-gap:12px}
  .price{justify-self:start}
  .item h3{font-size:26px}
}
p,.dish-desc,.bubble,.lede{text-wrap:pretty}
@media (max-width:760px){
  .brand{min-height:48px;display:inline-flex;align-items:center}
  .site-footer a{display:inline-flex;align-items:center;min-height:48px}
  .foot-cols li,.foot-cols p{margin-bottom:0}
}
@media (max-width:760px){
  .o-foot a,.enq-foot a{display:inline-block;padding:13px 0;margin:-13px 0}
}

/* ---------- v2 release additions (25 Oct 2026) ---------- */
.price-list{margin:0;display:grid;gap:6px;justify-items:end;text-align:right;min-width:150px}
.price-list div{display:flex;gap:10px;align-items:baseline;justify-content:flex-end}
.price-list dt{font-size:13px;font-weight:600;color:rgba(11,57,30,.72);line-height:1.2}
.price-list dd{margin:0;font-family:var(--display);font-weight:600;font-size:22px;line-height:1}
.tile-cta{margin-top:24px}
.o-name h2,.o-name h3{margin:0}
.o-name a{color:inherit;text-decoration:none}
.o-name a:hover{text-decoration:underline}
.foot-cols li a strong{color:inherit}
.page-hero{background:var(--cream);padding:calc(var(--sp-section) * .6) 0 calc(var(--sp-section) * .4)}
.page-h1{font-size:clamp(44px,7vw,96px);line-height:.95;margin:0 0 20px;max-width:14ch}
.page-hero .lede{max-width:46ch;color:var(--deep);opacity:.9}
.page-hero .kicker{color:var(--leaf)}
.sub-page .outlets-sec{padding-top:24px}
.sub-page .faq{padding-top:48px}
.sub-page .faq-mascot{margin-top:0}
@media (max-width:760px){
  .price-list{justify-items:start;text-align:left}
  .price-list div{justify-content:flex-start}
  .tile-cta .btn{width:100%}
  .site-footer{padding-bottom:96px}
}
@media (max-width:980px){.sub-page .faq-side{display:none}}

/* ---- dish / guide pages and outlet copy (27 Oct 2026) ---- */
.outlets-head .one-h{font-size:clamp(24px,2.4vw,32px);line-height:1.05;margin:0 0 12px;color:var(--deep)}
.page-hero .cta-row{margin-top:24px}
.dish .page-hero .lede{max-width:62ch}
.prose-sec{padding:0 0 calc(var(--sp-section) * .8)}
.wrap.prose{max-width:var(--wrap)}
.prose > *{max-width:960px}
.prose h2{font-size:clamp(28px,3.2vw,40px);margin:56px 0 16px;color:var(--deep)}
.prose h2:first-child{margin-top:8px}
.prose h3{font-size:22px;margin:28px 0 8px;color:var(--leaf)}
.prose p,.prose li{max-width:72ch}
.prose ul{padding-left:1.2em;margin:0 0 1em}
.prose li{margin:6px 0}
.prose a{color:var(--leaf);font-weight:600;text-underline-offset:3px}
.prose .fine-note{background:var(--paper);border-left:5px solid var(--sun);border-radius:14px;padding:14px 18px;font-size:16px;line-height:1.5;max-width:72ch;margin:0 0 12px}
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:20px 0 16px;border-radius:var(--r);border:1.5px solid var(--line);background:var(--paper)}
.price-table{width:100%;border-collapse:collapse;min-width:560px;font-size:16px}
.price-table th,.price-table td{padding:12px 14px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}
.price-table thead th{background:var(--deep);color:var(--cream);font-family:var(--display);text-transform:uppercase;font-weight:500;letter-spacing:.03em}
.price-table tbody tr:nth-child(even){background:rgba(255,204,73,.1)}
.price-table td:not(:first-child){white-space:nowrap;font-weight:700}
.prose .related{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.prose .related li{margin:0}
.prose .related a{display:inline-block;border:2px solid var(--deep);border-radius:999px;padding:8px 16px;text-decoration:none;color:var(--deep)}
.prose .related a:hover{background:var(--sun)}

/* ---- franchise tile + mascot duo (27 Oct 2026 patch) ---- */
#franchise{grid-column:1 / 8;grid-row:3}
#franchise .btn-line{background:transparent}
#hello{grid-row:1 / 4}
.enq-foot{grid-row:4}
@media (max-width:980px){
  #franchise{grid-column:1 / -1;grid-row:auto}
  #hello{grid-row:auto}
  .enq-foot{grid-row:auto}
}

/* ---- zen float for mascots (27 Oct 2026) ---- */
@keyframes zen-float{
  0%,100%{translate:0 0;rotate:0deg}
  25%{translate:0 -6px;rotate:1.5deg}
  50%{translate:0 -10px;rotate:0deg}
  75%{translate:0 -5px;rotate:-1.5deg}
}
.mascot,.squad-perch img{animation:zen-float 6s ease-in-out infinite;transform-origin:50% 90%;will-change:translate,rotate}
.mascot-namaste{animation-duration:7s;animation-delay:-1.5s}
.walker .mascot{animation-duration:6.5s;animation-delay:-3s}
.faq-mascot .mascot{animation-duration:7.5s;animation-delay:-2s}
.squad-perch img{animation-duration:8s;animation-delay:-4s}
@media (prefers-reduced-motion:reduce){.mascot,.squad-perch img{animation:none}}

/* ---- boxed hero notes + gentle sway on handwritten notes (27 Oct 2026) ---- */
.note-paneer span,.note-rim span{background:var(--cream);color:var(--deep);padding:8px 12px;border-radius:10px;box-shadow:3px 3px 0 var(--deep);font-weight:600}
.note-paneer{color:var(--cream)}
@keyframes note-sway{
  0%,100%{translate:0 0;rotate:0deg}
  50%{translate:0 -4px;rotate:-2deg}
}
.note{animation:note-sway 5s ease-in-out infinite;transform-origin:50% 50%}
.note-paneer{animation-duration:5.5s;animation-delay:-1s}
.note-rim{animation-duration:6s;animation-delay:-2.5s}
.bn-edge{animation-delay:-1.2s}
.bn-fill{animation-duration:5.8s;animation-delay:-3s}
.bn-dip{animation-duration:6.2s;animation-delay:-2s}
.band-note{animation-delay:-3.5s}
.st-note{animation-duration:5.6s;animation-delay:-.6s}
@media (prefers-reduced-motion:reduce){.note{animation:none}}
