﻿/* ============================================================
   BBQ Template — main.css
   AI-designed restaurant showcase site
   Built to impress customers AND search engines
   ============================================================ */

/* ---- design tokens ---- */
:root {
  --ink:        #0a0806;
  --pit:        #141010;
  --coal:       #1f1812;
  --smoke:      #2d2218;
  --wood:       #3a2a1a;
  --ash:        #6b5448;
  --ember:      #c45c2a;
  --flame:      #e8742a;
  --spark:      #f4a94e;
  --gold:       #e8c080;
  --cream:      #f8eedc;
  --muted:      #b09080;
  --line:       rgba(248,238,220,0.09);
  --line-warm:  rgba(232,180,80,0.22);
  --glow:       0 0 40px rgba(232,116,42,0.35), 0 0 80px rgba(196,92,42,0.18);
  --shadow:     0 24px 64px rgba(0,0,0,0.6), 0 4px 16px rgba(0,0,0,0.35);
  --font-d:     "Bebas Neue", "Impact", system-ui, sans-serif;
  --font-display: var(--font-d);
  --font-b:     "Source Sans 3", system-ui, sans-serif;
  --card:       linear-gradient(155deg, rgba(48,34,22,.94), rgba(16,12,8,.98));
  --wood-grain: repeating-linear-gradient(
    92deg,
    transparent,
    transparent 3px,
    rgba(0,0,0,.04) 3px,
    rgba(0,0,0,.04) 6px
  );
  --ease:       cubic-bezier(0.22, 1, 0.36, 1);
  /* vertical rhythm — dense homepage scale (short copy = tight bands) */
  --section-y:  clamp(0.7rem, 2.2vw, 1.45rem);
  --stack-xs:   0.18rem;
  --stack-sm:   0.3rem;
  --stack-md:   0.42rem;
  --stack-lg:   0.55rem;
  --gap-cards:  0.62rem;
  --card-edge:  rgba(232, 180, 80, 0.22);
  --card-inset: 0 0 0 1px rgba(248, 238, 220, 0.06);
  --card-shade: 0 8px 28px rgba(0, 0, 0, 0.38);
}

/* ---- reset ---- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; font-size: 16px; }
body {
  margin:0;
  font-family:var(--font-b);
  color:var(--cream);
  background:var(--ink);
  background-image:
    radial-gradient(ellipse 120% 70% at 50% -15%, rgba(196,92,42,.09), transparent 55%),
    linear-gradient(180deg, var(--pit) 0%, var(--ink) 45%, #060504 100%);
  line-height:1.65;
  overflow-x:hidden;
}
.page-shell {
  min-height:100vh;
  background:
    var(--wood-grain),
    linear-gradient(180deg, rgba(20,16,12,.98) 0%, rgba(10,8,6,.995) 100%);
}
.section--wood {
  background:
    radial-gradient(ellipse 80% 60% at 50% 0%, rgba(58,42,28,.35), transparent 70%),
    linear-gradient(180deg, rgba(31,24,18,.55), rgba(10,8,6,.2));
  border-block:1px solid rgba(248,238,220,.04);
}
a { color:var(--spark); text-decoration-thickness:1px; text-underline-offset:3px; }
a:hover { color:#ffd98a; }
img, video { max-width:100%; height:auto; display:block; }
h1,h2,h3,h4 { margin:0; line-height:1.05; }
p { margin:0 0 0.65rem; }
p:last-child { margin-bottom:0; }
fieldset { border:none; padding:0; margin:0; }

/* ---- utils ---- */
.wrap { width:min(1140px,94vw); margin:0 auto; }
.visually-hidden { position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important; }
.small { font-size:.9rem; color:var(--muted); }

/* ---- PWA + mobile ---- */
@media (display-mode: standalone) { .pwa-hide { display:none; } }

/* ============================================================
   KEYFRAMES
   ============================================================ */
@keyframes ember-float  { 0%{transform:translateY(0) scale(1);opacity:.85;} 50%{transform:translateY(-55px) translateX(6px) scale(.7);opacity:.5;} 100%{transform:translateY(-110px) translateX(-3px) scale(.25);opacity:0;} }
@keyframes ember-pulse  { 0%,100%{box-shadow:0 0 14px 4px rgba(232,116,42,.45);} 50%{box-shadow:0 0 32px 10px rgba(232,116,42,.85);} }
@keyframes glow-pulse   { 0%,100%{text-shadow:0 0 20px rgba(232,116,42,.4);} 50%{text-shadow:0 0 55px rgba(244,169,78,.75),0 0 90px rgba(232,116,42,.4);} }
@keyframes flicker      { 0%,100%{opacity:1;transform:scaleY(1);} 25%{opacity:.88;transform:scaleY(.96) translateX(-1px);} 50%{opacity:.82;transform:scaleY(.93) translateX(1px);} 75%{opacity:.92;transform:scaleY(.97);} }
@keyframes reveal-up    { from{transform:translateY(18px);} to{transform:translateY(0);} }
@keyframes reveal-left  { from{transform:translateX(-22px);} to{transform:translateX(0);} }
@keyframes reveal-right { from{transform:translateX(22px);} to{transform:translateX(0);} }
@keyframes ticker       { 0%{transform:translateX(0);} 100%{transform:translateX(-50%);} }
@keyframes shine        { from{background-position:-200% center;} to{background-position:200% center;} }
@keyframes fade-in      { from{opacity:0;} to{opacity:1;} }
@keyframes slide-up-fade{ from{opacity:0;transform:translateY(20px);} to{opacity:1;transform:translateY(0);} }

/* scroll-reveal — never hide content by default (if JS/IO fails, site stays readable) */
.reveal,
.reveal-left,
.reveal-right {
  opacity: 1;
}
@media (prefers-reduced-motion: reduce) {
  .reveal.is-visible,
  .reveal-left.is-visible,
  .reveal-right.is-visible {
    animation: none !important;
  }
}
.reveal.is-visible      { animation: reveal-up    0.55s var(--ease) forwards; }
.reveal-left.is-visible  { animation: reveal-left  0.55s var(--ease) forwards; }
.reveal-right.is-visible { animation: reveal-right 0.55s var(--ease) forwards; }

/* ============================================================
   ANNOUNCEMENT BAR
   ============================================================ */
.announce-bar { background:linear-gradient(90deg,var(--ember),#9c3e18,var(--ember)); background-size:200% auto; animation:shine 5s linear infinite; overflow:hidden; height:36px; display:flex; align-items:center; }
.announce-track { display:flex; white-space:nowrap; animation:ticker 32s linear infinite; }
.announce-track span { display:inline-block; padding:0 2.5rem; font-size:.82rem; font-weight:800; color:#fff; letter-spacing:.07em; text-transform:uppercase; }
.announce-track span::before { content:"🔥"; margin-right:.4rem; }
.announce-bar:hover .announce-track { animation-play-state:paused; }

/* ============================================================
   NAVIGATION
   ============================================================ */
.site-header { position:sticky; top:0; z-index:100; transition:background .35s, box-shadow .35s; }
.site-header.is-scrolled { background:rgba(16,12,8,.97); box-shadow:0 4px 32px rgba(0,0,0,.65); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); }

.site-nav { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.65rem 0; position:relative; }

.brand { display:inline-flex; align-items:center; gap:.65rem; text-decoration:none; flex-shrink:0; }
.brand-logo { height:50px; width:auto; object-fit:contain; mix-blend-mode:screen; filter:drop-shadow(0 2px 6px rgba(0,0,0,.5)); transition:transform .3s; }
.brand:hover .brand-logo { transform:scale(1.05); }
.brand-text { display:flex; flex-direction:column; line-height:1; }
.brand-name { font-family:var(--font-d); font-size:1.65rem; letter-spacing:.08em; color:var(--cream); }
.brand-sub  { font-size:.7rem; font-weight:800; letter-spacing:.15em; text-transform:uppercase; color:var(--spark); }

.nav-panel ul { list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:.25rem 1.35rem; align-items:center; }
.nav-panel a { color:var(--cream); text-decoration:none; font-weight:700; font-size:.92rem; letter-spacing:.04em; text-transform:uppercase; padding:.3rem 0; transition:color .2s; }
.nav-panel a:hover, .nav-panel li.is-active a { color:var(--spark); }
.nav-panel li.is-active a { border-bottom:2px solid var(--ember); }
.nav-cta a { background:linear-gradient(135deg,var(--ember),#8f3d18)!important; color:#fff!important; padding:.45rem 1rem!important; border-radius:.5rem!important; border-bottom:none!important; box-shadow:0 4px 18px rgba(196,92,42,.4); }
.nav-cta a:hover { filter:brightness(1.12); transform:translateY(-1px); }

.nav-toggle { display:none; background:rgba(255,255,255,.06); border:1px solid var(--line); color:var(--cream); padding:.55rem .85rem; border-radius:.5rem; font-weight:700; font-size:.9rem; cursor:pointer; letter-spacing:.03em; min-height:44px; }

@media (max-width:860px) {
  .nav-toggle { display:inline-flex; align-items:center; }
  .nav-panel { display:none; position:absolute; right:0; top:calc(100% + 4px); background:rgba(20,14,10,.98); border:1px solid var(--line-warm); border-radius:.85rem; padding:.85rem 1.1rem 1.1rem; min-width:230px; box-shadow:0 24px 60px rgba(0,0,0,.75); backdrop-filter:blur(14px); z-index:200; }
  .nav-panel.is-open { display:block; animation:slide-up-fade .25s var(--ease); }
  .nav-panel ul { flex-direction:column; gap:.1rem; }
  .nav-panel a { font-size:1.05rem; padding:.6rem 0; display:block; min-height:44px; display:flex; align-items:center; }
  .brand-text { display:none; }
}

/* ============================================================
   HERO — photo band (capped height, content anchored low)
   ============================================================ */
.hero {
  position:relative;
  min-height:clamp(280px, 42vh, 420px);
  display:flex;
  align-items:flex-end;
  overflow:hidden;
  padding-bottom:clamp(0.45rem, 1.4vh, 0.95rem);
}
@media (max-width:900px) {
  .hero {
    min-height:clamp(260px, 48vh, 380px);
    align-items:flex-end;
  }
}
.hero-photo {
  position:absolute;
  inset:0;
  background:linear-gradient(135deg, rgba(26,18,11,.95), rgba(42,28,18,.88)) center/cover no-repeat;
  filter:brightness(.45) sepia(.2) saturate(1.3) contrast(1.1);
  transform:scale(1.04);
  transition:transform 8s ease-out;
  z-index:0;
}
.hero-photo.loaded { transform:scale(1); }
.hero-overlay {
  position:absolute;
  inset:0;
  background:
    var(--hero-overlay, linear-gradient(to right, rgba(16,12,8,.96) 0%, rgba(16,12,8,.82) 45%, rgba(16,12,8,.55) 75%, rgba(16,12,8,.35) 100%)),
    linear-gradient(to top, rgba(16,12,8,.85) 0%, transparent 40%);
  z-index:1;
}
.hero-grain {
  position:absolute; inset:0; pointer-events:none; opacity:.05; z-index:2;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E");
}
.hero-embers { position:absolute; inset:0; pointer-events:none; overflow:hidden; z-index:3; }
.hero-embers span { position:absolute; bottom:0; border-radius:50%; background:var(--spark); opacity:0; animation:ember-float var(--d,5s) linear infinite var(--del,0s); }
.hero-embers span:nth-child(1)  { left:8%;  width:4px; height:4px; --d:6s;   --del:0s; }
.hero-embers span:nth-child(2)  { left:20%; width:3px; height:3px; --d:5s;   --del:1.1s; background:var(--flame); }
.hero-embers span:nth-child(3)  { left:33%; width:5px; height:5px; --d:7s;   --del:2s; }
.hero-embers span:nth-child(4)  { left:47%; width:3px; height:3px; --d:4.5s; --del:.5s; background:var(--gold); }
.hero-embers span:nth-child(5)  { left:58%; width:4px; height:4px; --d:6s;   --del:1.6s; }
.hero-embers span:nth-child(6)  { left:70%; width:3px; height:3px; --d:5.5s; --del:3.1s; background:var(--flame); }
.hero-embers span:nth-child(7)  { left:82%; width:4px; height:4px; --d:7s;   --del:2.4s; }
.hero-embers span:nth-child(8)  { left:91%; width:5px; height:5px; --d:5s;   --del:.9s; background:var(--gold); }
.hero-embers span:nth-child(9)  { left:14%; width:6px; height:6px; --d:4s;   --del:4.1s; }
.hero-embers span:nth-child(10) { left:53%; width:3px; height:3px; --d:6.5s; --del:1.3s; }
.hero-embers span:nth-child(11) { left:76%; width:4px; height:4px; --d:4.8s; --del:3.6s; background:var(--flame); }
.hero-embers span:nth-child(12) { left:4%;  width:3px; height:3px; --d:5.8s; --del:2.1s; }

.hero-inner {
  position:relative; z-index:4; width:min(1140px,94vw); margin:0 auto;
  padding:clamp(0.55rem,1.4vh,1.1rem) 0 clamp(0.4rem,1vh,0.65rem);
  display:grid;
  grid-template-columns:minmax(0, min(36rem, 100%)) auto;
  gap:0.55rem 1.1rem;
  align-items:end;
  justify-content:start;
}
@media (max-width:900px) { .hero-inner { grid-template-columns:1fr; align-items:start; } .hero-badge { display:none; } }

/* One vertical rhythm: flex gap only — no competing margins */
.hero-stack {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:0.26rem;
  max-width:min(36rem, 100%);
}
.hero-stack .hero-eyebrow,
.hero-stack h1,
.hero-stack .hero-desc,
.hero-stack .hero-actions { margin:0; }
.hero-eyebrow::before,.hero-eyebrow::after { content:"—"; opacity:.45; }

.hero-desc { font-size:clamp(0.92rem,1.75vw,1.02rem); color:var(--muted); max-width:42ch; line-height:1.45; }
.hero-status {
  display:inline-flex;
  flex-wrap:wrap;
  align-items:center;
  gap:0.35rem 0.5rem;
  margin:0;
  padding:0.2rem 0 0;
  border-top:1px solid rgba(248,238,220,0.1);
  width:100%;
  max-width:42ch;
}
.hero-status-hours { font-size:0.78rem; color:var(--muted); font-weight:600; }
.hero-actions { display:flex; flex-wrap:wrap; gap:0.4rem; align-items:center; }
.hero-stack .btn-lg { padding:0.58rem 1.1rem; font-size:0.9rem; min-height:42px; }
.hero-proof {
  display:flex;
  flex-wrap:wrap;
  gap:0.28rem 0.5rem;
  margin:0;
  padding:0.32rem 0 0;
  border-top:1px solid rgba(248,238,220,0.08);
  width:100%;
  max-width:46ch;
}
.hero-proof-item { display:inline-flex; align-items:center; gap:.32rem; font-size:.78rem; font-weight:700; color:var(--muted); letter-spacing:.02em; }
.hero-proof-item::before { content:""; display:block; width:5px; height:5px; border-radius:50%; background:var(--ember); flex-shrink:0; }

.hero-badge { display:flex; flex-direction:column; align-items:center; justify-content:center; width:168px; height:168px; border-radius:50%; background:radial-gradient(circle at 40% 40%, rgba(58,44,32,.98), rgba(16,12,8,.98)); border:2px solid var(--line-warm); box-shadow:var(--glow), var(--card-shade), inset 0 0 32px rgba(0,0,0,.45); text-align:center; padding:0.95rem; animation:ember-pulse 3.5s ease-in-out infinite; flex-shrink:0; }
.hero-badge-line1 { font-size:.65rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); font-weight:700; }
.hero-badge-big   { font-family:var(--font-d); font-size:2.85rem; color:var(--spark); line-height:1; }
.hero-badge-line3 { font-size:.65rem; letter-spacing:.12em; text-transform:uppercase; color:var(--gold); font-weight:700; }

/* Hero — one deliberate sales block (panel + hierarchy) */
.hero-sales-panel {
  max-width: min(36.5rem, 100%);
  padding: 0.55rem 0.75rem 0.62rem 0.85rem;
  border-radius: 0.7rem;
  background: linear-gradient(145deg, rgba(10, 7, 4, 0.78) 0%, rgba(28, 18, 10, 0.62) 55%, rgba(18, 11, 6, 0.75) 100%);
  border: 1px solid rgba(232, 180, 80, 0.32);
  box-shadow:
    0 0 0 1px rgba(0, 0, 0, 0.35) inset,
    0 20px 50px rgba(0, 0, 0, 0.55),
    0 0 80px rgba(196, 92, 42, 0.12);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  position: relative;
}
.hero-sales-panel::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.65rem;
  bottom: 0.65rem;
  width: 3px;
  border-radius: 2px;
  background: linear-gradient(180deg, var(--gold), var(--flame) 45%, var(--ember));
  opacity: 0.9;
  pointer-events: none;
}
.hero-sales-panel .hero-stack {
  position: relative;
  z-index: 1;
  padding-left: 0.45rem;
  max-width: 100%;
}
.hero h1 {
  font-family: var(--font-d);
  color: var(--cream);
  font-size: clamp(2.75rem, 7.5vw, 5.1rem);
  letter-spacing: 0.055em;
  line-height: 0.84;
  animation: glow-pulse 4s ease-in-out infinite;
  text-shadow:
    0 2px 0 rgba(0, 0, 0, 0.45),
    0 6px 28px rgba(0, 0, 0, 0.5),
    0 0 40px rgba(196, 92, 42, 0.25);
}
.hero h1 em {
  font-style: normal;
  display: block;
  margin-top: 0.14em;
  font-size: clamp(0.95rem, 2.4vw, 1.05rem);
  font-family: var(--font-b);
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gold);
  line-height: 1.25;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.4);
}
.hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--spark);
  padding: 0.12rem 0.4rem;
  border-radius: 0.25rem;
  background: rgba(196, 92, 42, 0.18);
  border: 1px solid rgba(232, 116, 42, 0.35);
}
.hero-proof {
  background: rgba(0, 0, 0, 0.2);
  border-radius: 0.4rem;
  padding: 0.38rem 0.45rem 0.38rem;
  border: 1px solid rgba(248, 238, 220, 0.06);
}
.hero-proof-item {
  padding: 0.12rem 0.35rem;
  border-radius: 0.25rem;
  background: rgba(255, 255, 255, 0.04);
}

/* Homepage section boards — grouped, premium slabs */
.home-board {
  position: relative;
  padding: clamp(0.85rem, 2.2vw, 1.35rem) clamp(0.85rem, 2vw, 1.2rem) clamp(1rem, 2.2vw, 1.4rem);
  padding-left: clamp(1rem, 2.5vw, 1.35rem);
  border-radius: 0.85rem;
  border: 1px solid var(--card-edge);
  background: linear-gradient(168deg, rgba(28, 18, 11, 0.88) 0%, rgba(14, 10, 6, 0.82) 100%);
  box-shadow: var(--card-inset), var(--card-shade), 0 0 70px rgba(196, 92, 42, 0.05);
}
.home-board::before {
  content: "";
  position: absolute;
  left: 0;
  top: 1rem;
  bottom: 1rem;
  width: 3px;
  border-radius: 2px;
  background: linear-gradient(180deg, rgba(244, 169, 78, 0.95), var(--ember) 60%, rgba(196, 92, 42, 0.5));
  pointer-events: none;
}
.home-board > .section-label,
.home-board > h2,
.home-board > .section-intro,
.home-board > .home-board__footer-cta {
  position: relative;
  z-index: 1;
}
.home-board .story-grid,
.home-board .plates-grid,
.home-board .process-grid,
.home-board .reviews-grid,
.home-board .find-grid,
.home-board .faq-list {
  position: relative;
  z-index: 1;
}
.home-board .reveal,
.home-board .reveal-left,
.home-board .reveal-right {
  position: relative;
  z-index: 1;
}
.home-board .rib-plate-img {
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(232, 180, 80, 0.15);
}
.home-board--story {
  background: linear-gradient(168deg, rgba(22, 14, 9, 0.82) 0%, rgba(12, 8, 5, 0.78) 100%);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}
.home-board--plates {
  background: linear-gradient(168deg, rgba(36, 24, 16, 0.75) 0%, rgba(16, 11, 7, 0.88) 100%);
}
.home-board--process {
  background: linear-gradient(168deg, rgba(26, 17, 11, 0.9) 0%, rgba(12, 8, 5, 0.85) 100%);
}
.home-board--reviews {
  background: linear-gradient(168deg, rgba(24, 16, 10, 0.9) 0%, rgba(14, 9, 6, 0.86) 100%);
}
.home-board--faq {
  background: linear-gradient(168deg, rgba(32, 20, 12, 0.78) 0%, rgba(18, 12, 8, 0.9) 100%);
  border-color: rgba(232, 180, 80, 0.28);
}
.home-board--find {
  background: linear-gradient(168deg, rgba(20, 13, 8, 0.82) 0%, rgba(12, 8, 5, 0.8) 100%);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
.home-board__footer-cta {
  position: relative;
  z-index: 1;
  padding-top: 0.35rem;
  border-top: 1px solid rgba(248, 238, 220, 0.07);
  margin-top: 0.5rem;
}

/* Catering — framed showcase */
.catering-showcase {
  max-width: 42rem;
  margin: 0 auto;
  padding: clamp(0.75rem, 2vw, 1.15rem) clamp(0.85rem, 2vw, 1.25rem);
  border-radius: 0.85rem;
  border: 1px solid rgba(232, 116, 42, 0.45);
  background: linear-gradient(165deg, rgba(24, 12, 6, 0.55) 0%, rgba(10, 5, 3, 0.45) 100%);
  box-shadow: var(--card-inset), 0 16px 48px rgba(0, 0, 0, 0.45), 0 0 60px rgba(196, 92, 42, 0.15);
}

/* ============================================================
   TRUST STRIP
   ============================================================ */
.trust-strip {
  position: relative;
  background: linear-gradient(135deg, var(--coal), var(--smoke));
  border-top: 1px solid var(--line-warm);
  border-bottom: 1px solid var(--line-warm);
  padding: 0.55rem 0;
}
.trust-strip::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--ember), var(--flame), var(--ember), transparent);
  opacity: 0.85;
}
.trust-grid { display:flex; flex-wrap:wrap; justify-content:center; gap:0.4rem 1rem; }
.trust-item { display:flex; flex-direction:column; align-items:center; text-align:center; gap:0.08rem; }
.trust-num { font-family:var(--font-d); font-size:2.15rem; color:var(--spark); line-height:1; letter-spacing:.04em; }
.trust-label { font-size:.7rem; font-weight:700; text-transform:uppercase; letter-spacing:.12em; color:var(--muted); }

/* ============================================================
   SECTIONS
   ============================================================ */
.section { padding:var(--section-y) 0; position:relative; }
.section-label { display:inline-block; font-size:.68rem; font-weight:800; letter-spacing:.2em; text-transform:uppercase; color:var(--ember); margin-bottom:var(--stack-xs); }
.section h2 {
  font-family:var(--font-d);
  font-size:clamp(1.85rem,4.2vw,2.85rem);
  letter-spacing:.055em;
  margin-bottom:var(--stack-xs);
  text-shadow:0 2px 24px rgba(0,0,0,.45);
}
.section-intro { color:var(--muted); max-width:60ch; font-size:0.93rem; line-height:1.48; margin-top:0; }
.section.dark { background:var(--coal); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.section.pit   { background:radial-gradient(ellipse 80% 50% at 50% 100%, rgba(196,92,42,.16) 0%, transparent 68%), var(--pit); }

/* ============================================================
   TODAY'S SPECIAL (homepage banner)
   ============================================================ */
.section--special-tight { padding: 0.4rem 0; }
/* Single selling unit: grid locks label/title/desc to one column, price+CTA as a block */
.special-banner {
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-areas:
    "label cta"
    "title cta"
    "desc cta";
  align-items: center;
  column-gap: 0.85rem;
  row-gap: 0.08rem;
  padding: 0.55rem 0.75rem 0.55rem 0.85rem;
  border-radius: 0.65rem;
  border: 1px solid var(--card-edge);
  background: linear-gradient(145deg, rgba(42, 21, 5, 0.98), rgba(14, 8, 4, 0.99));
  box-shadow: var(--card-inset), var(--card-shade), 0 0 0 1px rgba(196, 92, 42, 0.35);
}
.special-banner__glow {
  position: absolute;
  right: 0.5rem;
  top: 0.15rem;
  font-size: 2.25rem;
  opacity: 0.1;
  pointer-events: none;
}
.special-banner__label {
  grid-area: label;
  margin: 0;
  font-size: 0.62rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--ember);
  line-height: 1.2;
}
.special-banner__headline {
  grid-area: title;
  margin: 0;
  font-size: 1.18rem;
  font-weight: 900;
  color: var(--cream);
  font-family: var(--font-d);
  letter-spacing: 0.04em;
  line-height: 1.02;
}
.special-banner__desc {
  grid-area: desc;
  margin: 0;
  color: var(--muted);
  font-size: 0.8rem;
  line-height: 1.38;
  max-width: 36rem;
}
.special-banner__cta {
  grid-area: cta;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: center;
  gap: 0.3rem;
  flex-wrap: nowrap;
}
.special-banner__price {
  margin: 0;
  font-size: 1.28rem;
  font-weight: 900;
  color: var(--spark);
  font-family: var(--font-d);
  line-height: 1;
  letter-spacing: 0.02em;
}
.special-banner__cta .btn { padding: 0.5rem 0.85rem; font-size: 0.82rem; min-height: 40px; }
.special-banner:not(:has(.special-banner__desc)) {
  grid-template-areas:
    "label cta"
    "title cta";
  row-gap: 0.06rem;
}
@media (max-width: 560px) {
  .special-banner {
    grid-template-columns: 1fr;
    grid-template-areas:
      "label"
      "title"
      "desc"
      "cta";
    row-gap: 0.12rem;
    padding: 0.5rem 0.7rem;
  }
  .special-banner:not(:has(.special-banner__desc)) {
    grid-template-areas:
      "label"
      "title"
      "cta";
  }
  .special-banner__cta {
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    flex-wrap: wrap;
    width: 100%;
    padding-top: 0.2rem;
    border-top: 1px solid rgba(248, 238, 220, 0.08);
  }
}

/* ============================================================
   STORY / ABOUT SECTION
   ============================================================ */
.story-grid { display:grid; grid-template-columns:1fr 1fr; gap:var(--gap-cards) 1.25rem; align-items:center; }
@media (max-width:820px) { .story-grid { grid-template-columns:1fr; } }

.owner-photo-frame {
  position:relative;
  border-radius:0.85rem;
  overflow:hidden;
  box-shadow:var(--shadow), var(--card-shade);
  border:1px solid var(--card-edge);
}
.owner-photo-frame img {
  width:100%; height:auto;
  display:block;
  filter:brightness(.95) saturate(1.15) contrast(1.05);
  transition:transform 6s ease-out;
}
.owner-photo-frame:hover img { transform:scale(1.03); }
.owner-photo-caption {
  position:absolute; bottom:0; left:0; right:0;
  background:linear-gradient(to top, rgba(16,12,8,.95), transparent);
  padding:1.1rem 0.85rem 0.65rem;
  font-size:.88rem; font-weight:700; letter-spacing:.08em;
  text-transform:uppercase; color:var(--gold);
}

/* ============================================================
   PLATES CARDS
   ============================================================ */
.plates-grid { display:grid; gap:var(--gap-cards); grid-template-columns:repeat(auto-fill,minmax(248px,1fr)); margin-top:var(--stack-md); }
.plate-card { position:relative; background:linear-gradient(155deg,rgba(58,42,28,.92),rgba(26,18,11,.96)); border:1px solid var(--card-edge); border-radius:0.75rem; padding:0.95rem 0.85rem; overflow:hidden; box-shadow:var(--card-inset), var(--card-shade); transition:transform .35s var(--ease), box-shadow .35s, border-color .35s; }
.plate-card::before { content:""; position:absolute; inset:0; background:radial-gradient(circle at 50% 120%,rgba(196,92,42,.18) 0%,transparent 60%); opacity:0; transition:opacity .35s; }
.plate-card:hover { transform:translateY(-6px); box-shadow:var(--shadow),0 0 40px rgba(196,92,42,.2); border-color:var(--line-warm); }
.plate-card:hover::before { opacity:1; }
.plate-icon { font-size:2rem; margin-bottom:0.12rem; display:block; line-height:1; }
.plate-name { font-family:var(--font-d); font-size:1.42rem; letter-spacing:.06em; margin-bottom:0.12rem; }
.plate-desc { color:var(--muted); font-size:.84rem; line-height:1.45; margin-bottom:var(--stack-sm); }
.plate-tag  { display:inline-block; padding:.22rem .6rem; border-radius:999px; background:rgba(196,92,42,.18); border:1px solid rgba(196,92,42,.38); font-size:.76rem; font-weight:700; color:var(--spark); letter-spacing:.06em; text-transform:uppercase; }

/* rib plate feature image */
.rib-plate-img {
  width:100%; border-radius:1rem; border:1px solid var(--line-warm);
  filter:brightness(.92) saturate(1.25) contrast(1.08);
  box-shadow:var(--shadow);
}

/* ============================================================
   PROCESS STEPS
   ============================================================ */
.process-grid { display:grid; gap:var(--gap-cards); grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); margin-top:var(--stack-md); counter-reset:step; }
.process-step { position:relative; background:linear-gradient(160deg,rgba(42,28,18,.88),rgba(26,18,11,.95)); border:1px solid var(--card-edge); border-radius:0.75rem; padding:0.9rem 0.82rem; box-shadow:var(--card-inset), var(--card-shade); counter-increment:step; }
.process-step::before { content:counter(step); position:absolute; top:-.6rem; left:1.25rem; font-family:var(--font-d); font-size:1.1rem; letter-spacing:.1em; background:var(--ember); color:#fff; padding:.1rem .5rem; border-radius:.35rem; }
.process-icon { font-size:2rem; margin-bottom:var(--stack-xs); display:block; }
.process-title { font-weight:800; font-size:1.02rem; margin-bottom:0.28rem; color:var(--cream); }
.process-desc  { font-size:.88rem; color:var(--muted); line-height:1.52; }

/* ============================================================
   CATERING CALLOUT
   ============================================================ */
.catering-section { position:relative; overflow:hidden; padding:clamp(1rem,3vw,2rem) 0; text-align:center;
  background:radial-gradient(ellipse 100% 120% at 50% 50%, rgba(196,92,42,.32) 0%, transparent 65%),
             radial-gradient(ellipse 60% 80% at 10% 100%, rgba(232,116,42,.2) 0%, transparent 55%),
             linear-gradient(160deg, var(--coal), #1a0d08);
  border-top:1px solid rgba(196,92,42,.4); border-bottom:1px solid rgba(196,92,42,.4); }
.catering-section::before { content:""; position:absolute; inset:0; background:repeating-linear-gradient(-45deg,transparent,transparent 24px,rgba(255,255,255,.012) 24px,rgba(255,255,255,.012) 25px); pointer-events:none; }
.catering-inner { position:relative; z-index:1; max-width:44rem; margin:0 auto; }
.catering-fire { font-size:1.85rem; display:block; margin-bottom:0.1rem; animation:flicker 2.4s ease-in-out infinite; line-height:1; }
.catering-section h2 { font-family:var(--font-d); font-size:clamp(1.75rem,5vw,3.1rem); letter-spacing:.065em; margin:0 auto var(--stack-xs); text-shadow:0 0 28px rgba(232,116,42,.45), 0 2px 20px rgba(0,0,0,.5); line-height:0.95; }
.catering-section > .wrap > p { color:var(--muted); font-size:0.9rem; max-width:48ch; margin:0 auto 0.28rem; line-height:1.42; }
.catering-deets { display:flex; flex-wrap:wrap; justify-content:center; gap:0.32rem 0.75rem; margin-top:var(--stack-sm); }
.catering-deet { font-size:.78rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--gold); }
.catering-cta-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.35rem;
  align-items: center;
  margin-top: 0.15rem;
}
.catering-cta-row .btn-lg { padding: 0.58rem 1.2rem; font-size: 0.9rem; }

/* ============================================================
   TESTIMONIALS
   ============================================================ */
.reviews-grid { display:grid; gap:var(--gap-cards); grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); margin-top:var(--stack-md); }
.review-card { background:linear-gradient(155deg,rgba(42,28,18,.95),rgba(26,18,11,.98)); border:1px solid var(--card-edge); border-radius:0.75rem; padding:0.85rem 0.82rem; box-shadow:var(--card-inset), var(--card-shade); transition:border-color .3s, transform .3s; }
.review-card:hover { border-color:var(--line-warm); transform:translateY(-4px); }
.review-stars { color:var(--spark); font-size:1rem; letter-spacing:1px; margin-bottom:0.15rem; line-height:1; }
.review-text  { font-size:0.9rem; color:var(--cream); line-height:1.45; font-style:italic; margin-bottom:var(--stack-sm); }
.review-author { font-size:.85rem; font-weight:700; color:var(--spark); text-transform:uppercase; letter-spacing:.08em; }

/* ============================================================
   FAQ ACCORDION
   ============================================================ */
.faq-list { list-style:none; padding:0; margin:var(--stack-md) 0 0; display:flex; flex-direction:column; gap:0.28rem; }
.faq-item { background:linear-gradient(155deg,rgba(42,28,18,.9),rgba(26,18,11,.95)); border:1px solid var(--card-edge); border-radius:0.65rem; overflow:hidden; box-shadow:var(--card-inset), 0 4px 16px rgba(0,0,0,.28); transition:border-color .3s; }
.faq-item.is-open { border-color:var(--line-warm); }
.faq-question { display:flex; align-items:center; justify-content:space-between; width:100%; background:none; border:none; padding:0.65rem 0.85rem; color:var(--cream); font:inherit; font-weight:700; font-size:0.9rem; text-align:left; cursor:pointer; gap:0.55rem; min-height:44px; }
.faq-question:hover { color:var(--spark); }
.faq-arrow { font-size:1.4rem; flex-shrink:0; transition:transform .3s var(--ease); color:var(--ember); line-height:1; }
.faq-item.is-open .faq-arrow { transform:rotate(45deg); }
.faq-answer { max-height:0; overflow:hidden; transition:max-height .4s var(--ease); }
.faq-answer-inner { padding:0 0.85rem 0.65rem; color:var(--muted); font-size:0.86rem; line-height:1.45; }

/* ============================================================
   FIND US
   ============================================================ */
.find-grid { display:grid; gap:var(--gap-cards); grid-template-columns:1fr 1fr; margin-top:var(--stack-md); }
@media (max-width:740px) { .find-grid { grid-template-columns:1fr; } }
.find-card { background:linear-gradient(155deg,rgba(42,28,18,.9),rgba(26,18,11,.95)); border:1px solid var(--card-edge); border-radius:0.75rem; padding:0.85rem 0.8rem; box-shadow:var(--card-inset), var(--card-shade); }
.find-card h3 { font-family:var(--font-d); font-size:1.28rem; letter-spacing:.065em; color:var(--spark); margin-bottom:var(--stack-sm); line-height:1; }
.hours-list { list-style:none; padding:0; margin:0; }
.hours-list li { display:flex; justify-content:space-between; padding:0.38rem 0; border-bottom:1px solid var(--line); font-size:.92rem; }
.hours-list li:last-child { border-bottom:none; }
.hours-day  { color:var(--muted); }
.hours-time { font-weight:700; color:var(--cream); }
.address-big { font-size:1.02rem; line-height:1.52; margin-bottom:var(--stack-md); }
.address-big strong { display:block; font-family:var(--font-d); font-size:1.4rem; letter-spacing:.04em; color:var(--cream); margin-bottom:.2rem; }
.contact-row { display:flex; align-items:center; gap:.5rem; padding:0.38rem 0; border-bottom:1px solid var(--line); font-size:.92rem; }
.contact-row:last-child { border-bottom:none; }
.contact-row .lbl { color:var(--muted); min-width:4rem; font-size:.88rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em; }

/* ============================================================
   CATERING LANDING (public catering.php)
   ============================================================ */
.section-header { margin-bottom: var(--stack-md); }
.section-eyebrow {
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ember);
  margin-bottom: var(--stack-xs);
}
.section-header .section-title {
  font-family: var(--font-d);
  font-size: clamp(1.75rem, 4.5vw, 2.65rem);
  letter-spacing: 0.045em;
  color: var(--cream);
  margin: 0 0 var(--stack-xs);
  line-height: 1.05;
}
.section-header .section-sub {
  margin: 0;
  max-width: 52ch;
  color: var(--muted);
  font-size: 0.92rem;
  line-height: 1.52;
}
.features-grid {
  display: grid;
  gap: var(--gap-cards);
  grid-template-columns: repeat(auto-fill, minmax(252px, 1fr));
}
.feature-card {
  background: linear-gradient(155deg, rgba(42,28,18,.9), rgba(26,18,11,.95));
  border: 1px solid var(--card-edge);
  border-radius: 0.75rem;
  padding: 0.9rem 0.82rem;
  box-shadow: var(--card-inset), var(--card-shade);
  transition: border-color 0.25s, transform 0.25s;
}
.feature-card:hover { border-color: var(--line-warm); transform: translateY(-3px); }
.feature-icon { font-size: 1.75rem; line-height: 1; margin-bottom: var(--stack-xs); }
.feature-card h3 {
  font-size: 1.02rem;
  font-weight: 800;
  color: var(--cream);
  margin: 0 0 var(--stack-xs);
  letter-spacing: 0.02em;
}
.feature-card p { margin: 0; font-size: 0.88rem; color: var(--muted); line-height: 1.52; }

/* ============================================================
   BUTTONS
   ============================================================ */
.btn { display:inline-flex; align-items:center; justify-content:center; gap:.45rem; padding:.72rem 1.25rem; border-radius:.65rem; font-weight:800; font-size:.93rem; text-decoration:none; border:none; cursor:pointer; font-family:inherit; letter-spacing:.04em; transition:filter .25s, transform .2s, box-shadow .25s; min-height:44px; }
.btn:hover { filter:brightness(1.1); transform:translateY(-2px); }
.btn-fire    { background:linear-gradient(135deg,var(--flame),var(--ember),#8f3d18); color:#fff; box-shadow:0 8px 28px rgba(196,92,42,.45); text-shadow:0 1px 3px rgba(0,0,0,.4); }
.btn-outline { background:transparent; color:var(--cream); border:2px solid rgba(248,238,220,.22); }
.btn-outline:hover { border-color:var(--spark); color:var(--spark); }
.btn-gold    { background:linear-gradient(135deg,var(--gold),#c89040); color:var(--ink); font-weight:900; box-shadow:0 8px 28px rgba(232,192,128,.35); }
.btn-lg { padding:0.82rem 1.55rem; font-size:1rem; }

/* ============================================================
   MENU PAGE
   ============================================================ */
.menu-hero { padding:clamp(1.5rem,4vw,2.75rem) 0 1rem; background:radial-gradient(ellipse 80% 60% at 50% 100%,rgba(196,92,42,.18) 0%,transparent 60%),var(--pit); }
.menu-nav-pills { display:flex; flex-wrap:wrap; gap:0.4rem; margin-top:var(--stack-md); }
.menu-nav-pills a { padding:.4rem .9rem; border-radius:999px; border:1px solid var(--line); background:rgba(255,255,255,.04); color:var(--cream); text-decoration:none; font-size:.86rem; font-weight:700; min-height:44px; display:inline-flex; align-items:center; transition:background .2s, border-color .2s, color .2s; }
.menu-nav-pills a:hover { background:rgba(196,92,42,.2); border-color:var(--ember); color:var(--spark); }
.menu-section { padding:1.65rem 0; border-bottom:1px solid var(--line); }
.menu-section:last-child { border-bottom:none; }
.menu-section h2 { font-family:var(--font-d); font-size:clamp(2rem,4vw,2.8rem); letter-spacing:.06em; margin-bottom:.35rem; }
.menu-section-note { color:var(--muted); font-style:italic; font-size:.92rem; margin:0.25rem 0 0.65rem; }
.menu-items-list { list-style:none; padding:0; margin:0; }
.menu-item { display:grid; grid-template-columns:1fr auto; align-items:baseline; gap:0.35rem 1.1rem; padding:0.65rem 0; border-bottom:1px solid var(--line); transition:background .2s; }
.menu-item:last-child { border-bottom:none; }
.menu-item:hover { background:rgba(196,92,42,.04); padding-left:.5rem; }
.menu-item-info { min-width:0; }
.menu-item-name  { font-weight:800; font-size:1.05rem; color:var(--cream); }
.menu-item-desc  { font-size:.91rem; color:var(--muted); line-height:1.55; margin-top:.12rem; }
.menu-item-price { font-family:var(--font-d); font-size:1.5rem; color:var(--spark); letter-spacing:.04em; white-space:nowrap; text-align:right; }

/* ============================================================
   GALLERY
   ============================================================ */
.gallery-grid { display:grid; gap:var(--gap-cards); grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); margin-top:var(--stack-md); }
.gallery-card { border-radius:.85rem; overflow:hidden; border:1px solid var(--line); background:var(--coal); transition:transform .3s var(--ease),box-shadow .3s; }
.gallery-card:hover { transform:scale(1.02); box-shadow:var(--shadow); }
.gallery-card img,.gallery-card video { aspect-ratio:4/3; width:100%; object-fit:cover; }
.gallery-card figcaption { padding:.6rem .85rem; font-size:.88rem; color:var(--muted); }

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer { background:linear-gradient(180deg,transparent,rgba(0,0,0,.45)),var(--coal); border-top:1px solid var(--line-warm); padding:0.85rem 0 0.75rem; }
.footer-panel {
  background: linear-gradient(165deg, rgba(22, 16, 10, 0.85), rgba(12, 8, 5, 0.65));
  border: 1px solid var(--card-edge);
  border-radius: 0.65rem;
  padding: 0.65rem 0.7rem 0.55rem;
  margin-bottom: 0.55rem;
  box-shadow: var(--card-inset), var(--card-shade);
}
.footer-top { display:grid; gap:0.65rem 1rem; grid-template-columns:1.5fr repeat(3,1fr); padding-bottom:0.55rem; border-bottom:1px solid rgba(248,238,220,0.08); margin-bottom:0.45rem; }
@media (max-width:880px) { .footer-top { grid-template-columns:1fr 1fr; } }
@media (max-width:520px) { .footer-top { grid-template-columns:1fr; } }
.footer-brand {}
.footer-brand-social { margin-top: var(--stack-sm); }
.footer-brand-wa { margin-top: 0.28rem; margin-bottom: 0; font-size: 0.84rem; }
.footer-logo { height:50px; width:auto; margin-bottom:var(--stack-sm); mix-blend-mode:screen; }
.footer-tagline { color:var(--muted); font-size:.88rem; line-height:1.52; max-width:28ch; margin:0; }
.footer-col h3 {
  font-family: var(--font-d);
  font-size: 1.08rem;
  letter-spacing: 0.07em;
  color: var(--spark);
  margin-bottom: var(--stack-sm);
  padding-bottom: 0.35rem;
  border-bottom: 1px solid rgba(232, 116, 42, 0.35);
  display: inline-block;
  min-width: 100%;
}
.footer-col ul { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:0.28rem; }
.footer-col a { color:var(--muted); text-decoration:none; font-size:.91rem; transition:color .2s; }
.footer-col a:hover { color:var(--cream); }
.footer-col p { color:var(--muted); font-size:.86rem; margin:0 0 0.22rem; line-height:1.42; }
.footer-col-note { margin-top:0.35rem !important; margin-bottom:0 !important; font-style:italic; font-size:0.8rem !important; color:var(--muted); line-height:1.4; }
.footer-col-note:empty { display: none; }
.footer-bottom { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:0.45rem; margin-top:0.35rem; padding-top:0.35rem; border-top:1px solid rgba(248,238,220,0.06); }
.footer-copy   { font-size:.8rem; color:var(--ash); }
.footer-admin a { font-size:.78rem; color:var(--ash); opacity:.5; }
.footer-admin a:hover { opacity:1; }

/* ============================================================
   OPEN NOW / CLOSED BADGE
   ============================================================ */
.open-badge {
  display:inline-flex;align-items:center;gap:.3rem;
  border-radius:100px;padding:.3rem .85rem;
  font-size:.82rem;font-weight:800;letter-spacing:.04em;
}
.open-badge--open   { background:rgba(76,175,80,.15);border:1px solid rgba(76,175,80,.4);color:#a5d6a7; }
.open-badge--closed { background:rgba(239,83,80,.12);border:1px solid rgba(239,83,80,.35);color:#ef9a9a; }

/* ============================================================
   CATERING REQUEST FORM
   ============================================================ */
.cater-form-card{background:var(--card);border:1px solid var(--line);border-radius:1.1rem;padding:1.35rem;max-width:680px}
.cater-form-card .form-row{display:grid;grid-template-columns:1fr 1fr;gap:0.75rem;margin-bottom:0.75rem}
.cater-form-card .form-row.full{grid-template-columns:1fr}
.cater-form-card label{display:flex;flex-direction:column;gap:.35rem;font-size:.8rem;font-weight:800;text-transform:uppercase;letter-spacing:.09em;color:var(--ember)}
.cater-form-card input,.cater-form-card select,.cater-form-card textarea{background:rgba(255,255,255,.05);border:1px solid var(--line);border-radius:.5rem;color:var(--cream);font-size:1rem;padding:.7rem 1rem;width:100%;transition:border-color .2s}
.cater-form-card input:focus,.cater-form-card select,.cater-form-card select:focus,.cater-form-card textarea:focus{outline:none;border-color:var(--ember)}
.cater-form-card select option{background:#1a0e05;color:var(--cream)}
.cater-form-card textarea{resize:vertical;min-height:100px}
.cater-success{background:rgba(76,175,80,.1);border:1px solid rgba(76,175,80,.3);border-radius:1rem;padding:1.35rem;text-align:center}
.cater-success h3{color:#81c784;margin-bottom:.5rem}
.cater-errors{background:rgba(239,83,80,.1);border:1px solid rgba(239,83,80,.3);border-radius:.75rem;padding:.65rem 1rem;margin-bottom:0.85rem}
.cater-errors li{color:#ef9a9a;font-size:.9rem;margin:.2rem 0}
@media(max-width:600px){.cater-form-card .form-row{grid-template-columns:1fr}.cater-form-card{padding:1.25rem}}

/* ============================================================
   MOBILE STICKY CTA BAR (phones only)
   ============================================================ */
.mobile-cta-bar { display:none; }

@media (max-width:640px) {
  .mobile-cta-bar {
    display:flex;
    position:fixed;
    bottom:0; left:0; right:0;
    z-index:500;
    background:rgba(16,12,8,.97);
    border-top:1px solid var(--line-warm);
    padding:.65rem .75rem;
    padding-bottom:calc(.65rem + env(safe-area-inset-bottom));
    gap:.5rem;
    backdrop-filter:blur(10px);
    box-shadow:0 -8px 30px rgba(0,0,0,.5);
  }
  .mobile-cta-bar a {
    flex:1;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:.4rem;
    padding:.75rem .5rem;
    border-radius:.6rem;
    font-weight:800;
    font-size:.9rem;
    text-decoration:none;
    min-height:48px;
    letter-spacing:.03em;
  }
  .mobile-cta-call { background:linear-gradient(135deg,var(--flame),var(--ember)); color:#fff; box-shadow:0 4px 16px rgba(196,92,42,.45); }
  .mobile-cta-directions { background:rgba(66,133,244,.18); color:#b3d4ff; border:1px solid rgba(66,133,244,.35); }
  .mobile-cta-menu { background:rgba(248,238,220,.08); color:var(--cream); border:1px solid var(--line); }
  /* push footer above sticky bar */
  .site-footer { padding-bottom:calc(2.25rem + 80px); }
  body { padding-bottom:80px; }
}

/* ============================================================
   LIVE PIT STATUS BANNER (homepage)
   ============================================================ */
.pit-status-banner {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.55rem;
  padding:.55rem 1rem;
  font-weight:800;
  font-size:.82rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  border-bottom:1px solid rgba(255,255,255,.06);
}
.pit-status-banner__dot {
  width:.55rem;
  height:.55rem;
  border-radius:50%;
  flex-shrink:0;
  animation:pit-pulse 1.8s ease-in-out infinite;
}
@keyframes pit-pulse {
  0%, 100% { opacity:1; transform:scale(1); }
  50% { opacity:.55; transform:scale(1.15); }
}
.pit-status-banner--smoking {
  background:linear-gradient(90deg, rgba(58,28,8,.95), rgba(92,42,12,.92));
  color:#ffd4a8;
}
.pit-status-banner--smoking .pit-status-banner__dot { background:#ff8c42; box-shadow:0 0 10px #ff8c42; }
.pit-status-banner--ready {
  background:linear-gradient(90deg, rgba(28,58,18,.92), rgba(42,72,28,.9));
  color:#d4f5c4;
}
.pit-status-banner--ready .pit-status-banner__dot { background:#7cfc7c; box-shadow:0 0 10px #7cfc7c; }
.pit-status-banner--sold-out {
  background:linear-gradient(90deg, rgba(42,18,18,.94), rgba(58,22,22,.9));
  color:#ffc9c9;
}
.pit-status-banner--sold-out .pit-status-banner__dot { background:#ef5350; box-shadow:0 0 8px #ef5350; animation:none; }

/* Sold-out day alert (admin toggle) */
.sold-out-banner {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.65rem;
  padding:.85rem 1.25rem;
  background:linear-gradient(90deg, rgba(120,24,24,.96), rgba(78,16,16,.94));
  color:#ffe0e0;
  font-weight:900;
  font-size:clamp(.82rem, 2.5vw, .95rem);
  letter-spacing:.06em;
  text-transform:uppercase;
  border-bottom:3px solid rgba(239,83,80,.55);
  box-shadow:0 8px 32px rgba(0,0,0,.45);
  text-align:center;
}
.sold-out-banner__icon { font-size:1.15rem; flex-shrink:0; }
.sold-out-banner__text { max-width:52ch; line-height:1.35; }

/* Live from the pit bulletin */
.pitmaster-bulletin {
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:.35rem;
  padding:.75rem 1.1rem;
  background:linear-gradient(90deg, rgba(42,28,12,.92), rgba(58,36,16,.9));
  border-bottom:1px solid rgba(232,180,80,.18);
  text-align:center;
}
.pitmaster-bulletin__label {
  font-size:.72rem;
  font-weight:900;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--spark);
}
.pitmaster-bulletin__text {
  margin:0;
  font-size:clamp(1rem, 2.8vw, 1.15rem);
  font-weight:700;
  color:var(--cream);
  max-width:42rem;
  line-height:1.4;
}

/* Google reviews spotlight */
.google-reviews-panel {
  margin-top:var(--stack-lg);
  padding:1.1rem 1rem 1.25rem;
  border-radius:.9rem;
  border:1px solid rgba(66,133,244,.28);
  background:
    linear-gradient(155deg, rgba(18,22,32,.95), rgba(10,12,18,.98)),
    radial-gradient(circle at 100% 0%, rgba(66,133,244,.12), transparent 45%);
  box-shadow:var(--card-inset), 0 12px 40px rgba(0,0,0,.42);
}
.google-reviews-panel__head {
  display:flex;
  align-items:flex-start;
  gap:.85rem;
  margin-bottom:1rem;
}
.google-reviews-panel__badge {
  display:grid;
  place-items:center;
  width:2.5rem;
  height:2.5rem;
  border-radius:.65rem;
  background:#fff;
  color:#4285f4;
  font-weight:900;
  font-size:1.35rem;
  font-family:Arial, sans-serif;
  flex-shrink:0;
  box-shadow:0 4px 14px rgba(66,133,244,.35);
}
.google-reviews-panel__title {
  margin:0 0 .25rem;
  font-family:var(--font-d);
  font-size:clamp(1.35rem, 3.5vw, 1.85rem);
  letter-spacing:.04em;
  color:#e8f0fe;
}
.google-reviews-panel__intro {
  margin:0;
  color:#b8c5e0;
  font-size:.95rem;
  max-width:48ch;
}
.google-reviews-grid {
  display:grid;
  gap:var(--gap-cards);
  grid-template-columns:repeat(auto-fill, minmax(240px, 1fr));
}
.google-review-card {
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.08);
  border-radius:.75rem;
  padding:.85rem .9rem;
}
.google-review-card__quote {
  margin:.45rem 0 .35rem;
  font-size:.95rem;
  line-height:1.55;
  color:var(--cream);
  font-style:italic;
}
.google-review-card__author {
  margin:0;
  font-size:.82rem;
  color:#9cb3d8;
}
.google-reviews-panel__cta {
  margin-top:1.1rem;
  text-align:center;
}
.btn-google-review {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.55rem;
  padding:.75rem 1.35rem;
  border-radius:999px;
  background:linear-gradient(180deg, #fff, #e8f0fe);
  color:#1a73e8 !important;
  font-weight:900;
  letter-spacing:.03em;
  text-decoration:none;
  border:1px solid rgba(66,133,244,.35);
  box-shadow:0 8px 24px rgba(66,133,244,.25);
  transition:transform .2s var(--ease), box-shadow .2s;
}
.btn-google-review:hover {
  color:#1558b0 !important;
  transform:translateY(-2px);
  box-shadow:0 12px 28px rgba(66,133,244,.35);
}
.btn-google-review__icon {
  display:inline-grid;
  place-items:center;
  width:1.35rem;
  height:1.35rem;
  border-radius:50%;
  background:#4285f4;
  color:#fff;
  font-size:.78rem;
  font-weight:900;
  font-family:Arial, sans-serif;
}
.reviews-divider {
  display:flex;
  align-items:center;
  gap:1rem;
  margin:1.35rem 0 1rem;
  color:var(--muted);
  font-size:.78rem;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.reviews-divider::before,
.reviews-divider::after {
  content:"";
  flex:1;
  height:1px;
  background:linear-gradient(90deg, transparent, var(--line-warm), transparent);
}

/* Catering funnel form */
.cater-form-card--funnel { max-width:680px; }
.cater-grid--funnel { grid-template-columns:repeat(auto-fill, minmax(220px, 1fr)); }
.cater-meat-fieldset {
  margin:1rem 0 0;
  padding:1rem;
  border:1px solid var(--line);
  border-radius:.65rem;
  background:rgba(0,0,0,.22);
}
.cater-meat-fieldset legend {
  padding:0 .35rem;
  font-weight:800;
  color:var(--spark);
  letter-spacing:.06em;
  text-transform:uppercase;
  font-size:.78rem;
}
.cater-meat-hint { margin:0 0 .65rem; font-size:.88rem; color:var(--muted); }
.cater-meat-grid {
  display:grid;
  gap:.55rem;
  grid-template-columns:repeat(auto-fill, minmax(180px, 1fr));
}
.cater-meat-option {
  display:flex;
  align-items:center;
  gap:.45rem;
  padding:.55rem .65rem;
  border-radius:.45rem;
  border:1px solid var(--line);
  background:rgba(255,255,255,.03);
  font-size:.92rem;
  cursor:pointer;
}
.cater-meat-option:has(input:checked) {
  border-color:var(--line-warm);
  background:rgba(196,92,42,.12);
}
.cater-form-submit { margin-top:1rem; width:100%; font-size:1.05rem; }
.cater-form-foot { text-align:center; font-size:.8rem; color:var(--muted); margin-top:.5rem; }
.form-flash {
  max-width:680px;
  margin:0 auto 1.5rem;
  padding:1rem 1.25rem;
  border-radius:.75rem;
}
.form-flash--ok {
  background:rgba(76,175,80,.15);
  border:1px solid rgba(76,175,80,.4);
  color:#a5d6a7;
}
.form-flash--err {
  background:rgba(244,67,54,.12);
  border:1px solid rgba(244,67,54,.35);
  color:#ef9a9a;
}

/* ============================================================
   GOOGLE MAPS EMBED
   ============================================================ */
.gmap-embed,
.gmap-embed-wrap .gmap-embed {
  position:relative;
  width:100%;
  border-radius:.85rem;
  overflow:hidden;
  border:1px solid var(--line-warm);
  box-shadow:var(--card-shade);
  background:var(--coal);
}
.gmap-embed::before {
  content:"";
  display:block;
  padding-top:56.25%;
}
.gmap-embed iframe {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:0;
}
.gmap-embed-wrap { margin-top:1rem; }
.gmap-embed-title {
  font-family:var(--font-d);
  font-size:1.15rem;
  letter-spacing:.06em;
  margin:0 0 .55rem;
  color:var(--gold);
}
.footer-map-section {
  padding:1.5rem 0 0;
  background:linear-gradient(to bottom, transparent, rgba(16,12,8,.55));
}
.footer-map-heading {
  font-family:var(--font-d);
  font-size:clamp(1.4rem,3vw,1.85rem);
  letter-spacing:.06em;
  margin:0 0 .85rem;
  color:var(--cream);
  text-align:center;
}

/* ============================================================
   MISC / SHARED
   ============================================================ */
.meta-list { list-style:none; padding:0; margin:0; }
.meta-list li { padding:0.38rem 0; border-bottom:1px solid var(--line); display:flex; gap:0.55rem; flex-wrap:wrap; }
.meta-list li:last-child { border-bottom:none; }
.meta-list strong { color:var(--spark); min-width:5rem; }
.pill { display:inline-flex; align-items:center; gap:.3rem; padding:.28rem .65rem; border-radius:999px; border:1px solid var(--line); background:rgba(248,238,220,.05); font-size:.84rem; }

/* ============================================================
   RESPONSIVE — global pass
   ============================================================ */
@media (max-width:640px) {
  :root {
    --section-y: clamp(0.5rem, 3vw, 1rem);
    --gap-cards: 0.5rem;
    --stack-lg: 0.42rem;
  }
  .section { padding: clamp(0.55rem, 3.5vw, 1.05rem) 0; }
  .section--special-tight { padding: 0.32rem 0; }
  .special-banner { padding: 0.45rem 0.6rem; column-gap: 0.55rem; }
  .hero {
    min-height: clamp(220px, 42vh, 320px);
    padding-bottom: 0.4rem;
  }
  .hero-inner { padding: 0.45rem 0 0.35rem; gap: 0.45rem; }
  .hero-sales-panel {
    max-width: 100%;
    padding: 0.48rem 0.58rem 0.55rem 0.72rem;
    border-radius: 0.55rem;
  }
  .hero-sales-panel .hero-stack {
    padding-left: 0.32rem;
  }
  .hero-stack { gap: 0.18rem; max-width: 100%; }
  .hero h1 { font-size: clamp(2.2rem, 10vw, 3.25rem); }
  .hero-desc { font-size: 0.88rem; max-width: 100%; }
  .hero-proof { max-width: 100%; padding-top: 0.22rem; }
  .hero-proof-item { font-size: 0.72rem; }
  .hero-stack .btn-lg { padding: 0.52rem 0.95rem; font-size: 0.84rem; }
  .plates-grid { grid-template-columns:1fr; }
  .reviews-grid { grid-template-columns:1fr; }
  .process-grid { grid-template-columns:1fr; }
  .trust-strip { padding: 0.42rem 0; }
  .trust-grid { gap: 0.28rem 0.65rem; }
  .trust-num { font-size: 1.65rem; }
  .trust-label { font-size: 0.65rem; }
  .story-grid { grid-template-columns:1fr; gap: var(--gap-cards); }
  .section h2 { font-size:clamp(1.62rem, 6vw, 2.1rem); }
  .catering-section h2 { font-size:clamp(1.55rem, 6.5vw, 2.35rem); }
  .catering-section { padding: clamp(0.75rem, 4vw, 1.5rem) 0; }
  .catering-inner { max-width: 100%; }
  .btn-lg { padding: 0.62rem 1.05rem; font-size: 0.88rem; }
  .footer-top { grid-template-columns:1fr; gap: 0.55rem; padding-bottom: 0.45rem; }
  .footer-panel { padding: 0.5rem 0.55rem 0.45rem; }
  .find-grid { grid-template-columns:1fr; }
  .newsletter-panel { padding: 0.5rem 0.55rem; }
  .newsletter-inner { gap: 0.5rem; align-items: stretch; }
  .newsletter-title { font-size: 1.08rem; }
  .faq-question { min-height: 42px; padding: 0.55rem 0.7rem; font-size: 0.86rem; }
}

@media (max-width:400px) {
  .hero h1 { font-size: clamp(2rem, 11vw, 2.85rem); }
  .hero-proof { gap: 0.22rem 0.38rem; }
}

/* ============================================================
   MAP & DIRECTIONS — contact page
   ============================================================ */

/* leaflet override — match dark theme */
.leaflet-container { background: var(--ink) !important; font-family: var(--font-b) !important; }
/* Do not apply filter to .leaflet-tile-pane — Firefox often composites tiles to a blank layer. */
.leaflet-control-zoom a { background: var(--coal) !important; color: var(--cream) !important; border-color: var(--line) !important; }
.leaflet-control-zoom a:hover { background: var(--smoke) !important; color: var(--gold) !important; }
.leaflet-control-attribution { background: rgba(16,12,8,.7) !important; color: var(--ash) !important; font-size:.7rem !important; }
.leaflet-control-attribution a { color: var(--ash) !important; }
.leaflet-popup-content-wrapper { background: var(--coal) !important; border: 1px solid var(--line-warm) !important; border-radius: .85rem !important; box-shadow: var(--shadow) !important; color: var(--cream) !important; }
.leaflet-popup-tip { background: var(--coal) !important; }
.leaflet-popup-close-button { color: var(--muted) !important; font-size: 1.1rem !important; }

.map-section { position: relative; }
.map-layout { display: grid; grid-template-columns: 1fr 400px; gap: 1.05rem; align-items: start; margin-top: var(--stack-lg); }
@media (max-width: 960px) { .map-layout { grid-template-columns: 1fr; } }
@media (max-width: 960px) { #jbmap { height: 340px !important; } }

.map-wrap {
  position: relative; border-radius: 1.1rem; overflow: hidden;
  border: 1px solid var(--line-warm); box-shadow: var(--shadow);
}
#jbmap { width: 100%; height: 480px; }

/* custom map marker */
.bbq-pin {
  display: flex; flex-direction: column; align-items: center;
  pointer-events: none;
}
.bbq-pin-bubble {
  background: linear-gradient(135deg,var(--flame),#8f3d18);
  border: 3px solid var(--gold);
  border-radius: 50% 50% 50% 0;
  transform: rotate(-45deg);
  width: 48px; height: 48px;
  display: grid; place-items: center;
  box-shadow: 0 6px 24px rgba(196,92,42,.7), 0 0 0 4px rgba(196,92,42,.25);
  animation: ember-pulse 2.5s ease-in-out infinite;
}
.bbq-pin-emoji { transform: rotate(45deg); font-size: 1.5rem; line-height: 1; }
.bbq-pin-stem { width: 4px; height: 14px; background: var(--ember); border-radius: 0 0 4px 4px; }

/* map popup */
.map-popup-inner { min-width: 200px; padding: .25rem 0; }
.map-popup-name { font-family: var(--font-d); font-size: 1.3rem; letter-spacing: .05em; color: var(--spark); margin-bottom: .35rem; }
.map-popup-addr { font-size: .9rem; color: var(--muted); margin-bottom: .75rem; line-height: 1.5; }
.map-popup-links { display: flex; flex-direction: column; gap: .35rem; }
.map-popup-links a { font-size: .88rem; font-weight: 700; text-decoration: none; color: var(--gold); }
.map-popup-links a:hover { color: var(--cream); }

/* directions sidebar card */
.dir-card {
  background: linear-gradient(160deg, rgba(42,28,18,.95), rgba(26,18,11,.98));
  border: 1px solid var(--line-warm);
  border-radius: 1rem;
  padding: 1.1rem 1.05rem;
  display: flex; flex-direction: column; gap: 0.75rem;
}
.dir-card h3 { font-family: var(--font-d); font-size: 1.55rem; letter-spacing: .06em; color: var(--spark); margin: 0; }
.dir-divider { border: none; border-top: 1px solid var(--line); margin: 0; }

.dir-method { display: flex; flex-direction: column; gap: .6rem; }
.dir-method label { font-weight: 700; font-size: .82rem; text-transform: uppercase; letter-spacing: .1em; color: var(--muted); }
.dir-input-row { display: flex; gap: .5rem; }
.dir-input-row input {
  flex: 1; padding: .7rem .8rem; border-radius: .6rem;
  border: 1px solid var(--line); background: rgba(0,0,0,.35);
  color: var(--cream); font: inherit; font-size: 1rem; min-height: 48px;
}
.dir-input-row input:focus { outline: none; border-color: var(--gold); }
.dir-input-row .btn { flex-shrink: 0; padding: .7rem .9rem; min-height: 48px; }
.dir-or { text-align: center; font-size: .82rem; color: var(--ash); font-weight: 700; letter-spacing: .1em; text-transform: uppercase; margin: -.2rem 0; }

/* geo btn pulse */
.btn-geo { position: relative; overflow: hidden; }
.btn-geo .geo-ping {
  position: absolute; top: 50%; left: 1rem; transform: translate(-50%,-50%);
  width: 8px; height: 8px; border-radius: 50%; background: #4caf50; flex-shrink: 0;
}
.btn-geo .geo-ping::after { content:""; position:absolute; inset:-4px; border-radius:50%; border:2px solid #4caf50; animation: ping 1.4s ease-out infinite; }
@keyframes ping { 0%{opacity:1;transform:scale(1);} 100%{opacity:0;transform:scale(2.8);} }

/* nearby cities */
.nearby-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 0.55rem;
  margin-top: var(--stack-lg);
}
.nearby-card {
  background: linear-gradient(155deg,rgba(42,28,18,.9),rgba(26,18,11,.95));
  border: 1px solid var(--line);
  border-radius: .85rem;
  padding: .9rem .85rem;
  text-align: center;
  transition: border-color .25s, transform .25s;
  cursor: pointer;
}
.nearby-card:hover { border-color: var(--line-warm); transform: translateY(-3px); }
.nearby-city { font-weight: 800; font-size: .94rem; color: var(--cream); margin-bottom: .15rem; }
.nearby-dist { font-size: .82rem; color: var(--muted); }
.nearby-drive { font-size: .76rem; color: var(--ember); font-weight: 700; margin-top: .1rem; }

/* contact info block */
.contact-block {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: var(--gap-cards);
  margin-top: var(--stack-lg);
}
.contact-info-card {
  background: linear-gradient(155deg,rgba(42,28,18,.9),rgba(26,18,11,.95));
  border: 1px solid var(--line);
  border-radius: 0.95rem;
  padding: 1.05rem 0.95rem;
  transition: border-color .25s;
}
.contact-info-card:hover { border-color: var(--line-warm); }
.contact-info-icon { font-size: 1.75rem; margin-bottom: var(--stack-xs); display: block; }
.contact-info-label { font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .14em; color: var(--ember); margin-bottom: 0.22rem; }
.contact-info-value { font-size: 1.04rem; font-weight: 700; color: var(--cream); }
.contact-info-value a { color: var(--cream); text-decoration: none; }
.contact-info-value a:hover { color: var(--spark); }
.contact-info-sub { font-size: .86rem; color: var(--muted); margin-top: .2rem; line-height: 1.5; }

/* directions status */
.dir-status { font-size: .88rem; padding: .6rem .75rem; border-radius: .5rem; margin-top: .3rem; display: none; }
.dir-status.show { display: block; }
.dir-status.loading { background: rgba(232,180,80,.12); border: 1px solid rgba(232,180,80,.3); color: var(--gold); }
.dir-status.error   { background: rgba(196,92,42,.15); border: 1px solid rgba(196,92,42,.35); color: #ffb4a1; }

/* ============================================================
   NEWSLETTER SECTION
   ============================================================ */
.newsletter-section {
  background: linear-gradient(135deg, var(--coal), var(--pit));
  border-top: 1px solid var(--line-warm);
  border-bottom: 1px solid var(--line);
  padding: var(--section-y) 0;
}
.newsletter-panel {
  border: 1px solid rgba(232, 180, 80, 0.22);
  border-radius: 0.75rem;
  padding: 0.72rem 0.85rem;
  background: linear-gradient(160deg, rgba(12, 8, 5, 0.92) 0%, rgba(22, 14, 8, 0.78) 100%);
  box-shadow:
    var(--card-inset),
    0 16px 40px rgba(0, 0, 0, 0.45),
    0 0 0 1px rgba(0, 0, 0, 0.25) inset;
  position: relative;
}
.newsletter-panel::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.55rem;
  bottom: 0.55rem;
  width: 3px;
  border-radius: 2px;
  background: linear-gradient(180deg, var(--gold), var(--flame) 50%, var(--ember));
  opacity: 0.85;
  pointer-events: none;
}
.newsletter-inner,
.newsletter-form-wrap {
  position: relative;
  z-index: 1;
}
.newsletter-inner {
  display: flex;
  gap: 0.65rem 1rem;
  align-items: flex-end;
  flex-wrap: wrap;
}
.newsletter-copy { flex: 1; min-width: 200px; }
.newsletter-title {
  font-size: clamp(1.05rem, 2.8vw, 1.28rem);
  font-family: var(--font-d);
  font-weight: 800;
  color: var(--spark);
  margin-bottom: 0.18rem;
  letter-spacing: 0.07em;
  line-height: 1.08;
  text-transform: uppercase;
  text-shadow: 0 2px 16px rgba(0, 0, 0, 0.45);
}
.newsletter-copy p { color: var(--muted); font-size: 0.84rem; line-height: 1.42; margin: 0; }
.newsletter-form-wrap { flex: 2; min-width: 280px; }
.nl-row { display: flex; gap: .5rem; flex-wrap: wrap; }
.nl-row input { flex: 1; min-width: 160px; padding: .55rem .75rem; border-radius: .5rem; border: 1px solid var(--line-warm); background: rgba(255,255,255,.05); color: var(--cream); font-size: .92rem; }
.nl-row input::placeholder { color: var(--muted); }
.nl-row input:focus { outline: 2px solid var(--ember); }
.nl-fine { font-size: .72rem; color: var(--muted); margin-top: 0.28rem; }
.newsletter-msg { padding: .55rem 0.85rem; border-radius: .5rem; font-size: .86rem; margin-bottom: var(--stack-sm); }
.newsletter-msg.ok  { background: rgba(76,175,80,.15); border: 1px solid rgba(76,175,80,.35); color: #a5d6a7; }
.newsletter-msg.err { background: rgba(244,67,54,.12); border: 1px solid rgba(244,67,54,.35); color: #ef9a9a; }

/* ============================================================
   FOOTER SHARE BAR
   ============================================================ */
.footer-share {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.38rem;
  padding: 0.4rem 0 0;
  border-top: none;
  border-bottom: none;
  margin-bottom: 0;
}
.share-label { font-size: .85rem; color: var(--muted); margin-right: .25rem; }
.share-btn {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  padding: .4rem 1rem;
  border-radius: 2rem;
  border: 1px solid var(--line-warm);
  background: rgba(255,255,255,.04);
  color: var(--cream);
  font-size: .82rem;
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
  transition: background .2s, border-color .2s;
}
.share-btn:hover { background: rgba(255,255,255,.09); border-color: var(--spark); color: var(--spark); }
.share-fb { border-color: rgba(66,103,178,.4); color: #8b9ef7; }
.share-fb:hover { background: rgba(66,103,178,.12); border-color: #8b9ef7; color: #8b9ef7; }
.share-wa { border-color: rgba(37,211,102,.3); color: #25d366; }
.share-wa:hover { background: rgba(37,211,102,.1); border-color: #25d366; color: #25d366; }

/* ============================================================
   WHATSAPP FLOATING BUTTON
   ============================================================ */
.whatsapp-float {
  position: fixed;
  bottom: 5.5rem;
  right: 1.25rem;
  z-index: 900;
  width: 56px;
  height: 56px;
  background: #25d366;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 18px rgba(37,211,102,.45), 0 2px 6px rgba(0,0,0,.3);
  transition: transform .2s, box-shadow .2s;
  text-decoration: none;
}
.whatsapp-float:hover {
  transform: scale(1.1);
  box-shadow: 0 6px 24px rgba(37,211,102,.6), 0 2px 8px rgba(0,0,0,.35);
}
@media (min-width: 768px) {
  .whatsapp-float { bottom: 2rem; right: 2rem; }
}

/* ============================================================
   SOCIAL (footer + brand column)
   ============================================================ */
.social-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.65rem;
  align-items: center;
}
.social-link {
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted);
  text-decoration: none;
  border: 1px solid var(--line-warm);
  padding: 0.25rem 0.5rem;
  border-radius: 0.35rem;
  transition: color 0.2s, border-color 0.2s, background 0.2s;
}
.social-link:hover {
  color: var(--spark);
  border-color: var(--ember);
  background: rgba(196, 92, 42, 0.12);
}

/* ============================================================
   PIT HOUSE — corrugated + char depth (public polish)
   ============================================================ */
.site-header.is-scrolled {
  border-bottom: 1px solid rgba(196, 92, 42, 0.12);
}
.section.pit {
  position: relative;
}
.section.pit::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0.035;
  background: repeating-linear-gradient(
    105deg,
    transparent,
    transparent 14px,
    rgba(0, 0, 0, 0.4) 14px,
    rgba(0, 0, 0, 0.4) 15px
  );
}
/* ============================================================
   AI CREDIT FOOTER
   ============================================================ */
.footer-ai-credit {
  font-size: .78rem;
  color: #6b5448;
  margin-top: .35rem;
  text-align: center;
}
.footer-ai-credit a { color: #8b7060; }
.footer-ai-credit a:hover { color: var(--muted); }

/* ============================================================
   PRINT
   ============================================================ */
@media print {
  .announce-bar,.site-header,.mobile-cta-bar,.catering-section,.hero-embers,
  .hero-photo,.hero-overlay,.hero-badge,.hero-grain,.site-footer { display:none!important; }
  body { background:#fff; color:#000; }
  .hero { min-height:auto; background:none; padding:1rem 0; }
  .hero h1 { color:#000; animation:none; font-size:2rem; }
  a { color:#000; }
}
