/* =========================================================
   El Burrito — feature layer
   Everything added in the September 2026 pass lives here so
   style.css stays the stable base.
   ========================================================= */

.skip-link{
  position:fixed; left:12px; top:-60px; z-index:1000;
  background:var(--marigold); color:var(--ink); font-weight:700;
  padding:.6rem 1rem; border-radius:10px; transition:top .2s ease;
}
.skip-link:focus{ top:12px; }
html.modal-lock, html.menu-lock{ overflow:hidden; }
.section-sub{ max-width:560px; margin:1rem auto 0; font-size:.98rem; line-height:1.6; color:rgba(247,237,224,.68); }
.center-cta{ display:flex; justify-content:center; margin-top:2.6rem; }
.btn-glass{ background:rgba(20,17,13,.35); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); border-color:rgba(247,237,224,.28); }
.page-head{ min-height:46vh; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:2.5rem 5vw 3rem; }
.page-head h1{ font-size:clamp(2.5rem,7.5vw,5.2rem); max-width:900px; }
a:focus-visible, button:focus-visible{ outline:2px solid var(--marigold); outline-offset:3px; }

/* ---------------------------------------------------------
   FLOATING SETTINGS (desktop) + sound/lang buttons
   --------------------------------------------------------- */
.floaters{ position:fixed; right:22px; bottom:22px; z-index:150; display:flex; gap:10px; }
.sound-toggle, .lang-toggle{
  width:48px; height:48px; border-radius:50%;
  border:1.5px solid var(--line); background:rgba(20,17,13,.85);
  -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
  display:flex; align-items:center; justify-content:center; color:var(--cream);
  transition:border-color .2s ease, background-color .2s ease, transform .2s ease;
}
.sound-toggle:hover, .lang-toggle:hover{ border-color:var(--marigold); background:rgba(243,167,18,.12); transform:translateY(-2px); }
.sound-toggle .st-icon, .sound-toggle svg{ width:20px; height:20px; display:flex; }
.floaters .lang-toggle{ position:static; order:0; }

/* ---------------------------------------------------------
   MOBILE HEADER + MENU SHEET
   --------------------------------------------------------- */
.nav-burger{
  display:none; width:46px; height:46px; border-radius:50%;
  border:1px solid rgba(247,237,224,.16); background:rgba(16,13,10,.78);
  -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
  box-shadow:0 4px 14px rgba(0,0,0,.32);
  flex-direction:column; align-items:center; justify-content:center; gap:4.5px; padding:0;
}
.nav-burger span{ width:18px; height:2px; border-radius:2px; background:var(--cream); transition:transform .3s ease, opacity .2s ease; }
.nav-burger[aria-expanded="true"] span:nth-child(1){ transform:translateY(6.5px) rotate(45deg); }
.nav-burger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.nav-burger[aria-expanded="true"] span:nth-child(3){ transform:translateY(-6.5px) rotate(-45deg); }

.mobile-menu{
  position:fixed; inset:0; z-index:270; display:flex; justify-content:flex-end;
  background:rgba(8,6,5,.55); -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px);
  opacity:0; pointer-events:none; transition:opacity .3s ease;
}
.mobile-menu.open{ opacity:1; pointer-events:auto; }
.mm-panel{
  width:min(360px, 88vw); height:100%; overflow-y:auto;
  padding:calc(var(--banner-h) + 78px) 1.4rem 2rem;
  background:linear-gradient(180deg, #1d1712 0%, #140f0b 100%);
  border-left:1px solid var(--line); box-shadow:-30px 0 60px rgba(0,0,0,.5);
  transform:translateX(100%); transition:transform .42s cubic-bezier(.2,.8,.2,1);
  display:flex; flex-direction:column; gap:1.6rem;
}
.mobile-menu.open .mm-panel{ transform:none; }
.mm-links{ display:flex; flex-direction:column; }
.mm-link{
  font-family:'Anton', sans-serif; text-transform:uppercase; letter-spacing:.02em;
  font-size:1.7rem; line-height:1; color:var(--cream); text-align:left;
  padding:.62rem 0; background:none; border:none; border-bottom:1px solid rgba(247,237,224,.08);
  transition:color .2s ease, padding-left .25s ease;
  opacity:0; transform:translateX(24px);
}
.mobile-menu.open .mm-link{ opacity:1; transform:none; transition:opacity .4s ease, transform .4s ease, color .2s ease, padding-left .25s ease; }
.mobile-menu.open .mm-link:nth-child(2){ transition-delay:.04s; } .mobile-menu.open .mm-link:nth-child(3){ transition-delay:.08s; }
.mobile-menu.open .mm-link:nth-child(4){ transition-delay:.12s; } .mobile-menu.open .mm-link:nth-child(5){ transition-delay:.16s; }
.mobile-menu.open .mm-link:nth-child(6){ transition-delay:.2s; }
.mm-link:hover, .mm-link[aria-current="page"]{ color:var(--marigold); padding-left:.4rem; }
.mm-settings{ display:flex; flex-direction:column; gap:.7rem; padding:1rem; border-radius:18px; background:rgba(247,237,224,.04); border:1px solid var(--line); }
.mm-setting{ display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.mm-set-label{ font-size:.82rem; font-weight:600; color:rgba(247,237,224,.72); }
.lang-seg{ display:inline-flex; padding:3px; border-radius:999px; background:rgba(0,0,0,.35); border:1px solid var(--line); }
.lang-seg span{ padding:.42rem .8rem; border-radius:999px; font-size:.78rem; font-weight:700; color:rgba(247,237,224,.6); transition:all .25s ease; }
.lang-seg span.on{ background:var(--marigold); color:var(--ink); }
.sound-pill{ display:inline-flex; align-items:center; gap:.45rem; padding:.45rem .9rem; border-radius:999px; background:rgba(0,0,0,.35); border:1px solid var(--line); color:var(--cream); font-size:.8rem; font-weight:700; }
.sound-pill .st-icon{ width:18px; height:18px; display:flex; }
.sound-pill[aria-pressed="true"]{ border-color:rgba(243,167,18,.5); color:var(--marigold); }

@media (max-width:760px){
  nav{ justify-content:space-between; padding:10px 4vw; }
  nav .home-pill{ display:none; }
  nav .navlinks > :not(.nav-cta){ display:none; }
  nav .nav-cta{ padding:.72rem 1.3rem; font-size:.78rem; }
  .nav-burger{ display:flex; position:relative; z-index:290; }
  .floaters{ display:none; }
  nav.hide-nav{ transform:none; }
}

/* ---------------------------------------------------------
   LANGUAGE HINT CALLOUT
   --------------------------------------------------------- */
.lang-hint{
  position:fixed; z-index:420; width:min(250px, calc(100vw - 20px));
  border-radius:14px; background:rgba(28,22,17,.96); color:var(--cream);
  border:1px solid rgba(243,167,18,.45);
  box-shadow:0 14px 34px rgba(0,0,0,.45), 0 0 0 4px rgba(243,167,18,.08);
  opacity:0; transform:translateY(6px) scale(.97); transition:opacity .25s ease, transform .25s ease;
  --arrow-x:50%;
}
.lang-hint.lh-below{ transform:translateY(-6px) scale(.97); }
.lang-hint.in{ opacity:1; transform:none; }
.lang-hint.out{ opacity:0; transform:scale(.96); }
.lang-hint::after{
  content:''; position:absolute; left:var(--arrow-x); width:12px; height:12px; margin-left:-6px;
  background:inherit; border:inherit; border-width:0 1px 1px 0; transform:rotate(45deg);
}
.lang-hint.lh-above::after{ bottom:-7px; }
.lang-hint.lh-below::after{ top:-7px; transform:rotate(225deg); }
.lh-body{ display:flex; gap:.65rem; align-items:center; width:100%; text-align:left; padding:.7rem .8rem .8rem; background:none; border:none; color:inherit; border-radius:14px; }
.lh-flag{
  flex:0 0 30px; height:30px; border-radius:9px; display:flex; align-items:center; justify-content:center;
  font-family:'Fraunces', serif; font-weight:700; font-size:.85rem; color:var(--ink);
  background:linear-gradient(135deg, #1f8a3d 0 33%, #f7ede0 33% 66%, #d92b1f 66%);
}
.lh-text{ display:flex; flex-direction:column; gap:.1rem; line-height:1.3; }
.lh-text b{ font-size:.86rem; }
.lh-text span{ font-size:.76rem; color:rgba(247,237,224,.72); }
.lh-close{
  position:absolute; top:-9px; right:-9px; width:24px; height:24px; border-radius:50%;
  background:#2b221a; border:1px solid rgba(247,237,224,.3); color:var(--cream); font-size:.62rem;
  display:flex; align-items:center; justify-content:center;
  opacity:0; transform:scale(.6); transition:opacity .18s ease, transform .18s ease;
}
.lang-hint:hover .lh-close, .lang-hint:focus-within .lh-close{ opacity:1; transform:none; }
@media (hover:none){ .lh-close{ opacity:1; transform:none; } }
.lh-bar{ position:absolute; left:10px; right:10px; bottom:5px; height:3px; border-radius:3px; background:rgba(247,237,224,.1); overflow:hidden; }
.lh-bar i{ display:block; height:100%; width:100%; border-radius:3px; background:linear-gradient(90deg, var(--marigold), var(--orange)); transform-origin:left; animation:lhTimer linear forwards; }
.lang-hint:hover .lh-bar i{ animation-play-state:paused; }
@keyframes lhTimer{ from{ transform:scaleX(1); } to{ transform:scaleX(0); } }
@media (prefers-reduced-motion: reduce){ .lh-bar i{ animation-duration:5500ms !important; } }

/* ---------------------------------------------------------
   HOME HERO
   --------------------------------------------------------- */
.hero-food{ position:relative; min-height:calc(100vh - var(--banner-h)); display:flex; align-items:center; justify-content:center; text-align:center; overflow:hidden; margin-top:calc(var(--banner-h) * -1); padding-top:var(--banner-h); }
.hf-bg{ position:absolute; inset:0; }
.hf-bg img{ width:100%; height:100%; object-fit:cover; object-position:50% 55%; transform:scale(1.12); animation:kenBurns 26s ease-in-out infinite alternate; }
@keyframes kenBurns{ from{ transform:scale(1.12) translate(0,0); } to{ transform:scale(1.22) translate(-2%, -1.5%); } }
.hf-shade{ position:absolute; inset:0;
  background:
    radial-gradient(ellipse 70% 60% at 50% 48%, rgba(20,17,13,.55), rgba(20,17,13,.2) 70%),
    linear-gradient(180deg, rgba(20,17,13,.9) 0%, rgba(20,17,13,.35) 30%, rgba(20,17,13,.45) 70%, var(--ink) 100%); }
.hf-inner{ position:relative; z-index:2; padding:4rem 5vw 6rem; display:flex; flex-direction:column; align-items:center; }
.hero-food .site-name-hero{ font-size:clamp(4rem, 15vw, 10.5rem); text-shadow:0 6px 40px rgba(0,0,0,.6), 0 0 80px rgba(243,167,18,.25); animation:heroIn 1.1s cubic-bezier(.2,.8,.2,1) both; }
.hero-food .eyebrow{ color:#6fe0d8; text-shadow:0 2px 10px rgba(0,0,0,.6); animation:heroIn .9s .1s both; }
.hf-desc{ max-width:600px; margin:1.4rem auto 2.2rem; font-size:1.1rem; line-height:1.6; color:rgba(247,237,224,.9); text-shadow:0 2px 14px rgba(0,0,0,.7); animation:heroIn 1s .25s both; }
.hf-ctas{ display:flex; gap:1rem; flex-wrap:wrap; justify-content:center; animation:heroIn 1s .4s both; }
@keyframes heroIn{ from{ opacity:0; transform:translateY(26px); } to{ opacity:1; transform:none; } }
.hf-scroll{ margin-top:3.2rem; display:flex; flex-direction:column; align-items:center; gap:.7rem; font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color:rgba(247,237,224,.65); }
.hf-scroll span[aria-hidden]{ width:2px; height:38px; border-radius:2px; background:linear-gradient(var(--marigold), transparent); animation:scrollCue 1.8s ease-in-out infinite; transform-origin:top; }
@keyframes scrollCue{ 0%{ transform:scaleY(0); opacity:1; } 70%{ transform:scaleY(1); opacity:1; } 100%{ transform:scaleY(1); opacity:0; } }

/* ---------------------------------------------------------
   FOOD GALLERY (bento) + LIGHTBOX
   --------------------------------------------------------- */
.food-section{ padding-top:5rem; }
.food-gallery{
  display:grid; gap:14px; max-width:1260px; margin:0 auto;
  grid-template-columns:repeat(4, 1fr); grid-auto-rows:200px; grid-auto-flow:dense;
}
.fg-tile{
  position:relative; overflow:hidden; border-radius:20px; border:1px solid var(--line);
  padding:0; background:#1c1712; cursor:zoom-in; color:var(--cream);
  box-shadow:0 18px 40px rgba(0,0,0,.35);
  transition-delay:var(--d, 0ms);
}
.fg-big{ grid-column:span 2; grid-row:span 2; }
.fg-tall{ grid-row:span 2; }
.fg-wide{ grid-column:span 2; }
.fg-tile img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform 1.1s cubic-bezier(.2,.8,.25,1), filter .5s ease; filter:saturate(1.05); }
.fg-tile::after{ content:''; position:absolute; inset:0; background:linear-gradient(0deg, rgba(10,8,6,.78) 0%, rgba(10,8,6,.05) 45%, transparent 70%); transition:opacity .4s ease; }
.fg-tile:hover img, .fg-tile:focus-visible img{ transform:scale(1.08); filter:saturate(1.2) brightness(1.05); }
.fg-cap{ position:absolute; left:1.1rem; bottom:1rem; right:3.4rem; z-index:2; text-align:left; }
.fg-cap b{ font-family:'Anton'; font-weight:400; font-size:clamp(1rem, 1.8vw, 1.45rem); letter-spacing:.02em; text-transform:uppercase; text-shadow:0 2px 12px rgba(0,0,0,.6); }
.fg-big .fg-cap b{ font-size:clamp(1.4rem, 3vw, 2.3rem); }
.fg-zoom{
  position:absolute; right:.9rem; bottom:.9rem; z-index:2; width:36px; height:36px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; color:var(--ink); background:var(--marigold);
  transform:scale(.6); opacity:0; transition:all .3s cubic-bezier(.2,.9,.3,1.3);
}
.fg-zoom svg{ width:18px; height:18px; }
.fg-tile:hover .fg-zoom, .fg-tile:focus-visible .fg-zoom{ transform:none; opacity:1; }
@media (max-width:900px){ .food-gallery{ grid-template-columns:repeat(2,1fr); grid-auto-rows:170px; } }
@media (max-width:520px){ .food-gallery{ grid-auto-rows:140px; gap:10px; } .fg-zoom{ opacity:1; transform:scale(.85); } }

.lightbox{
  position:fixed; inset:0; z-index:700; display:flex; align-items:center; justify-content:center; gap:1rem;
  padding:1.5rem; background:rgba(8,6,5,.94); opacity:0; pointer-events:none; transition:opacity .3s ease;
}
.lightbox.open{ opacity:1; pointer-events:auto; }
.lb-stage{ margin:0; max-width:min(1100px, 100%); display:flex; flex-direction:column; align-items:center; gap:1rem; }
.lb-stage img{ max-height:74vh; max-width:100%; border-radius:18px; box-shadow:0 30px 80px rgba(0,0,0,.6); object-fit:contain; }
.lb-stage img.lb-in{ animation:lbIn .45s cubic-bezier(.2,.8,.2,1); }
@keyframes lbIn{ from{ opacity:0; transform:scale(.96); } to{ opacity:1; transform:none; } }
.lb-stage figcaption{ display:flex; align-items:center; gap:1rem; flex-wrap:wrap; justify-content:center; }
.lb-title{ font-family:'Anton'; font-weight:400; font-size:1.6rem; text-transform:uppercase; letter-spacing:.02em; }
.lb-count{ font-size:.8rem; color:rgba(247,237,224,.55); font-variant-numeric:tabular-nums; }
.lb-nav, .lb-close{ flex:0 0 auto; width:50px; height:50px; border-radius:50%; background:rgba(247,237,224,.08); border:1px solid var(--line); color:var(--cream); display:flex; align-items:center; justify-content:center; transition:background .2s ease, transform .2s ease; }
.lb-nav svg{ width:22px; height:22px; }
.lb-nav:hover, .lb-close:hover{ background:rgba(243,167,18,.2); transform:scale(1.06); }
.lb-close{ position:absolute; top:18px; right:18px; font-size:1rem; }
@media (max-width:640px){ .lb-nav{ position:absolute; bottom:18px; } .lb-prev{ left:calc(50% - 60px); } .lb-next{ right:calc(50% - 60px); } .lb-stage img{ max-height:62vh; } }

/* ---------------------------------------------------------
   LOCATION CARDS
   --------------------------------------------------------- */
.loc-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(260px, 1fr)); gap:1.4rem; max-width:1320px; margin:0 auto; }
.loc-card{ display:flex; flex-direction:column; position:relative; overflow:hidden; }
.loc-card::before{
  content:''; position:absolute; inset:0 0 auto 0; height:4px;
  background:linear-gradient(90deg, var(--crimson), var(--marigold), #1f8a3d, #2fb3d9, #7b3fa0);
  opacity:.8;
}
.lc-logo{ height:108px; display:flex; align-items:center; justify-content:center; margin:.4rem 0 1.2rem; }
.lc-logo img{ max-height:100%; max-width:100%; width:auto; object-fit:contain; filter:drop-shadow(0 10px 18px rgba(0,0,0,.45)); transition:transform .5s cubic-bezier(.2,.8,.25,1); }
.loc-card:hover .lc-logo img{ transform:scale(1.05) rotate(-1deg); }
.loc-card h3{ font-size:1.65rem; margin-bottom:.55rem; }
.lc-vibe{ color:rgba(247,237,224,.72); font-size:.9rem; line-height:1.55; margin-bottom:1rem; flex:1; }
.lc-addr{ color:rgba(247,237,224,.5); font-size:.8rem; margin-bottom:1.1rem; }
.lc-go{ font-size:.78rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--marigold); }
.lc-actions{ display:flex; gap:.5rem; flex-wrap:wrap; }

/* ---------------------------------------------------------
   HOME: story + catering band
   --------------------------------------------------------- */
.story-band{ background:linear-gradient(180deg, rgba(20,17,13,.55), rgba(16,13,10,.75)); }
.story-grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:3.5rem; align-items:center; max-width:1200px; margin:0 auto; }
.story-h{ font-size:clamp(2rem,4.5vw,3rem); margin-bottom:1.2rem; }
.story-p{ color:rgba(247,237,224,.8); line-height:1.7; margin-bottom:1.1rem; max-width:60ch; }
.story-photo{ aspect-ratio:4/5; }
@media (max-width:860px){ .story-grid{ grid-template-columns:1fr; gap:2.4rem; } .story-photo{ aspect-ratio:4/3; } }
.mil-badge{
  display:inline-flex; align-items:center; gap:.5rem; padding:.45rem .9rem .45rem .6rem; border-radius:999px;
  background:rgba(47,179,217,.1); border:1px solid rgba(47,179,217,.35); color:#9fe3f5;
  font-size:.74rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
}
.mil-badge svg{ width:16px; height:16px; color:#f3a712; }
.mil-lg{ margin-top:.6rem; font-size:.8rem; }

.cater-band{ position:relative; overflow:hidden; min-height:440px; display:flex; align-items:center; justify-content:center; text-align:center; }
.cb-bg{ position:absolute; inset:0; }
.cb-bg img{ width:100%; height:100%; object-fit:cover; }
.cater-band::after{ content:''; position:absolute; inset:0; background:linear-gradient(90deg, rgba(20,17,13,.92), rgba(20,17,13,.55)), linear-gradient(0deg, var(--ink), transparent 30%, transparent 70%, var(--ink)); }
.cb-inner{ position:relative; z-index:2; max-width:640px; }
.cb-inner h2{ font-size:clamp(2.2rem,6vw,4rem); margin-bottom:1rem; }
.cb-inner p{ color:rgba(247,237,224,.85); line-height:1.65; margin-bottom:1.8rem; }

/* ---------------------------------------------------------
   LOCATIONS PAGE: finder
   --------------------------------------------------------- */
.finder-section{ padding-top:0; padding-bottom:2.5rem; }
.finder-card{ max-width:640px; margin:0 auto; padding:1.8rem; border-radius:22px; background:rgba(247,237,224,.04); border:1px solid var(--line); }
.finder-h{ font-size:1.6rem; margin-bottom:1rem; }
.loc-grid-full{ padding-bottom:1rem; }

/* nearest-location widget (shared) */
.nf-label{ display:block; font-size:.75rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:rgba(247,237,224,.62); margin-bottom:.5rem; }
.nf-row{ display:flex; gap:.5rem; }
.nf-input{
  flex:1; min-width:0; padding:.85rem 1rem; border-radius:12px; border:1.5px solid var(--line);
  background:rgba(0,0,0,.25); color:var(--cream); font:inherit; font-size:.95rem;
}
.nf-input:focus{ outline:none; border-color:var(--marigold); box-shadow:0 0 0 3px rgba(243,167,18,.18); }
.nf-geo{ display:inline-flex; align-items:center; gap:.4rem; margin-top:.7rem; background:none; border:none; color:#7fd6f0; font-size:.84rem; font-weight:600; padding:.2rem 0; }
.nf-geo svg{ width:16px; height:16px; }
.nf-geo:hover{ color:#b5ebfa; text-decoration:underline; }
.nf-out:empty{ display:none; }
.nf-out{ margin-top:1rem; }
.nf-msg{ display:flex; align-items:center; gap:.6rem; font-size:.88rem; color:rgba(247,237,224,.75); }
.nf-err{ color:#ff9d8a; }
.nf-spin{ width:16px; height:16px; border-radius:50%; border:2px solid rgba(247,237,224,.2); border-top-color:var(--marigold); animation:spin .8s linear infinite; }
@keyframes spin{ to{ transform:rotate(360deg); } }
.nf-best{
  display:flex; align-items:center; gap:.9rem; padding:.9rem; border-radius:16px;
  background:linear-gradient(135deg, rgba(243,167,18,.14), rgba(194,59,59,.1)); border:1px solid rgba(243,167,18,.45);
  animation:lbIn .4s ease;
}
.nf-logo{ width:64px; height:48px; object-fit:contain; flex:0 0 auto; }
.nf-best-txt{ flex:1; display:flex; flex-direction:column; gap:.1rem; min-width:0; }
.nf-kicker{ font-size:.66rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--marigold); }
.nf-best-txt b{ font-family:'Fraunces'; font-size:1.15rem; }
.nf-best-txt span:last-child{ font-size:.8rem; color:rgba(247,237,224,.7); }
.nf-others{ margin-top:.6rem; font-size:.84rem; }
.nf-others summary{ cursor:pointer; color:rgba(247,237,224,.65); padding:.3rem 0; }
.nf-other{ display:flex; justify-content:space-between; width:100%; padding:.55rem .7rem; margin-top:.35rem; border-radius:10px; background:rgba(247,237,224,.03); border:1px solid var(--line); color:var(--cream); font-size:.86rem; }
.nf-other:hover{ border-color:var(--marigold); }
@media (max-width:480px){ .nf-row{ flex-direction:column; } .nf-best{ flex-wrap:wrap; } .nf-best .nf-pick{ width:100%; justify-content:center; } }

/* ---------------------------------------------------------
   ABOUT
   --------------------------------------------------------- */
.since-pill{ margin-top:1.4rem; display:inline-block; padding:.5rem 1.1rem; border-radius:999px; border:1px solid rgba(243,167,18,.4); color:var(--marigold); font-size:.8rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.about-story{ padding-top:0; }
.as-grid{ display:grid; grid-template-columns:1.15fr .85fr; gap:3.5rem; align-items:center; max-width:1150px; margin:0 auto; }
.as-text p{ color:rgba(247,237,224,.82); line-height:1.8; font-size:1.04rem; margin-bottom:1.3rem; max-width:62ch; }
.as-text .lede{ font-family:'Fraunces', serif; font-size:clamp(1.2rem,2.2vw,1.45rem); line-height:1.55; color:var(--cream); }
.as-thanks{ padding-left:1rem; border-left:3px solid var(--marigold); font-style:italic; }
.as-photo{ aspect-ratio:4/5; transform:rotate(1.4deg); }
@media (max-width:860px){ .as-grid{ grid-template-columns:1fr; } .as-photo{ aspect-ratio:4/3; transform:none; } }

.military{ padding-top:1rem; }
.mil-card{
  max-width:1000px; margin:0 auto; display:grid; grid-template-columns:auto 1fr; gap:2.4rem; align-items:center;
  padding:2.6rem; border-radius:26px; position:relative; overflow:hidden;
  background:linear-gradient(135deg, rgba(18,58,143,.35), rgba(20,17,13,.6) 55%, rgba(194,59,59,.25));
  border:1px solid rgba(157,185,255,.25);
}
.mil-card::before{ content:''; position:absolute; inset:0; background:repeating-linear-gradient(135deg, rgba(255,255,255,.025) 0 12px, transparent 12px 24px); pointer-events:none; }
.mil-emblem{ width:120px; height:120px; color:#f3c14a; filter:drop-shadow(0 0 22px rgba(243,193,74,.35)); }
.mil-emblem svg{ width:100%; height:100%; }
.mil-card h2{ font-size:clamp(1.9rem,4.4vw,2.8rem); margin-bottom:.9rem; }
.mil-card p{ color:rgba(247,237,224,.85); line-height:1.7; max-width:62ch; }
.mil-thanks{ margin-top:.9rem; font-family:'Fraunces'; font-style:italic; color:#bcd0ff !important; }
@media (max-width:640px){ .mil-card{ grid-template-columns:1fr; text-align:center; padding:2rem 1.4rem; } .mil-emblem{ margin:0 auto; width:96px; height:96px; } }

.value-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(240px,1fr)); gap:1.4rem; max-width:1100px; margin:0 auto; }
.value h3{ font-size:1.35rem; margin:.7rem 0 .5rem; }
.value p{ color:rgba(247,237,224,.72); line-height:1.6; font-size:.93rem; }
.v-ic{ font-size:1.8rem; }
.al-row{ display:flex; flex-wrap:wrap; justify-content:center; gap:1.6rem 2.2rem; max-width:1100px; margin:0 auto; }
.al-logo{ display:flex; flex-direction:column; align-items:center; gap:.6rem; width:170px; font-size:.78rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:rgba(247,237,224,.6); }
.al-logo img{ height:80px; width:auto; max-width:100%; object-fit:contain; transition:transform .4s ease; filter:drop-shadow(0 8px 16px rgba(0,0,0,.45)); }
.al-logo:hover img{ transform:translateY(-4px) scale(1.04); }
.al-logo:hover{ color:var(--marigold); }

/* ---------------------------------------------------------
   CATERING
   --------------------------------------------------------- */
.alt-banner{
  max-width:880px; margin:0 auto 3rem; display:flex; align-items:center; gap:1rem; padding:1rem 1.2rem;
  border-radius:18px; background:linear-gradient(120deg, rgba(123,63,160,.25), rgba(47,179,217,.14)); border:1px solid rgba(123,63,160,.45);
}
.alt-banner div{ flex:1; display:flex; flex-direction:column; gap:.15rem; }
.alt-banner b{ font-family:'Fraunces'; font-size:1.05rem; }
.alt-banner span{ font-size:.85rem; color:rgba(247,237,224,.72); }
.alt-spark{ font-size:1.5rem; }
@media (max-width:620px){ .alt-banner{ flex-direction:column; text-align:center; } }
.cf-finder{ padding:1rem 1.1rem; border-radius:16px; border:1px dashed rgba(243,167,18,.45); background:rgba(243,167,18,.05); }
.cf-finder-note{ font-size:.84rem; color:rgba(247,237,224,.72); margin-bottom:.6rem; }

/* ---------------------------------------------------------
   CATERING WIZARD
   --------------------------------------------------------- */
.wz-overlay{ padding:1rem; }
.wz-box{ width:min(760px, 100%); padding:0; overflow:hidden; display:flex; flex-direction:column; max-height:92vh;
  background:radial-gradient(ellipse at 0% 0%, rgba(123,63,160,.2), transparent 50%), radial-gradient(ellipse at 100% 100%, rgba(243,167,18,.14), transparent 50%), #1a1510; }
.wz-shell{ display:flex; flex-direction:column; min-height:0; flex:1; }
.wz-shell.done{ display:none; }
.wz-head{ padding:1.4rem 1.8rem 1rem; display:grid; grid-template-columns:1fr auto; gap:.6rem 1rem; align-items:center; border-bottom:1px solid var(--line); }
.wz-title{ font-family:'Anton'; text-transform:uppercase; letter-spacing:.03em; font-size:1rem; color:var(--marigold); }
.wz-stepnum{ font-size:.78rem; color:rgba(247,237,224,.55); margin-right:2.4rem; font-variant-numeric:tabular-nums; }
.wz-progress{ grid-column:1/-1; height:6px; border-radius:6px; background:rgba(247,237,224,.08); overflow:hidden; }
.wz-progress i{ display:block; height:100%; border-radius:6px; background:linear-gradient(90deg, #d92b1f, #f2b705, #1f8a3d, #2fb3d9, #7b3fa0); background-size:760px 100%; transition:width .5s cubic-bezier(.2,.8,.2,1); }
.wz-dots{ display:none; }
.wz-body{ padding:1.8rem; overflow-y:auto; flex:1; }
.wz-in-next{ animation:wzNext .42s cubic-bezier(.2,.8,.2,1); }
.wz-in-back{ animation:wzBack .42s cubic-bezier(.2,.8,.2,1); }
@keyframes wzNext{ from{ opacity:0; transform:translateX(34px); } to{ opacity:1; transform:none; } }
@keyframes wzBack{ from{ opacity:0; transform:translateX(-34px); } to{ opacity:1; transform:none; } }
.wz-shake{ animation:shake .4s ease; }
.wz-q{ font-size:clamp(1.6rem, 4vw, 2.3rem); margin-bottom:.4rem; outline:none; }
.wz-hint{ color:rgba(247,237,224,.62); font-size:.92rem; margin-bottom:1.5rem; }
.wz-sub{ font-size:.78rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:rgba(247,237,224,.62); margin:1.3rem 0 .6rem; }
.wz-sub em, .wz-field em{ text-transform:none; letter-spacing:0; font-style:normal; font-weight:500; color:rgba(247,237,224,.4); }
.wz-tiles{ display:grid; grid-template-columns:repeat(auto-fill, minmax(128px,1fr)); gap:.7rem; }
.wz-tile{
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.45rem; min-height:106px;
  padding:.8rem .5rem; border-radius:18px; background:rgba(247,237,224,.04); border:1.5px solid var(--line);
  color:var(--cream); font-size:.86rem; font-weight:600; text-align:center;
  transition:transform .2s ease, border-color .2s ease, background .2s ease, box-shadow .2s ease;
}
.wz-emoji{ font-size:1.9rem; line-height:1; transition:transform .3s cubic-bezier(.2,.9,.3,1.5); }
.wz-tile:hover{ transform:translateY(-3px); border-color:rgba(243,167,18,.5); }
.wz-tile:hover .wz-emoji{ transform:scale(1.18) rotate(-6deg); }
.wz-tile.on{ border-color:var(--marigold); background:rgba(243,167,18,.14); box-shadow:0 0 0 3px rgba(243,167,18,.18), 0 12px 26px rgba(243,167,18,.18); }
.wz-chips{ display:flex; flex-wrap:wrap; gap:.5rem; }
.wz-center{ justify-content:center; margin:.9rem 0 1.4rem; }
.wz-chip{
  padding:.58rem 1rem; border-radius:999px; background:rgba(247,237,224,.04); border:1.5px solid var(--line);
  color:rgba(247,237,224,.85); font-size:.85rem; font-weight:600; transition:all .18s ease;
}
.wz-chip:hover{ border-color:rgba(243,167,18,.5); color:var(--cream); }
.wz-chip.on{ background:var(--marigold); border-color:var(--marigold); color:var(--ink); }
.wz-guests{ display:flex; align-items:center; justify-content:center; gap:1rem; }
.wz-step{ width:52px; height:52px; border-radius:50%; font-size:1.5rem; background:rgba(247,237,224,.06); border:1.5px solid var(--line); color:var(--cream); transition:all .2s ease; }
.wz-step:hover{ border-color:var(--marigold); color:var(--marigold); transform:scale(1.06); }
.wz-count{ display:flex; flex-direction:column; align-items:center; }
.wz-count input{ width:150px; text-align:center; font-family:'Anton'; font-size:3.4rem; line-height:1; background:none; border:none; color:var(--cream); -moz-appearance:textfield; }
.wz-count input::-webkit-outer-spin-button, .wz-count input::-webkit-inner-spin-button{ -webkit-appearance:none; }
.wz-count input:focus{ outline:none; color:var(--marigold); }
.wz-count span{ font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:rgba(247,237,224,.5); }
.wz-grid2{ display:grid; grid-template-columns:1fr 1fr; gap:.9rem; margin-bottom:1rem; }
@media (max-width:560px){ .wz-grid2{ grid-template-columns:1fr; } }
.wz-field{ display:flex; flex-direction:column; gap:.4rem; font-size:.78rem; font-weight:700; letter-spacing:.04em; color:rgba(247,237,224,.7); }
.wz-field input, .wz-field textarea, .res-field input{
  padding:.85rem 1rem; border-radius:12px; border:1.5px solid var(--line); background:rgba(0,0,0,.25);
  color:var(--cream); font:inherit; font-size:.95rem; font-weight:500; letter-spacing:0; color-scheme:dark;
}
.wz-field input:focus, .wz-field textarea:focus, .res-field input:focus{ outline:none; border-color:var(--marigold); box-shadow:0 0 0 3px rgba(243,167,18,.18); }
.wz-cards{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.wz-card{
  display:flex; flex-direction:column; align-items:center; gap:.4rem; padding:1.6rem 1rem; border-radius:20px;
  background:rgba(247,237,224,.04); border:1.5px solid var(--line); color:var(--cream); transition:all .2s ease;
}
.wz-card svg{ width:58px; height:58px; color:var(--marigold); margin-bottom:.3rem; transition:transform .3s ease; }
.wz-card b{ font-family:'Anton'; font-weight:400; font-size:1.35rem; text-transform:uppercase; letter-spacing:.02em; }
.wz-card span{ font-size:.82rem; color:rgba(247,237,224,.62); }
.wz-card:hover{ transform:translateY(-3px); border-color:rgba(243,167,18,.5); }
.wz-card:hover svg{ transform:translateX(4px); }
.wz-card.on{ border-color:var(--marigold); background:rgba(243,167,18,.12); box-shadow:0 0 0 3px rgba(243,167,18,.18); }
.wz-address{ margin-top:1.3rem; animation:wzNext .35s ease; }
.wz-note{ font-size:.8rem; color:rgba(247,237,224,.55); margin-top:.45rem; }
.wz-suggest{ display:flex; align-items:center; gap:.7rem; padding:.8rem 1rem; border-radius:14px; margin-bottom:1rem; background:rgba(31,138,61,.14); border:1px solid rgba(31,138,61,.5); font-size:.88rem; line-height:1.45; color:#c6f3d5; }
.wz-pin{ flex:0 0 14px; width:14px; height:14px; border-radius:50% 50% 50% 0; background:#3fcf72; transform:rotate(-45deg); }
.wz-locs{ display:grid; grid-template-columns:repeat(auto-fill, minmax(150px,1fr)); gap:.7rem; }
.loc-choice{
  position:relative; display:flex; flex-direction:column; align-items:center; gap:.25rem; padding:1rem .6rem .9rem;
  border-radius:18px; background:rgba(247,237,224,.04); border:1.5px solid var(--line); color:var(--cream); text-align:center; transition:all .2s ease;
}
.loc-choice img{ height:48px; width:auto; max-width:100%; object-fit:contain; margin-bottom:.35rem; }
.loc-choice b{ font-family:'Fraunces'; font-size:.98rem; }
.loc-choice span{ font-size:.74rem; color:rgba(247,237,224,.55); }
.loc-choice .lcx-mi{ color:var(--marigold); font-weight:700; }
.loc-choice:hover{ transform:translateY(-3px); border-color:rgba(243,167,18,.5); }
.loc-choice.on{ border-color:var(--marigold); background:rgba(243,167,18,.12); box-shadow:0 0 0 3px rgba(243,167,18,.18); }
.lcx-badge{ position:absolute; top:-9px; left:50%; transform:translateX(-50%); padding:.18rem .6rem; border-radius:999px; background:#1f8a3d; color:#fff !important; font-size:.62rem !important; font-weight:800; letter-spacing:.08em; text-transform:uppercase; white-space:nowrap; }
.lcx-help{ border-style:dashed; }
.lcx-q{ width:48px; height:48px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-family:'Anton'; font-size:1.5rem; color:var(--ink) !important; background:linear-gradient(135deg, #2fb3d9, #7b3fa0); margin-bottom:.35rem; }
.wz-finder{ margin-top:1rem; padding:1.1rem; border-radius:16px; border:1px dashed rgba(243,167,18,.45); background:rgba(243,167,18,.05); animation:wzNext .35s ease; }
.wz-review{ display:flex; flex-direction:column; }
.wz-row{ display:grid; grid-template-columns:130px 1fr auto; gap:1rem; align-items:baseline; padding:.8rem 0; border-bottom:1px solid var(--line); }
.wz-row dt{ font-size:.74rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:rgba(247,237,224,.5); }
.wz-row dd{ font-size:.94rem; }
.wz-edit{ background:none; border:none; color:var(--marigold); font-size:.8rem; font-weight:700; text-decoration:underline; }
@media (max-width:520px){ .wz-row{ grid-template-columns:1fr auto; } .wz-row dt{ grid-column:1/-1; } }
.wz-err{ margin-top:1rem; padding:.6rem .9rem; border-radius:10px; background:rgba(194,59,59,.16); border:1px solid rgba(194,59,59,.45); color:#ffb4a6; font-size:.86rem; font-weight:600; }
.wz-foot{ display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:1rem 1.8rem 1.3rem; border-top:1px solid var(--line); background:rgba(0,0,0,.18); }
.wz-foot .wz-next{ margin-left:auto; min-width:150px; justify-content:center; }
.wz-next.busy{ opacity:.7; pointer-events:none; }
.wz-done{ padding:3rem 2rem; text-align:center; display:flex; flex-direction:column; align-items:center; gap:1rem; }
.wz-done h3{ font-size:2rem; margin:0; }
.wz-done p{ color:rgba(247,237,224,.8); max-width:420px; line-height:1.6; }
.wz-check{ width:84px; height:84px; color:#3fcf72; }
.wz-check svg{ width:100%; height:100%; }
.wz-check circle{ stroke-dasharray:151; stroke-dashoffset:151; animation:draw .7s ease forwards; }
.wz-check path{ stroke-dasharray:40; stroke-dashoffset:40; animation:draw .45s .55s ease forwards; }
@keyframes draw{ to{ stroke-dashoffset:0; } }
@media (max-width:560px){ .wz-body{ padding:1.3rem; } .wz-head{ padding:1.1rem 1.3rem .9rem; } .wz-foot{ padding:.9rem 1.3rem 1.1rem; } .wz-tiles{ grid-template-columns:repeat(2,1fr); } .wz-cards{ grid-template-columns:1fr; } }

/* ---------------------------------------------------------
   LOCATION PAGE
   --------------------------------------------------------- */
.loc-hero{ position:relative; min-height:72vh; display:flex; align-items:center; justify-content:center; text-align:center; overflow:hidden; margin-top:calc(var(--banner-h) * -1); padding:calc(var(--banner-h) + 3rem) 5vw 4rem; }
.lh-bg{ position:absolute; inset:0; }
.lh-bg img{ width:100%; height:100%; object-fit:cover; filter:blur(3px) saturate(1.1); transform:scale(1.08); opacity:.42; }
.loc-hero::after{ content:''; position:absolute; inset:0; background:radial-gradient(ellipse 60% 55% at 50% 50%, rgba(20,17,13,.35), rgba(20,17,13,.85)), linear-gradient(0deg, var(--ink), transparent 40%); }
.lh-inner{ position:relative; z-index:2; display:flex; flex-direction:column; align-items:center; }
.loc-hero .logo-hero{ width:min(480px, 80vw); max-height:320px; }
.loc-hero .logo-hero img{ max-height:320px; width:auto; max-width:100%; margin:0 auto; }
.loc-h1{ font-size:clamp(2.6rem,8vw,6rem); }
.loc-h1-sub{ font-size:clamp(1.5rem,4vw,2.4rem); color:var(--marigold); margin-top:.2rem; }
.loc-tag{ max-width:520px; margin:1rem auto 2rem; font-size:1.05rem; color:rgba(247,237,224,.82); }
.loc-ctas{ display:flex; gap:.8rem; flex-wrap:wrap; justify-content:center; }
.gallery-note{ text-align:center; margin-top:1.4rem; font-size:.82rem; color:rgba(247,237,224,.45); }
.gallery-note:empty{ display:none; }
.info-split{ display:grid; grid-template-columns:1fr 1fr; gap:2.5rem; padding-top:0; max-width:1260px; margin:0 auto; }
@media (max-width:820px){ .info-split{ grid-template-columns:1fr; } }
.info-h{ font-size:1.8rem; margin:.5rem 0 1.6rem; }
.info-actions{ display:flex; gap:.7rem; flex-wrap:wrap; }
.tel-link{ color:var(--marigold); font-weight:700; border-bottom:1px dashed rgba(243,167,18,.5); }
.map-live{ padding:0; min-height:380px; border:1px solid var(--line); background:#1c1712; }
.map-live iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; filter:invert(.9) hue-rotate(180deg) saturate(.7) brightness(.95) contrast(.9); }
.map-open{ position:absolute; left:14px; bottom:14px; z-index:2; padding:.55rem .95rem; border-radius:999px; background:rgba(20,17,13,.88); border:1px solid var(--line); font-size:.78rem; font-weight:700; color:var(--cream); }
.map-open:hover{ border-color:var(--marigold); color:var(--marigold); }
.menu-section{ background:linear-gradient(180deg, rgba(20,17,13,.55), rgba(16,13,10,.75)); }
.menu-tools{ display:flex; gap:.8rem; justify-content:center; align-items:center; flex-wrap:wrap; margin-top:1.4rem; }
.order-band{ text-align:center; }
.order-h{ margin-bottom:1rem; }
.order-note{ max-width:480px; margin:0 auto 2rem; color:rgba(247,237,224,.75); line-height:1.6; }
.picker-box .modal-loc-btn{ gap:.9rem; }
.mlb-logo{ width:58px; height:40px; object-fit:contain; flex:0 0 58px; }
.mlb-text{ flex:1; display:flex; flex-direction:column; opacity:1 !important; font-size:inherit !important; }
.mlb-text span{ font-size:.78rem; opacity:.6; }
.mlb-arrow{ opacity:.6; }

/* ---- Help Me Decide ---- */
.decide-btn{
  position:relative; display:inline-flex; align-items:center; gap:.55rem; padding:.72rem 1.35rem; border-radius:999px;
  font-weight:800; font-size:.8rem; letter-spacing:.06em; text-transform:uppercase; color:var(--ink); border:none; isolation:isolate;
  background:linear-gradient(100deg, #f2b705, #e8622a 45%, #e8568f 75%, #7b3fa0);
  background-size:200% 100%; box-shadow:0 10px 24px rgba(232,98,42,.35); transition:transform .25s ease, background-position .6s ease, box-shadow .25s ease;
}
.decide-btn svg{ width:18px; height:18px; transition:transform .8s cubic-bezier(.2,.8,.2,1); }
.decide-btn:hover{ transform:translateY(-2px); background-position:100% 0; box-shadow:0 14px 30px rgba(232,98,42,.45); }
.decide-btn:hover svg{ transform:rotate(300deg); }
.decide-btn.on{ background:var(--cream); box-shadow:0 0 0 3px rgba(243,167,18,.4); }
.pick-check{
  position:absolute; top:12px; right:12px; width:26px; height:26px; border-radius:8px; z-index:3;
  border:2px solid rgba(247,237,224,.45); background:rgba(0,0,0,.35);
  display:none; align-items:center; justify-content:center; transition:all .2s ease;
}
.decide-mode .pick-check{ display:flex; animation:popIn .3s cubic-bezier(.2,.9,.3,1.5); }
.decide-mode .dish{ position:relative; padding-right:3.2rem; cursor:pointer; }
.decide-mode .dish-fav .fav-ribbon{ right:48px; }
.decide-mode .dish:hover{ border-color:rgba(243,167,18,.6); }
.dish.picked{ border-color:var(--marigold) !important; background:rgba(243,167,18,.1) !important; box-shadow:0 0 0 2px rgba(243,167,18,.35); }
.dish.picked .pick-check{ background:var(--marigold); border-color:var(--marigold); }
.dish.picked .pick-check::after{ content:''; width:11px; height:6px; border-left:2.6px solid var(--ink); border-bottom:2.6px solid var(--ink); transform:rotate(-45deg) translate(1px,-1px); }
.dish.shake{ animation:shake .4s ease; }
.dish.flash{ animation:flash 1.6s ease; }
@keyframes popIn{ from{ transform:scale(.3); opacity:0; } to{ transform:none; opacity:1; } }
@keyframes shake{ 0%,100%{ transform:translateX(0); } 20%{ transform:translateX(-7px); } 40%{ transform:translateX(7px); } 60%{ transform:translateX(-4px); } 80%{ transform:translateX(4px); } }
@keyframes flash{ 0%,100%{ box-shadow:none; } 20%,60%{ box-shadow:0 0 0 3px var(--marigold), 0 0 40px rgba(243,167,18,.5); } }
.decide-mode .menu-promo{ opacity:.35; pointer-events:none; }

.decide-tray{
  position:fixed; left:50%; bottom:16px; z-index:260; width:min(640px, calc(100vw - 24px));
  transform:translate(-50%, 140%); transition:transform .45s cubic-bezier(.2,.8,.2,1);
  padding:.9rem 1rem 1rem; border-radius:22px; background:rgba(26,21,16,.94);
  -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px);
  border:1px solid rgba(243,167,18,.45); box-shadow:0 20px 50px rgba(0,0,0,.55);
}
.decide-tray.open{ transform:translate(-50%, 0); }
.dt-top{ display:flex; justify-content:space-between; align-items:center; margin-bottom:.6rem; }
.dt-count{ font-family:'Anton'; text-transform:uppercase; letter-spacing:.03em; font-size:1rem; }
.dt-dots{ display:flex; gap:5px; }
.dt-dot{ width:10px; height:10px; border-radius:50%; background:rgba(247,237,224,.15); transition:all .3s cubic-bezier(.2,.9,.3,1.5); }
.dt-dot.on{ transform:scale(1.2); }
.dt-chips{ display:flex; gap:.4rem; flex-wrap:wrap; min-height:34px; align-items:center; margin-bottom:.8rem; }
.dt-empty{ font-size:.84rem; color:rgba(247,237,224,.55); }
.dt-chip{ display:inline-flex; align-items:center; gap:.4rem; max-width:100%; padding:.4rem .5rem .4rem .75rem; border-radius:999px; background:color-mix(in srgb, var(--c) 22%, transparent); border:1px solid var(--c); color:var(--cream); font-size:.8rem; font-weight:600; animation:popIn .3s ease; }
.dt-chip span:first-child{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:180px; }
.dt-x{ width:18px; height:18px; border-radius:50%; background:rgba(0,0,0,.35); display:flex; align-items:center; justify-content:center; font-size:.55rem; }
.dt-actions{ display:flex; justify-content:flex-end; gap:.6rem; }
.dt-spin svg{ width:16px; height:16px; }
.dt-spin:disabled{ opacity:.45; cursor:not-allowed; transform:none !important; box-shadow:none !important; }
.decide-mode #order{ padding-bottom:12rem; }

.decide-intro{ text-align:center; width:min(440px,100%); }
.di-wheel{ width:92px; height:92px; margin:.4rem auto 1rem; }
.di-spin{ transform-origin:50px 50px; animation:diSpin 6s cubic-bezier(.5,0,.5,1) infinite; }
@keyframes diSpin{ 0%{ transform:rotate(0); } 60%,100%{ transform:rotate(1080deg); } }
.decide-intro h3{ font-size:1.9rem; margin-bottom:.6rem !important; }
.di-body{ color:rgba(247,237,224,.8); line-height:1.6; margin-bottom:1.2rem; }
.di-steps{ list-style:none; counter-reset:s; display:flex; flex-direction:column; gap:.5rem; margin:0 auto 1.6rem; max-width:300px; text-align:left; }
.di-steps li{ counter-increment:s; display:flex; align-items:center; gap:.7rem; font-size:.9rem; }
.di-steps li::before{ content:counter(s); width:26px; height:26px; flex:0 0 26px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-family:'Anton'; font-size:.85rem; background:var(--marigold); color:var(--ink); }
.di-actions{ display:flex; gap:.7rem; justify-content:center; }

.wheel-box{ width:min(520px,100%); text-align:center; }
.wheel-box h3{ font-size:1.8rem; }
.wheel-stage{ position:relative; width:min(380px, 78vw); margin:0 auto 1.4rem; aspect-ratio:1; }
.wheel-stage svg{ width:100%; height:100%; filter:drop-shadow(0 16px 30px rgba(0,0,0,.5)); overflow:visible; }
.wh-label{ font-family:'Work Sans', sans-serif; font-size:15px; font-weight:800; fill:#14110d; letter-spacing:.01em; paint-order:stroke; stroke:rgba(255,255,255,.45); stroke-width:3px; }
.wheel-pointer{ position:absolute; top:-10px; left:50%; width:34px; height:40px; margin-left:-17px; z-index:3; transform-origin:50% 20%;
  background:var(--cream); clip-path:polygon(50% 100%, 0 0, 100% 0); filter:drop-shadow(0 4px 6px rgba(0,0,0,.5)); }
.wheel-pointer::after{ content:''; position:absolute; inset:5px 8px 12px; background:var(--crimson); clip-path:polygon(50% 100%, 0 0, 100% 0); }
.wheel-pointer.bump{ animation:bump .12s ease; }
@keyframes bump{ 50%{ transform:rotate(-14deg); } }
.wheel-go{ min-width:170px; justify-content:center; font-size:1rem; }
.wheel-result{ animation:lbIn .45s cubic-bezier(.2,.9,.3,1.3); }
.wr-kicker{ display:block; font-size:.74rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:rgba(247,237,224,.6); }
.wr-name{ display:block; font-family:'Anton'; font-weight:400; text-transform:uppercase; font-size:clamp(1.8rem, 6vw, 2.6rem); line-height:1.05; margin:.3rem 0; color:var(--cream); text-shadow:0 0 30px var(--c); }
.wr-price{ display:block; font-family:'Anton'; color:var(--marigold); font-size:1.15rem; margin-bottom:1rem; }
.wr-actions{ display:flex; gap:.5rem; justify-content:center; flex-wrap:wrap; }
.confetti{ position:absolute; inset:0; pointer-events:none; z-index:4; }
.confetti i{ position:absolute; left:50%; top:45%; width:10px; height:14px; border-radius:2px; opacity:0; animation:confetti 1.6s var(--d) cubic-bezier(.15,.7,.3,1) forwards; }
@keyframes confetti{
  0%{ opacity:1; transform:translate(-50%,-50%) rotate(0); }
  100%{ opacity:0; transform:translate(calc(-50% + var(--x) * 260px), calc(-50% + 240px)) rotate(var(--r)); }
}

/* ---- reservations ---- */
.res-box{ width:min(520px,100%); }
.res-box h3{ margin-bottom:.2rem !important; }
.res-where{ color:rgba(247,237,224,.65); font-size:.9rem; margin-bottom:1.3rem; }
.res-where b{ color:var(--marigold); }
.res-field{ display:flex; flex-direction:column; gap:.5rem; margin-bottom:1.1rem; }
.res-label{ font-size:.75rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:rgba(247,237,224,.65); }
.res-field .wz-chip{ min-width:44px; justify-content:center; }
.res-two{ display:grid; grid-template-columns:1fr 1fr; gap:.8rem; }
@media (max-width:480px){ .res-two{ grid-template-columns:1fr; } }
.res-note{ font-size:.8rem; color:rgba(247,237,224,.5); margin-bottom:1rem; }
.res-submit{ width:100%; justify-content:center; }

/* ---------------------------------------------------------
   FOOTER
   --------------------------------------------------------- */
.site-footer{ text-align:left; padding:4rem 5vw 2rem; }
.ft-grid{ display:grid; grid-template-columns:1.1fr 1.6fr .8fr; gap:2.5rem; max-width:1240px; margin:0 auto; }
.ft-tag{ margin:0 0 1rem !important; color:rgba(247,237,224,.62) !important; font-size:.9rem !important; line-height:1.6; max-width:34ch; }
.ft-h{ font-family:'Work Sans'; font-size:.74rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--marigold); margin-bottom:1rem; line-height:1.2; }
.ft-locs{ list-style:none; display:grid; grid-template-columns:1fr 1fr; gap:.9rem 1.4rem; }
.ft-locs li{ display:flex; flex-direction:column; gap:.15rem; }
.ft-locs a b{ display:block; font-family:'Fraunces'; font-size:.98rem; }
.ft-locs a span{ font-size:.8rem; color:rgba(247,237,224,.55); }
.ft-locs a:hover b{ color:var(--marigold); }
.ft-tel{ font-size:.8rem; color:#7fd6f0; font-weight:600; }
.ft-links{ list-style:none; display:flex; flex-direction:column; gap:.55rem; }
.ft-links a{ font-size:.9rem; color:rgba(247,237,224,.75); }
.ft-links a:hover{ color:var(--marigold); }
.ft-base{ max-width:1240px; margin:2.6rem auto 0; padding-top:1.4rem; border-top:1px solid var(--line); display:flex; justify-content:space-between; align-items:center; gap:1rem; flex-wrap:wrap; }
.ft-base p{ margin:0 !important; font-size:.78rem !important; }
.site-footer .made-by{ margin-top:0; }
.sf-mark{ width:18px; height:18px; border-radius:50%; display:block; }
@media (max-width:900px){ .ft-grid{ grid-template-columns:1fr 1fr; } .ft-brand{ grid-column:1/-1; } }
@media (max-width:560px){ .ft-grid{ grid-template-columns:1fr; } .ft-locs{ grid-template-columns:1fr; } .ft-base{ flex-direction:column; text-align:center; } }

/* ---- Solar Flare credit stage: light "corona" so the black wordmark reads ---- */
#sunburstModal .sb-stage{
  background:
    radial-gradient(circle at var(--sb-mx) var(--sb-my), rgba(255,255,255,.95) 0%, transparent 42%),
    radial-gradient(ellipse at 30% 40%, #ffe7b0 0%, transparent 55%),
    linear-gradient(118deg, #fff6e6 0%, #ffd9a0 40%, #ffb366 72%, #ff8a3d 100%);
  background-size:180% 180%, 160% 160%, 220% 220%;
}
#sunburstModal .sb-glow{ background:radial-gradient(circle at 42% 45%, rgba(255,190,90,.7), transparent 55%); }
#sunburstModal .sb-logo{ filter:drop-shadow(0 10px 22px rgba(120,50,0,.25)); }
#sunburstModal .modal-close{ color:#fff; }

/* ---------------------------------------------------------
   404
   --------------------------------------------------------- */
.e404{ min-height:70vh; }
.e404-num{ font-family:'Anton'; font-size:clamp(7rem, 26vw, 16rem); line-height:.85; background:linear-gradient(100deg, #d92b1f, #f2b705, #1f8a3d, #2fb3d9, #7b3fa0); -webkit-background-clip:text; background-clip:text; color:transparent; margin-bottom:1rem; }

/* ---------------------------------------------------------
   Mobile polish for older sections
   --------------------------------------------------------- */
@media (max-width:640px){
  section{ padding:4.5rem 5vw; }
  .hero-food .hf-inner{ padding-bottom:4rem; }
  .loc-ctas .btn{ padding:.75rem 1.2rem; font-size:.74rem; }
  .menu-panel.active{ grid-template-columns:1fr; }
  .tabs{ flex-wrap:nowrap; overflow-x:auto; justify-content:flex-start; padding-bottom:.6rem; margin-left:-5vw; margin-right:-5vw; padding-left:5vw; padding-right:5vw; scrollbar-width:none; }
  .tabs::-webkit-scrollbar{ display:none; }
  .tab-btn{ flex:0 0 auto; }
  .toast-msg{ bottom:18px; max-width:calc(100vw - 32px); text-align:center; }
}
@media (prefers-reduced-motion: reduce){
  .hf-bg img{ animation:none; }
  .fg-tile, .loc-card{ transition:none; }
}

/* 5 locations: 3 + 2, centered, instead of a lonely orphan card */
.loc-grid{ display:flex; flex-wrap:wrap; justify-content:center; }
.loc-grid > .loc-card{ flex:1 1 320px; max-width:410px; }
@media (max-width:700px){ .loc-grid > .loc-card{ max-width:none; } }
@media (max-width:760px){ .hf-inner{ padding-top:5.5rem; } .hero-food{ min-height:92svh; } }
.gallery-grid{ grid-template-columns:repeat(3, 1fr); }
@media (max-width:760px){ .gallery-grid{ grid-template-columns:repeat(2, 1fr); gap:.7rem; } }
.decide-tray{ visibility:hidden; transition:transform .45s cubic-bezier(.2,.8,.2,1), visibility 0s .45s; }
.decide-tray.open{ visibility:visible; transition:transform .45s cubic-bezier(.2,.8,.2,1), visibility 0s; }

.decide-mode .toast-msg{ bottom:190px; }

/* ---------- hero video ---------- */
.hf-video{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity 1.2s ease; }
.hero-food.hf-playing .hf-video{ opacity:1; }
.hero-food.hf-playing .hf-bg img{ animation:none; }
.hero-food.hf-still .hf-video{ display:none; }
.hf-vbtn{
  position:absolute; right:clamp(16px, 3vw, 36px); bottom:clamp(16px, 3vw, 32px); z-index:3;
  width:42px; height:42px; border-radius:50%; border:1px solid rgba(247,237,224,.3);
  background:rgba(20,17,13,.5); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
  display:flex; align-items:center; justify-content:center; color:var(--cream);
  opacity:0; transition:opacity .4s ease, border-color .2s ease;
}
.hero-food.hf-playing .hf-vbtn{ opacity:.75; }
.hf-vbtn:hover, .hf-vbtn:focus-visible{ opacity:1 !important; border-color:var(--marigold); }
.hf-vbtn .pz{ width:12px; height:14px; border-left:4px solid currentColor; border-right:4px solid currentColor; }
.hf-vbtn.paused .pz{ width:0; height:0; border-style:solid; border-width:8px 0 8px 13px; border-color:transparent transparent transparent currentColor; margin-left:3px; }
.hf-inner{ position:static; }
.hf-inner > *:not(.hf-vbtn){ position:relative; z-index:2; }
/* 14 real photos: slightly shorter rows keep the grid from feeling endless */
.food-gallery{ grid-auto-rows:185px; }
