/* =========================================================
   El Burrito Grill & Bar  |  single location layer (v0.8)
   Loads after style.css + features.css and overrides them
   where the one-location layout needs something different.
   ========================================================= */

/* ---------- hours chip (Toast) ---------- */
.hours-chip{
  display:inline-flex; align-items:center; gap:.55rem; padding:.45rem .95rem; border-radius:999px;
  background:rgba(194,59,59,.14); border:1px solid rgba(194,59,59,.42); color:#ffb4a6;
  font-size:.8rem; font-weight:700; letter-spacing:.02em; line-height:1.2;
}
.hours-chip i{ width:8px; height:8px; flex:0 0 8px; border-radius:50%; background:currentColor; }
.hours-chip.is-open{ background:rgba(63,207,114,.12); border-color:rgba(63,207,114,.45); color:#8ff0b4; }
.hours-chip.is-open i{ animation:openPulse 2.2s ease-in-out infinite; }
@keyframes openPulse{ 0%,100%{ box-shadow:0 0 0 0 rgba(63,207,114,.55); } 50%{ box-shadow:0 0 0 6px rgba(63,207,114,0); } }
.hf-chip{ margin-top:1.4rem; background-color:rgba(255,250,242,.55); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); animation:heroIn 1s .5s both; }

.hrs{ display:flex; flex-direction:column; gap:.1rem; }
.hrs-row{ display:flex; justify-content:space-between; gap:1rem; padding:.34rem .6rem; margin:0 -.6rem; border-radius:8px; font-size:.9rem; }
.hrs-row dt{ color:rgba(43,31,20,.72); }
.hrs-row dd{ font-variant-numeric:tabular-nums; }
.hrs-row.is-today{ background:rgba(243,167,18,.12); }
.hrs-row.is-today dt, .hrs-row.is-today dd{ color:var(--marigold); font-weight:700; }
.hrs-note{ color:rgba(43,31,20,.78); line-height:1.55; }

/* ---------- Order Now chooser ---------- */
.order-box{ width:min(530px, 100%); padding:2.2rem 2rem 2rem; }
.order-box h3{ font-size:clamp(1.6rem, 5vw, 2.1rem); margin-bottom:.45rem; padding-right:1.5rem; }
.order-sub{ color:rgba(43,31,20,.66); font-size:.95rem; line-height:1.5; margin-bottom:1.5rem; }
.order-opts{ display:flex; flex-direction:column; gap:.8rem; }
.order-opt{
  display:grid; grid-template-columns:60px 1fr auto; align-items:center; gap:1rem;
  padding:.95rem 1.1rem .95rem .95rem; border-radius:20px; border:1.5px solid var(--line);
  background:rgba(43,31,20,.04); color:var(--cream); cursor:pointer; text-decoration:none;
  transition:transform .25s cubic-bezier(.2,.8,.2,1), border-color .25s ease, background-color .25s ease, box-shadow .25s ease;
}
.oo-ic{ width:60px; height:60px; border-radius:16px; display:flex; align-items:center; justify-content:center; transition:transform .35s cubic-bezier(.2,.9,.3,1.4); }
.oo-ic svg{ width:34px; height:34px; }
.oo-delivery .oo-ic{ background:rgba(232,98,42,.16); color:#ffa270; }
.oo-pickup .oo-ic{ background:rgba(243,167,18,.16); color:#ffcf5c; }
.oo-reservations .oo-ic{ background:rgba(47,179,217,.15); color:#7fd6f0; }
.oo-txt{ display:flex; flex-direction:column; gap:.2rem; min-width:0; }
.oo-txt b{ font-family:'Lilita One', sans-serif; font-weight:400; font-size:1.3rem; text-transform:uppercase; letter-spacing:.02em; line-height:1.05; }
.oo-txt span{ font-size:.84rem; color:rgba(43,31,20,.62); }
.oo-go svg{ width:20px; height:20px; color:rgba(43,31,20,.45); transition:color .2s ease, transform .25s ease; }
.oo-soon{ display:none; }
.order-opt:hover, .order-opt:focus-visible{ transform:translateX(4px); background:rgba(43,31,20,.07); }
.order-opt:hover .oo-ic{ transform:scale(1.08) rotate(-4deg); }
.oo-delivery:hover{ border-color:rgba(232,98,42,.6); box-shadow:0 12px 30px -12px rgba(232,98,42,.5); }
.oo-pickup:hover{ border-color:rgba(243,167,18,.6); box-shadow:0 12px 30px -12px rgba(243,167,18,.5); }
.oo-reservations:hover{ border-color:rgba(47,179,217,.6); box-shadow:0 12px 30px -12px rgba(47,179,217,.5); }
.order-opt:hover .oo-go svg{ color:var(--cream); transform:translate(2px,-2px); }
.order-opt.is-soon{ cursor:default; }
.order-opt.is-soon .oo-go{ display:none; }
.order-opt.is-soon .oo-soon{
  display:inline-block; white-space:nowrap; font-size:.62rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase;
  padding:.28rem .6rem; border-radius:999px; background:rgba(43,31,20,.07); color:rgba(43,31,20,.55);
}
.dir-addr{ margin:-.6rem 0 1.2rem; color:rgba(43,31,20,.7); font-size:.92rem; }
@media (max-width:480px){
  .order-opt{ grid-template-columns:50px 1fr; }
  .oo-ic{ width:50px; height:50px; }
  .oo-go, .order-opt.is-soon .oo-soon{ grid-column:2; justify-self:start; }
  .oo-go{ display:none; }
}

/* ---------- Home: location bento ---------- */
.visit{ padding-top:5.5rem; }
.headsup{
  max-width:1260px; margin:0 auto 1.2rem; display:flex; gap:.8rem; align-items:center; flex-wrap:wrap;
  padding:.9rem 1.2rem; border-radius:16px; background:rgba(243,167,18,.1); border:1px solid rgba(243,167,18,.4); font-size:.92rem; line-height:1.45;
}
.headsup .hu-ic{ font-size:1.3rem; }
.headsup a{ margin-left:auto; color:var(--marigold); font-weight:700; white-space:nowrap; text-decoration:underline; text-underline-offset:3px; }
.visit-grid{
  max-width:1260px; margin:0 auto; display:grid; gap:16px;
  grid-template-columns:minmax(330px, 1.05fr) 1fr 1fr;
  grid-template-rows:minmax(330px, auto) minmax(290px, auto);
  grid-template-areas:"info map map" "info outside parking";
}
.vb{ position:relative; overflow:hidden; border-radius:24px; border:1px solid var(--line); background:#ffffff; margin:0; }
.vb-info{ grid-area:info; padding:2rem 2rem 1.8rem; display:flex; flex-direction:column; gap:1.1rem; background:linear-gradient(165deg, rgba(43,31,20,.06), rgba(43,31,20,.02)); }
.vb-h{ font-size:1.8rem; }
.vi-row{ display:flex; flex-direction:column; gap:.35rem; }
.vi-k{ font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; font-weight:700; color:var(--marigold); }
.vi-v{ color:rgba(43,31,20,.85); line-height:1.5; }
.vi-soon{ color:rgba(43,31,20,.55); }
.vb-info .info-actions{ margin-top:auto; padding-top:.4rem; }
.vb-map{ grid-area:map; min-height:330px; }
.vb-map iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; filter:invert(.9) hue-rotate(180deg) saturate(.7) brightness(.95) contrast(.9); }
.vb-map::after{ content:''; position:absolute; inset:0; pointer-events:none; box-shadow:inset 0 0 0 1px rgba(43,31,20,.06), inset 0 -80px 60px -40px rgba(255,250,242,.7); }
.vb-outside{ grid-area:outside; }
.vb-parking{ grid-area:parking; }
.vb-photo img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform 1.1s cubic-bezier(.2,.8,.25,1); }
.vb-photo:hover img{ transform:scale(1.06); }
.vb-photo::after{ content:''; position:absolute; inset:0; pointer-events:none; background:linear-gradient(0deg, rgba(255,250,242,.92) 0%, rgba(255,250,242,.35) 45%, transparent 75%); }
.vb-photo figcaption{ position:absolute; left:1.3rem; right:1.3rem; bottom:1.2rem; z-index:2; display:flex; flex-direction:column; gap:.35rem; align-items:flex-start; }
.vb-photo figcaption b{ font-family:'Lilita One', sans-serif; font-weight:400; font-size:1.5rem; text-transform:uppercase; letter-spacing:.02em; text-shadow:0 2px 12px rgba(80,50,20,0.27); }
.vb-photo figcaption p{ font-size:.88rem; line-height:1.5; color:rgba(43,31,20,.88); }
.vb-label{ font-size:.66rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase; padding:.28rem .65rem; border-radius:999px; background:rgba(255,250,242,.7); border:1px solid rgba(43,31,20,.2); color:var(--cream); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); }
/* no parking photo yet: a stylized lot */
.park-ph{
  position:absolute; inset:0; display:flex; align-items:flex-start; justify-content:center; padding-top:2.2rem;
  background:
    repeating-linear-gradient(90deg, transparent 0 58px, rgba(43,31,20,.16) 58px 61px),
    linear-gradient(180deg, #efe6d8, #e7dccb);
}
.park-ph::before{ content:''; position:absolute; left:0; right:0; top:48%; height:4px; background:repeating-linear-gradient(90deg, rgba(243,167,18,.55) 0 26px, transparent 26px 46px); }
.park-p{
  position:relative; z-index:1; width:72px; height:72px; border-radius:16px; display:flex; align-items:center; justify-content:center;
  background:#2563c9; color:#fff; font-family:'Work Sans', sans-serif; font-weight:800; font-size:2.6rem; border:3px solid #fff;
  box-shadow:0 14px 30px rgba(80,50,20,0.203);
}
@media (max-width:1040px){
  .visit-grid{ grid-template-columns:1fr 1fr; grid-template-rows:auto 320px 280px; grid-template-areas:"info map" "info map" "outside parking"; }
}
@media (max-width:700px){
  .visit-grid{ grid-template-columns:1fr; grid-template-rows:none; grid-template-areas:"info" "map" "outside" "parking"; }
  .vb-map{ min-height:280px; }
  .vb-photo{ min-height:250px; }
  .vb-info{ padding:1.6rem 1.4rem; }
}

/* ---------- Home: closing marquee + CTA ---------- */
.finale{ position:relative; overflow:hidden; padding:8rem 5vw; min-height:600px; display:flex; align-items:center; justify-content:center; }
.fin-marquee{ position:absolute; inset:-10% -5%; display:flex; flex-direction:column; justify-content:center; gap:5.5rem; transform:rotate(-5deg); pointer-events:none; }
.fin-row{ overflow:hidden; white-space:nowrap; }
.fin-track{
  display:inline-flex; align-items:center; gap:2rem; width:max-content;
  font-family:'Lilita One', sans-serif; font-size:clamp(3.4rem, 9vw, 7.8rem); line-height:1.02; text-transform:uppercase; letter-spacing:.01em;
  animation:finScroll 90s linear infinite;
}
.fin-rev .fin-track{ animation-direction:reverse; animation-duration:110s; }
@keyframes finScroll{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
.fin-w{ color:transparent; -webkit-text-stroke:1.5px rgba(43,31,20,.34); }
.fin-w.fw-1{ color:rgba(243,167,18,.4); -webkit-text-stroke:0; }
.fin-w.fw-3{ color:rgba(217,59,48,.42); -webkit-text-stroke:0; }
.fin-w.fw-4{ -webkit-text-stroke-color:rgba(47,179,217,.55); }
.fin-dot{ font-size:.35em; color:rgba(243,167,18,.35); }
.finale::after{ content:''; position:absolute; inset:0; pointer-events:none; background:linear-gradient(180deg, var(--ink), transparent 22%, transparent 78%, var(--ink)), linear-gradient(90deg, var(--ink), transparent 12%, transparent 88%, var(--ink)); }
.fin-card{
  position:relative; z-index:2; text-align:center; max-width:660px; padding:3.2rem 2.6rem; border-radius:30px;
  background:rgba(255,250,242,.7); -webkit-backdrop-filter:blur(16px) saturate(1.2); backdrop-filter:blur(16px) saturate(1.2);
  border:1px solid rgba(43,31,20,.16); box-shadow:0 40px 90px -30px rgba(80,50,20,0.36), 0 0 0 1px rgba(243,167,18,.08) inset;
}
.fin-card::before{ content:''; position:absolute; left:10%; right:10%; top:-1px; height:3px; border-radius:3px; background:linear-gradient(90deg, #d92b1f, #f2b705, #1f8a3d, #2fb3d9, #7b3fa0); }
.fin-card h2{ font-size:clamp(2.8rem, 8vw, 5rem); margin-bottom:1rem; }
.fin-card p{ color:rgba(43,31,20,.8); line-height:1.65; font-size:1.05rem; max-width:44ch; margin:0 auto 2rem; }
.fin-ctas{ display:flex; gap:.9rem; justify-content:center; flex-wrap:wrap; }
@media (max-width:640px){ .finale{ padding:5rem 5vw; min-height:520px; } .fin-card{ padding:2.4rem 1.5rem; } }

/* ---------- "Hungry Yet?" captions with descriptions ---------- */
.fg-cap{ display:flex; flex-direction:column; gap:.35rem; }
.fg-desc{
  display:block; font-size:.82rem; line-height:1.45; color:rgba(43,31,20,.85); text-shadow:0 1px 8px rgba(80,50,20,0.315);
  max-height:0; opacity:0; overflow:hidden; transition:max-height .45s ease, opacity .35s ease;
}
.fg-tile:hover .fg-desc, .fg-tile:focus-visible .fg-desc{ max-height:4.6em; opacity:1; }
.fg-big .fg-desc{ max-height:4.6em; opacity:1; font-size:.95rem; max-width:42ch; }
@media (hover:none){ .fg-desc{ display:none; } .fg-big .fg-desc{ display:block; } }
.lb-stage figcaption{ max-width:720px; }
.lb-desc{ flex-basis:100%; text-align:center; color:rgba(43,31,20,.78); font-size:.98rem; line-height:1.6; }
.lb-desc:empty{ display:none; }

/* ---------- Menu page hero: food reel ---------- */
.menu-hero{ position:relative; overflow:hidden; text-align:center; margin-top:calc(var(--banner-h) * -1); padding-top:calc(var(--banner-h) + 4.4rem); }
.reel{ display:flex; flex-direction:column; gap:14px; transform:rotate(-3deg); margin:0 -6vw; }
.reel-row{ overflow:hidden; }
.reel-track{ display:flex; gap:14px; width:max-content; animation:finScroll 80s linear infinite; }
.reel-rev .reel-track{ animation-direction:reverse; animation-duration:95s; }
.reel-item{ margin:0; flex:0 0 auto; width:clamp(190px, 22vw, 310px); aspect-ratio:4/3; border-radius:18px; overflow:hidden; border:1px solid rgba(43,31,20,.12); box-shadow:0 18px 40px rgba(80,50,20,0.203); background:#ffffff; }
.reel-item img{ width:100%; height:100%; object-fit:cover; transition:transform .8s cubic-bezier(.2,.8,.25,1); }
.reel-item:hover img{ transform:scale(1.08); }
.menu-hero::after{ content:''; position:absolute; left:0; right:0; bottom:0; height:62%; pointer-events:none; background:linear-gradient(0deg, var(--ink) 38%, rgba(255,250,242,.75) 70%, transparent); }
.menu-hero::before{ content:''; position:absolute; left:0; right:0; top:0; height:calc(var(--banner-h) + 5rem); z-index:1; pointer-events:none; background:linear-gradient(180deg, var(--ink) 40%, transparent); }
.mh-inner{ position:relative; z-index:2; margin-top:-7.5rem; padding:0 5vw 3.2rem; display:flex; flex-direction:column; align-items:center; }
.mh-title{ font-size:clamp(3.6rem, 13vw, 9rem); text-shadow:0 8px 40px rgba(80,50,20,0.315), 0 0 80px rgba(243,167,18,.22); }
.mh-chip{ margin-top:1.4rem; }
.menu-live{ display:inline-flex; align-items:center; gap:.5rem; margin-top:.9rem; font-size:.78rem; color:rgba(43,31,20,.55); }
.menu-live i{ width:7px; height:7px; border-radius:50%; background:#3fcf72; box-shadow:0 0 10px #3fcf72; }
.menu-section{ padding-top:1rem; }
@media (max-width:640px){ .mh-inner{ margin-top:-5rem; } .reel-item{ width:170px; } }

/* ---------- Category bar: always two rows ---------- */
.menu-section .tabs-bar{
  position:sticky; top:calc(var(--banner-h) + var(--nav-h)); z-index:120;
  display:flex; align-items:center; gap:.4rem;
  margin:0 -5vw 2.2rem; padding:.7rem 3vw; overflow:visible;
}
.menu-section .tabs-bar.stuck{ padding:.6rem 3vw; }
#tabsScroll{ flex:1; min-width:0; overflow-x:auto; overscroll-behavior-x:contain; scrollbar-width:none; padding:2px 0; }
#tabsScroll::-webkit-scrollbar{ display:none; }
.can-scroll #tabsScroll{
  -webkit-mask-image:linear-gradient(90deg, transparent 0, #000 22px, #000 calc(100% - 22px), transparent 100%);
          mask-image:linear-gradient(90deg, transparent 0, #000 22px, #000 calc(100% - 22px), transparent 100%);
}
.can-scroll.at-start #tabsScroll{ -webkit-mask-image:linear-gradient(90deg, #000 calc(100% - 22px), transparent 100%); mask-image:linear-gradient(90deg, #000 calc(100% - 22px), transparent 100%); }
.can-scroll.at-end #tabsScroll{ -webkit-mask-image:linear-gradient(90deg, transparent 0, #000 22px); mask-image:linear-gradient(90deg, transparent 0, #000 22px); }
#tabs.tabs{
  display:flex; flex-wrap:wrap; justify-content:center; gap:.5rem; margin:0 auto; padding:0 18px;
  overflow:visible; min-width:0; max-width:none; box-sizing:border-box;
  -webkit-mask-image:none; mask-image:none;
}
#tabs .tab-btn{ flex:0 0 auto; }
.tabs-arrow{
  display:none; flex:0 0 38px; width:38px; height:38px; border-radius:50%; align-items:center; justify-content:center;
  background:rgba(255,250,242,.8); border:1px solid var(--line); color:var(--cream); transition:opacity .2s ease, border-color .2s ease;
}
.tabs-arrow svg{ width:18px; height:18px; }
.tabs-arrow:hover{ border-color:var(--marigold); color:var(--marigold); }
.can-scroll .tabs-arrow{ display:inline-flex; }
.at-start .ta-prev, .at-end .ta-next{ opacity:.3; pointer-events:none; }
@media (max-width:760px){
  .menu-section .tabs-bar, .menu-section .tabs-bar.stuck{ padding:.55rem 0; margin-left:-5vw; margin-right:-5vw; overflow:visible; }
  .tabs-arrow, .can-scroll .tabs-arrow{ display:none; }
  #tabs.tabs{ justify-content:flex-start; padding:0 5vw; gap:.45rem; }
  .can-scroll #tabsScroll, .can-scroll.at-start #tabsScroll, .can-scroll.at-end #tabsScroll{ -webkit-mask-image:none; mask-image:none; }
}

/* ---------- Dish cards: tags + sold out ---------- */
.dish{ position:relative; }
.dish-tags{ display:flex; gap:.35rem; flex-wrap:wrap; margin-top:.8rem; }
.dish-tags span{ font-size:.6rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; padding:.22rem .55rem; border-radius:999px; border:1px solid rgba(43,31,20,.18); color:rgba(43,31,20,.62); }
.dish-fav .dish-tags span{ border-color:rgba(226,178,74,.4); color:#f0d08c; }
.dish-soldout{ opacity:.6; }
.dish-soldout .dish-price-txt{ text-decoration:line-through; }
.sold-badge{ display:inline-flex; align-items:center; gap:.35rem; align-self:flex-start; margin-top:.8rem; padding:.24rem .6rem; border-radius:999px; background:rgba(194,59,59,.18); border:1px solid rgba(194,59,59,.5); color:#ffb4a6; font-size:.64rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.sold-badge svg{ width:12px; height:12px; }
.dishModal-name{ display:block; }
.dishModal-sold{ display:inline-flex; margin:0 0 .6rem .4rem; padding:.3rem .7rem; border-radius:999px; background:rgba(194,59,59,.2); border:1px solid rgba(194,59,59,.5); color:#ffb4a6; font-size:.66rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }

/* ---------- Events page ---------- */
.ev-head{ min-height:40vh; }
.ev-section{ max-width:1000px; margin:0 auto; padding-top:0; }
.ev-feature{
  position:relative; overflow:hidden; display:grid; grid-template-columns:210px 1fr; gap:2.2rem; align-items:start;
  padding:2.2rem; border-radius:30px; margin-bottom:3.6rem;
  background:radial-gradient(ellipse at 0% 0%, rgba(243,167,18,.16), transparent 55%), radial-gradient(ellipse at 100% 100%, rgba(123,63,160,.18), transparent 55%), rgba(43,31,20,.04);
  border:1px solid rgba(243,167,18,.35); box-shadow:0 40px 80px -40px rgba(80,50,20,0.315);
}
.ev-feature::before{ content:''; position:absolute; left:0; right:0; top:0; height:5px; background:linear-gradient(90deg, #d92b1f, #f2b705, #1f8a3d, #2fb3d9, #7b3fa0, #e8568f); }
.evf-date{ display:flex; flex-direction:column; align-items:center; overflow:hidden; border-radius:24px; background:var(--cream); color:var(--ink); box-shadow:0 20px 40px rgba(80,50,20,0.203); transform:rotate(-2.5deg); transition:transform .5s cubic-bezier(.2,.9,.3,1.4); }
.ev-feature:hover .evf-date{ transform:rotate(0) scale(1.03); }
.evf-mon{ width:100%; text-align:center; padding:.55rem 0; background:var(--crimson); color:#fff; font-size:.9rem; font-weight:800; letter-spacing:.24em; text-transform:uppercase; }
.evf-date b{ font-family:'Lilita One', sans-serif; font-weight:400; font-size:clamp(5rem, 11vw, 7.4rem); line-height:1; padding:.7rem 0 .2rem; }
.evf-dow{ padding-bottom:1.1rem; font-size:.8rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,250,242,.6); }
.evf-next{ display:flex; align-items:center; gap:.7rem; flex-wrap:wrap; font-size:.74rem; font-weight:800; letter-spacing:.16em; text-transform:uppercase; color:#6fe0d8; }
.evf-count{ padding:.25rem .65rem; border-radius:999px; background:var(--marigold); color:var(--ink); letter-spacing:.08em; }
.ev-feature h2{ font-size:clamp(2rem, 5vw, 3.3rem); margin:.7rem 0 .6rem; }
.ev-feature .ev-ic{ font-size:.75em; margin-right:.35em; vertical-align:.08em; }
.ev-feature .ev-when{ font-size:1rem; }
.ev-feature .ev-desc{ font-size:1rem; max-width:52ch; }
.evf-foot{ display:flex; align-items:center; gap:1rem 1.4rem; flex-wrap:wrap; margin-top:1.4rem; }
.ev-cal-btns{ display:flex; gap:.9rem; flex-wrap:wrap; }
.ev-k-closed.ev-feature{ border-color:rgba(194,59,59,.45); background:repeating-linear-gradient(135deg, rgba(194,59,59,.05) 0 14px, transparent 14px 28px), rgba(43,31,20,.03); }
.ev-k-closed .evf-mon{ background:#6b645d; }
.ev-k-closed .ev-when{ color:#ff9d8a; }
.ev-b-special{ background:rgba(243,167,18,.14) !important; color:#ffd47a !important; border-color:rgba(243,167,18,.5) !important; }
.ev-b-closed{ background:rgba(194,59,59,.16); color:#ffb4a6; border-color:rgba(194,59,59,.5); }
.ev-month{ margin-bottom:2.6rem; }
.ev-month-h{ display:flex; align-items:center; gap:1rem; font-size:1.35rem; color:var(--marigold); margin-bottom:1rem; }
.ev-month-h::after{ content:''; flex:1; height:1px; background:var(--line); }
.ev-card .ev-side{ min-width:150px; }
.ev-card .ev-cal-btns{ flex-direction:column; align-items:flex-end; gap:.35rem; }
.ev-k-special .ev-mon{ background:#c98a0a; }
.ev-empty-card{ text-align:center; padding:3.4rem 2rem; border-radius:28px; border:1px dashed rgba(43,31,20,.25); background:rgba(43,31,20,.03); display:flex; flex-direction:column; align-items:center; gap:.9rem; margin-bottom:2rem; }
.ev-empty-ic{ font-size:3rem; }
.ev-empty-card h2{ font-size:2rem; }
.ev-empty-card p{ color:rgba(43,31,20,.68); max-width:44ch; line-height:1.6; margin-bottom:.6rem; }
@media (max-width:700px){
  .ev-feature{ grid-template-columns:1fr; gap:1.4rem; padding:1.6rem; }
  .evf-date{ flex-direction:row; justify-self:start; transform:none; border-radius:18px; }
  .evf-mon{ width:auto; padding:1rem .9rem; writing-mode:vertical-rl; transform:rotate(180deg); letter-spacing:.2em; font-size:.75rem; }
  .evf-date b{ font-size:4rem; padding:.2rem 1rem; }
  .evf-dow{ padding:0 1rem 0 0; }
  .ev-card .ev-side{ min-width:0; }
  .ev-card .ev-cal-btns{ flex-direction:row; align-items:center; }
}

/* ---------- Catering: pitch + inline wizard ---------- */
.cx{ padding-top:4rem; }
.cx-grid{ max-width:1180px; margin:0 auto; display:grid; grid-template-columns:repeat(3, 1fr); gap:1.4rem; }
.cx-card{ display:flex; flex-direction:column; overflow:hidden; border-radius:26px; border:1px solid var(--line); background:rgba(43,31,20,.04); transition:transform .4s cubic-bezier(.2,.8,.2,1), border-color .3s ease, box-shadow .4s ease; }
.cx-card:nth-child(2){ transform:translateY(28px); }
.cx-card:hover{ border-color:rgba(243,167,18,.5); box-shadow:0 30px 60px -30px rgba(243,167,18,.35); }
.cx-img{ aspect-ratio:4/3; overflow:hidden; }
.cx-img img{ width:100%; height:100%; object-fit:cover; transition:transform 1.1s cubic-bezier(.2,.8,.25,1); }
.cx-card:hover .cx-img img{ transform:scale(1.07); }
.cx-txt{ padding:1.5rem 1.6rem 1.9rem; }
.cx-txt h3{ font-size:1.55rem; margin-bottom:.6rem; }
.cx-txt p{ color:rgba(43,31,20,.72); line-height:1.6; font-size:.94rem; }
.cx-steps{ list-style:none; max-width:1040px; margin:5rem auto 0; display:grid; grid-template-columns:repeat(3, 1fr); gap:1.2rem; position:relative; }
.cx-steps::before{ content:''; position:absolute; left:8%; right:8%; top:29px; height:2px; background:repeating-linear-gradient(90deg, rgba(243,167,18,.5) 0 10px, transparent 10px 20px); }
.cx-steps li{ position:relative; display:flex; flex-direction:column; align-items:center; text-align:center; gap:.9rem; }
.cx-n{ width:60px; height:60px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-family:'Lilita One', sans-serif; font-size:1.6rem; color:var(--ink); background:var(--marigold); box-shadow:0 0 0 6px var(--ink), 0 12px 26px rgba(243,167,18,.35); }
.cx-steps li:nth-child(2) .cx-n{ background:#e8622a; }
.cx-steps li:nth-child(3) .cx-n{ background:#2fb3d9; }
.cx-steps b{ display:block; font-family:'Fraunces', serif; font-size:1.15rem; margin-bottom:.25rem; }
.cx-steps span:not(.cx-n){ font-size:.88rem; color:rgba(43,31,20,.65); }
@media (max-width:860px){
  .cx-grid{ grid-template-columns:1fr; max-width:520px; }
  .cx-card:nth-child(2){ transform:none; }
  .cx-steps{ grid-template-columns:1fr; max-width:420px; margin-top:3rem; }
  .cx-steps::before{ left:29px; right:auto; top:8%; bottom:8%; width:2px; height:auto; background:repeating-linear-gradient(180deg, rgba(243,167,18,.5) 0 10px, transparent 10px 20px); }
  .cx-steps li{ flex-direction:row; text-align:left; }
}
.wz-section{ padding-top:5rem; }
.wz-inline{
  max-width:820px; margin:0 auto; border-radius:28px; overflow:hidden; border:1px solid var(--line); scroll-margin-top:calc(var(--banner-h) + 90px);
  background:radial-gradient(ellipse at 0% 0%, rgba(123,63,160,.22), transparent 50%), radial-gradient(ellipse at 100% 100%, rgba(243,167,18,.16), transparent 50%), #fffdf7;
  box-shadow:0 40px 90px -40px rgba(80,50,20,0.36);
}
.wz-inline .wz-body{ overflow:visible; min-height:380px; }
.wz-inline .wz-stepnum{ margin-right:0; }
.wz-pickup{ display:flex; align-items:center; gap:.7rem; margin-top:.4rem; padding:.85rem 1rem; border-radius:14px; background:rgba(31,138,61,.12); border:1px solid rgba(31,138,61,.45); color:#c6f3d5; font-size:.9rem; line-height:1.45; }
.wz-notes{ margin-top:1.6rem; }
.wz-notes textarea{ resize:vertical; min-height:110px; font-family:inherit; }
.wz-done .wz-done-close{ margin-top:.4rem; }

/* ---------- Footer (one location) ---------- */
.ft-grid{ grid-template-columns:1.1fr 1.3fr .8fr; }
.ft-logo{ width:170px; height:auto; margin-bottom:1rem; filter:drop-shadow(0 12px 22px rgba(80,50,20,0.225)); }
.ft-addr{ display:flex; flex-direction:column; gap:.25rem; padding:0; background:none; border:none; color:var(--cream); text-align:left; cursor:pointer; }
.ft-addr b{ font-family:'Fraunces', serif; font-size:1.02rem; }
.ft-addr span{ font-size:.86rem; line-height:1.5; color:rgba(43,31,20,.6); }
.ft-addr:hover b{ color:var(--marigold); }
.site-footer .ft-tel{ display:block; margin-top:.6rem; }
.ft-chip{ margin-top:.9rem; }
.site-footer .ft-note{ margin:.8rem 0 0 !important; font-size:.82rem !important; line-height:1.55; color:rgba(43,31,20,.55) !important; max-width:38ch; }
.ft-note:empty{ display:none; }
.ft-actions{ display:flex; gap:.5rem; flex-wrap:wrap; margin-top:1.1rem; }
@media (max-width:900px){ .ft-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .ft-grid{ grid-template-columns:1fr; } }

.mobile-menu.open .mm-link:nth-child(7){ transition-delay:.24s; }
.story-p{ max-width:56ch; }

@media (prefers-reduced-motion: reduce){
  .fin-track, .reel-track{ animation:none !important; }
  .reel-row{ overflow-x:auto; }
}

/* ---------- Print the menu (always the live one) ---------- */
@media print{
  html, body{ background:#fff !important; color:#111 !important; padding-top:0 !important; }
  #banner-wrap, nav, .mobile-menu, .floaters, .reel, .menu-tools, .mh-chip, .menu-live, .tabs-bar, .order-band,
  footer, .decide-tray, .menu-promo, .modal-overlay, #mouseFog, .sf-modal-overlay, .sf-farewell, .skip-link, .lang-hint, .toast-msg{ display:none !important; }
  .menu-hero{ margin:0; padding:0 0 .6rem; }
  .menu-hero::before, .menu-hero::after{ display:none; }
  .mh-inner{ margin:0; padding:0; }
  .mh-title{ color:#111; text-shadow:none; font-size:34pt; }
  .mh-inner .eyebrow, .mh-inner .section-sub{ display:none; }
  .menu-section{ background:none !important; padding:0 !important; }
  .menu-panel{ display:grid !important; grid-template-columns:1fr 1fr; gap:.3rem 1.6rem; margin-bottom:1rem; }
  .menu-panel::before{ content:attr(data-title); grid-column:1/-1; font-family:'Lilita One', sans-serif; text-transform:uppercase; font-size:15pt; border-bottom:2px solid #111; margin:.6rem 0 .2rem; }
  .dish{ background:none !important; border:none !important; box-shadow:none !important; padding:.25rem 0 !important; transform:none !important; opacity:1 !important; break-inside:avoid; color:#111; }
  .dish::after, .fav-ribbon, .dish-cam, .pick-check, .sold-badge{ display:none !important; }
  .dish-name-txt{ font-size:10.5pt; } .dish-price-txt{ color:#111; } .dish-desc-txt{ color:#444; font-size:8.5pt; }
  .dish-tags span{ border-color:#bbb; color:#555; }
  .menu-cat-note{ color:#444; }
}
.page-head{ padding-top:5.5rem; }
@media (max-width:760px){ .page-head{ padding-top:3.5rem; } }

/* ---------- more callout colors (owner portal) ---------- */
.promo-gold{ background:linear-gradient(155deg, rgba(243,167,18,.28), rgba(224,86,31,.14)); border:1px solid rgba(245,196,82,.5); animation:glowGold 5.5s ease-in-out infinite; }
.promo-gold::before{ background:radial-gradient(ellipse at 50% 0%, rgba(255,214,120,.22), transparent 68%); }
.promo-gold .mp-kicker{ color:#ffd47a; }
.promo-gold .mp-cta{ background:rgba(243,167,18,.2); border:1px solid rgba(245,196,82,.5); color:#ffe0a0; }
@keyframes glowGold{ 0%,100%{ box-shadow:0 0 26px rgba(243,167,18,.16), 0 0 60px -8px rgba(243,167,18,.22); } 50%{ box-shadow:0 0 36px rgba(243,167,18,.3), 0 0 80px -6px rgba(243,167,18,.36); } }
.promo-teal{ background:linear-gradient(155deg, rgba(47,179,217,.26), rgba(18,149,143,.18)); border:1px solid rgba(95,205,236,.45); animation:glowTeal 5.5s ease-in-out infinite; }
.promo-teal::before{ background:radial-gradient(ellipse at 50% 0%, rgba(120,220,245,.2), transparent 68%); }
.promo-teal .mp-kicker{ color:#8fe1f7; }
.promo-teal .mp-cta{ background:rgba(47,179,217,.2); border:1px solid rgba(95,205,236,.5); color:#b8ecfa; }
@keyframes glowTeal{ 0%,100%{ box-shadow:0 0 26px rgba(47,179,217,.16), 0 0 60px -8px rgba(47,179,217,.22); } 50%{ box-shadow:0 0 36px rgba(47,179,217,.3), 0 0 80px -6px rgba(47,179,217,.36); } }
.promo-purple{ background:linear-gradient(155deg, rgba(123,63,160,.34), rgba(232,86,143,.16)); border:1px solid rgba(176,120,214,.5); animation:glowPurple 5.5s ease-in-out infinite; }
.promo-purple::before{ background:radial-gradient(ellipse at 50% 0%, rgba(200,150,240,.2), transparent 68%); }
.promo-purple .mp-kicker{ color:#d7b0f5; }
.promo-purple .mp-cta{ background:rgba(123,63,160,.24); border:1px solid rgba(176,120,214,.5); color:#e6ccfa; }
@keyframes glowPurple{ 0%,100%{ box-shadow:0 0 26px rgba(123,63,160,.2), 0 0 60px -8px rgba(123,63,160,.26); } 50%{ box-shadow:0 0 36px rgba(123,63,160,.36), 0 0 80px -6px rgba(123,63,160,.42); } }
.hp-field{ position:absolute !important; left:-9999px !important; width:1px; height:1px; opacity:0; }

/* ---------- email sign-up ---------- */
.ft-news{ display:flex; align-items:center; justify-content:space-between; gap:1.4rem 2.4rem; flex-wrap:wrap; margin-top:2.6rem; padding:1.6rem 1.8rem; border-radius:20px;
  background:linear-gradient(120deg, rgba(243,167,18,.12), rgba(123,63,160,.12)); border:1px solid rgba(43,31,20,.12); }
.ft-news .ft-h{ margin-bottom:.35rem; }
.site-footer .ft-news p{ margin:0; font-size:.9rem; color:rgba(43,31,20,.7); max-width:44ch; }
.nl-form{ display:flex; flex-wrap:wrap; gap:.55rem; align-items:center; flex:1; min-width:260px; max-width:480px; }
.nl-form input[type=email], .nl-form input[type=text]{ flex:1; min-width:180px; padding:.8rem 1.1rem; border-radius:999px; border:1.5px solid rgba(43,31,20,.22); background:rgba(255,250,242,.6); color:var(--cream); font:inherit; font-size:.95rem; }
.nl-form input:focus{ outline:none; border-color:var(--marigold); box-shadow:0 0 0 3px rgba(243,167,18,.2); }
.nl-form .nl-msg{ flex-basis:100%; margin:0 !important; font-size:.86rem !important; min-height:1.2em; }
.nl-msg.ok{ color:#8ff0b4 !important; } .nl-msg.err{ color:#ffb4a6 !important; }
.nl-form.done input{ opacity:.5; }
.ev-news{ display:flex; align-items:center; justify-content:space-between; gap:1.6rem 2.4rem; flex-wrap:wrap; margin:1rem 0 3rem; padding:2rem 2.2rem; border-radius:28px;
  background:radial-gradient(ellipse at 0% 0%, rgba(47,179,217,.16), transparent 60%), rgba(43,31,20,.04); border:1px solid rgba(47,179,217,.35); }
.ev-news h2{ font-size:clamp(1.6rem, 4vw, 2.2rem); margin:.3rem 0 .4rem; }
.ev-news p{ color:rgba(43,31,20,.72); max-width:42ch; line-height:1.55; }
.ev-news-ic{ font-size:2rem; }
.join-head{ min-height:calc(100vh - 120px); display:flex; align-items:center; justify-content:center; }
.join-card{ position:relative; overflow:hidden; width:min(560px, 100%); margin:0 auto; padding:2.6rem 2.2rem 2.2rem; border-radius:30px; text-align:center;
  background:radial-gradient(ellipse at 50% 0%, rgba(243,167,18,.14), transparent 60%), rgba(43,31,20,.04); border:1px solid rgba(43,31,20,.14); box-shadow:0 40px 90px -40px rgba(80,50,20,0.36); }
.join-strip{ position:absolute; left:0; right:0; top:0; height:6px; background:linear-gradient(90deg, #d92b1f, #f2b705, #1f8a3d, #2fb3d9, #7b3fa0, #e8568f); }
.join-logo{ width:170px; height:auto; margin:0 auto 1.2rem; filter:drop-shadow(0 12px 24px rgba(80,50,20,0.225)); }
.join-card h1{ font-size:clamp(2rem, 7vw, 3rem); margin-bottom:.6rem; }
.nl-big{ flex-direction:column; align-items:stretch; max-width:none; margin-top:1.6rem; text-align:left; gap:.4rem; }
.nl-big .f-lbl{ font-size:.78rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--marigold); margin-top:.5rem; }
.nl-big .f-lbl em{ font-style:normal; color:rgba(43,31,20,.5); text-transform:none; letter-spacing:0; }
.nl-big input{ border-radius:14px !important; }
.nl-big .btn{ margin-top:1rem; justify-content:center; }
.join-fine{ margin-top:1.2rem; font-size:.82rem; color:rgba(43,31,20,.55); }
.join-state{ display:flex; flex-direction:column; align-items:center; gap:.4rem; margin-bottom:1.4rem; }
.js-ic{ font-size:3rem; }
.wz-optin{ display:flex; gap:.6rem; align-items:flex-start; margin-top:1.3rem; padding:.85rem 1rem; border-radius:14px; background:rgba(243,167,18,.08); border:1px solid rgba(243,167,18,.3); font-size:.92rem; cursor:pointer; }
.wz-optin input{ margin-top:.2rem; accent-color:var(--marigold); width:18px; height:18px; }

/* ---------- parking zoom ---------- */
.vb-parking.can-zoom{ cursor:zoom-in; }
.park-zoom{ position:absolute; top:1rem; right:1rem; z-index:3; display:inline-flex; align-items:center; gap:.45rem; padding:.5rem .9rem; border-radius:999px;
  background:rgba(255,250,242,.78); border:1px solid rgba(43,31,20,.3); color:var(--cream); font-size:.8rem; font-weight:700; letter-spacing:.02em;
  -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); transition:transform .2s ease, background-color .2s ease; }
.vb-parking:hover .park-zoom{ transform:scale(1.05); background:rgba(194,59,59,.85); }
.pz-ic{ font-size:1rem; line-height:1; }
.park-box{ width:min(1100px, 100%); padding:2rem; }
.park-box h3{ font-size:2rem; margin-bottom:.4rem; padding-right:2rem; }
.park-sub{ color:rgba(43,31,20,.75); margin-bottom:1.2rem; line-height:1.5; }
.park-pair{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.park-thumb{ position:relative; padding:0; border:1px solid var(--line); border-radius:16px; overflow:hidden; background:#ffffff; cursor:zoom-in; }
.park-thumb img{ display:block; width:100%; aspect-ratio:1639/960; object-fit:cover; transition:transform .6s cubic-bezier(.2,.8,.25,1); }
.park-thumb:hover img{ transform:scale(1.04); }
.park-thumb span{ position:absolute; left:.8rem; bottom:.8rem; display:inline-flex; gap:.5rem; align-items:center; padding:.4rem .8rem; border-radius:999px; background:rgba(255,250,242,.8); color:var(--cream); font-size:.8rem; font-weight:700; }
.park-hint{ margin-top:.9rem; font-size:.84rem; color:rgba(43,31,20,.55); text-align:center; }
@media (max-width:700px){ .park-pair{ grid-template-columns:1fr; } .park-box{ padding:1.4rem; } }
.zoom-view{ position:fixed; inset:0; z-index:2000; display:none; align-items:center; justify-content:center; background:rgba(255,250,242,.94); }
.zoom-view.open{ display:flex; animation:fadeIn .25s ease; }
.zoom-view figure{ margin:0; display:flex; flex-direction:column; align-items:center; gap:.8rem; max-width:96vw; }
.zoom-view img{ max-width:96vw; max-height:84vh; object-fit:contain; border-radius:10px; box-shadow:0 30px 80px rgba(80,50,20,0.27); }
.zoom-view figcaption{ color:var(--cream); font-weight:700; }
.zoom-view .lb-close{ position:absolute; top:calc(env(safe-area-inset-top, 0px) + 1rem); right:1rem; }
.zoom-view .lb-prev{ position:absolute; left:1rem; } .zoom-view .lb-next{ position:absolute; right:1rem; }
@keyframes fadeIn{ from{ opacity:0; } to{ opacity:1; } }

/* ---------- sign-up popup ---------- */
.nlm-box{ width:min(460px, 100%); padding:2.2rem 2rem 2rem; text-align:center; }
.nlm-ic{ font-size:2.6rem; margin-bottom:.4rem; }
.nlm-box h3{ font-size:clamp(1.7rem, 6vw, 2.2rem); margin-bottom:.4rem; }
.nlm-sub{ color:rgba(43,31,20,.72); line-height:1.5; margin-bottom:1.2rem; }
.nlm-form{ display:flex; flex-direction:column; gap:.45rem; text-align:left; }
.nlm-email{ text-align:center; font-weight:700; color:var(--marigold); margin-bottom:.4rem; word-break:break-all; }
.nlm-form .f-lbl, .nl-big .f-lbl{ font-size:.78rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--marigold); margin-top:.5rem; }
.nlm-form input[type=text]{ padding:.85rem 1rem; border-radius:14px; border:1.5px solid rgba(43,31,20,.22); background:rgba(255,250,242,.6); color:var(--cream); font:inherit; }
.nlm-form input[type=text]:focus{ outline:none; border-color:var(--marigold); box-shadow:0 0 0 3px rgba(243,167,18,.2); }
.nl-lang{ display:grid; grid-template-columns:1fr 1fr; gap:.5rem; }
.nl-lang label{ display:flex; align-items:center; justify-content:center; gap:.5rem; padding:.75rem; border-radius:14px; border:1.5px solid rgba(43,31,20,.2); cursor:pointer; font-weight:700; transition:all .15s ease; }
.nl-lang label:has(input:checked){ border-color:var(--marigold); background:rgba(243,167,18,.14); color:var(--marigold); }
.nl-lang input{ accent-color:var(--marigold); }
.nlm-form .btn{ margin-top:.8rem; justify-content:center; }
.nlm-form .nl-msg{ min-height:1.2em; font-size:.86rem; margin:0; }
.ext-ph{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; padding:2rem 2rem 5rem;
  background:radial-gradient(ellipse at 50% 30%, rgba(243,167,18,.18), transparent 65%), #ffffff; }
.ext-ph img{ position:static !important; width:min(78%, 280px) !important; height:auto !important; object-fit:contain; filter:drop-shadow(0 12px 24px rgba(80,50,20,0.158)); }
