/* ============ TOKENS ============ */
:root{
  --ink:#0c0a09;
  --ink-2:#141010;
  --panel:#191412;
  --panel-2:#20191590;
  --char:#251d18;
  --gold:#d8ac52;
  --gold-bright:#f2d488;
  --gold-deep:#9a7a34;
  --maroon:#8e2432;
  --maroon-deep:#5c141e;
  --cream:#f4ead4;
  --cream-dim:rgba(244,234,212,.68);
  --cream-faint:rgba(244,234,212,.55);
  --ice:#7ecfe6;
  --ice-deep:#2b8aa6;
  --line:rgba(216,172,82,.16);
  --line-soft:rgba(244,234,212,.08);
  --shadow:0 30px 80px -30px rgba(0,0,0,.9);
  --maxw:1200px;
  --ease:cubic-bezier(.22,1,.36,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  background:var(--ink);
  color:var(--cream);
  font-family:'Barlow',system-ui,sans-serif;
  line-height:1.6;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
::selection{background:var(--gold);color:var(--ink)}

/* ============ TYPE ============ */
.kicker{
  font-family:'Cinzel',serif;
  font-weight:700;
  letter-spacing:.34em;
  text-transform:uppercase;
  font-size:clamp(.62rem,1.4vw,.74rem);
  color:var(--gold);
}
.display{
  font-family:'Anton',sans-serif;
  font-weight:400;
  text-transform:uppercase;
  line-height:.92;
  letter-spacing:.005em;
}
h2.display{font-size:clamp(2.3rem,7vw,4.7rem)}
p{color:var(--cream-dim)}

/* ============ LAYOUT ============ */
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 clamp(20px,5vw,48px)}
section{position:relative}
.sec-pad{padding:clamp(72px,11vw,140px) 0}

/* ============ NAV ============ */
header.nav{
  position:fixed;inset:0 0 auto 0;z-index:100;
  transition:background .4s var(--ease),backdrop-filter .4s,border-color .4s;
  border-bottom:1px solid transparent;
}
header.nav.scrolled{
  background:rgba(12,10,9,.82);
  backdrop-filter:blur(14px) saturate(1.2);
  border-bottom-color:var(--line);
}
.nav-inner{
  max-width:var(--maxw);margin:0 auto;
  padding:14px clamp(20px,5vw,48px);
  display:flex;align-items:center;justify-content:space-between;gap:20px;
}
.brand{display:flex;align-items:center;gap:12px;z-index:110}
.brand img{height:42px;width:auto;border-radius:6px}
.brand .bt{display:none}
@media(min-width:520px){.brand .bt{display:block;font-family:'Cinzel',serif;font-weight:700;letter-spacing:.18em;font-size:.8rem;color:var(--cream)}}
.nav-links{display:flex;align-items:center;gap:6px}
.nav-links a.link{
  font-size:.82rem;font-weight:500;letter-spacing:.02em;
  color:var(--cream-dim);padding:9px 14px;border-radius:8px;
  transition:color .25s,background .25s;
}
.nav-links a.link:hover{color:var(--cream);background:rgba(244,234,212,.05)}
.nav-cta{
  font-weight:600;font-size:.82rem;letter-spacing:.02em;
  padding:10px 18px;border-radius:999px;
  color:var(--ink);background:linear-gradient(135deg,var(--gold-bright),var(--gold));
  box-shadow:0 8px 24px -8px rgba(216,172,82,.7);
  transition:transform .25s var(--ease),box-shadow .25s;
}
.nav-cta:hover{transform:translateY(-2px);box-shadow:0 14px 30px -8px rgba(216,172,82,.9)}
.burger{display:none;flex-direction:column;gap:5px;width:44px;height:44px;align-items:center;justify-content:center;z-index:110;background:none;border:0;cursor:pointer}
.burger span{width:24px;height:2px;background:var(--cream);border-radius:2px;transition:transform .35s var(--ease),opacity .25s}
.desktop-nav{display:flex;align-items:center;gap:18px}
@media(max-width:880px){
  .desktop-nav{display:none}
  .burger{display:flex}
}
/* mobile drawer */
.drawer{
  position:fixed;inset:0;z-index:105;
  background:rgba(9,7,6,.97);backdrop-filter:blur(6px);
  display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px;
  opacity:0;pointer-events:none;transition:opacity .4s var(--ease);
}
.drawer.open{opacity:1;pointer-events:auto}
.drawer a{font-family:'Anton',sans-serif;text-transform:uppercase;font-size:1.9rem;letter-spacing:.02em;color:var(--cream);padding:10px;opacity:.85;transition:color .25s,transform .25s}
.drawer a:hover,.drawer a:active{color:var(--gold)}
.drawer .d-cta{font-family:'Barlow';font-size:.9rem;margin-top:18px;padding:14px 30px;border-radius:999px;background:var(--gold);color:var(--ink);font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.drawer .d-meta{position:absolute;bottom:34px;text-align:center;font-size:.8rem;color:var(--cream-faint);letter-spacing:.05em}
body.lock{overflow:hidden}
.burger.x span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger.x span:nth-child(2){opacity:0}
.burger.x span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ============ HERO ============ */
.hero{
  min-height:100svh;min-height:100vh;
  display:flex;align-items:flex-end;
  position:relative;overflow:hidden;
  padding-bottom:clamp(40px,7vw,90px);
}
.hero-bg{position:absolute;inset:0;z-index:0}
.hero-bg img{
  width:100%;height:100%;object-fit:cover;object-position:center 42%;
  transform:scale(1.08);animation:kb 24s ease-in-out infinite alternate;
}
@keyframes kb{from{transform:scale(1.08) translateY(0)}to{transform:scale(1.16) translateY(-2%)}}
.hero-bg::after{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(120% 90% at 15% 100%,rgba(12,10,9,.96),rgba(12,10,9,.35) 55%,transparent 80%),
    linear-gradient(180deg,rgba(12,10,9,.72) 0%,rgba(12,10,9,.15) 30%,rgba(12,10,9,.55) 70%,rgba(12,10,9,.96) 100%);
}
/* faceoff circle motif */
.faceoff{
  position:absolute;z-index:1;pointer-events:none;
  right:clamp(12px,3vw,54px);top:9vh;width:min(50vw,540px);aspect-ratio:1;opacity:.5;
  mix-blend-mode:screen;
}
.faceoff .ring{fill:none;stroke:var(--ice);stroke-opacity:.5}
.faceoff .spin{transform-origin:center;animation:spin 60s linear infinite}
.faceoff .dot{fill:var(--maroon)}
@keyframes spin{to{transform:rotate(360deg)}}
.hero-inner{position:relative;z-index:2;width:100%}
.hero-badge{
  display:inline-flex;align-items:center;gap:10px;
  padding:8px 16px 8px 10px;border-radius:999px;margin-bottom:22px;
  background:rgba(142,36,50,.18);border:1px solid rgba(216,172,82,.35);
  backdrop-filter:blur(4px);
}
.hero-badge .star{width:26px;height:26px;flex:none}
.hero-badge b{font-family:'Cinzel',serif;font-weight:700;letter-spacing:.12em;font-size:.68rem;text-transform:uppercase;color:var(--gold-bright)}
.hero-badge span{font-size:.7rem;color:var(--cream-dim);letter-spacing:.05em}
.hero h1{
  font-family:'Anton',sans-serif;text-transform:uppercase;
  font-size:clamp(3rem,13.5vw,10rem);line-height:.86;letter-spacing:.004em;
  color:var(--cream);text-wrap:balance;
}
.hero h1 .ice{color:transparent;-webkit-text-stroke:2px var(--gold);text-stroke:2px var(--gold);position:relative}
.hero h1 em{font-style:normal;color:var(--gold)}
.hero-sub{
  max-width:44ch;margin:26px 0 34px;
  font-size:clamp(1rem,2.1vw,1.18rem);color:var(--cream-dim);
}
.hero-cta{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.btn{
  display:inline-flex;align-items:center;gap:10px;
  font-weight:600;letter-spacing:.02em;font-size:.95rem;
  padding:15px 28px;border-radius:999px;cursor:pointer;border:1px solid transparent;
  transition:transform .3s var(--ease),box-shadow .3s,background .3s,color .3s,border-color .3s;
}
.btn-gold{background:linear-gradient(135deg,var(--gold-bright),var(--gold));color:var(--ink);box-shadow:0 14px 34px -12px rgba(216,172,82,.8)}
.btn-gold:hover{transform:translateY(-3px);box-shadow:0 20px 44px -12px rgba(216,172,82,1)}
.btn-ghost{border-color:rgba(244,234,212,.28);color:var(--cream);background:rgba(244,234,212,.03)}
.btn-ghost:hover{border-color:var(--gold);color:var(--gold-bright);transform:translateY(-3px)}
.btn svg{width:17px;height:17px}
.hero-where{
  display:flex;align-items:center;gap:10px;margin-top:30px;
  font-size:.8rem;color:var(--cream-faint);letter-spacing:.04em;
}
.hero-where .pip{width:7px;height:7px;border-radius:50%;background:var(--ice);box-shadow:0 0 12px var(--ice);animation:pulse 2.4s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:.4;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}}

/* ============ SCOREBOARD (replaces marquee) ============ */
.board{background:var(--ink-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line);position:relative}
.board::before{content:"";position:absolute;inset:0;background:radial-gradient(80% 140% at 50% 0%,rgba(216,172,82,.06),transparent 60%);pointer-events:none}
.board-inner{
  display:grid;grid-template-columns:repeat(4,1fr);gap:1px;
  background:var(--line-soft);position:relative;
}
.tile{
  background:var(--ink-2);padding:clamp(26px,4.5vw,44px) clamp(16px,3vw,28px);
  text-align:center;position:relative;overflow:hidden;
  opacity:0;transform:translateY(16px);
}
.tile.lit{opacity:1;transform:none;transition:opacity .6s var(--ease),transform .6s var(--ease)}
.tile::after{
  content:"";position:absolute;left:0;right:0;top:0;height:2px;
  background:linear-gradient(90deg,transparent,var(--gold),transparent);
  opacity:0;transition:opacity .5s;
}
.tile.lit::after{opacity:.8}
.tile .num{font-family:'Anton',sans-serif;font-size:clamp(2.1rem,5.4vw,3.4rem);line-height:1;color:var(--gold-bright);letter-spacing:.01em}
.tile .num small{font-size:.5em;color:var(--gold);vertical-align:super;margin-left:2px}
.tile .lbl{margin-top:12px;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--cream-dim)}
@media(max-width:720px){
  .board-inner{grid-template-columns:repeat(2,1fr)}
}

/* ============ GENERIC SECTION HEAD ============ */
.head{max-width:720px}
.head.center{margin:0 auto;text-align:center}
.head h2{margin:16px 0 18px;color:var(--cream)}
.head p{font-size:clamp(1rem,2vw,1.12rem)}
.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.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}

/* ============ STORY ============ */
.story{background:linear-gradient(180deg,var(--ink),var(--ink-2))}
.story-grid{display:grid;grid-template-columns:1fr;gap:clamp(34px,6vw,68px);align-items:center}
@media(min-width:920px){.story-grid{grid-template-columns:1.05fr .95fr}}
.story-copy h2{margin:16px 0 20px;color:var(--cream)}
.story-copy p+p{margin-top:16px}
.story-sig{display:flex;align-items:center;gap:14px;margin-top:28px}
.story-sig .line{height:1px;flex:1;background:var(--line)}
.story-sig b{font-family:'Cinzel',serif;letter-spacing:.14em;font-size:.72rem;color:var(--gold);text-transform:uppercase;white-space:nowrap}
.story-media{position:relative}
.story-media .frame{
  position:relative;border-radius:14px;overflow:hidden;
  border:1px solid var(--line);box-shadow:var(--shadow);
}
.story-media .frame img{width:100%;aspect-ratio:4/3;object-fit:cover;transform:scale(1.02);transition:transform 1.2s var(--ease)}
.story-media:hover .frame img{transform:scale(1.08)}
.story-media .tagcard{
  position:absolute;left:-4px;bottom:-18px;
  background:var(--ink);border:1px solid var(--line);border-radius:12px;
  padding:16px 20px;box-shadow:var(--shadow);max-width:230px;
}
.story-media .tagcard .k{font-family:'Cinzel',serif;font-size:.62rem;letter-spacing:.2em;color:var(--gold);text-transform:uppercase}
.story-media .tagcard .v{font-family:'Anton';font-size:1.15rem;color:var(--cream);margin-top:4px;line-height:1.1;text-transform:uppercase}

/* ============ PIZZA ============ */
.pizza{background:var(--ink-2)}
.pizza-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:44px}
@media(min-width:760px){.pizza-grid{grid-template-columns:repeat(4,1fr)}}
.pcard{
  background:var(--panel);border:1px solid var(--line-soft);border-radius:14px;
  padding:22px 20px 20px;position:relative;overflow:hidden;
  transition:transform .4s var(--ease),border-color .4s,background .4s;
}
.pcard:hover{transform:translateY(-6px);border-color:var(--line);background:var(--char)}
.pcard::before{content:"";position:absolute;right:-30px;top:-30px;width:90px;height:90px;border-radius:50%;background:radial-gradient(circle,rgba(216,172,82,.14),transparent 70%);opacity:0;transition:opacity .4s}
.pcard:hover::before{opacity:1}
.pcard .pz-top{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.pcard h3{font-size:1.02rem;font-weight:700;color:var(--cream);line-height:1.2}
.pcard .price{font-family:'Anton';font-size:1.25rem;color:var(--gold-bright);white-space:nowrap}
.pcard p{font-size:.82rem;margin-top:9px;color:var(--cream-dim);line-height:1.5}
.pcard .flag{display:inline-block;margin-top:12px;font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--maroon);font-weight:700}
.pcard.signature{border-color:rgba(216,172,82,.4);background:linear-gradient(165deg,var(--char),var(--panel))}
.pcard.signature .flag{color:var(--gold);background:rgba(216,172,82,.12);padding:3px 8px;border-radius:5px}
.pz-note{margin-top:22px;font-size:.8rem;color:var(--cream-faint);letter-spacing:.03em;text-align:center}

/* ============ SIGNATURE SPOTLIGHT ============ */
.spot{position:relative;overflow:hidden;background:var(--ink)}
.spot-grid{display:grid;grid-template-columns:1fr;gap:clamp(30px,6vw,60px);align-items:center}
@media(min-width:920px){.spot-grid{grid-template-columns:.95fr 1.05fr}}
.spot-media{border-radius:14px;overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow);position:relative}
.spot-media img{width:100%;aspect-ratio:4/5;object-fit:cover;transition:transform 1.2s var(--ease)}
@media(min-width:920px){.spot-media img{aspect-ratio:5/6}}
.spot:hover .spot-media img{transform:scale(1.06)}
.spot-copy h2{margin:16px 0 18px;color:var(--cream)}
.spot-list{margin-top:26px;display:grid;gap:2px}
.spot-list .row{display:flex;align-items:baseline;gap:14px;padding:14px 0;border-top:1px solid var(--line-soft)}
.spot-list .row:last-child{border-bottom:1px solid var(--line-soft)}
.spot-list .row .rn{font-family:'Anton';color:var(--gold);font-size:.9rem;min-width:26px}
.spot-list .row .rt b{color:var(--cream);font-weight:600;font-size:.96rem}
.spot-list .row .rt span{display:block;color:var(--cream-dim);font-size:.82rem;margin-top:2px}

/* ============ WINGS HEAT BOARD ============ */
.wings{background:linear-gradient(180deg,var(--ink),#160f0d)}
.heat-wrap{margin-top:44px;display:grid;grid-template-columns:1fr;gap:26px}
@media(min-width:900px){.heat-wrap{grid-template-columns:290px 1fr;gap:44px;align-items:start}}
.heat-panel{
  background:var(--panel);border:1px solid var(--line);border-radius:16px;
  padding:26px 24px;
  /* Pinned while you work through the flavours. --stick-top is set in site.js
     from the real height of the fixed header plus the sticky category bar, so
     it lands just under them on every page. z-index keeps the chips scrolling
     UNDER it rather than over it. */
  position:sticky;top:calc(var(--stick-top, 71px) + 10px);z-index:5;
}
.heat-panel .hp-k{font-family:'Cinzel';font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}
.heat-panel .hp-name{font-family:'Anton';font-size:1.7rem;text-transform:uppercase;color:var(--cream);margin:6px 0 4px;min-height:1.2em;line-height:1.1}
.heat-panel .hp-desc{font-size:.84rem;color:var(--cream-dim);min-height:2.6em}
.meter{display:flex;gap:6px;margin:20px 0 8px}
.meter .flame{flex:1;height:34px;border-radius:6px;background:rgba(244,234,212,.06);position:relative;transition:background .3s,box-shadow .3s;display:flex;align-items:center;justify-content:center}
.meter .flame svg{width:16px;height:16px;opacity:.25;transition:opacity .3s,transform .3s}
.meter .flame.on{background:linear-gradient(180deg,var(--maroon),var(--maroon-deep));box-shadow:0 0 18px -4px var(--maroon)}
.meter .flame.on svg{opacity:1;transform:scale(1.1)}
.meter .flame.on.max{background:linear-gradient(180deg,#e0491f,#8e2432);box-shadow:0 0 22px -2px #e0491f}
.heat-label{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--cream-faint)}
.heat-price{margin-top:22px;padding-top:18px;border-top:1px solid var(--line-soft);display:flex;justify-content:space-between;align-items:baseline}
.heat-price .p1{font-size:.8rem;color:var(--cream-dim)}
.heat-price .p2{font-family:'Anton';color:var(--gold-bright);font-size:1.15rem}
.sauce-block h4{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin:0 0 14px}
.sauce-block+.sauce-block{margin-top:30px}
.chips{display:flex;flex-wrap:wrap;gap:9px}
.chip{
  font-size:.82rem;font-weight:500;padding:9px 15px;border-radius:999px;cursor:pointer;
  background:rgba(244,234,212,.05);border:1px solid var(--line-soft);color:var(--cream-dim);
  transition:transform .2s var(--ease),background .25s,color .25s,border-color .25s;
  -webkit-tap-highlight-color:transparent;
}
.chip:hover,.chip.active{background:var(--maroon);color:var(--cream);border-color:var(--maroon);transform:translateY(-2px)}
.chip .dots{margin-left:8px;letter-spacing:1px;color:var(--gold-bright);font-size:.7rem}
.chip:hover .dots,.chip.active .dots{color:var(--gold-bright)}

/* ============ MENU BOARD ============ */
.menu{background:#160f0d}
.tabs{display:flex;flex-wrap:wrap;gap:8px;margin:38px 0 30px;justify-content:center}
.tab{
  font-size:.82rem;font-weight:600;letter-spacing:.03em;padding:11px 20px;border-radius:999px;cursor:pointer;
  background:transparent;border:1px solid var(--line-soft);color:var(--cream-dim);
  transition:background .25s,color .25s,border-color .25s;-webkit-tap-highlight-color:transparent;
}
.tab:hover{color:var(--cream)}
.tab.active{background:var(--gold);color:var(--ink);border-color:var(--gold);font-weight:700}
.panel-menu{display:none;animation:fade .5s var(--ease)}
.panel-menu.show{display:block}
@keyframes fade{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.mlist{max-width:820px;margin:0 auto;display:grid;gap:2px}
.mrow{display:flex;align-items:flex-start;gap:16px;padding:16px 4px;border-bottom:1px dashed var(--line-soft)}
.mrow .mtext{flex:1}
.mrow .mtext b{color:var(--cream);font-weight:600;font-size:1rem}
.mrow .mtext .serve{color:var(--gold);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;margin-left:8px;white-space:nowrap}
.mrow .mtext p{font-size:.83rem;margin-top:4px;color:var(--cream-dim)}
.mrow .dots{flex:1;border-bottom:1px dotted var(--line);transform:translateY(-6px);min-width:20px;align-self:center;margin:0 4px}
.mrow .mprice{font-family:'Anton';color:var(--gold-bright);font-size:1.1rem;white-space:nowrap}
.mrow .mprice small{display:block;font-family:'Barlow';font-weight:500;font-size:.64rem;color:var(--cream-faint);text-align:right;letter-spacing:.04em}

/* ============ PARTIES ============ */
.parties{position:relative;background:var(--ink);overflow:hidden}
.parties-bg{position:absolute;inset:0;z-index:0}
.parties-bg img{width:100%;height:100%;object-fit:cover;object-position:center 40%}
.parties-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(12,10,9,.9),rgba(12,10,9,.82)),radial-gradient(90% 100% at 100% 0%,rgba(142,36,50,.28),transparent 55%)}
.parties-inner{position:relative;z-index:1}
.pk-grid{display:grid;grid-template-columns:1fr;gap:14px;margin-top:44px}
@media(min-width:640px){.pk-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1000px){.pk-grid{grid-template-columns:repeat(3,1fr)}}
.pk{
  background:rgba(25,20,18,.72);backdrop-filter:blur(8px);
  border:1px solid var(--line);border-radius:16px;padding:26px 24px;
  display:flex;flex-direction:column;transition:transform .4s var(--ease),border-color .4s,background .4s;
}
.pk:hover{transform:translateY(-6px);border-color:rgba(216,172,82,.42);background:rgba(37,29,24,.82)}
.pk .pk-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px}
.pk h3{font-family:'Anton';text-transform:uppercase;font-size:1.35rem;color:var(--cream);line-height:1;letter-spacing:.01em}
.pk .pk-price{font-family:'Anton';color:var(--gold-bright);font-size:1.5rem;white-space:nowrap;text-align:right}
.pk .pk-price small{display:block;font-family:'Barlow';font-weight:500;font-size:.6rem;letter-spacing:.06em;color:var(--cream-faint)}
.pk ul{list-style:none;margin:8px 0 0;display:grid;gap:9px}
.pk li{position:relative;padding-left:22px;font-size:.86rem;color:var(--cream-dim)}
.pk li::before{content:"";position:absolute;left:0;top:8px;width:10px;height:10px;border-radius:50%;background:var(--maroon);box-shadow:0 0 0 3px rgba(142,36,50,.2)}
.pk .feeds{margin-top:16px;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold)}
.cater-cta{
  margin-top:36px;background:rgba(25,20,18,.7);backdrop-filter:blur(8px);
  border:1px solid var(--line);border-radius:16px;padding:clamp(26px,4vw,40px);
  display:flex;flex-wrap:wrap;gap:22px;align-items:center;justify-content:space-between;
}
.cater-cta .cc-text h3{font-family:'Anton';text-transform:uppercase;font-size:clamp(1.4rem,3.5vw,2rem);color:var(--cream);line-height:1.05}
.cater-cta .cc-text p{margin-top:8px;font-size:.9rem;max-width:52ch}

/* ============ AWARD ============ */
.award{background:linear-gradient(180deg,#160f0d,var(--ink));text-align:center}
.award-inner{max-width:760px;margin:0 auto}
.medal{width:clamp(96px,16vw,140px);height:auto;margin:0 auto 26px;filter:drop-shadow(0 12px 30px rgba(216,172,82,.35))}
.award h2{margin-bottom:20px;color:var(--cream)}
.award .quote{font-family:'Cinzel',serif;font-weight:500;font-style:italic;font-size:clamp(1.15rem,2.6vw,1.5rem);color:var(--gold-bright);line-height:1.5;margin-bottom:22px}
.award p{font-size:1.02rem}

/* ============ VISIT ============ */
.visit{background:var(--ink-2)}
.visit-grid{display:grid;grid-template-columns:1fr;gap:34px;margin-top:44px}
@media(min-width:900px){.visit-grid{grid-template-columns:1fr 1fr;gap:48px}}
.info-block+.info-block{margin-top:26px}
.info-block .ib-k{font-family:'Cinzel';font-size:.64rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:12px}
.hours-row{display:flex;justify-content:space-between;gap:18px;padding:11px 0;border-bottom:1px solid var(--line-soft);font-size:.92rem}
.hours-row span:first-child{color:var(--cream);font-weight:500}
.hours-row span:last-child{color:var(--cream-dim);text-align:right}
.hours-row .closed{color:var(--maroon)}
.hours-note{font-size:.78rem;color:var(--cream-faint);margin-top:12px;letter-spacing:.02em}
.contact-line{display:flex;align-items:center;gap:14px;padding:12px 0;font-size:.95rem}
.contact-line svg{width:20px;height:20px;color:var(--gold);flex:none}
.contact-line a{color:var(--cream);transition:color .25s}
.contact-line a:hover{color:var(--gold-bright)}
.socials{display:flex;gap:12px;margin-top:20px}
.socials a{width:46px;height:46px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:rgba(244,234,212,.05);border:1px solid var(--line-soft);transition:transform .25s var(--ease),background .25s,border-color .25s}
.socials a:hover{transform:translateY(-3px);background:var(--maroon);border-color:var(--maroon)}
.socials svg{width:20px;height:20px}
.map-card{border-radius:16px;overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow);min-height:340px;position:relative;background:var(--panel)}
.map-card iframe{width:100%;height:100%;min-height:340px;border:0;filter:grayscale(.3) contrast(1.05) brightness(.9)}
.map-fallback{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:24px;pointer-events:none;background:linear-gradient(180deg,transparent 55%,rgba(12,10,9,.9))}
.map-fallback .mf-addr{font-size:.9rem;color:var(--cream);pointer-events:auto}
.map-fallback .mf-dir{pointer-events:auto;margin-top:12px;align-self:flex-start;font-size:.8rem;font-weight:600;color:var(--ink);background:var(--gold);padding:10px 18px;border-radius:999px}

/* ============ FOOTER ============ */
footer{background:var(--ink);border-top:1px solid var(--line);padding:56px 0 34px}
.foot-grid{display:flex;flex-wrap:wrap;gap:28px;justify-content:space-between;align-items:flex-start}
.foot-brand{max-width:340px}
.foot-brand img{height:52px;border-radius:8px;margin-bottom:16px}
.foot-brand p{font-size:.86rem}
.foot-links{display:flex;gap:44px;flex-wrap:wrap}
.foot-col h5{font-family:'Cinzel';font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin-bottom:14px}
.foot-col a{display:block;font-size:.86rem;color:var(--cream-dim);padding:5px 0;transition:color .25s}
.foot-col a:hover{color:var(--cream)}
.foot-bottom{margin-top:44px;padding-top:22px;border-top:1px solid var(--line-soft);display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:center}
.foot-bottom p{font-size:.76rem;color:var(--cream-faint);letter-spacing:.02em}
.foot-bottom .pitch{font-size:.72rem;color:var(--cream-faint)}
.foot-bottom .pitch b{color:var(--gold)}

/* ============ RESERVE FORM ============ */
.reserve{background:linear-gradient(180deg,var(--ink-2),var(--ink))}
.reserve-grid{display:grid;grid-template-columns:1fr;gap:clamp(34px,6vw,64px);align-items:start}
@media(min-width:920px){.reserve-grid{grid-template-columns:.85fr 1.15fr}}
.reserve-copy h2{margin:16px 0 18px;color:var(--cream)}
.reserve-perks{list-style:none;margin:26px 0 0;display:grid;gap:12px}
.reserve-perks li{position:relative;padding-left:28px;font-size:.9rem;color:var(--cream-dim)}
.reserve-perks li::before{content:"";position:absolute;left:0;top:5px;width:14px;height:14px;border-radius:50%;background:radial-gradient(circle at 30% 30%,var(--gold-bright),var(--gold-deep));box-shadow:0 0 0 4px rgba(216,172,82,.12)}
.reserve-alt{margin-top:28px;font-size:.9rem;color:var(--cream-dim)}
.reserve-alt a{color:var(--gold-bright);font-weight:600}
.reserve-form{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:clamp(22px,4vw,36px);box-shadow:var(--shadow);position:relative}
.rf-row{margin-bottom:16px}
.rf-row.two,.rf-row.three{display:grid;gap:16px}
@media(min-width:560px){.rf-row.two{grid-template-columns:1fr 1fr}.rf-row.three{grid-template-columns:1fr 1fr 1fr}}
.rf-field{display:flex;flex-direction:column;gap:7px;margin-bottom:16px}
.rf-row .rf-field{margin-bottom:0}
.rf-field label{font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);font-weight:600}
.rf-field input,.rf-field select,.rf-field textarea{
  width:100%;font-family:'Barlow',sans-serif;font-size:16px;color:var(--cream);
  background:var(--ink);border:1px solid var(--line-soft);border-radius:10px;padding:13px 14px;
  transition:border-color .25s,box-shadow .25s;-webkit-appearance:none;appearance:none;
}
.rf-field textarea{resize:vertical;min-height:84px;line-height:1.5}
.rf-field select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23d8ac52' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:40px}
.rf-field input:focus,.rf-field select:focus,.rf-field textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(216,172,82,.15)}
.rf-field input::placeholder,.rf-field textarea::placeholder{color:var(--cream-faint)}
input[type=date],input[type=time]{color-scheme:dark}
.rf-hp{position:absolute!important;left:-9999px!important;top:auto;width:1px;height:1px;overflow:hidden}
.rf-consent{display:flex;gap:12px;align-items:flex-start;margin:8px 0 22px;cursor:pointer}
.rf-consent input{margin-top:2px;width:20px;height:20px;accent-color:var(--gold);flex:none;-webkit-appearance:auto;appearance:auto}
.rf-consent span{font-size:.82rem;color:var(--cream-dim);line-height:1.5}
.rf-submit{width:100%;justify-content:center;border:0;cursor:pointer;font-size:1rem}
.rf-submit:disabled{opacity:.6;cursor:default;transform:none;box-shadow:none}
.rf-status{margin-top:16px;font-size:.9rem;text-align:center;min-height:1.2em;display:none;line-height:1.5}
.rf-status.ok{display:block;color:#8fd9a8}
.rf-status.err{display:block;color:#ef9a9a}
/* ============ CALL TO BOOK ============
   Sits where the request form used to, in the same panel treatment so the
   page keeps its two-column shape. */
.call-card{
  background:var(--panel);border:1px solid var(--line);border-radius:18px;
  padding:clamp(26px,4.5vw,40px);box-shadow:var(--shadow);text-align:center;
}
.call-card .cc-k{
  font-family:'Cinzel',serif;font-size:.62rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--gold);
}
.call-card .cc-number{
  display:block;margin:14px 0 6px;
  font-family:'Anton',sans-serif;letter-spacing:.01em;
  font-size:clamp(2rem,6vw,3.1rem);line-height:1.05;color:var(--cream);
  transition:color .25s;
}
.call-card .cc-number:hover{color:var(--gold-bright)}
.call-card .cc-when{
  font-size:.84rem;line-height:1.8;color:var(--cream-dim);
  margin-top:14px;padding-top:16px;border-top:1px solid var(--line-soft);
}
.call-card .cc-actions{
  display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:24px;
}
.call-card .cc-note{
  margin-top:20px;font-size:.78rem;color:var(--cream-faint);
  max-width:38ch;margin-left:auto;margin-right:auto;
}
@media(max-width:520px){
  .call-card .cc-actions .btn{width:100%;justify-content:center}
}

/* makes the approval step unmissable right above the submit button */
.rf-approval{
  display:flex;gap:12px;align-items:flex-start;
  background:rgba(216,172,82,.09);border:1px solid rgba(216,172,82,.3);
  border-radius:12px;padding:14px 16px;margin:4px 0 18px;
}
.rf-approval svg{width:19px;height:19px;flex:none;color:var(--gold);margin-top:1px}
.rf-approval span{font-size:.84rem;line-height:1.55;color:var(--cream-dim)}
.rf-approval b{color:var(--gold-bright);font-weight:600}
/* a request is pending, not confirmed, so it reads gold rather than green */
.rf-status.ok{color:var(--gold-bright)}
/* availability line under the date/time row */
.rf-slotnote{font-size:.78rem;color:var(--cream-dim);letter-spacing:.02em;margin:-4px 0 16px;min-height:1.15em;line-height:1.4}
.rf-slotnote.warn{color:#efb0b8}
/* a seating that is already booked reads as unavailable, not missing */
.rf-field select option:disabled{color:#7b7266}
.rf-field select:disabled{opacity:.55;cursor:not-allowed}


/* ============ NAV / DRAWER / FOOTER additions for the 6-page structure ==== */
.drawer{padding:96px 20px 88px;overflow-y:auto}
@media(max-height:720px){
  .drawer{justify-content:flex-start}
  .drawer a{font-size:1.5rem;padding:7px}
}
.nav-links a.link[aria-current="page"],.drawer a[aria-current="page"]{color:var(--gold-bright)}
.foot-links{gap:30px 40px}
.foot-col p{font-size:.82rem;color:var(--cream-dim);padding:3px 0;margin:0}
.foot-col.foot-hours a{margin-top:0}
.foot-col.foot-hours a:first-of-type{margin-top:12px}
.foot-brand img{height:56px;width:auto;border-radius:0}
.brand img{border-radius:0}

/* ============ SHARED BADGES (promoted from .pcard.signature .flag) ============ */
.badges{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.badge{
  font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;
  color:var(--gold);background:rgba(216,172,82,.12);padding:3px 8px;border-radius:5px;
  white-space:nowrap;line-height:1.6;
}
.badge.hot{color:#efb0b8;background:rgba(142,36,50,.26)}

/* ============ PAGE HERO (compact variant of .hero) ============ */
.hero.hero-page{min-height:62svh;min-height:62vh;padding-top:clamp(120px,18vw,180px)}
.hero.hero-page h1{font-size:clamp(2.6rem,10vw,7rem)}
.hero.hero-page .hero-sub{margin-bottom:0}
.hero-plain{
  position:relative;overflow:hidden;background:var(--ink);
  padding:clamp(130px,17vw,190px) 0 clamp(56px,8vw,96px);
  border-bottom:1px solid var(--line);
}
.hero-plain::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(90% 120% at 12% 0%,rgba(142,36,50,.22),transparent 58%),
             radial-gradient(70% 100% at 100% 100%,rgba(216,172,82,.10),transparent 60%);
  pointer-events:none;
}
.hero-plain .wrap{position:relative;z-index:1}
.hero-plain h1{
  font-family:'Anton',sans-serif;text-transform:uppercase;
  font-size:clamp(2.6rem,9vw,6rem);line-height:.88;letter-spacing:.004em;
  color:var(--cream);margin:16px 0 20px;text-wrap:balance;
}
.hero-plain h1 em{font-style:normal;color:var(--gold)}
.hero-plain p{max-width:56ch;font-size:clamp(1rem,2.1vw,1.14rem)}
.hero-plain .hero-cta{margin-top:30px}

/* ============ THREE BRANDS ============ */
.brands{background:var(--ink-2)}
.brand-grid{display:grid;grid-template-columns:1fr;gap:16px;margin-top:44px}
@media(min-width:820px){.brand-grid{grid-template-columns:repeat(3,1fr)}}
.bcard{
  background:var(--panel);border:1px solid var(--line-soft);border-radius:16px;
  padding:28px 26px 24px;display:flex;flex-direction:column;position:relative;overflow:hidden;
  transition:transform .4s var(--ease),border-color .4s,background .4s;
}
.bcard:hover{transform:translateY(-6px);border-color:var(--line);background:var(--char)}
.bcard::before{content:"";position:absolute;right:-34px;top:-34px;width:110px;height:110px;border-radius:50%;background:radial-gradient(circle,rgba(216,172,82,.14),transparent 70%);opacity:0;transition:opacity .4s}
.bcard:hover::before{opacity:1}
.bcard .bk{font-family:'Cinzel',serif;font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}
.bcard h3{font-family:'Anton',sans-serif;text-transform:uppercase;font-size:clamp(1.35rem,3vw,1.7rem);line-height:1.02;color:var(--cream);margin:10px 0 12px;letter-spacing:.01em}
.bcard p{font-size:.88rem;line-height:1.6}
.bcard .bsub{margin-top:12px;font-size:.82rem;color:var(--cream-faint)}
.bcard .bgo{
  margin-top:auto;padding-top:20px;display:inline-flex;align-items:center;gap:9px;
  font-size:.78rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--gold-bright);
}
.bcard .bgo svg{width:15px;height:15px;transition:transform .3s var(--ease)}
.bcard:hover .bgo svg{transform:translateX(4px)}

/* ============ WAYFINDING ============ */
.way{background:linear-gradient(180deg,var(--ink-2),var(--ink))}
.way-map{
  margin-top:40px;position:relative;width:100%;aspect-ratio:16/7;
  border-radius:16px;overflow:hidden;border:1px dashed var(--line);
  background:
    linear-gradient(180deg,rgba(25,20,18,.9),rgba(12,10,9,.9)),
    radial-gradient(60% 90% at 50% 50%,rgba(126,207,230,.10),transparent 65%);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;padding:24px;
}
@media(max-width:640px){.way-map{aspect-ratio:4/3}}
.way-map img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.way-map .wm-k{font-family:'Cinzel',serif;font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}
.way-map .wm-t{font-family:'Anton',sans-serif;text-transform:uppercase;font-size:clamp(1.1rem,3vw,1.5rem);color:var(--cream-dim);line-height:1.1}
.way-map .wm-s{font-size:.82rem;color:var(--cream-faint);max-width:46ch}
.way-map svg.rinkline{width:clamp(48px,8vw,74px);height:auto;opacity:.5}
.way-grid{display:grid;grid-template-columns:1fr;gap:16px;margin-top:16px}
@media(min-width:820px){.way-grid{grid-template-columns:repeat(3,1fr)}}
.wcard{
  background:var(--panel);border:1px solid var(--line-soft);border-radius:16px;overflow:hidden;
  display:flex;flex-direction:column;transition:transform .4s var(--ease),border-color .4s;
}
.wcard:hover{transform:translateY(-5px);border-color:var(--line)}
.wcard .wshot{
  position:relative;width:100%;aspect-ratio:16/10;overflow:hidden;
  background:linear-gradient(150deg,var(--char),var(--panel));
  display:flex;align-items:center;justify-content:center;
  border-bottom:1px solid var(--line-soft);
}
.wcard .wshot img{width:100%;height:100%;object-fit:cover}
.wcard .wshot .ph{font-family:'Cinzel',serif;font-size:.58rem;letter-spacing:.22em;text-transform:uppercase;color:var(--cream-faint);text-align:center;padding:0 16px}
.wcard .wbody{padding:22px 22px 24px;display:flex;flex-direction:column;flex:1}
.wcard h3{font-family:'Anton',sans-serif;text-transform:uppercase;font-size:1.2rem;line-height:1.05;color:var(--cream);letter-spacing:.01em}
.wcard p{font-size:.85rem;margin-top:9px}
.wcard .wloc{
  margin-top:auto;padding-top:18px;display:flex;align-items:flex-start;gap:10px;
  font-size:.8rem;color:var(--gold-bright);letter-spacing:.02em;
}
.wcard .wloc svg{width:16px;height:16px;flex:none;margin-top:2px;color:var(--gold)}

/* ============ MENU PAGE: STICKY CATEGORY NAV ============ */
.catnav{
  position:sticky;top:70px;z-index:60;
  /* opaque, so content scrolling underneath reads as scrolled past
     rather than clipped */
  background:var(--ink);
  border-bottom:1px solid var(--line);
}
.catnav-inner{
  max-width:var(--maxw);margin:0 auto;padding:0 clamp(20px,5vw,48px);
  display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;
  scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;
}
.catnav-inner::-webkit-scrollbar{display:none}
.catnav a{
  flex:none;scroll-snap-align:start;
  font-size:.8rem;font-weight:400;letter-spacing:.03em;white-space:nowrap;
  padding:16px 14px;color:var(--cream-dim);border-bottom:2px solid transparent;
  transition:color .25s,border-color .25s;
}
.catnav a:hover{color:var(--cream)}
.catnav a.current{color:var(--gold-bright);border-bottom-color:var(--gold);font-weight:500}
@media(max-width:880px){
  .catnav a{padding:14px 12px;min-height:48px;display:inline-flex;align-items:center}
}
/* no position here: .catnav is already sticky, which is a positioned
   ancestor for the fade. Re-declaring position would cancel the stick. */
.catnav-edge::after{
  content:"";position:absolute;right:0;top:0;bottom:0;width:38px;pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(12,10,9,.92));
}
@media(min-width:1120px){.catnav-edge::after{display:none}}

/* ============ MENU PAGE: SECTIONS ============ */
.mcat{scroll-margin-top:136px;padding:clamp(48px,7vw,86px) 0 0}
.mcat:last-of-type{padding-bottom:clamp(48px,7vw,86px)}
.mcat-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:14px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.mcat-head h2{font-family:'Anton',sans-serif;text-transform:uppercase;font-size:clamp(1.8rem,5vw,3rem);line-height:1;color:var(--cream);letter-spacing:.01em}
.mcat-head .mcat-n{font-family:'Cinzel',serif;font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}
.mcat-note{margin-top:16px;font-size:.85rem;color:var(--cream-dim);max-width:70ch}
.mcat-note b{color:var(--cream);font-weight:600}
.mlist.wide{max-width:100%}
.mrow .addons{margin-top:8px;display:flex;flex-wrap:wrap;gap:6px 14px}
.mrow .addons span{font-size:.74rem;color:var(--cream-faint);letter-spacing:.02em}
.mrow .addons span b{color:var(--gold);font-weight:600}
.mrow .mprice .two-price{display:flex;flex-direction:column;gap:2px;text-align:right}
.mrow .mprice .two-price i{font-style:normal;display:flex;gap:8px;justify-content:flex-end;align-items:baseline}
.mrow .mprice .two-price i em{font-style:normal;font-family:'Barlow',sans-serif;font-weight:500;font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:var(--cream-faint)}
@media(min-width:760px){.mlist.wide{display:grid;grid-template-columns:1fr 1fr;gap:0 44px}}

/* placeholder / coming-soon block */
.soon{
  margin-top:34px;background:var(--panel);border:1px dashed var(--line);border-radius:16px;
  padding:clamp(26px,4vw,40px);display:flex;flex-wrap:wrap;gap:22px;align-items:center;justify-content:space-between;
}
.soon h3{font-family:'Anton',sans-serif;text-transform:uppercase;font-size:clamp(1.3rem,3.4vw,1.9rem);color:var(--cream);line-height:1.05}
.soon p{margin-top:8px;font-size:.9rem;max-width:54ch}
.soon .soon-links{display:flex;flex-wrap:wrap;gap:12px}
.soon .btn[aria-disabled="true"]{opacity:.45;pointer-events:none}

/* ============ WINGS COMPONENT ============ */
.wing-price{
  display:flex;flex-wrap:wrap;gap:10px 26px;align-items:baseline;margin-top:26px;
}
.wing-price .wp{display:flex;align-items:baseline;gap:9px}
.wing-price .wp b{font-family:'Anton',sans-serif;font-size:1.35rem;color:var(--gold-bright);letter-spacing:.01em}
.wing-price .wp span{font-size:.76rem;letter-spacing:.12em;text-transform:uppercase;color:var(--cream-dim)}

.heat-slider{
  margin-top:26px;background:var(--panel);border:1px solid var(--line);border-radius:16px;
  padding:22px 24px 18px;
}
.heat-slider .hs-top{display:flex;flex-wrap:wrap;gap:10px;align-items:baseline;justify-content:space-between}
.heat-slider label{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);font-weight:600}
.heat-slider .hs-count{font-size:.78rem;color:var(--cream-dim);letter-spacing:.02em;text-align:right}
.heat-slider .hs-count b{font-family:'Anton',sans-serif;color:var(--cream);font-size:1rem;letter-spacing:.02em}
/* the stop name is a label, not a headline: Anton made it shout next to the
   count it is only qualifying */
.heat-slider .hs-count [data-hs=now]{
  font-family:'Barlow',system-ui,sans-serif;font-weight:500;font-size:.78rem;
  letter-spacing:.02em;color:var(--gold);
}
.heat-slider input[type=range]{
  width:100%;margin:18px 0 6px;height:26px;background:transparent;cursor:pointer;
  -webkit-appearance:none;appearance:none;
}
.heat-slider input[type=range]:focus{outline:none}
.heat-slider input[type=range]:focus-visible{outline:2px solid var(--gold);outline-offset:6px;border-radius:6px}
.heat-slider input[type=range]::-webkit-slider-runnable-track{
  height:8px;border-radius:999px;
  background:linear-gradient(90deg,var(--ice-deep),var(--gold),var(--maroon),#e0491f);
}
.heat-slider input[type=range]::-moz-range-track{
  height:8px;border-radius:999px;
  background:linear-gradient(90deg,var(--ice-deep),var(--gold),var(--maroon),#e0491f);
}
.heat-slider input[type=range]::-webkit-slider-thumb{
  -webkit-appearance:none;appearance:none;width:24px;height:24px;margin-top:-8px;border-radius:50%;
  background:linear-gradient(135deg,var(--gold-bright),var(--gold));border:2px solid var(--ink);
  box-shadow:0 6px 18px -6px rgba(216,172,82,.9);transition:transform .2s var(--ease);
}
.heat-slider input[type=range]::-moz-range-thumb{
  width:24px;height:24px;border-radius:50%;
  background:linear-gradient(135deg,var(--gold-bright),var(--gold));border:2px solid var(--ink);
  box-shadow:0 6px 18px -6px rgba(216,172,82,.9);
}
.heat-slider input[type=range]:active::-webkit-slider-thumb{transform:scale(1.12)}
/* Stop labels sit under the thumb, not in equal columns.
   The thumb centre travels from thumb/2 to (100% - thumb/2), so stop i is at
   thumb/2 + (100% - thumb) * i/4. Equal flex columns put them at
   (i + 0.5)/5 of the width, which is why they drifted out of line. */
.heat-slider{--thumb:24px}
.heat-slider .hs-stops{position:relative;height:1.5em;margin-top:8px}
.heat-slider .hs-stops span{
  position:absolute;top:0;transform:translateX(-50%);
  font-size:.58rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--cream-faint);line-height:1.3;white-space:nowrap;
  transition:color .25s;
}
.heat-slider .hs-stops span:nth-child(1){left:calc(var(--thumb) / 2)}
.heat-slider .hs-stops span:nth-child(2){left:calc(var(--thumb) / 2 + (100% - var(--thumb)) * 0.25)}
.heat-slider .hs-stops span:nth-child(3){left:50%}
.heat-slider .hs-stops span:nth-child(4){left:calc(var(--thumb) / 2 + (100% - var(--thumb)) * 0.75)}
.heat-slider .hs-stops span:nth-child(5){left:calc(100% - var(--thumb) / 2)}
.heat-slider .hs-stops span.on{color:var(--gold-bright);font-weight:600}
/* ---- wing board on small screens ----------------------------------------
   The panel stays pinned while you scroll the flavours, on phones too.
   What broke before was not the sticking, it was that the panel had no
   stacking context, so the tier headings and chips painted straight over it.
   z-index fixes that; the opaque panel colour does the rest.

   It also gets compacted: the desktop panel is ~345px tall, which would eat
   nearly half a phone screen. The prices already sit above the board, so they
   come out, and the description clamps to two lines. */
@media(max-width:900px){
  .heat-wrap{gap:18px}
  .heat-panel{
    padding:14px 16px 12px;border-radius:14px;
    box-shadow:0 16px 32px -20px rgba(0,0,0,.95);
  }
  .heat-panel .hp-k{display:none}
  .heat-panel .hp-name{font-size:1.16rem;margin:0;min-height:0}
  .heat-panel .hp-desc{
    font-size:.78rem;min-height:0;margin-top:4px;
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  }
  .heat-panel .meter{margin:10px 0 6px;gap:5px}
  .heat-panel .meter .flame{height:24px}
  .heat-panel .meter .flame svg{width:13px;height:13px}
  .heat-panel .heat-label{font-size:.62rem}
  .heat-panel .heat-price{display:none}
}
@media(max-width:620px){
  .heat-slider .hs-stops{display:none}
  .heat-slider input[type=range]{height:44px;margin:12px 0 0}   /* thumb easy to grab */
  .heat-slider .hs-top{gap:4px 12px}
  .heat-slider .hs-count{font-size:.74rem}
  .heat-slider .hs-count b{font-size:.92rem}
}
@media(max-width:400px){
  .heat-slider{padding:18px 16px 16px}
  .heat-slider .hs-count{width:100%;text-align:left}
  .heat-slider .hs-count .hs-dot{opacity:.5}
}

/* Chips, dots, tier headings and the heat meter are the original board's,
   untouched. The only additions here are a keyboard focus ring and the
   hidden state the max-heat slider needs. */
.chip:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.sauce-block[hidden],.chip[hidden]{display:none}

.wing-notes{margin-top:30px;display:grid;gap:8px}
.wing-notes p{font-size:.82rem;color:var(--cream-faint);letter-spacing:.02em}
.wing-notes p b{color:var(--gold);font-weight:600}
.wing-more{
  margin-top:26px;display:inline-flex;align-items:center;gap:10px;
  font-size:.82rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--gold-bright);
  border-bottom:1px solid rgba(216,172,82,.4);padding-bottom:4px;
  transition:color .25s,border-color .25s;
}
.wing-more:hover{color:var(--cream);border-color:var(--cream)}
.wing-more svg{width:15px;height:15px;transition:transform .3s var(--ease)}
.wing-more:hover svg{transform:translateX(4px)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* ============ CANCEL PAGE ============ */
.cancel-card{
  max-width:560px;margin:clamp(60px,9vw,110px) auto 0;
  background:var(--panel);border:1px solid var(--line);border-radius:18px;
  padding:clamp(26px,4.5vw,40px);box-shadow:var(--shadow);
}
.cancel-card h1{
  font-family:'Anton',sans-serif;text-transform:uppercase;
  font-size:clamp(1.8rem,5vw,2.8rem);line-height:1.02;color:var(--cream);
  margin:14px 0 14px;padding-top:.06em;
}
.cancel-card>p{font-size:.95rem}
.cancel-details{margin:26px 0 8px}
.cancel-details .hours-row span:last-child{color:var(--cream);font-weight:500}
.cancel-card .hero-cta{margin-top:26px}
.cancel-card .rf-status{text-align:left}
.cancel-card .reserve-alt{margin-top:22px;font-size:.85rem}

/* ============ CATERING ============ */
.cater-lede{
  background:var(--panel);border:1px solid var(--line);border-radius:16px;
  padding:clamp(22px,3.6vw,32px);
  scroll-margin-top:136px;
}
/* padding, not a margin on the first child, so it cannot collapse away and
   leave the intro jammed against the sticky category bar */
.catnav + .menu > .wrap{padding-top:clamp(40px,6vw,72px)}
/* that padding already spaces the first section, so it does not need its own */
[data-menu] > .mcat:first-child{padding-top:0}
.cater-lede p{font-size:.92rem}
.cater-lede p+p{margin-top:12px}
.cater-lede .nutfree{
  margin-top:18px;display:inline-flex;align-items:center;gap:10px;
  background:rgba(126,207,230,.10);border:1px solid rgba(126,207,230,.32);
  border-radius:999px;padding:9px 18px 9px 14px;
}
.cater-lede .nutfree svg{width:18px;height:18px;color:var(--ice);flex:none}
.cater-lede .nutfree b{font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ice)}
/* lead-time pill carries the gold accent so it reads first */
.cater-lede .nutfree.lead{background:rgba(216,172,82,.12);border-color:rgba(216,172,82,.36)}
.cater-lede .nutfree.lead svg,.cater-lede .nutfree.lead b{color:var(--gold-bright)}
.cater-flags{display:flex;flex-wrap:wrap;gap:10px}
.cater-notice{margin-top:16px;font-size:.86rem;line-height:1.6}
.cater-notice b{color:var(--gold-bright);font-weight:600}
.pkg-grid{display:grid;grid-template-columns:1fr;gap:14px;margin-top:26px}
@media(min-width:640px){.pkg-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1000px){.pkg-grid{grid-template-columns:repeat(3,1fr)}}
.camp-grid{display:grid;grid-template-columns:1fr;gap:14px;margin-top:26px}
@media(min-width:760px){.camp-grid{grid-template-columns:1fr 1fr}}
.daylist{display:grid;gap:2px}
.daylist .drow{display:flex;justify-content:space-between;gap:18px;padding:11px 0;border-bottom:1px solid var(--line-soft);font-size:.9rem}
.daylist .drow span:first-child{color:var(--gold);font-weight:600;letter-spacing:.06em;text-transform:uppercase;font-size:.7rem;align-self:center}
.daylist .drow span:last-child{color:var(--cream-dim);text-align:right}

/* ============ CROSS-LINK STRIP ============ */
.xlink{
  margin-top:44px;background:var(--panel);border:1px solid var(--line);border-radius:16px;
  padding:clamp(26px,4vw,40px);display:flex;flex-wrap:wrap;gap:22px;align-items:center;justify-content:space-between;
}
.xlink h3{font-family:'Anton',sans-serif;text-transform:uppercase;font-size:clamp(1.3rem,3.4vw,1.9rem);color:var(--cream);line-height:1.05}
.xlink p{margin-top:8px;font-size:.9rem;max-width:54ch}

/* ============ CAFE ============ */
.cafe-empty{
  margin-top:40px;border:1px dashed var(--line);border-radius:16px;background:var(--panel);
  padding:clamp(34px,6vw,64px) clamp(22px,4vw,40px);text-align:center;
}
.cafe-empty .ce-k{font-family:'Cinzel',serif;font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}
.cafe-empty h3{font-family:'Anton',sans-serif;text-transform:uppercase;font-size:clamp(1.5rem,4vw,2.3rem);color:var(--cream);margin:12px 0 12px;line-height:1.05}
.cafe-empty p{max-width:52ch;margin:0 auto;font-size:.92rem}
.cafe-empty .btn{margin-top:26px}

/* /visit opens straight into Hours & Location with no hero, so the first
   section has to clear the fixed header on its own */
header.nav + .drawer + section.sec-pad{padding-top:clamp(118px,14vw,175px)}

/* ============ SECTION DIVIDERS ============ */
.sec-rule{
  border:0;height:1px;margin:0;
  background:linear-gradient(90deg,transparent,var(--line) 18%,var(--line) 82%,transparent);
}

/* ============ SECTION HEADINGS ============
   The heading gets the full column so it can hold one line; the paragraph
   under it keeps a readable measure. */
.head{max-width:none}
.head p,.head .kicker{max-width:66ch}
.head.center p{margin-left:auto;margin-right:auto}
h2.display{line-height:1.02}
/* Anton's accents (the E in CAFE) sit high, so give the line box room */
h2.display,.hero-plain h1,.hero h1{padding-top:.06em}

/* one line per section heading on the home page */
.home h2.display{font-size:clamp(1.85rem,4.6vw,3.5rem);text-wrap:balance}
.home .story-copy h2.display{font-size:clamp(1.6rem,3.3vw,2.6rem)}
/* the award headline is the longest one, so its column has to hold it */
.home .award-inner{max-width:940px}
.home .award .quote,.home .award-inner>p{max-width:60ch;margin-left:auto;margin-right:auto}

/* ============ WINGS: breathing room under the slider ============ */
.heat-slider+.sauce-block{margin-top:34px}

/* teaser picks sit on a grid so every row is full width, with the column
   count set by the component to match how many chips are visible */
.chips-even{display:grid;gap:9px;grid-template-columns:repeat(3,minmax(0,1fr))}
.chips-even .chip{width:100%;justify-content:center}

/* ============ CARD TITLES ============
   Anton is the display face and stays on h1/h2, where it has the size to
   carry it. At card scale it reads as shouting, so h3-level titles use the
   body face - the same treatment .pcard h3 already uses on the pizza cards.
   Sizes drop a notch because the body face is wider than condensed Anton. */
.bcard h3,
.wcard h3,
.pk h3,
.cater-cta .cc-text h3,
.xlink h3,
.soon h3,
.cafe-empty h3{
  font-family:'Barlow',system-ui,sans-serif;
  font-weight:600;
  text-transform:none;
  letter-spacing:-.005em;
  line-height:1.2;
}
.bcard h3{font-size:clamp(1.18rem,2.4vw,1.42rem)}
.wcard h3{font-size:1.06rem}
.pk h3{font-size:1.18rem}
.cater-cta .cc-text h3,
.xlink h3,
.soon h3{font-size:clamp(1.22rem,2.8vw,1.58rem)}
.cafe-empty h3{font-size:clamp(1.3rem,3vw,1.75rem)}

/* ============ TOUCH TARGETS (mobile) ============ */
@media(max-width:720px){
  .chip{min-height:44px;display:inline-flex;align-items:center}
  .tab{min-height:44px;display:inline-flex;align-items:center}
  .nav-links a.link{padding-top:12px;padding-bottom:12px}
}
/* two pizza cards per row leaves no space for a title and a price side by
   side, so the price drops under the title on small screens */
@media(max-width:560px){
  .pcard .pz-top{flex-wrap:wrap;gap:2px}
  .pcard .pz-top h3{flex:1 1 100%}
  .pcard .price{flex:none}
}

/* ============ REDUCED MOTION ============ */
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition-duration:.01ms!important}
  .reveal,.tile{opacity:1!important;transform:none!important}
  html{scroll-behavior:auto}
}
