
/* ============ THEME TOKENS ============ */
body{
  /* DARK (default) */
  --bg:#100C08; --bg-2:#171209; --surface:#1C160E; --surface-2:#241C12; --raise:#2A2116;
  --text:#F4ECDC; --text-2:#C7BAA2; --text-3:#968A76;
  --line:rgba(244,236,220,.10); --line-2:rgba(244,236,220,.06);
  --gold:#F5610F; --gold-hi:#FF8A3D; --gold-deep:#C2330A;
  --gold-grad:linear-gradient(150deg,#F79A22 0%,#F5610F 50%,#ED2B0A 100%);
  --on-gold:#1a0a02;
  --shadow:0 40px 90px -55px #000;
  --grain:.05;
}
body.theme-light{
  --bg:#FFF8EE; --bg-2:#FBF1E2; --surface:#FFFFFF; --surface-2:#FBF3E6; --raise:#FFFFFF;
  --text:#191309; --text-2:#5C5344; --text-3:#8C8171;
  --line:rgba(25,19,9,.12); --line-2:rgba(25,19,9,.07);
  --gold:#DA430A; --gold-hi:#F5610F; --gold-deep:#B02E08;
  --gold-grad:linear-gradient(150deg,#F79A22 0%,#F5610F 50%,#ED2B0A 100%);
  --on-gold:#1a0a02;
  --shadow:0 30px 70px -50px rgba(70,50,10,.5);
  --grain:0;
}
/* cuisine colours (both themes) */
body{ --c-british:#9E3B47; --c-lebanese:#4E874F; --c-greek:#2E7C90; --c-indian:#CB7A25; --c-bengali:#9C3E68; }

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; background:var(--bg); color:var(--text);
  font-family:"Hanken Grotesk",sans-serif;
  font-size:clamp(1rem,.97rem + .16vw,1.06rem); line-height:1.65; overflow-x:hidden;
  -webkit-font-smoothing:antialiased; transition:background .5s ease, color .5s ease;
}
h1,h2,h3,h4{font-family:"Fraunces",Georgia,serif; font-weight:600; line-height:1.04; margin:0; text-wrap:balance}
a{color:inherit; text-decoration:none}
img{max-width:100%; display:block}
.wrap{width:100%; max-width:1200px; margin-inline:auto; padding-inline:clamp(18px,5vw,44px)}
.eyebrow{font-family:"Hanken Grotesk",sans-serif; font-size:.74rem; letter-spacing:.32em; text-transform:uppercase; color:var(--gold); margin:0; display:inline-flex; gap:12px; align-items:center}
.eyebrow::before{content:""; width:26px; height:1px; background:var(--gold); opacity:.6}
.gold{background:var(--gold-grad); -webkit-background-clip:text; background-clip:text; color:transparent}
.flow-rainbow{background:linear-gradient(100deg,var(--c-british),var(--c-indian) 28%,var(--c-bengali) 50%,var(--c-greek) 72%,var(--c-lebanese)); background-size:220% auto; -webkit-background-clip:text; background-clip:text; color:transparent; animation:flow 9s linear infinite}
@keyframes flow{to{background-position:220% center}}
.pdot{display:inline-block; width:8px; height:8px; border-radius:50%; background:var(--c-lebanese); margin-right:4px; animation:pulse 2.2s ease-in-out infinite; vertical-align:middle}
@keyframes pulse{0%,100%{transform:scale(1); opacity:1} 50%{transform:scale(1.6); opacity:.4}}
.btn{display:inline-flex; align-items:center; gap:9px; font-weight:700; font-size:.95rem; padding:14px 26px; border-radius:999px; border:1px solid transparent; cursor:pointer; transition:transform .25s, box-shadow .25s, background .3s, color .3s; font-family:inherit}
.btn-gold{background:var(--gold-grad); color:var(--on-gold); box-shadow:0 14px 30px -14px var(--gold-deep)}
.btn-gold:hover{transform:translateY(-3px); box-shadow:0 20px 40px -16px var(--gold-deep)}
.btn-ghost{background:transparent; color:var(--text); border-color:var(--line)}
.btn-ghost:hover{border-color:var(--gold); color:var(--gold); transform:translateY(-3px)}
.section{padding:clamp(56px,9vw,120px) 0; position:relative; z-index:1}
.stitle{font-size:clamp(2rem,1.4rem + 2.6vw,3.5rem)}
.slead{color:var(--text-2); max-width:56ch; margin-top:16px; font-size:clamp(1.02rem,.98rem + .3vw,1.18rem)}

/* grain + glow atmosphere */
.blobs{position:fixed; inset:0; z-index:0; pointer-events:none; overflow:hidden}
.blob{position:absolute; border-radius:50%; filter:blur(88px); opacity:.15; mix-blend-mode:screen; will-change:transform}
body.theme-light .blob{filter:blur(104px); opacity:.26; mix-blend-mode:normal}
.blob.b1{width:min(44vw,430px); aspect-ratio:1; background:var(--c-british); top:-6%; left:-7%; animation:drift1 20s ease-in-out infinite alternate}
.blob.b2{width:min(38vw,380px); aspect-ratio:1; background:var(--c-lebanese); top:10%; right:-8%; animation:drift2 24s ease-in-out infinite alternate}
.blob.b3{width:min(40vw,400px); aspect-ratio:1; background:var(--c-greek); bottom:-9%; left:12%; animation:drift1 27s ease-in-out infinite alternate}
.blob.b4{width:min(34vw,330px); aspect-ratio:1; background:var(--c-indian); top:42%; left:-8%; animation:drift2 22s ease-in-out infinite alternate}
.blob.b5{width:min(34vw,330px); aspect-ratio:1; background:var(--c-bengali); bottom:8%; right:8%; animation:drift1 25s ease-in-out infinite alternate}
.blob.b6{width:min(30vw,300px); aspect-ratio:1; background:var(--gold); top:58%; left:44%; animation:drift2 30s ease-in-out infinite alternate}
@keyframes drift1{from{transform:translate(0,0) scale(1)}to{transform:translate(48px,36px) scale(1.15)}}
@keyframes drift2{from{transform:translate(0,0) scale(1)}to{transform:translate(-44px,-28px) scale(1.1)}}

/* ============ REVEAL ANIMATION ============ */
.reveal{opacity:0; transform:translateY(28px); transition:opacity .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1; transform:none}
.reveal.d1{transition-delay:.08s}.reveal.d2{transition-delay:.16s}.reveal.d3{transition-delay:.24s}.reveal.d4{transition-delay:.32s}

/* ============ ANNOUNCEMENT ============ */
.topbar{background:var(--bg-2); border-bottom:1px solid var(--line-2); font-size:.8rem; color:var(--text-2); position:relative; z-index:5}
.topbar .wrap{display:flex; align-items:center; justify-content:center; gap:18px; padding-block:9px; text-align:center; flex-wrap:wrap}
.topbar b{color:var(--gold)}
@media(max-width:640px){.topbar .tb-hideM{display:none} .topbar .wrap{gap:0}}

/* ============ NAV ============ */
.nav{position:sticky; top:0; z-index:50; background:color-mix(in srgb, var(--bg) 82%, transparent); backdrop-filter:blur(14px); border-bottom:1px solid transparent; transition:border-color .3s, background .3s, padding .3s}
.nav.scrolled{border-color:var(--line); background:color-mix(in srgb, var(--bg) 94%, transparent)}
.nav .wrap{display:flex; align-items:center; gap:20px; padding-block:16px; transition:padding .3s}
.nav.scrolled .wrap{padding-block:11px}
.brand{display:flex; align-items:center; gap:11px; flex:none}
.brand .badge{width:40px; height:40px; flex:none}
.brand .wm{font-family:"Hanken Grotesk",sans-serif; font-weight:700; letter-spacing:.12em; font-size:1.12rem; color:var(--text)}
.navlinks{display:none; gap:28px; margin-left:auto; align-items:center}
.navlinks a{font-size:.92rem; font-weight:600; color:var(--text-2); position:relative; transition:color .25s}
.navlinks a::after{content:""; position:absolute; left:0; bottom:-6px; height:2px; width:0; background:var(--gold-grad); transition:width .3s}
.navlinks a:hover{color:var(--text)} .navlinks a:hover::after{width:100%}
.nav-actions{display:flex; align-items:center; gap:10px; margin-left:auto}
@media(min-width:940px){ .navlinks{display:flex} .nav-actions{margin-left:0} }
.iconbtn{width:42px; height:42px; border-radius:50%; border:1px solid var(--line); background:transparent; color:var(--text); display:grid; place-items:center; cursor:pointer; transition:border-color .25s, color .25s, transform .3s}
.iconbtn:hover{border-color:var(--gold); color:var(--gold); transform:rotate(12deg)}
.iconbtn svg{width:19px; height:19px}
.theme-toggle .moon{display:none}.theme-toggle .sun{display:block}
body.theme-light .theme-toggle .moon{display:block} body.theme-light .theme-toggle .sun{display:none}
.nav .btn{padding:11px 20px; font-size:.9rem}
.hamb{display:grid; place-items:center}
@media(min-width:940px){ .hamb{display:none} .nav .order-cta{display:inline-flex} }
.order-cta{display:none}
@media(min-width:520px){ .order-cta{display:inline-flex} }

/* mobile menu */
.mmenu{position:fixed; inset:0; z-index:60; background:var(--bg); transform:translateX(100%); transition:transform .4s cubic-bezier(.4,0,.1,1); display:flex; flex-direction:column; padding:24px}
.mmenu.open{transform:none}
.mmenu .mtop{display:flex; justify-content:space-between; align-items:center; margin-bottom:26px}
.mmenu a{font-family:"Fraunces",Georgia,serif; font-size:2rem; padding:12px 0; border-bottom:1px solid var(--line-2); color:var(--text)}
.mmenu a:hover{color:var(--gold)}

/* ============ HERO ============ */
.hero{position:relative; z-index:1; padding-top:clamp(30px,5vw,60px); padding-bottom:clamp(40px,6vw,80px); overflow:hidden}
.hero .wrap{display:grid; gap:clamp(30px,5vw,60px); align-items:center}
@media(min-width:900px){ .hero .wrap{grid-template-columns:1.05fr .95fr} }
.hero h1{font-size:clamp(3rem,2rem + 6vw,6.4rem); letter-spacing:-.01em; margin:20px 0 0}
.hero h1 .l2{display:block}
.hero .shim{position:relative; background:linear-gradient(100deg,var(--gold-hi),var(--gold) 40%,var(--gold-deep) 60%,var(--gold-hi)); background-size:220% auto; -webkit-background-clip:text; background-clip:text; color:transparent; animation:flow 8s linear infinite}
.hero p.lead{color:var(--text-2); font-size:clamp(1.08rem,1rem + .5vw,1.3rem); max-width:46ch; margin:22px 0 0}
.hero .cta-row{display:flex; flex-wrap:wrap; gap:14px; margin-top:32px}
.partners{display:flex; align-items:center; gap:14px 20px; margin-top:34px; flex-wrap:wrap; color:var(--text-3); font-size:.82rem}
.partners .plist{display:flex; gap:10px; flex-wrap:wrap}
.pill{border:1px solid var(--line); border-radius:999px; padding:7px 14px; font-weight:700; font-size:.8rem; color:var(--text-2); display:inline-flex; gap:7px; align-items:center; transition:border-color .25s,color .25s}
.pill:hover{border-color:var(--gold); color:var(--gold)}
.trust{display:flex; align-items:center; gap:10px; margin-top:22px; color:var(--text-2); font-size:.9rem}
.stars{color:var(--gold); letter-spacing:2px}

.hero-media{position:relative}
.hero-media .frame{position:relative; border-radius:24px; overflow:hidden; border:1px solid var(--line); box-shadow:var(--shadow); aspect-ratio:4/5}
.hero-media .frame img{width:100%; height:100%; object-fit:cover; animation:kb 22s ease-in-out infinite alternate}
@keyframes kb{from{transform:scale(1)}to{transform:scale(1.12)}}
.hero-media .frame::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg, transparent 55%, rgba(0,0,0,.5))}
.floaty{position:absolute; z-index:6; background:var(--surface); border:1px solid var(--line); border-radius:16px; padding:14px 16px; box-shadow:var(--shadow); animation:float 6s ease-in-out infinite}
.floaty.a{top:6%; left:-6%; animation-delay:.2s}
.floaty.b{bottom:8%; right:-5%; animation-delay:1.2s}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
.floaty .k{font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; color:var(--text-3); font-weight:700}
.floaty .v{font-family:"Fraunces",Georgia,serif; font-size:1.5rem; color:var(--gold); font-weight:700; margin-top:2px}
.floaty .row{display:flex; gap:6px; margin-top:6px}
.dot{width:12px;height:12px;border-radius:50%}

/* ============ MARQUEE ============ */
.marquee{border-block:1px solid var(--line); background:var(--bg-2); overflow:hidden; padding:18px 0; position:relative; z-index:1}
.mtrack{display:flex; gap:0; width:max-content; animation:scroll 26s linear infinite}
.mtrack .it{font-family:"Hanken Grotesk",sans-serif; font-weight:700; font-size:clamp(1.2rem,1rem + 1.4vw,2rem); letter-spacing:.14em; padding:0 34px; display:flex; align-items:center; gap:34px; color:var(--text)}
.mtrack .it::after{content:"◆"; color:var(--gold); font-size:.7em}
@keyframes scroll{to{transform:translateX(-50%)}}
.marquee:hover .mtrack{animation-play-state:paused}

/* ============ PILLARS ============ */
.pillars{display:grid; gap:18px; grid-template-columns:repeat(2,1fr)}
@media(min-width:820px){ .pillars{grid-template-columns:repeat(4,1fr)} }
.pillar{padding:26px 22px; border:1px solid var(--line); border-radius:18px; background:var(--surface); transition:transform .3s, border-color .3s}
.pillar:hover{transform:translateY(-6px); border-color:var(--gold)}
.pillar .ic{width:50px;height:50px;border-radius:13px;display:grid;place-items:center;background:color-mix(in srgb,var(--gold) 16%, transparent); color:var(--gold); margin-bottom:16px}
.pillar .ic svg{width:26px;height:26px}
.pillar h3{font-size:1.5rem}
.pillar p{color:var(--text-2); font-size:.92rem; margin:6px 0 0}

/* ============ SPLIT (concept) ============ */
.split{display:grid; gap:clamp(28px,5vw,64px); align-items:center}
@media(min-width:860px){ .split{grid-template-columns:1fr 1fr} .split.rev .media{order:2} }
.split .media{position:relative; border-radius:22px; overflow:hidden; border:1px solid var(--line); box-shadow:var(--shadow); aspect-ratio:5/4}
.split .media img{width:100%;height:100%;object-fit:cover; transition:transform 1.1s ease}
.split .media:hover img{transform:scale(1.06)}
.split .media .tag{position:absolute; left:16px; bottom:16px; background:color-mix(in srgb,var(--bg) 80%, transparent); backdrop-filter:blur(8px); border:1px solid var(--line); border-radius:12px; padding:10px 14px; font-size:.82rem; color:var(--text)}
.mini-stats{display:flex; gap:26px; margin-top:26px; flex-wrap:wrap}
.mini-stats .n{font-family:"Fraunces",Georgia,serif; font-size:2.4rem; color:var(--gold); font-weight:700; line-height:1}
.mini-stats .l{font-size:.82rem; color:var(--text-3); text-transform:uppercase; letter-spacing:.08em; margin-top:4px}

/* ============ CUISINES TABS ============ */
.cuisine-tabs{display:flex; gap:10px; flex-wrap:wrap; margin-top:34px}
.ctab{border:1px solid var(--line); background:var(--surface); color:var(--text-2); padding:11px 20px; border-radius:999px; font-weight:700; font-size:.92rem; cursor:pointer; font-family:inherit; transition:all .28s; display:flex; align-items:center; gap:9px}
.ctab .cdot{width:11px;height:11px;border-radius:50%; background:var(--cc)}
.ctab[aria-selected="true"]{color:var(--on-gold); border-color:transparent; background:var(--gold-grad); transform:translateY(-2px)}
.ctab:hover{border-color:var(--cc); color:var(--text)}
.cpanel{margin-top:30px; border:1px solid var(--line); border-radius:22px; overflow:hidden; background:var(--surface); box-shadow:var(--shadow)}
.cpanel-head{padding:26px clamp(22px,4vw,38px); border-bottom:1px solid var(--line); position:relative; overflow:hidden}
.cpanel-head::before{content:""; position:absolute; inset:0; background:linear-gradient(120deg, color-mix(in srgb,var(--cc) 24%, transparent), transparent 60%)}
.cpanel-head .inner{position:relative}
.cpanel-head .cflag{font-family:"Hanken Grotesk",sans-serif; letter-spacing:.2em; font-size:.72rem; text-transform:uppercase; color:var(--cc); font-weight:700}
.cpanel-head h3{font-size:clamp(1.7rem,1.3rem+1.5vw,2.5rem); margin-top:6px}
.cpanel-head p{color:var(--text-2); margin:8px 0 0; max-width:60ch; font-size:.96rem}
.dishes{display:grid; gap:0}
.dish{display:grid; grid-template-columns:1fr auto; gap:6px 18px; padding:20px clamp(22px,4vw,38px); border-bottom:1px solid var(--line-2); transition:background .25s}
.dish:last-child{border-bottom:0}
.dish:hover{background:color-mix(in srgb,var(--cc) 7%, transparent)}
.dish .dn{font-family:"Fraunces",Georgia,serif; font-size:1.5rem; font-weight:600; color:var(--text); display:flex; align-items:center; gap:10px}
.dish .dv{font-family:"Hanken Grotesk",sans-serif; font-weight:800; color:var(--gold); font-variant-numeric:tabular-nums; white-space:nowrap}
.dish .dd{grid-column:1/2; color:var(--text-2); font-size:.92rem; margin-top:2px}
.allergens{grid-column:1/-1; display:flex; gap:7px; flex-wrap:wrap; margin-top:10px}
.chip{font-size:.68rem; letter-spacing:.03em; border:1px solid var(--line); color:var(--text-3); padding:4px 9px; border-radius:6px; background:var(--bg-2)}
.chip.veg{color:var(--c-lebanese); border-color:color-mix(in srgb,var(--c-lebanese) 40%, transparent)}
.cpanel-foot{padding:18px clamp(22px,4vw,38px); display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; border-top:1px solid var(--line); background:var(--bg-2)}
.cpanel-foot .note{font-size:.8rem; color:var(--text-3)}
.clink{color:var(--cc); font-weight:700; font-size:.92rem; display:inline-flex; gap:7px; align-items:center; transition:gap .25s}
.clink:hover{gap:12px}

/* ============ FAVOURITES ============ */
.fav-grid{display:grid; gap:20px; grid-template-columns:1fr; margin-top:40px}
@media(min-width:680px){ .fav-grid{grid-template-columns:repeat(3,1fr)} }
.fav{border-radius:20px; overflow:hidden; border:1px solid var(--line); background:var(--surface); box-shadow:var(--shadow); transition:transform .35s}
.fav:hover{transform:translateY(-8px) rotate(-1deg)}
.fav .ph{aspect-ratio:4/3; position:relative; overflow:hidden}
.fav .ph img{width:100%;height:100%;object-fit:cover; transition:transform .8s ease}
.fav:hover .ph img{transform:scale(1.08)}
.fav .ph.placeholder{display:grid; place-items:center; background:linear-gradient(150deg, color-mix(in srgb,var(--cc) 60%, #000) , color-mix(in srgb,var(--cc) 30%, #000))}
.fav .ph.placeholder .fi{font-size:3rem; opacity:.9}
.fav .ph .ptag{position:absolute; top:12px; left:12px; background:color-mix(in srgb,#100c08 60%,transparent); backdrop-filter:blur(5px); border:1px solid rgba(244,236,220,.24); color:var(--cream); font-size:.68rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; padding:5px 11px; border-radius:999px}
.fav .ph .photo-soon{position:absolute; bottom:10px; right:10px; background:color-mix(in srgb,#000 45%, transparent); color:#fff; font-size:.64rem; padding:4px 8px; border-radius:5px; letter-spacing:.05em}
.fav .fb{padding:18px 20px 22px}
.fav .fb h3{font-size:1.5rem}
.fav .fb p{color:var(--text-2); font-size:.9rem; margin:4px 0 0}
.fav .fb .fr{display:flex; justify-content:space-between; align-items:center; margin-top:14px}
.fav .fb .fp{font-weight:800; color:var(--gold)}
/* hero slider */
.frame .hslides{position:absolute; inset:0; z-index:1}
.frame .hslide{position:absolute; inset:0; opacity:0; transition:opacity 1s ease}
.frame .hslide.on{opacity:1}
.hdots{position:absolute; left:0; right:0; bottom:14px; z-index:3; display:flex; gap:7px; justify-content:center}
.hdots button{width:8px; height:8px; padding:0; border:none; border-radius:50%; background:rgba(255,255,255,.55); cursor:pointer; transition:.3s}
.hdots button.on{background:var(--gold); width:24px; border-radius:4px}
/* gallery */
.gmarquee{margin-top:36px; display:flex; flex-direction:column; gap:14px; overflow:hidden; -webkit-mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent); mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent)}
.grow{display:flex; width:max-content; animation:gscroll 72s linear infinite; will-change:transform}
.grow.rev{animation-direction:reverse; animation-duration:86s}
.gmarquee:hover .grow{animation-play-state:paused}
@keyframes gscroll{to{transform:translateX(-50%)}}
.gtile{position:relative; flex:0 0 auto; width:clamp(190px,24vw,250px); aspect-ratio:4/3; margin-right:14px; overflow:hidden; border-radius:16px; border:1px solid var(--line); background:var(--surface)}
.gtile img{width:100%; height:100%; object-fit:cover; transition:transform .7s ease}
.gtile:hover img{transform:scale(1.09)}
.gtile .cap{position:absolute; inset:auto 0 0 0; padding:26px 12px 11px; font-size:.8rem; font-weight:700; color:#fff; background:linear-gradient(transparent, rgba(0,0,0,.78)); opacity:0; transform:translateY(8px); transition:.3s}
.gtile:hover .cap{opacity:1; transform:none}
@media (prefers-reduced-motion: reduce){ .gmarquee{overflow-x:auto} .grow{animation:none} }
/* logo + food icons */
.logo{width:auto; display:none; transition:height .3s}
.logo-dark{display:block}
body.theme-light .logo-dark{display:none}
body.theme-light .logo-light{display:block}
.brand .logo{height:70px}
.nav.scrolled .brand .logo{height:58px}
.ctab .cico{display:inline-flex; color:var(--gold)}
.ctab .cico svg{width:19px; height:19px; display:block}
.ctab[aria-selected="true"] .cico{color:var(--on-gold)}
.floaty .ficons{display:flex; gap:10px; align-items:center; margin-top:8px; color:var(--gold)}
.floaty .ficons svg{width:17px; height:17px}
.mtrack .it svg{width:23px; height:23px; margin-right:13px; color:var(--gold); vertical-align:middle}
.fbrand .logo{height:84px; width:auto; margin-bottom:16px}
.mmenu .mtop .logo{height:60px; width:auto}

/* ============ STEPS ============ */
.steps{display:grid; gap:20px; margin-top:44px; counter-reset:st}
@media(min-width:760px){ .steps{grid-template-columns:repeat(3,1fr)} }
.step{position:relative; padding:32px 26px; border:1px solid var(--line); border-radius:20px; background:var(--surface); text-align:center; transition:transform .3s,border-color .3s}
.step:hover{transform:translateY(-6px); border-color:var(--gold)}
.step .num{counter-increment:st; width:56px;height:56px;border-radius:50%; margin:0 auto 16px; display:grid;place-items:center; background:var(--gold-grad); color:var(--on-gold); font-family:"Fraunces",Georgia,serif; font-weight:700; font-size:1.6rem}
.step .num::before{content:"0" counter(st)}
.step h3{font-size:1.55rem}
.step p{color:var(--text-2); font-size:.92rem; margin-top:6px}

/* ============ FRANCHISE ============ */
.franchise{position:relative; z-index:1; background:linear-gradient(180deg,var(--bg-2),var(--bg)); border-block:1px solid var(--line)}
.fr-grid{display:grid; gap:clamp(34px,5vw,64px)}
@media(min-width:940px){ .fr-grid{grid-template-columns:1fr 1fr} }
.fr-benefits{display:grid; gap:16px; margin-top:30px}
.fr-benefit{display:grid; grid-template-columns:auto 1fr; gap:15px; align-items:start}
.fr-benefit .bi{width:44px;height:44px;border-radius:12px;background:color-mix(in srgb,var(--gold) 16%,transparent);color:var(--gold);display:grid;place-items:center;flex:none}
.fr-benefit .bi svg{width:22px;height:22px}
.fr-benefit h4{font-family:"Hanken Grotesk",sans-serif; font-weight:700; font-size:1.02rem; color:var(--text)}
.fr-benefit p{color:var(--text-2); font-size:.9rem; margin-top:2px}
.fr-stats{display:flex; gap:26px; flex-wrap:wrap; margin-top:34px; padding-top:26px; border-top:1px solid var(--line)}
.fr-stat .n{font-family:"Fraunces",Georgia,serif; font-size:clamp(2.2rem,1.6rem+2vw,3.2rem); color:var(--gold); font-weight:700; line-height:1}
.fr-stat .l{font-size:.8rem; color:var(--text-3); text-transform:uppercase; letter-spacing:.08em; margin-top:6px}

/* form */
.fform{background:var(--surface); border:1px solid var(--line); border-radius:24px; padding:clamp(24px,4vw,40px); box-shadow:var(--shadow)}
.fform h3{font-size:1.9rem}
.fform .fsub{color:var(--text-2); font-size:.92rem; margin:6px 0 22px}
.fgrid{display:grid; gap:16px; grid-template-columns:1fr 1fr}
.field{display:flex; flex-direction:column; gap:7px}
.field.full{grid-column:1/-1}
.field label{font-size:.78rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--text-3)}
.field input,.field select,.field textarea{
  background:var(--bg-2); border:1px solid var(--line); border-radius:12px; padding:13px 15px; color:var(--text);
  font-family:inherit; font-size:.95rem; transition:border-color .25s, box-shadow .25s; width:100%
}
.field textarea{resize:vertical; min-height:96px}
.field input:focus,.field select:focus,.field textarea:focus{outline:none; border-color:var(--gold); box-shadow:0 0 0 3px color-mix(in srgb,var(--gold) 22%, transparent)}
.field select{appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23F5610F' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 15px center}
.fform .btn{width:100%; justify-content:center; margin-top:6px}
.fform .privacy{font-size:.76rem; color:var(--text-3); margin-top:14px; text-align:center}
.form-success{display:none; text-align:center; padding:20px 0}
.form-success.show{display:block; animation:pop .5s ease}
@keyframes pop{from{opacity:0; transform:scale(.9)}to{opacity:1;transform:none}}
.form-success .tick{width:64px;height:64px;border-radius:50%;background:var(--gold-grad);color:var(--on-gold);display:grid;place-items:center;margin:0 auto 16px}
.form-success h3{font-size:1.7rem}
.form-success p{color:var(--text-2); margin-top:8px}

/* ============ TESTIMONIALS ============ */
.tgrid{display:grid; gap:20px; margin-top:44px; grid-template-columns:1fr}
@media(min-width:760px){ .tgrid{grid-template-columns:repeat(3,1fr)} }
.tcard{border:1px solid var(--line); border-radius:20px; padding:28px 26px; background:var(--surface); transition:transform .3s,border-color .3s}
.tcard:hover{transform:translateY(-6px); border-color:var(--gold)}
.tcard .stars{font-size:1rem; margin-bottom:14px}
.tcard blockquote{margin:0; font-family:"Fraunces",Georgia,serif; font-size:1.35rem; line-height:1.35; color:var(--text)}
.tcard .who{display:flex; align-items:center; gap:12px; margin-top:20px}
.tcard .av{width:44px;height:44px;border-radius:50%; background:var(--gold-grad); color:var(--on-gold); display:grid;place-items:center; font-weight:800; font-family:"Fraunces",Georgia,serif; font-size:1.2rem}
.tcard .nm{font-weight:700; font-size:.92rem} .tcard .rl{font-size:.8rem; color:var(--text-3)}

/* ============ FAQ ============ */
.faq{max-width:840px; margin:40px auto 0}
.qa{border:1px solid var(--line); border-radius:14px; margin-bottom:12px; overflow:hidden; background:var(--surface)}
.qa summary{list-style:none; cursor:pointer; padding:20px 22px; display:flex; justify-content:space-between; align-items:center; gap:16px; font-weight:700; font-size:1.05rem; color:var(--text)}
.qa summary::-webkit-details-marker{display:none}
.qa summary .pm{width:24px;height:24px;flex:none; position:relative; transition:transform .3s}
.qa summary .pm::before,.qa summary .pm::after{content:""; position:absolute; background:var(--gold); border-radius:2px; top:50%; left:50%; transform:translate(-50%,-50%)}
.qa summary .pm::before{width:14px; height:2px} .qa summary .pm::after{width:2px; height:14px; transition:transform .3s}
.qa[open] summary .pm::after{transform:translate(-50%,-50%) scaleY(0)}
.qa .qbody{padding:0 22px 20px; color:var(--text-2); font-size:.95rem}

/* ============ CTA BAND ============ */
.ctaband{position:relative; z-index:1; text-align:center; border-radius:28px; margin:0 auto; padding:clamp(44px,7vw,88px) clamp(22px,5vw,60px); background:linear-gradient(150deg,var(--surface-2),var(--surface)); border:1px solid var(--gold-line,var(--line)); overflow:hidden}
.ctaband::before{content:""; position:absolute; inset:0; background:radial-gradient(60% 80% at 50% 0%, color-mix(in srgb,var(--gold) 16%, transparent), transparent 70%)}
.ctaband>*{position:relative}
.ctaband h2{font-size:clamp(2.2rem,1.5rem+3vw,4rem)}
.ctaband .cta-row{justify-content:center; margin-top:30px}

/* ============ FOOTER ============ */
.footer{background:var(--bg-2); border-top:1px solid var(--line); position:relative; z-index:1; padding-top:clamp(50px,7vw,84px)}
.fcols{display:grid; gap:34px; grid-template-columns:1fr 1fr}
@media(min-width:760px){ .fcols{grid-template-columns:2fr 1fr 1fr 1fr} }
.fcol h4{font-family:"Hanken Grotesk",sans-serif; font-size:.78rem; letter-spacing:.18em; text-transform:uppercase; color:var(--gold); margin-bottom:16px}
.fcol a,.fcol p{display:block; color:var(--text-2); font-size:.9rem; margin-bottom:10px; transition:color .2s}
.fcol a:hover{color:var(--gold)}
.fbrand .wm{font-family:"Hanken Grotesk",sans-serif; font-weight:700; letter-spacing:.12em; font-size:1.3rem; color:var(--text); display:flex; align-items:center; gap:11px; margin-bottom:14px}
.fbrand p{max-width:34ch}
.fpartners{display:flex; gap:8px; flex-wrap:wrap; margin-top:6px}
.fbot{border-top:1px solid var(--line-2); margin-top:44px; padding:22px 0 40px; display:flex; justify-content:space-between; gap:14px; flex-wrap:wrap; color:var(--text-3); font-size:.82rem}
.fbot a{color:var(--text-3)} .fbot a:hover{color:var(--gold)}

/* back to top */
.totop{position:fixed; right:20px; bottom:20px; z-index:40; width:48px;height:48px;border-radius:50%; background:var(--gold-grad); color:var(--on-gold); border:none; cursor:pointer; display:grid;place-items:center; opacity:0; transform:translateY(20px); transition:opacity .3s, transform .3s; box-shadow:var(--shadow)}
.totop.show{opacity:1; transform:none}

@media (prefers-reduced-motion: reduce){
  *{animation:none !important; scroll-behavior:auto !important}
  .reveal{opacity:1; transform:none; transition:none}
}
/* ============ v2: FLAME REBRAND ADDITIONS ============ */
/* warm background blobs */
.blob.b1{background:#ED2B0A}.blob.b2{background:#F5610F}.blob.b3{background:#F79A22}
.blob.b4{background:#D2330A}.blob.b5{background:#F5610F}
/* flame gradient text (replaces rainbow) */
.flow-rainbow{background:linear-gradient(100deg,#F79A22,#ED2B0A 55%,#F5610F); background-size:220% auto; -webkit-background-clip:text; background-clip:text; color:transparent; animation:flow 8s linear infinite}

/* HERO — framed split (creative: 3D tilt, floaty badges, glow) */
.hero{position:relative; overflow:hidden; padding:clamp(40px,6vw,92px) 0 clamp(52px,7vw,104px); border-bottom:1px solid var(--line); min-height:auto; display:block; align-items:initial; isolation:isolate}
.hero .wrap{display:grid; grid-template-columns:1fr; gap:clamp(40px,5vw,64px); align-items:center; position:relative; z-index:2; padding-top:0; padding-bottom:0}
@media(min-width:900px){.hero .wrap{grid-template-columns:0.86fr 1.14fr; gap:clamp(30px,4vw,50px)}}
.hero .eyebrow{color:var(--gold)}
.hero h1{color:var(--text); font-size:clamp(2.8rem,1.9rem + 5vw,5.6rem); margin:18px 0 0; letter-spacing:-.015em; text-shadow:none}
.hero h1 .l2{display:block; color:var(--gold)}
.hero p.lead{color:var(--text-2); font-size:clamp(1.06rem,1rem + .4vw,1.24rem); max-width:46ch; margin:22px 0 0; text-shadow:none}
.hero .cta-row{margin-top:32px}
.hero .btn-ghost{color:var(--text); border-color:var(--line)}
.hero .btn-ghost:hover{border-color:var(--gold); color:var(--gold)}
.hero .partners{display:flex; align-items:center; gap:14px 18px; margin-top:30px; flex-wrap:wrap; color:var(--text-3); font-size:.82rem}
.hero .plist{display:flex; gap:9px; flex-wrap:wrap}
.hero-media{position:relative}
.hglow{position:absolute; inset:-16% -12%; z-index:0; background:radial-gradient(circle at 62% 42%, color-mix(in srgb,var(--gold) 42%, transparent), transparent 62%); filter:blur(48px); opacity:.55; animation:pulseGlow 6.5s ease-in-out infinite}
@keyframes pulseGlow{0%,100%{opacity:.42; transform:scale(1)}50%{opacity:.68; transform:scale(1.07)}}
.hframe{position:relative; z-index:1; border-radius:26px; overflow:hidden; border:1px solid var(--line); box-shadow:var(--shadow); aspect-ratio:4/5; transform:perspective(1300px) rotateY(-5deg) rotateX(1.5deg); transition:transform .7s cubic-bezier(.2,.8,.2,1)}
.hero-media:hover .hframe{transform:perspective(1300px) rotateY(0) rotateX(0)}
.hframe .hslides{position:absolute; inset:0}
.hframe .hslide{position:absolute; inset:0; opacity:0; transition:opacity 1.1s ease}
.hframe .hslide.on{opacity:1}
.hframe .hslide img{width:100%; height:100%; object-fit:cover; object-position:center}
.hframe::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 52%,rgba(0,0,0,.55))}
.hframe .hdots{position:absolute; left:0; right:0; bottom:14px; z-index:3; display:flex; gap:7px; justify-content:center}
.hframe .hdots button{width:8px;height:8px;padding:0;border:none;border-radius:50%;background:rgba(255,255,255,.55);cursor:pointer;transition:.3s}
.hframe .hdots button.on{background:var(--gold); width:24px; border-radius:4px}
.hero .floaty{position:absolute; z-index:6; background:color-mix(in srgb,var(--surface) 90%, transparent); backdrop-filter:blur(10px); border:1px solid var(--line); border-radius:16px; padding:13px 16px; box-shadow:var(--shadow); animation:float 6s ease-in-out infinite}
.hero .floaty.a{top:6%; left:-4%; animation-delay:.2s}
.hero .floaty.b{bottom:8%; right:-4%; animation-delay:1.2s}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
.hero .floaty .k{font-size:.64rem; letter-spacing:.14em; text-transform:uppercase; color:var(--text-3); font-weight:700}
.hero .floaty .v{font-family:"Fraunces",Georgia,serif; font-size:1.5rem; color:var(--gold); font-weight:700; margin-top:2px}
.hero .floaty .ficons{display:flex; gap:10px; align-items:center; margin-top:8px; color:var(--gold)}
.hero .floaty .ficons svg{width:18px; height:18px}
@media(max-width:560px){ .hero .floaty.a{left:2%} .hero .floaty.b{right:2%} .hframe{aspect-ratio:4/4.4} }

/* GALLERY — dish names always visible (reference style) */
.gtile{width:clamp(240px,30vw,360px); border-radius:14px}
.gtile .cap{opacity:1; transform:none; font-family:"Fraunces",Georgia,serif; font-weight:600; font-size:clamp(1.05rem,.95rem + .5vw,1.35rem); letter-spacing:.01em; padding:44px 16px 15px; background:linear-gradient(transparent, rgba(0,0,0,.15) 30%, rgba(0,0,0,.82))}

/* SIGNATURE DEALS slider — fixed box (reference style) */
.deals .orange-it{font-style:italic; color:var(--gold)}
.dealwrap{margin-top:42px; border:1px solid var(--line); border-radius:26px; overflow:hidden; background:var(--surface); box-shadow:var(--shadow)}
.dealview{position:relative; overflow:hidden}
.dealcard{display:grid; grid-template-columns:1fr; align-items:stretch}
.dealcard>*{animation:dfade .55s ease}
@keyframes dfade{from{opacity:0; transform:translateY(10px)}to{opacity:1; transform:none}}
.dealimg{position:relative; height:270px; overflow:hidden}
.dealimg img{width:100%; height:100%; object-fit:cover; transition:transform 6s ease}
.dealcard:hover .dealimg img{transform:scale(1.06)}
@media(min-width:840px){ .dealcard{grid-template-columns:1.1fr .9fr; height:clamp(440px,42vw,540px)} .dealimg{height:100%} }
.savebadge{position:absolute; top:18px; left:18px; background:var(--gold-grad); color:var(--on-gold); font-family:"Hanken Grotesk",sans-serif; font-weight:800; font-size:.72rem; letter-spacing:.05em; padding:8px 15px; border-radius:999px; box-shadow:0 10px 24px -12px #000; z-index:2}
.dealinfo{padding:clamp(28px,4vw,48px); display:flex; flex-direction:column; justify-content:center}
.dcount{font-family:"Hanken Grotesk",sans-serif; font-weight:800; letter-spacing:.16em; font-size:.76rem; color:var(--gold); margin-bottom:16px}
.dname{font-size:clamp(2rem,1.5rem + 2.2vw,3.2rem); line-height:1.02; color:var(--text)}
.dprice{font-family:"Fraunces",Georgia,serif; color:var(--gold); font-size:1.9rem; font-weight:700; margin:14px 0 8px}
.ddesc{color:var(--text-2); max-width:38ch; font-size:.98rem}
.dealinfo .btn{margin-top:24px; align-self:flex-start}
.dealnav{display:flex; align-items:center; gap:20px; padding:20px clamp(20px,4vw,40px) 24px; border-top:1px solid var(--line); background:var(--bg-2)}
.dprog{display:flex; gap:8px; flex:1; max-width:320px}
.dprog span{height:4px; flex:1; border-radius:2px; background:var(--line); transition:background .3s}
.dprog span.on{background:var(--gold)}
.darrows{display:flex; gap:10px; margin-left:auto}
.darrow{width:46px; height:46px; border-radius:50%; border:1px solid var(--line); background:transparent; color:var(--text); cursor:pointer; display:grid; place-items:center; transition:border-color .25s,color .25s,transform .25s}
.darrow:hover{border-color:var(--gold); color:var(--gold); transform:translateY(-2px)}

/* DELIVERY PLATFORM cards */
.platforms{display:grid; gap:18px; grid-template-columns:1fr; margin-top:46px; text-align:left}
@media(min-width:720px){.platforms{grid-template-columns:repeat(3,1fr)}}
.platform{position:relative; display:flex; align-items:center; gap:16px; padding:24px 26px; border:1px solid var(--line); border-radius:18px; background:var(--surface); overflow:hidden; transition:transform .3s,border-color .3s,box-shadow .3s}
.platform::before{content:""; position:absolute; top:0; left:0; right:0; height:3px; background:var(--pc)}
.platform:hover{transform:translateY(-6px); border-color:color-mix(in srgb,var(--pc) 55%, transparent); box-shadow:0 24px 50px -34px var(--pc)}
.platform.je{--pc:#FF8000}.platform.dl{--pc:#00CCBC}.platform.ue{--pc:#06C167}
.platform .plogo{flex:none; width:52px; height:52px; display:grid; place-items:center}
.platform .plogo svg{width:100%; height:100%}
.platform .ptxt b{font-family:"Fraunces",Georgia,serif; font-size:1.4rem; color:var(--text); display:block; line-height:1}
.platform .ptxt small{font-family:"Hanken Grotesk",sans-serif; font-weight:700; letter-spacing:.11em; font-size:.66rem; text-transform:uppercase; color:var(--text-3); margin-top:7px; display:block}
/* v3: justified body prose (headings/buttons stay aligned) */
.slead,.lead,.ddesc,.fform .fsub,.pillar p,.step p,.fr-benefit p,.fav .fb p,.qa .qbody,.fbrand p,.split p.slead{text-align:justify; text-justify:inter-word; -webkit-hyphens:auto; hyphens:auto}
@media(max-width:520px){ .slead,.lead,.ddesc,.step p,.pillar p,.fr-benefit p,.qa .qbody,.fbrand p{hyphens:auto} }
/* ===== v5: premium animation layer ===== */
.btn-gold{position:relative; overflow:hidden}
.btn-gold::after{content:""; position:absolute; top:0; left:-130%; width:65%; height:100%; background:linear-gradient(100deg, transparent, rgba(255,255,255,.5), transparent); transform:skewX(-18deg)}
.btn-gold:hover::after{animation:shine .95s ease}
@keyframes shine{to{left:140%}}
.platform .plogo{transition:transform .4s cubic-bezier(.2,.8,.2,1)}
.platform:hover .plogo{transform:scale(1.12) rotate(-3deg)}
.hero-scroll{position:absolute; left:50%; bottom:20px; transform:translateX(-50%); z-index:3; display:flex; flex-direction:column; align-items:center; gap:8px; color:rgba(255,255,255,.72); font:700 .6rem/1 "Hanken Grotesk",sans-serif; letter-spacing:.24em; text-transform:uppercase; animation:floaty 2.4s ease-in-out infinite}
.hero-scroll .mouse{width:22px; height:34px; border:2px solid rgba(255,255,255,.6); border-radius:12px; position:relative}
.hero-scroll .mouse::before{content:""; position:absolute; top:6px; left:50%; width:3px; height:6px; background:var(--gold); border-radius:2px; transform:translateX(-50%); animation:scrollw 1.6s ease-in-out infinite}
@keyframes scrollw{0%{opacity:0; transform:translate(-50%,0)}30%,70%{opacity:1}100%{opacity:0; transform:translate(-50%,10px)}}
@keyframes floaty{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,7px)}}
.dname,.stitle{background-size:100%}
.fav:hover,.tcard:hover,.pillar:hover,.step:hover{box-shadow:0 30px 60px -40px color-mix(in srgb,var(--gold) 50%, #000)}
.ctab{transition:all .28s cubic-bezier(.2,.8,.2,1)}
@media (prefers-reduced-motion: reduce){ .hero-scroll{display:none} .btn-gold:hover::after{animation:none} .dealcard:hover .dealimg img{transform:none} }
/* ===== v6: FIVE KITCHENS showcase + full-menu drawer ===== */
.kgrid{display:grid; gap:16px; grid-template-columns:1fr; margin-top:40px}
@media(min-width:560px){.kgrid{grid-template-columns:1fr 1fr}}
@media(min-width:1040px){.kgrid{grid-template-columns:repeat(5,1fr)}}
.kcard{position:relative; overflow:hidden; border-radius:20px; border:1px solid var(--line); background:var(--surface); cursor:pointer; text-align:left; padding:0; font-family:inherit; color:var(--text); min-height:340px; display:flex; align-items:flex-end; transition:transform .45s cubic-bezier(.2,.8,.2,1), border-color .3s, box-shadow .4s; isolation:isolate}
.kcard .kimg{position:absolute; inset:0; z-index:-2; background-image:var(--kimg); background-size:cover; background-position:center; transition:transform .9s ease}
.kcard::after{content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg, rgba(8,5,3,.12) 0%, rgba(8,5,3,.5) 52%, rgba(8,5,3,.93) 100%)}
.kcard:hover{transform:translateY(-8px); border-color:var(--gold); box-shadow:0 34px 60px -38px color-mix(in srgb,var(--gold) 55%, #000)}
.kcard:hover .kimg{transform:scale(1.09)}
.kbody{position:relative; padding:20px 18px 22px; width:100%}
.kico{width:40px; height:40px; border-radius:11px; display:grid; place-items:center; background:color-mix(in srgb,var(--gold) 24%, transparent); color:var(--gold); margin-bottom:12px}
.kico svg{width:22px; height:22px}
.kname{font-family:"Fraunces",Georgia,serif; font-size:1.6rem; font-weight:600; color:#fff; display:block; line-height:1}
.ktag{color:rgba(255,255,255,.82); font-size:.86rem; display:block; margin-top:5px}
.kmore{display:inline-flex; align-items:center; gap:7px; color:var(--gold); font-weight:700; font-size:.86rem; margin-top:14px; transition:gap .25s}
.kcard:hover .kmore{gap:12px}

/* full-menu drawer */
.menu-modal{position:fixed; inset:0; z-index:120; display:none}
.menu-modal.open{display:block}
.mm-backdrop{position:absolute; inset:0; background:rgba(4,2,1,.72); backdrop-filter:blur(6px); animation:mmfade .3s ease}
@keyframes mmfade{from{opacity:0}to{opacity:1}}
.mm-panel{position:absolute; top:0; right:0; height:100%; width:min(640px,100%); background:var(--bg); border-left:1px solid var(--line); box-shadow:-40px 0 90px -50px #000; display:flex; flex-direction:column; overflow:hidden; animation:mmslide .45s cubic-bezier(.2,.8,.2,1)}
@keyframes mmslide{from{transform:translateX(100%)}to{transform:none}}
.mm-close{position:absolute; top:16px; right:16px; z-index:5; width:44px; height:44px; border-radius:50%; border:1px solid rgba(255,255,255,.32); background:rgba(0,0,0,.42); color:#fff; cursor:pointer; display:grid; place-items:center; transition:.3s}
.mm-close svg{width:20px; height:20px}
.mm-close:hover{border-color:var(--gold); color:var(--gold); transform:rotate(90deg)}
.mm-head{position:relative; height:210px; flex:none}
.mm-head-img{position:absolute; inset:0; background-size:cover; background-position:center}
.mm-head::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(8,5,3,.25) 0%, rgba(8,5,3,.35) 45%, var(--bg) 100%)}
.mm-head-body{position:absolute; left:0; bottom:0; padding:22px clamp(20px,4vw,32px); z-index:2}
.mm-flag{font-family:"Hanken Grotesk",sans-serif; letter-spacing:.2em; font-size:.72rem; text-transform:uppercase; color:var(--gold); font-weight:700}
.mm-head-body h3{font-size:clamp(1.9rem,1.4rem + 1.8vw,2.7rem); color:#fff; margin-top:6px}
.mm-head-body p{color:rgba(255,255,255,.84); margin-top:5px; font-size:.92rem; max-width:46ch}
.mm-body{flex:1; overflow-y:auto; padding:clamp(20px,3vw,30px) clamp(20px,4vw,32px)}
.mm-cat{margin-bottom:28px}
.mm-cat:last-child{margin-bottom:6px}
.mm-cat h4{font-family:"Hanken Grotesk",sans-serif; letter-spacing:.16em; text-transform:uppercase; font-size:.74rem; color:var(--gold); font-weight:700; padding-bottom:10px; border-bottom:1px solid var(--line); margin:0 0 4px}
.mm-dish{display:grid; grid-template-columns:1fr auto; gap:3px 16px; padding:15px 0; border-bottom:1px solid var(--line-2)}
.mm-dish:last-child{border-bottom:0}
.mm-dish .dn{font-family:"Fraunces",Georgia,serif; font-size:1.3rem; font-weight:700; color:var(--text); display:flex; gap:9px; align-items:baseline}
.mm-dish .dv{font-weight:800; color:var(--gold); font-variant-numeric:tabular-nums; white-space:nowrap}
.mm-dish .dd{grid-column:1/2; color:var(--text-2); font-size:.88rem; margin-top:1px}
.mm-dish .al{grid-column:1/-1; display:flex; gap:6px; flex-wrap:wrap; margin-top:9px}
.mm-foot{flex:none; border-top:1px solid var(--line); padding:16px clamp(20px,4vw,32px); display:flex; align-items:center; gap:14px; flex-wrap:wrap; background:var(--bg-2)}
.mm-foot>span{font-size:.8rem; color:var(--text-3)}
.mm-apps{display:flex; gap:10px; flex-wrap:wrap}
.mm-apps .btn{padding:10px 18px; font-size:.86rem}
body.modal-open{overflow:hidden}
@media (prefers-reduced-motion: reduce){ .mm-panel,.mm-backdrop{animation:none} }
/* ===== v7: footer + cartoon food doodle background ===== */
.fd{pointer-events:none}
.fd svg{width:100%; height:100%; display:block}
@keyframes fdrift{0%,100%{transform:translate(0,0) rotate(0)}50%{transform:translate(16px,-20px) rotate(9deg)}}
@keyframes fdrift2{0%,100%{transform:translate(0,0) rotate(0)}50%{transform:translate(-18px,14px) rotate(-11deg)}}
/* site-wide faint doodles */
.fdoodles{position:fixed; inset:0; z-index:0; pointer-events:none; overflow:hidden}
.fdoodles .fd{position:absolute; color:var(--gold); opacity:.045}
body.theme-light .fdoodles .fd{opacity:.07}
.fd.g1{width:120px;height:120px;top:12%;left:6%;animation:fdrift 26s ease-in-out infinite}
.fd.g2{width:92px;height:92px;top:38%;right:7%;animation:fdrift2 30s ease-in-out infinite}
.fd.g3{width:110px;height:110px;top:66%;left:11%;animation:fdrift 28s ease-in-out infinite}
.fd.g4{width:82px;height:82px;top:84%;right:15%;animation:fdrift2 24s ease-in-out infinite}
.fd.g5{width:104px;height:104px;top:24%;left:47%;animation:fdrift 33s ease-in-out infinite}
/* footer */
.footer{position:relative; overflow:hidden}
.footer .wrap{position:relative; z-index:1}
.footer .food-bg{position:absolute; inset:0; z-index:0; pointer-events:none; overflow:hidden}
.footer .food-bg .fd{position:absolute; color:var(--gold); opacity:.10}
body.theme-light .footer .food-bg .fd{opacity:.12}
.fd.f1{width:92px;height:92px;top:8%;left:4%;animation:fdrift 16s ease-in-out infinite}
.fd.f2{width:70px;height:70px;top:54%;left:15%;animation:fdrift2 20s ease-in-out infinite}
.fd.f3{width:104px;height:104px;top:16%;left:43%;animation:fdrift 22s ease-in-out infinite}
.fd.f4{width:60px;height:60px;top:62%;left:37%;animation:fdrift2 18s ease-in-out infinite}
.fd.f5{width:76px;height:76px;top:18%;right:24%;animation:fdrift 19s ease-in-out infinite}
.fd.f6{width:86px;height:86px;bottom:12%;right:7%;animation:fdrift2 23s ease-in-out infinite}
.fd.f7{width:64px;height:64px;top:6%;right:6%;animation:fdrift 17s ease-in-out infinite}
.fd.f8{width:82px;height:82px;bottom:16%;left:58%;animation:fdrift2 21s ease-in-out infinite}
.fsocial{display:flex; gap:10px; margin:16px 0 18px}
.fsocial a{width:40px; height:40px; border-radius:50%; border:1px solid var(--line); display:grid; place-items:center; color:var(--text-2); transition:border-color .25s,color .25s,transform .3s}
.fsocial a:hover{border-color:var(--gold); color:var(--gold); transform:translateY(-3px)}
.fsocial svg{width:18px; height:18px}
.fbrand .btn-gold{padding:11px 22px; font-size:.9rem}
.fhours{margin-top:12px}
.fhours .fh{display:flex; justify-content:space-between; gap:18px; font-size:.85rem; color:var(--text-2); padding:3px 0; max-width:240px}
.fhours .fh b{color:var(--text); font-weight:700}
@media (prefers-reduced-motion: reduce){ .fd{animation:none !important} }
/* ===== v8: Hungry-yet band + full-menu overlay ===== */
.hungry{background:var(--gold-grad); color:#160801; border-radius:26px; padding:clamp(34px,5vw,60px) clamp(26px,5vw,60px); display:grid; gap:24px 44px; align-items:center; position:relative; overflow:hidden; box-shadow:0 30px 70px -44px color-mix(in srgb,var(--gold) 70%, #000)}
@media(min-width:900px){.hungry{grid-template-columns:1.25fr 1fr auto}}
.hungry-eye{font-family:"Hanken Grotesk",sans-serif; letter-spacing:.26em; text-transform:uppercase; font-weight:800; font-size:.74rem; color:#160801; opacity:.85; margin:0}
.hungry-h{font-family:"Fraunces",Georgia,serif; font-size:clamp(2.6rem,1.8rem + 3.6vw,4.6rem); color:#160801; line-height:.98; margin:10px 0 0; font-weight:600}
.hungry-info{color:#160801}
.hungry-addr{font-weight:800; font-size:1rem; margin:0}
.hungry-call{font-weight:800; font-size:1rem; margin:12px 0 0; padding-top:12px; border-top:2px solid rgba(22,8,1,.4); display:inline-block}
.hungry-btn{background:#140a05; color:#fff; padding:16px 30px; align-self:center; justify-self:start; border:none}
.hungry-btn:hover{background:#000; transform:translateY(-3px); color:#fff}
/* v24: sister restaurant showcase */
.sister{position:relative; overflow:hidden; border:1px solid var(--line); border-radius:26px; background:linear-gradient(150deg,var(--surface-2),var(--surface)); box-shadow:var(--shadow); padding:clamp(26px,4vw,48px); display:grid; gap:28px 46px; align-items:center}
.sister::before{content:""; position:absolute; inset:0; background:radial-gradient(60% 90% at 100% 0%, color-mix(in srgb,var(--gold) 12%, transparent), transparent 65%); pointer-events:none}
@media(min-width:900px){.sister{grid-template-columns:1fr 1.05fr}}
.sis-body{position:relative; z-index:1}
.sis-logo{display:block; max-width:210px; width:62%; height:auto; border-radius:12px; margin:14px 0 2px}
.sis-tag{font-family:"Fraunces",Georgia,serif; font-size:1.45rem; color:var(--gold); font-weight:600; margin:10px 0 0}
.sis-desc{color:var(--text-2); margin:12px 0 24px; max-width:46ch}
.sis-media{position:relative; z-index:1; display:grid; grid-template-columns:1fr 1fr; gap:12px}
.sis-media img{width:100%; height:100%; object-fit:cover; border-radius:14px; aspect-ratio:4/3; box-shadow:0 10px 26px -14px rgba(0,0,0,.6)}
.sis-media .sis-a{grid-column:1/-1; aspect-ratio:16/7}
.kfull{text-align:center; margin-top:36px}

/* full-menu overlay */
.fullmenu{position:fixed; inset:0; z-index:130; display:none; background:var(--bg)}
.fullmenu.open{display:flex; flex-direction:column; animation:mmfade .3s ease}
.fm-top{flex:none; display:flex; align-items:center; gap:14px; padding:13px clamp(16px,4vw,40px); border-bottom:1px solid var(--line); background:color-mix(in srgb,var(--bg) 92%, transparent); backdrop-filter:blur(10px)}
.fm-title{font-family:"Fraunces",Georgia,serif; font-size:1.3rem; font-weight:700; color:var(--text); flex:none}
.fm-tabs{display:flex; gap:8px; overflow-x:auto; flex:1; scrollbar-width:none}
.fm-tabs::-webkit-scrollbar{display:none}
.fm-tab{white-space:nowrap; border:1px solid var(--line); background:var(--surface); color:var(--text-2); padding:8px 16px; border-radius:999px; font-family:inherit; font-weight:700; font-size:.86rem; cursor:pointer; transition:border-color .25s,color .25s}
.fm-tab:hover{border-color:var(--gold); color:var(--gold)}
.fm-close{flex:none; width:44px; height:44px; border-radius:50%; border:1px solid var(--line); background:transparent; color:var(--text); cursor:pointer; display:grid; place-items:center; transition:.3s}
.fm-close:hover{border-color:var(--gold); color:var(--gold); transform:rotate(90deg)}
.fm-close svg{width:20px; height:20px}
.fm-body{flex:1; overflow-y:auto; scroll-behavior:smooth; padding-bottom:20px}
.fm-cuisine{max-width:900px; margin:0 auto; padding:0 clamp(16px,4vw,32px)}
.fm-chead{border-radius:20px; margin-top:26px; padding:32px clamp(20px,3vw,32px); background-size:cover; background-position:center}
.fm-chead .mm-flag{color:var(--gold)}
.fm-chead h3{font-size:clamp(1.8rem,1.4rem + 1.6vw,2.6rem); color:#fff; margin-top:6px}
.fm-chead p{color:rgba(255,255,255,.85); margin-top:5px; max-width:54ch}
.fm-cbody{padding:22px 2px 6px}
.fm-foot{flex:none; border-top:1px solid var(--line); padding:14px clamp(16px,4vw,40px); display:flex; gap:14px; align-items:center; flex-wrap:wrap; background:var(--bg-2)}
.fm-foot>span{font-size:.8rem; color:var(--text-3)}
.fm-foot .mm-apps{display:flex; gap:10px; flex-wrap:wrap}
.fm-foot .btn{padding:10px 18px; font-size:.86rem}
/* v23: per-dish order modal */
.fm-cbody .mm-dish{cursor:pointer; border-radius:12px; transition:background .15s}
.fm-cbody .mm-dish:hover{background:color-mix(in srgb,var(--gold) 7%,transparent)}
.dish-modal{position:fixed; inset:0; z-index:145; display:none; align-items:center; justify-content:center; padding:20px}
.dish-modal.open{display:flex}
.dm-backdrop{position:absolute; inset:0; background:rgba(6,4,2,.72); backdrop-filter:blur(4px)}
.dm-card{position:relative; z-index:1; width:min(480px,100%); background:var(--surface-2); border:1px solid var(--line); border-radius:22px; box-shadow:var(--shadow); padding:clamp(24px,4vw,34px); animation:dmpop .22s ease}
@keyframes dmpop{from{transform:translateY(14px) scale(.97); opacity:0}to{transform:none; opacity:1}}
.dm-close{position:absolute; top:16px; right:16px; width:38px; height:38px; border-radius:50%; border:1px solid var(--line); background:var(--surface); color:var(--text); display:flex; align-items:center; justify-content:center; cursor:pointer}
.dm-close svg{width:18px; height:18px}
.dm-eyebrow{display:inline-flex; align-items:center; gap:9px; font-family:"Hanken Grotesk",sans-serif; letter-spacing:.16em; text-transform:uppercase; font-size:.72rem; font-weight:800; color:var(--gold)}
.dm-eyebrow i{width:22px; height:2px; background:var(--gold); display:inline-block}
.dm-card h3{font-family:"Fraunces",Georgia,serif; font-size:1.7rem; font-weight:700; color:var(--text); margin:14px 0 0; line-height:1.15}
.dm-price{font-family:"Hanken Grotesk",sans-serif; font-weight:800; font-size:1.5rem; color:var(--gold); margin-top:8px}
.dm-note{color:var(--text-2); font-size:.92rem; margin:14px 0 0}
.dm-apps{display:flex; flex-direction:column; gap:12px; margin-top:22px}
.dm-app{display:flex; align-items:center; gap:14px; padding:15px 20px; border-radius:40px; font-family:"Hanken Grotesk",sans-serif; font-weight:800; font-size:1.02rem; text-decoration:none; transition:transform .12s, filter .15s}
.dm-app:hover{transform:translateY(-1px); filter:brightness(1.05)}
.dm-app .dm-arw{margin-left:auto}
.dm-app .dm-ico{display:inline-flex; align-items:center; justify-content:center; font-weight:800; line-height:.9; border-radius:7px; padding:5px 6px; font-size:.62rem; text-align:center}
.dm-app.ue{background:#06C167; color:#04371f}
.dm-app.ue .dm-ico{background:#04371f; color:#06C167}
.dm-app.dl{background:#00CCBC; color:#00332f}
.dm-app.dl .dm-ico{background:#00332f; color:#00CCBC}
.dm-app.call{background:transparent; border:1px solid var(--line); color:var(--text); justify-content:space-between}
.dm-app.call span{color:var(--gold); font-variant-numeric:tabular-nums}
.dm-code{margin-top:14px; font-size:.84rem; color:var(--text-3); text-align:center}
.dm-soon{margin-top:20px; padding:16px; border:1px dashed var(--line); border-radius:14px; text-align:center; color:var(--text-2); font-size:.92rem}
/* v9: kitchen brand labels */
.klabel{font-family:"Hanken Grotesk",sans-serif; letter-spacing:.18em; font-size:.64rem; font-weight:800; text-transform:uppercase; color:var(--gold); display:block; margin-bottom:5px}
.kname{font-size:clamp(1.15rem,1rem + .55vw,1.42rem) !important; line-height:1.1 !important}
/* v10: 5 kitchens highlight bar */
.kbar{border-block:1px solid var(--line); background:var(--bg-2); position:relative; z-index:1}
.kbar .wrap{display:flex; align-items:center; gap:20px; padding-block:15px; flex-wrap:wrap}
.kbar-lead{font-family:"Hanken Grotesk",sans-serif; font-weight:800; letter-spacing:.16em; text-transform:uppercase; font-size:.7rem; color:var(--text-3); flex:none}
.kbar-row{display:flex; gap:10px; flex:1; flex-wrap:wrap}
.kbar-item{display:flex; align-items:center; gap:11px; padding:10px 17px; border:1px solid var(--line); border-radius:14px; background:var(--surface); color:var(--text); cursor:pointer; font-family:inherit; transition:border-color .25s,transform .25s,box-shadow .3s}
.kbar-item:hover{border-color:var(--gold); transform:translateY(-3px); box-shadow:0 16px 30px -22px color-mix(in srgb,var(--gold) 70%, #000)}
.kbar-item svg{width:22px; height:22px; color:var(--gold); flex:none}
.kbar-item b{font-family:"Fraunces",Georgia,serif; font-weight:600; font-size:.98rem; display:block; line-height:1.05; text-align:left}
.kbar-item small{font-size:.64rem; letter-spacing:.12em; text-transform:uppercase; color:var(--text-3); font-weight:700; display:block; text-align:left; margin-top:2px}
@media(max-width:760px){ .kbar .wrap{flex-direction:column; align-items:flex-start; gap:12px} .kbar-row{width:100%} .kbar-item{flex:1 1 45%; min-width:150px} }
/* v11: on-page menu by country */
.menu-nav{display:flex; gap:9px; flex-wrap:wrap; margin-top:32px; position:sticky; top:72px; z-index:20; background:color-mix(in srgb,var(--bg) 90%, transparent); backdrop-filter:blur(8px); padding:8px 0}
.mnav-tab{display:inline-flex; align-items:center; gap:8px; border:1px solid var(--line); background:var(--surface); color:var(--text-2); padding:9px 16px; border-radius:999px; font-family:inherit; font-weight:700; font-size:.88rem; cursor:pointer; transition:border-color .25s,color .25s,transform .2s}
.mnav-tab svg{width:18px; height:18px; color:var(--gold)}
.mnav-tab:hover{border-color:var(--gold); color:var(--gold); transform:translateY(-2px)}
.mcountry{margin-top:26px; border:1px solid var(--line); border-radius:24px; overflow:hidden; background:var(--surface); box-shadow:var(--shadow); scroll-margin-top:90px}
.mc-head{padding:clamp(34px,5vw,60px) clamp(24px,4vw,46px); background-size:cover; background-position:center}
.mc-brand{font-family:"Hanken Grotesk",sans-serif; letter-spacing:.18em; text-transform:uppercase; font-size:.72rem; font-weight:800; color:var(--gold)}
.mc-head h3{font-family:"Fraunces",Georgia,serif; font-size:clamp(2.1rem,1.6rem + 2.2vw,3.2rem); color:#fff; margin:8px 0 0; line-height:1}
.mc-head p{color:rgba(255,255,255,.85); margin:8px 0 0; max-width:52ch}
.mc-body{padding:clamp(22px,3vw,40px)}
.mc-dishes{display:grid; gap:0 44px; grid-template-columns:1fr}
@media(min-width:760px){.mc-dishes{grid-template-columns:1fr 1fr}}
.bymenu .mm-cat{margin-bottom:26px}
.bymenu .mm-cat h4{font-family:"Hanken Grotesk",sans-serif; letter-spacing:.16em; text-transform:uppercase; font-size:.76rem; color:var(--gold); font-weight:800; padding-bottom:10px; border-bottom:1px solid var(--line); margin:0 0 4px}
.fm-tab svg{width:16px;height:16px;color:var(--gold);vertical-align:-2px;margin-right:6px}
.fm-cbody .mc-dishes{display:grid;gap:0 44px;grid-template-columns:1fr}
@media(min-width:680px){.fm-cbody .mc-dishes{grid-template-columns:1fr 1fr}}
/* v22: menu item thumbnails */
.fm-cbody .mm-dish{display:flex;gap:13px;align-items:flex-start;padding:14px 0;border-bottom:1px solid var(--line-2)}
.fm-cbody .mm-dish:last-child{border-bottom:0}
.fm-cbody .mm-thumb{flex:0 0 62px;width:62px;height:62px;border-radius:12px;background-size:cover;background-position:center;background-color:var(--line);box-shadow:0 1px 5px rgba(0,0,0,.15)}
.fm-cbody .mm-thumb.ph{background-image:linear-gradient(135deg,color-mix(in srgb,var(--gold) 24%,transparent),color-mix(in srgb,var(--gold) 7%,transparent));position:relative}
.fm-cbody .mm-thumb.ph::after{content:"";position:absolute;inset:0;background:center/22px no-repeat url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c2410c' stroke-width='1.6' stroke-linecap='round'><path d='M5 3v7a2 2 0 0 0 2 2v9M7 3v6M9 3v6M9 3v0'/><path d='M17 3c-1.5 0-2.5 2-2.5 5s1 4 2.5 4v9'/></svg>");opacity:.55}
.fm-cbody .mm-main{flex:1;min-width:0}
.fm-cbody .dtop{display:flex;justify-content:space-between;gap:14px;align-items:baseline}
.fm-cbody .mm-dish .dd{margin-top:2px}
.fm-cbody .mm-dish .al{margin-top:8px}
/* v25: featured / most popular strip */
.feat-wrap{margin:6px 0 30px}
.feat-head{display:flex;align-items:center;gap:8px;font-family:"Hanken Grotesk",sans-serif;letter-spacing:.14em;text-transform:uppercase;font-size:.78rem;font-weight:800;color:var(--gold);margin:0 0 14px}
.feat-row{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;padding:2px 2px 12px;margin:0 -2px;-webkit-overflow-scrolling:touch}
.feat-row::-webkit-scrollbar{height:6px}
.feat-row::-webkit-scrollbar-thumb{background:var(--line);border-radius:6px}
.feat-card{scroll-snap-align:start;flex:0 0 200px;width:200px;background:var(--surface-2);border:1px solid var(--line);border-radius:16px;overflow:hidden;cursor:pointer;transition:transform .14s,box-shadow .14s;display:flex;flex-direction:column}
.feat-card:hover{transform:translateY(-3px);box-shadow:0 14px 30px -16px rgba(0,0,0,.7)}
.feat-img{position:relative;height:132px;background-size:cover;background-position:center;background-color:var(--line)}
.feat-img.ph{background-image:linear-gradient(135deg,color-mix(in srgb,var(--gold) 24%,transparent),color-mix(in srgb,var(--gold) 7%,transparent))}
.feat-badge{position:absolute;top:10px;left:10px;background:rgba(8,5,3,.82);color:#fff;font-family:"Hanken Grotesk",sans-serif;font-weight:800;font-size:.68rem;letter-spacing:.02em;padding:5px 10px;border-radius:20px;backdrop-filter:blur(2px)}
.feat-info{padding:12px 14px 14px}
.feat-n{font-family:"Fraunces",Georgia,serif;font-weight:700;font-size:1.02rem;color:var(--text);line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.4em}
.feat-p{font-family:"Hanken Grotesk",sans-serif;font-weight:800;color:var(--gold);margin-top:6px}
/* v13: deal full-image + blur fill */
.dealimg{background-size:cover; background-position:center}
.dealimg::before{content:""; position:absolute; inset:0; background-image:inherit; background-size:cover; background-position:center; filter:blur(26px) brightness(.5); transform:scale(1.2); z-index:0}
.dealimg img{position:relative; z-index:1; object-fit:contain !important; transform:none !important}
.dealcard:hover .dealimg img{transform:none !important}
/* concept collage */
.media.collage{display:grid; grid-template-columns:1fr 1fr; gap:6px}
.media.collage img{width:100%; height:100%; object-fit:cover; animation:none; transition:transform .8s ease}
.media.collage:hover img{transform:scale(1.05)}
/* v14b: hero landscape frame, clean cover (matches 3:2 photos, no crop, no blur) */
.hframe{aspect-ratio:3/2 !important}
.hframe .hslide img{object-fit:cover !important}
/* v15: hero fits in first viewport (desktop) */
@media(min-width:900px){
  .hero{min-height:calc(100svh - 150px); display:flex; align-items:center; padding-top:clamp(14px,2vw,28px)!important; padding-bottom:clamp(16px,2vw,30px)!important}
  .hero h1{font-size:clamp(2.6rem,1.4rem + 3.2vw,4.6rem)!important; margin-top:12px!important}
  .hero p.lead{margin-top:16px!important; font-size:clamp(1rem,.95rem+.3vw,1.15rem)!important}
  .hero .cta-row{margin-top:22px!important}
  .hero .partners{margin-top:16px!important}
}
/* v15b: tighten hero to fit fold */
@media(min-width:900px){
  .hero{min-height:calc(100svh - 150px)!important; padding-top:clamp(8px,1.2vw,18px)!important; padding-bottom:clamp(10px,1.2vw,20px)!important}
  .hero h1{font-size:clamp(2.4rem,1.3rem + 2.8vw,4.1rem)!important; line-height:1.02!important; margin-top:8px!important}
  .hero p.lead{margin-top:12px!important}
  .hero .cta-row{margin-top:16px!important}
  .hero .partners{margin-top:12px!important}
}
/* v16: deals clean 3:2 (match photos, no blur) */
.dealcard{height:auto !important; align-items:stretch}
.dealimg{aspect-ratio:3/2 !important; height:auto !important; background:none !important}
.dealimg::before{display:none !important}
.dealimg img{object-fit:cover !important}
@media(min-width:840px){ .dealcard{grid-template-columns:1.1fr .9fr; height:auto !important} .dealimg{aspect-ratio:3/2 !important; height:auto !important} }
/* v17: find your meal quiz */
.fym-card{margin-top:0; border:1px solid var(--line); border-radius:26px; background:linear-gradient(150deg,var(--surface-2),var(--surface)); box-shadow:var(--shadow); padding:clamp(30px,5vw,56px); position:relative; overflow:hidden; text-align:center}
.fym-card::before{content:""; position:absolute; inset:0; background:radial-gradient(60% 80% at 50% 0%, color-mix(in srgb,var(--gold) 12%, transparent), transparent 70%); pointer-events:none}
.fym-inner{position:relative; min-height:230px; display:flex; align-items:center; justify-content:center}
.fym-intro,.fym-q{width:100%; animation:dfade .4s ease}
.fym-q h3{font-family:"Fraunces",Georgia,serif; font-size:clamp(1.6rem,1.2rem+1.6vw,2.4rem); color:var(--text)}
.fym-prog{font-family:"Hanken Grotesk",sans-serif; letter-spacing:.16em; text-transform:uppercase; font-size:.72rem; font-weight:800; color:var(--gold); margin-bottom:14px}
.fym-opts{display:grid; gap:12px; grid-template-columns:1fr; max-width:620px; margin:26px auto 0}
@media(min-width:620px){.fym-opts{grid-template-columns:1fr 1fr}}
.fym-opt{padding:16px 20px; border:1px solid var(--line); border-radius:14px; background:var(--bg-2); color:var(--text); font-family:inherit; font-size:1rem; font-weight:600; cursor:pointer; transition:border-color .2s,transform .2s,background .2s; text-align:left}
.fym-opt:hover{border-color:var(--gold); background:color-mix(in srgb,var(--gold) 10%, var(--bg-2)); transform:translateY(-3px)}
.fym-res{display:grid; grid-template-columns:1fr; gap:26px; align-items:center; text-align:left; animation:dfade .5s ease}
@media(min-width:720px){.fym-res{grid-template-columns:.9fr 1.1fr}}
.fym-res-img{aspect-ratio:3/2; border-radius:18px; background-size:cover; background-position:center; border:1px solid var(--line)}
.fym-res-body h3{font-family:"Fraunces",Georgia,serif; font-size:clamp(1.9rem,1.4rem+2vw,2.8rem); color:var(--text); margin:6px 0 0}
.fym-cn{font-family:"Hanken Grotesk",sans-serif; letter-spacing:.12em; text-transform:uppercase; font-size:.76rem; font-weight:800; color:var(--gold); margin:4px 0 0}
.fym-res .cta-row{margin-top:22px}
/* v18: fix deal image overlap (constrain to column width on desktop) */
@media(min-width:840px){
  .dealimg{aspect-ratio:auto !important; width:100% !important; height:100% !important; min-width:0}
}
.dealcard{min-width:0}
.dealimg img{object-fit:cover !important}
/* v19: full-menu per-cuisine order cta */
.fm-order{margin:6px 0 10px; padding-top:18px; border-top:1px solid var(--line)}
.fm-order .btn{padding:13px 24px}
.fm-code{margin:12px 0 0; font-size:.86rem; color:var(--text-2)}
.fm-code b{color:var(--gold); font-variant-numeric:tabular-nums}
.fm-order.fm-soon{color:var(--text-3); font-size:.9rem}
/* v31: deal category stations */
.deal-cats{display:flex;flex-wrap:wrap;gap:9px;margin:22px 0 6px}
.deal-cat{cursor:pointer;border:1px solid var(--line);background:var(--surface-2);color:var(--text-2);font-family:"Hanken Grotesk",sans-serif;font-weight:700;font-size:.86rem;padding:9px 17px;border-radius:30px;transition:background .15s,color .15s,border-color .15s}
.deal-cat:hover{color:var(--gold);border-color:color-mix(in srgb,var(--gold) 50%,transparent)}
.deal-cat.on{background:var(--gold-grad);color:#160801;border-color:transparent}
/* v30: steps CTA */
.steps-cta{margin-top:36px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px}
.steps-note{color:var(--text-3);font-size:.9rem;margin:0}
/* v29: dedicated menu page */
html{scroll-behavior:smooth}
.menu-tabs{position:sticky;top:78px;z-index:40;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(12px);border-bottom:1px solid var(--line-2)}
.menu-tabs .mt-bar{display:flex;align-items:center;gap:12px;padding:11px 0;flex-wrap:wrap}
.menu-tabs .mt-row{display:flex;gap:8px;overflow-x:auto;flex:1 1 auto;min-width:0;-webkit-overflow-scrolling:touch;scroll-behavior:smooth}
.menu-tabs .mt-row::-webkit-scrollbar{height:0}
.menu-tabs .fm-tab{white-space:nowrap;text-decoration:none;transition:background .15s,color .15s,border-color .15s}
.menu-tabs .fm-tab.active{background:var(--gold-grad);color:#160801;border-color:transparent}
.menu-tabs .fm-tab.active svg{color:#160801}
.mt-search{position:relative;flex:0 0 250px;max-width:250px}
.mt-search input{width:100%;background:var(--surface-2);border:1px solid var(--line);border-radius:30px;padding:11px 16px 11px 42px;color:var(--text);font-family:"Hanken Grotesk",sans-serif;font-size:.92rem;outline:none;transition:border-color .15s,box-shadow .15s}
.mt-search input::placeholder{color:var(--text-3)}
.mt-search input:focus{border-color:color-mix(in srgb,var(--gold) 60%,transparent);box-shadow:0 0 0 3px color-mix(in srgb,var(--gold) 16%,transparent)}
.mt-search::before{content:"";position:absolute;left:16px;top:50%;transform:translateY(-50%);width:16px;height:16px;background:center/contain no-repeat url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c2410c' stroke-width='2'><circle cx='11' cy='11' r='7'/><path d='M21 21l-4-4' stroke-linecap='round'/></svg>");opacity:.85}
@media(max-width:640px){.menu-tabs .mt-row{order:1}.mt-search{order:2;flex:1 1 100%;max-width:none}}
.mp-brandgrid{margin-top:8px}
.mp-brandgrid .kcard{text-decoration:none}
.fm-cuisine{scroll-margin-top:184px;margin-bottom:22px}
@media(max-width:640px){.fm-cuisine{scroll-margin-top:232px}}
.mp-order{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:4px 0 14px}
.mp-code{width:100%;font-size:.84rem;color:var(--text-3);margin:0}
.menu-noresults{display:none;text-align:center;color:var(--text-2);padding:50px 20px;font-size:1.05rem}
/* v28: cuisine + franchise pages */
.backlink{display:flex;width:fit-content;align-items:center;gap:6px;color:var(--text-2);text-decoration:none;font-family:"Hanken Grotesk",sans-serif;font-weight:700;font-size:.9rem;margin-bottom:6px}
.backlink:hover{color:var(--gold)}
.cp-actions{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:24px}
.cp-code{width:100%;font-size:.86rem;color:var(--text-3);margin:4px 0 0}
.cp-cross{display:flex;gap:8px;flex-wrap:wrap;margin-top:28px}
.cp-cross a{padding:8px 15px;border:1px solid var(--line);border-radius:30px;text-decoration:none;color:var(--text-2);font-family:"Hanken Grotesk",sans-serif;font-weight:700;font-size:.85rem;transition:border-color .15s,color .15s}
.cp-cross a:hover{color:var(--gold);border-color:color-mix(in srgb,var(--gold) 50%,transparent)}
.cp-cross a.on{background:var(--gold-grad);color:#160801;border-color:transparent}
.cp-soon-tag{display:inline-block;margin-top:24px;background:rgba(8,5,3,.6);border:1px dashed var(--line);color:var(--text-2);font-family:"Hanken Grotesk",sans-serif;font-weight:800;letter-spacing:.08em;text-transform:uppercase;font-size:.72rem;padding:8px 16px;border-radius:30px}
/* v27: coming-soon states */
.kcard{position:relative}
.ksoon{position:absolute;top:12px;left:12px;z-index:2;background:rgba(8,5,3,.82);color:#fff;font-family:"Hanken Grotesk",sans-serif;font-weight:800;font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;padding:5px 11px;border-radius:20px;backdrop-filter:blur(2px)}
.fm-soonpanel{text-align:center;padding:clamp(40px,7vw,90px) 20px;max-width:520px;margin:0 auto}
.fm-soonpanel .soon-ic{width:60px;height:60px;margin:0 auto 18px;color:var(--gold)}
.fm-soonpanel .soon-ic svg{width:100%;height:100%}
.fm-soonpanel h3{font-family:"Fraunces",Georgia,serif;font-weight:700;font-size:1.7rem;color:var(--text);margin:0}
.fm-soonpanel p{color:var(--text-2);margin:12px 0 0;font-size:.98rem}
/* v26: stage-1 client feedback */
.pill-live{border-color:color-mix(in srgb,#06C167 55%,transparent)!important;color:#0ad06f!important}
.pill-soon{opacity:.62}
.rev-live{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:26px}
.hungry-note{font-weight:800;font-size:.9rem;margin:8px 0 0;opacity:.85}
/* best sellers */
.bs-grid{display:grid;grid-template-columns:1fr;gap:18px;margin-top:8px}
@media(min-width:620px){.bs-grid{grid-template-columns:1fr 1fr}}
@media(min-width:980px){.bs-grid{grid-template-columns:1fr 1fr 1fr}}
.bs-card{background:var(--surface-2);border:1px solid var(--line);border-radius:18px;overflow:hidden;display:flex;flex-direction:column;transition:transform .15s,box-shadow .15s}
.bs-card:hover{transform:translateY(-4px);box-shadow:0 20px 44px -22px rgba(0,0,0,.7)}
.bs-img{position:relative;aspect-ratio:16/10;background-size:cover;background-position:center;background-color:var(--line)}
.bs-badge{position:absolute;top:12px;left:12px;display:inline-flex;align-items:center;gap:5px;background:var(--gold-grad);color:#160801;font-family:"Hanken Grotesk",sans-serif;font-weight:800;font-size:.7rem;letter-spacing:.02em;padding:5px 11px;border-radius:20px}
.bs-kl{position:absolute;top:12px;right:12px;background:rgba(8,5,3,.78);color:#fff;font-family:"Hanken Grotesk",sans-serif;font-weight:700;font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;padding:5px 10px;border-radius:20px;backdrop-filter:blur(2px)}
.bs-body{padding:16px 18px 18px;display:flex;flex-direction:column;flex:1}
.bs-n{font-family:"Fraunces",Georgia,serif;font-weight:700;font-size:1.22rem;color:var(--text);line-height:1.18}
.bs-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:auto;padding-top:14px}
.bs-p{font-family:"Hanken Grotesk",sans-serif;font-weight:800;font-size:1.15rem;color:var(--gold)}
.bs-order{border:none;cursor:pointer;background:var(--gold-grad);color:#160801;font-family:"Hanken Grotesk",sans-serif;font-weight:800;font-size:.9rem;padding:10px 18px;border-radius:30px;display:inline-flex;align-items:center;gap:6px;transition:transform .12s}
.bs-order:hover{transform:translateY(-2px)}
/* franchise banner */
.frbanner{position:relative;overflow:hidden;border-radius:24px;border:1px solid var(--line);background:linear-gradient(135deg,color-mix(in srgb,var(--gold) 16%,var(--surface-2)),var(--surface));padding:clamp(28px,4vw,46px);display:grid;gap:20px 40px;align-items:center;text-align:center}
@media(min-width:820px){.frbanner{grid-template-columns:1fr auto;text-align:left}}
.frbanner h2{font-family:"Fraunces",Georgia,serif;font-weight:600;font-size:clamp(1.6rem,1.2rem + 1.8vw,2.4rem);color:var(--text);margin:8px 0 0;line-height:1.1}
.frbanner p{color:var(--text-2);margin:12px 0 0;max-width:52ch}
.frbanner .btn{white-space:nowrap;justify-self:center}
