/* ==========================================================================
   BBQ LORD — site stylesheet. Extends the design-system tokens in ../styles.css
   ========================================================================== */
:root{--nav-h:84px;--nav-h-compact:64px;--edge:clamp(20px,5vw,64px);--max:1440px;--grill:repeating-linear-gradient(180deg,rgba(247,241,230,.13) 0 2px,transparent 2px 12px)}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--cream-300);color:var(--ink-900);font-family:var(--font-body);font-size:clamp(15px,1vw,17px);line-height:1.6;overflow-x:hidden;text-wrap:pretty}
img{max-width:100%;display:block}
a{color:var(--flame-600);text-decoration:none}
a:hover{color:var(--flame-700)}
h1,h2,h3,h4{margin:0;font-family:var(--font-display);font-weight:700;letter-spacing:-.015em;line-height:1.02}
p{margin:0}
:focus-visible{outline:3px solid var(--flame-500);outline-offset:3px;border-radius:2px}
.skip{position:absolute;left:-9999px;top:0;z-index:200;background:var(--flame-500);color:#FFFDF8;padding:12px 20px;font-weight:700}
.skip:focus{left:12px;top:12px;color:#FFFDF8}
.wrap{width:100%;max-width:var(--max);margin:0 auto;padding:0 var(--edge)}
.narrow{max-width:760px}

/* ---------- type scale ---------- */
.mega{font-family:var(--font-display);font-weight:900;font-size:clamp(3rem,11.5vw,10.5rem);line-height:.86;letter-spacing:-.03em;text-transform:uppercase}
.h-xl{font-size:clamp(2.4rem,6vw,5.2rem)}
.h-lg{font-size:clamp(2rem,4.4vw,3.6rem)}
.h-md{font-size:clamp(1.5rem,2.6vw,2.25rem)}
.h-sm{font-family:var(--font-body);font-weight:700;font-size:clamp(1.05rem,1.4vw,1.3rem);letter-spacing:-.01em;line-height:1.25}
.eyebrow{display:flex;align-items:center;gap:12px;font-family:var(--font-body);font-weight:800;font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;color:var(--flame-600)}
.eyebrow::before{content:"";width:34px;height:2px;background:currentColor;flex:none}
.lede{font-size:clamp(1.02rem,1.35vw,1.3rem);line-height:1.55;max-width:58ch}
.muted{color:var(--ink-500)}
.serif-num{font-family:var(--font-display);font-weight:700}

/* ---------- theme sections ---------- */
.sec{position:relative;padding:clamp(72px,10vw,152px) 0}
.sec--cream{background:var(--cream-300);color:var(--ink-900)}
.sec--card{background:var(--cream-100);color:var(--ink-900)}
.sec--brown{background:var(--brown-700);color:var(--cream-300)}
.sec--black{background:var(--ink-900);color:var(--cream-300)}
.sec--brown h1,.sec--brown h2,.sec--brown h3,.sec--black h1,.sec--black h2,.sec--black h3{color:var(--cream-100)}
.sec--brown .muted,.sec--black .muted{color:var(--brown-200)}
.sec--brown .eyebrow,.sec--black .eyebrow{color:var(--flame-400)}
.sec--brown a,.sec--black a{color:var(--flame-300)}
/* grill-bar divider between themed bands */
.grillrule{height:14px;background:repeating-linear-gradient(90deg,var(--flame-500) 0 26px,transparent 26px 52px);opacity:.9}
.tex-pattern{position:relative}
.tex-pattern::before{content:"";position:absolute;inset:0;background:url("../img/pattern-tile-cream.png") 0 0/340px repeat;opacity:.14;pointer-events:none}
.tex-pattern > *{position:relative}
.tex-pattern--dim{position:relative}
.tex-pattern--dim::before{content:"";position:absolute;inset:0;background:url("../img/pattern-tile-cream.png") 0 0/300px repeat;opacity:.06;mix-blend-mode:screen;pointer-events:none}

/* ---------- buttons ---------- */
.btn{--bg:var(--flame-500);--fg:#FFFDF8;--bd:transparent;position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:56px;padding:0 34px;border:2px solid var(--bd);border-radius:999px;background:var(--bg);color:var(--fg);font-family:var(--font-body);font-weight:800;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;overflow:hidden;transition:background .12s cubic-bezier(.2,.8,.2,1),transform .12s cubic-bezier(.2,.8,.2,1),box-shadow .2s cubic-bezier(.2,.8,.2,1);will-change:transform}
.btn:hover{--bg:var(--flame-600);color:var(--fg);box-shadow:0 10px 30px rgba(211,84,44,.34)}
.btn:active{--bg:var(--flame-700);transform:scale(.97)}
.btn .arw{transition:transform .2s cubic-bezier(.16,1,.3,1)}
.btn:hover .arw{transform:translateX(5px)}
/* "heat" sweep on the primary CTA */
.btn--primary::after{content:"";position:absolute;inset:-40% -10%;background:radial-gradient(closest-side,rgba(255,220,170,.5),transparent 70%);opacity:0;transform:translateX(-60%);transition:opacity .25s,transform .55s cubic-bezier(.16,1,.3,1);pointer-events:none}
.btn--primary:hover::after{opacity:1;transform:translateX(60%)}
.btn--dark{--bg:var(--brown-700);--fg:var(--cream-200)}
.btn--dark:hover{--bg:var(--brown-600);box-shadow:0 10px 30px rgba(23,15,11,.3)}
.btn--outline{--bg:transparent;--fg:var(--brown-700);--bd:var(--brown-700)}
.btn--outline:hover{--bg:var(--brown-700);--fg:var(--cream-200);box-shadow:none}
.sec--brown .btn--outline,.sec--black .btn--outline,.hero .btn--outline{--fg:var(--cream-200);--bd:rgba(247,241,230,.4)}
.sec--brown .btn--outline:hover,.sec--black .btn--outline:hover,.hero .btn--outline:hover{--bg:var(--cream-200);--fg:var(--brown-700)}
.btn--sm{min-height:44px;padding:0 22px;font-size:.68rem}
.btn--wide{width:100%}
.linkline{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;position:relative;padding-bottom:3px}
.linkline::after{content:"";position:absolute;left:0;bottom:0;height:2px;width:100%;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .3s cubic-bezier(.16,1,.3,1)}
.linkline:hover::after{transform:scaleX(1)}

/* ---------- navigation ---------- */
.nav{position:fixed;inset:0 0 auto;z-index:90;height:var(--nav-h);display:flex;align-items:center;transition:height .3s cubic-bezier(.2,.8,.2,1),background .3s,box-shadow .3s,border-color .3s;border-bottom:1px solid transparent}
.nav__in{width:100%;max-width:var(--max);margin:0 auto;padding:0 var(--edge);display:flex;align-items:center;gap:clamp(16px,3vw,44px)}
.nav__logo{display:flex;align-items:center;gap:12px;flex:none}
.nav__logo img{height:38px;width:auto;transition:height .3s cubic-bezier(.2,.8,.2,1)}
.nav__lock{display:flex;flex-direction:column;line-height:1}
.nav__lock b{font-family:var(--font-display);font-weight:900;font-size:1.02rem;letter-spacing:.01em;color:var(--cream-100)}
.nav__lock span{font-family:var(--font-body);font-weight:700;font-size:.53rem;letter-spacing:.28em;color:var(--flame-400);margin-top:3px}
.nav__links{display:flex;gap:clamp(14px,2.2vw,34px);list-style:none;padding:0;margin-block:0;margin-left:0}
.nav__cta{margin-left:auto}
.nav__links a{position:relative;font-weight:700;font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--cream-200);padding:8px 2px}
.nav__links a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--flame-500);transform:scaleX(0);transform-origin:left;transition:transform .28s cubic-bezier(.16,1,.3,1)}
.nav__links a:hover,.nav__links a[aria-current="page"]{color:var(--cream-100)}
.nav__links a:hover::after,.nav__links a[aria-current="page"]::after{transform:scaleX(1)}
.nav--solid{height:var(--nav-h-compact);background:rgba(43,30,23,.9);backdrop-filter:saturate(150%) blur(14px);-webkit-backdrop-filter:saturate(150%) blur(14px);box-shadow:0 10px 34px rgba(23,15,11,.28);border-bottom-color:rgba(247,241,230,.1)}
.nav--solid .nav__logo img{height:31px}
.nav__burger{display:none;width:48px;height:48px;margin-left:auto;align-items:center;justify-content:center;background:transparent;border:1.5px solid rgba(247,241,230,.35);border-radius:50%;cursor:pointer}
.nav__burger span{display:block;position:relative;width:18px;height:2px;background:var(--cream-200);transition:transform .3s cubic-bezier(.2,.8,.2,1),opacity .2s}
.nav__burger span::before,.nav__burger span::after{content:"";position:absolute;left:0;width:18px;height:2px;background:var(--cream-200);transition:transform .3s cubic-bezier(.2,.8,.2,1)}
.nav__burger span::before{top:-6px}.nav__burger span::after{top:6px}
body.menu-open .nav__burger span{background:transparent}
body.menu-open .nav__burger span::before{transform:translateY(6px) rotate(45deg)}
body.menu-open .nav__burger span::after{transform:translateY(-6px) rotate(-45deg)}
.nav__cta{flex:none}
@media(max-width:1000px){.nav__links{display:none}.nav__cta{display:none}.nav__burger{display:flex}}

/* mobile overlay menu */
.mmenu{position:fixed;inset:0;z-index:88;background:var(--brown-700);display:flex;flex-direction:column;justify-content:center;padding:calc(var(--nav-h) + 24px) var(--edge) 40px;clip-path:inset(0 0 100% 0);transition:clip-path .5s cubic-bezier(.16,1,.3,1);visibility:hidden}
.mmenu::before{content:"";position:absolute;inset:0;background:url("../img/pattern-tile-cream.png") 0 0/280px repeat;opacity:.05;pointer-events:none}
body.menu-open .mmenu{clip-path:inset(0 0 0 0);visibility:visible}
.mmenu ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;position:relative}
.mmenu li{overflow:hidden}
.mmenu ol a{display:block;font-family:var(--font-display);font-weight:900;font-size:clamp(2.2rem,11vw,3.6rem);line-height:1.1;color:var(--cream-100);text-transform:uppercase;transform:translateY(110%);transition:transform .55s cubic-bezier(.16,1,.3,1),color .2s}
.mmenu ol a:hover{color:var(--flame-400)}
body.menu-open .mmenu ol a{transform:translateY(0)}
.mmenu ol li:nth-child(2) a{transition-delay:.06s}.mmenu ol li:nth-child(3) a{transition-delay:.12s}
.mmenu ol li:nth-child(4) a{transition-delay:.18s}.mmenu ol li:nth-child(5) a{transition-delay:.24s}
.mmenu__foot{position:relative;margin-top:38px;display:flex;flex-direction:column;gap:16px}
.mmenu__foot .btn{width:100%}
.mmenu__meta{font-size:.8rem;color:var(--brown-200);display:flex;flex-direction:column;gap:6px}

/* ---------- hero ---------- */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;padding-top:var(--nav-h);background:var(--brown-700);color:var(--cream-200);overflow:hidden;isolation:isolate}
.hero__bg{position:absolute;inset:0;background:linear-gradient(160deg,#170F0B 0%,#3B2A20 46%,#8E2F14 118%)}
.hero__pattern{position:absolute;inset:-10%;background:url("../img/pattern-tile-cream.png") 0 0/420px repeat;opacity:.055;will-change:transform}
.hero__grill{position:absolute;inset:0;background:var(--grill);opacity:.5;mask-image:linear-gradient(180deg,transparent,#000 55%,#000)}
.smoke{position:absolute;border-radius:50%;filter:blur(46px);pointer-events:none;will-change:transform,opacity}
.smoke--a{width:56vw;height:56vw;left:-14vw;bottom:-24vw;background:radial-gradient(closest-side,rgba(211,84,44,.44),transparent 72%);animation:drift 26s ease-in-out infinite}
.smoke--b{width:44vw;height:44vw;right:-10vw;top:-14vw;background:radial-gradient(closest-side,rgba(226,118,79,.3),transparent 70%);animation:drift 34s ease-in-out infinite reverse}
.smoke--c{width:34vw;height:34vw;left:38%;bottom:-16vw;background:radial-gradient(closest-side,rgba(247,241,230,.13),transparent 72%);animation:drift 30s ease-in-out infinite -8s}
@keyframes drift{0%,100%{transform:translate3d(0,0,0) scale(1)}33%{transform:translate3d(5vw,-4vw,0) scale(1.12)}66%{transform:translate3d(-4vw,3vw,0) scale(.94)}}
.hero__in{position:relative;width:100%;max-width:var(--max);margin:0 auto;padding:0 var(--edge) clamp(48px,7vh,92px);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.02fr);gap:clamp(24px,3.4vw,54px);align-items:end}
.hero__crown{display:flex;align-items:center;gap:14px;margin-bottom:22px}
.hero__crown img{height:64px;width:auto}
.hero__crown span{font-weight:800;font-size:.68rem;letter-spacing:.3em;text-transform:uppercase;color:var(--flame-300)}
.hero h1{margin:0}
/* this hero's copy is two long lines, so it takes a tighter scale than .mega's default */
.hero .mega{font-size:clamp(2.5rem,7.2vw,6.4rem);line-height:.94;letter-spacing:-.025em;max-width:15ch}
.hero .mega span{display:block;color:var(--cream-100)}
/* masked reveals need room for descenders, or the 'w' and 'y' get clipped */
.hero .mega .mask{padding-bottom:.06em;margin-bottom:-.06em}
.hero .mega em{font-style:normal;color:var(--flame-500);-webkit-text-stroke:0}
.hero__sub{margin:26px 0 32px;max-width:44ch;color:var(--brown-200);font-size:clamp(1rem,1.25vw,1.2rem)}
.hero__ctas{display:flex;flex-wrap:wrap;gap:14px}
.hero__stack{align-self:end;justify-self:center;width:100%;max-width:700px;display:grid;place-items:center}
.hero__scroll{position:absolute;left:var(--edge);bottom:18px;display:flex;align-items:center;gap:10px;font-size:.62rem;font-weight:800;letter-spacing:.24em;text-transform:uppercase;color:rgba(247,241,230,.5)}
.hero__scroll i{display:block;width:1px;height:34px;background:linear-gradient(180deg,var(--flame-500),transparent);animation:drop 2.2s cubic-bezier(.16,1,.3,1) infinite}
@keyframes drop{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
@media(max-width:840px){.hero{min-height:auto;padding-bottom:0}
  .hero__in{padding-bottom:clamp(28px,5vh,52px)}
  .hero__in{grid-template-columns:1fr;align-items:start;gap:clamp(14px,3vh,28px)}
  .hero__stack{justify-self:center;max-width:460px}.hero__scroll{display:none}
  .float{padding-bottom:16px}}
/* squat windows: give the copy the room and let the burger shrink */
@media(max-height:640px) and (max-width:1040px){.hero .mega{font-size:clamp(1.9rem,5vw,2.6rem)}}
@media(max-width:1040px){.mega{font-size:clamp(3rem,13vw,7rem)}}
@media(max-width:1040px) and (min-width:841px){.hero .mega{font-size:clamp(2.2rem,4.6vw,3.4rem)}.hero__sub{margin:20px 0 26px}}
/* short windows: tighten the hero's own rhythm so both CTAs clear the fold */
@media(max-height:700px){.hero__scroll{display:none}.hero__in{padding-bottom:clamp(20px,3.5vh,40px)}.hero__crown{margin-bottom:14px}.hero__crown img{height:46px}.hero__sub{margin:16px 0 20px;font-size:.95rem}}

/* ---------- floating hero burger ---------- */
/* assets/burger-hero.png is a true alpha cut-out — no mask needed.
   The subject is a tall portrait stack with sauce ribbons flung wide, so it is
   height-led here and the glow/shadow are tuned to a narrow, tall silhouette. */
.float{position:relative;margin:0;display:grid;place-items:center;padding-bottom:clamp(30px,4.5vw,52px);perspective:1100px}
.float__img{position:relative;z-index:2;display:block;width:auto;height:auto;
  width:auto;height:auto;max-width:clamp(260px,34vw,580px);max-height:min(82vh,660px);object-fit:contain;
  filter:saturate(108%) contrast(103%) drop-shadow(0 28px 46px rgba(23,15,11,.66));
  transform-style:preserve-3d;
  opacity:0;
  animation:burgerIn 1.25s cubic-bezier(.16,1,.3,1) .3s forwards;
  will-change:transform,opacity}
/* the levitation lives on an inner wrapper so the pointer tilt can compose
   with it without the two transforms fighting for the same property */
.float__lift{display:grid;place-items:center;
  transform:rotateX(var(--ty,0deg)) rotateY(var(--tx,0deg));
  transition:transform .5s cubic-bezier(.2,.8,.2,1);transform-style:preserve-3d}
.float.is-ready .float__img{animation:burgerIn 1.25s cubic-bezier(.16,1,.3,1) .3s forwards,levitate 7s cubic-bezier(.45,0,.55,1) 1.55s infinite}
/* ember glow, breathing against the lift so the burger looks lit from below */
.float__glow{position:absolute;z-index:1;width:min(74%,clamp(240px,32vw,460px));aspect-ratio:.92;border-radius:50%;
  background:radial-gradient(closest-side,rgba(211,84,44,.42),rgba(184,69,31,.16) 56%,transparent 76%);
  filter:blur(38px);opacity:0;animation:glowIn 1.5s ease .4s forwards}
.float.is-ready .float__glow{animation:glowIn 1.5s ease .4s forwards,glowPulse 7s cubic-bezier(.45,0,.55,1) 1.55s infinite}
/* contact shadow: tightens and lightens as the burger rises */
.float__shadow{position:absolute;z-index:1;bottom:0;width:clamp(140px,18vw,240px);height:clamp(18px,2.3vw,30px);border-radius:50%;
  background:radial-gradient(closest-side,rgba(23,15,11,.75),transparent 74%);filter:blur(11px);
  opacity:0;animation:shadeIn 1.25s cubic-bezier(.16,1,.3,1) .3s forwards}
.float.is-ready .float__shadow{animation:shadeIn 1.25s cubic-bezier(.16,1,.3,1) .3s forwards,shadePulse 7s cubic-bezier(.45,0,.55,1) 1.55s infinite}
/* these must sit after the base .float__img rule above — equal specificity,
   so source order is what makes them apply. Width stays the driver; the caps
   only stop a tall window from pushing the stack past the fold. */
@media(max-width:900px){.float .float__img{max-width:min(88vw,440px);max-height:min(52vh,420px)}}
@keyframes burgerIn{from{opacity:0;transform:translateY(52px) scale(.88)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes levitate{0%,100%{transform:translateY(0) rotate(-.5deg) scale(1)}50%{transform:translateY(-20px) rotate(.6deg) scale(1.012)}}
@keyframes glowIn{to{opacity:1}}
@keyframes glowPulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.62;transform:scale(1.09)}}
@keyframes shadeIn{to{opacity:.92}}
@keyframes shadePulse{0%,100%{opacity:.92;transform:scale(1)}50%{opacity:.46;transform:scale(.78)}}

/* ---------- generic reveal ---------- */
.rv{opacity:0;transform:translateY(30px);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1)}
.rv.is-in{opacity:1;transform:none}
.rv-d1{transition-delay:.08s}.rv-d2{transition-delay:.16s}.rv-d3{transition-delay:.24s}.rv-d4{transition-delay:.32s}
.mask{display:block;overflow:hidden}
.mask > *{display:block;transform:translateY(103%);transition:transform .9s cubic-bezier(.16,1,.3,1)}
.mask.is-in > *{transform:translateY(0)}
.imgslot{position:relative;overflow:hidden;border-radius:20px;background:var(--brown-700);aspect-ratio:4/3;display:grid;place-items:center;text-align:center}
.imgslot::before{content:"";position:absolute;inset:0;background:url("../img/pattern-tile-cream.png") center/240px repeat;opacity:.09}
.imgslot::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(23,15,11,0),rgba(23,15,11,.45))}
.imgslot b{position:relative;z-index:1;font-family:var(--font-body);font-weight:800;font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(247,241,230,.9);padding:0 18px;line-height:1.7}
.imgslot--tall{aspect-ratio:3/4}
.imgslot--wide{aspect-ratio:16/9}

/* ---------- stat / feature grids ---------- */
.grid{display:grid;gap:clamp(16px,2vw,26px)}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,5vw,80px);align-items:center}
@media(max-width:900px){.g3,.g4,.split{grid-template-columns:1fr}.g4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.g2,.g4{grid-template-columns:1fr}}

.card{position:relative;background:var(--cream-100);border:1px solid var(--border-hairline);border-radius:20px;padding:clamp(22px,2.4vw,34px);transition:transform .3s cubic-bezier(.16,1,.3,1),box-shadow .3s}
.card:hover{transform:translateY(-4px);box-shadow:0 18px 44px rgba(43,30,23,.14)}
.sec--brown .card,.sec--black .card{background:rgba(247,241,230,.055);border-color:rgba(247,241,230,.14);color:var(--cream-200)}
.card__n{font-family:var(--font-display);font-weight:900;font-size:2.4rem;color:var(--flame-500);line-height:1;margin-bottom:14px}
.card h3{margin-bottom:8px}

/* ---------- menu cards ---------- */
.catbar{display:flex;gap:10px;overflow-x:auto;padding:4px 0 14px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.catbar::-webkit-scrollbar{display:none}
.chip{flex:none;min-height:44px;padding:0 22px;display:inline-flex;align-items:center;border:1.5px solid var(--border-hairline);border-radius:999px;background:transparent;color:var(--brown-700);font-family:var(--font-body);font-weight:700;font-size:.76rem;letter-spacing:.06em;cursor:pointer;transition:all .18s cubic-bezier(.2,.8,.2,1);white-space:nowrap}
.chip:hover{background:var(--brown-100)}
.chip[aria-selected="true"]{background:var(--brown-700);border-color:var(--brown-700);color:var(--cream-200)}
.fcard{position:relative;display:flex;flex-direction:column;background:var(--cream-100);border:1px solid var(--border-hairline);border-radius:22px;overflow:hidden;transition:transform .35s cubic-bezier(.16,1,.3,1),box-shadow .35s}
/* cream cards keep their own ink no matter which themed band they sit in */
.sec--brown .fcard,.sec--black .fcard,.sec--brown .quote,.sec--black .quote{background:var(--cream-100);border-color:var(--border-hairline);color:var(--ink-900)}
.sec--brown .fcard h3,.sec--black .fcard h3,.sec--brown .quote p,.sec--black .quote p{color:var(--brown-700)}
.sec--brown .fcard .muted,.sec--black .fcard .muted,.sec--brown .quote__who,.sec--black .quote__who{color:var(--ink-500)}
.sec--brown .quote__who,.sec--black .quote__who{color:var(--ink-900)}
.sec--brown .fcard a,.sec--black .fcard a{color:var(--flame-600)}
.fcard:hover{transform:translateY(-6px);box-shadow:0 22px 50px rgba(43,30,23,.16)}
.fcard__img{position:relative;overflow:hidden;aspect-ratio:4/3;background:var(--brown-700)}
.fcard__img::before{content:"";position:absolute;inset:0;background:url("../img/pattern-tile-cream.png") center/200px repeat;opacity:.09}
.fcard__img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(23,15,11,0),rgba(23,15,11,.5));transition:opacity .35s}
.fcard:hover .fcard__img::after{opacity:.8}
.fcard__img b{position:absolute;inset:auto 14px 12px;z-index:1;font-size:.55rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:rgba(247,241,230,.85)}
.fcard__flame{position:absolute;top:12px;left:12px;z-index:2;display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:999px;background:var(--flame-500);color:#FFFDF8;font-size:.55rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.fcard__body{display:flex;flex-direction:column;gap:8px;padding:20px 22px 22px;flex:1}
.fcard__top{display:flex;justify-content:space-between;align-items:baseline;gap:14px}
.fcard__price{font-family:var(--font-display);font-weight:700;font-size:1.2rem;color:var(--brown-700);white-space:nowrap}
.fcard__foot{margin-top:auto;padding-top:16px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.fcard--hero{grid-column:span 2}
.fcard--hero .fcard__img{aspect-ratio:16/10}
@media(max-width:900px){.fcard--hero{grid-column:span 1}}
.tabpanel[hidden]{display:none}

/* ---------- marquee ---------- */
.marq{overflow:hidden;padding:22px 0;background:var(--flame-500);color:#FFFDF8;border-block:2px solid rgba(23,15,11,.16)}
.marq__t{display:flex;gap:44px;width:max-content;animation:slide 30s linear infinite;font-family:var(--font-display);font-weight:900;font-size:clamp(1.4rem,3.4vw,2.6rem);text-transform:uppercase;letter-spacing:-.01em;white-space:nowrap}
.marq__t span{display:flex;align-items:center;gap:44px}
.marq__t i{font-style:normal;opacity:.55}
@keyframes slide{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.marq__t{animation:none}}

/* ---------- horizontal scroll story ---------- */
.hstory{display:flex;gap:clamp(16px,2vw,28px);overflow:auto hidden;scroll-snap-type:x mandatory;padding-bottom:34px;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
.hstory > *{flex:0 0 clamp(260px,32vw,400px);scroll-snap-align:start}

/* ---------- quotes ---------- */
.quote{background:var(--cream-100);border:1px solid var(--border-hairline);border-radius:20px;padding:clamp(22px,2.4vw,32px);display:flex;flex-direction:column;gap:14px}
.quote p{font-family:var(--font-display);font-weight:700;font-size:clamp(1.12rem,1.6vw,1.4rem);line-height:1.32;color:var(--brown-700)}
.quote__who{font-size:.8rem;font-weight:700}
.quote__who span{display:block;font-weight:400;color:var(--ink-500);font-size:.74rem}
.stars{display:flex;gap:3px;color:var(--flame-500);font-size:.8rem;letter-spacing:.1em}

/* ---------- forms ---------- */
.form{display:grid;gap:18px}
.field{display:flex;flex-direction:column;gap:8px}
.field label{font-weight:700;font-size:.76rem;letter-spacing:.06em;text-transform:uppercase}
.field input,.field select,.field textarea{min-height:52px;padding:14px 16px;border:1.5px solid var(--border-hairline);border-radius:12px;background:var(--cream-100);font-family:var(--font-body);font-size:.95rem;color:var(--ink-900);transition:border-color .16s,box-shadow .16s}
.field textarea{min-height:132px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--flame-500);box-shadow:0 0 0 3px rgba(211,84,44,.28)}
.field .hint{font-size:.72rem;color:var(--ink-500)}
.sec--brown .field input,.sec--brown .field select,.sec--brown .field textarea,.sec--black .field input,.sec--black .field textarea{background:rgba(247,241,230,.07);border-color:rgba(247,241,230,.2);color:var(--cream-100)}
.formnote{padding:14px 18px;border-radius:12px;background:var(--flame-100);border:1px solid rgba(211,84,44,.28);font-size:.8rem;color:var(--brown-700)}
.sec--brown .formnote,.sec--black .formnote{background:rgba(211,84,44,.14);color:var(--cream-200)}
.formstatus{font-size:.85rem;font-weight:700;color:var(--success-500)}

/* ---------- info list ---------- */
.deflist{display:grid;gap:2px}
.deflist div{display:flex;justify-content:space-between;gap:20px;padding:14px 0;border-bottom:1px solid var(--border-hairline)}
.sec--brown .deflist div,.sec--black .deflist div{border-color:rgba(247,241,230,.14)}
.deflist dt{font-weight:700;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;margin:0}
.deflist dd{margin:0;text-align:right;font-size:.92rem;min-width:0}
.todo{display:inline-block;padding:2px 8px;border-radius:4px;background:var(--warning-100);color:#7A5410;font-family:var(--font-mono);font-size:.72rem;font-weight:700;white-space:nowrap}
.sec--brown .todo,.sec--black .todo{background:rgba(224,163,43,.18);color:var(--warning-500)}

/* ---------- footer ---------- */
.foot{position:relative;background:var(--ink-900);color:var(--cream-300);overflow:hidden}
.foot::before{content:"";position:absolute;inset:0;background:url("../img/pattern-tile-cream.png") 0 0/300px repeat;opacity:.045;pointer-events:none}
.foot__top{position:relative;padding:clamp(56px,7vw,96px) 0 44px}
.foot__grid{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr));gap:clamp(24px,3vw,48px)}
@media(max-width:900px){.foot__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.foot__grid{grid-template-columns:1fr}}
.foot h2{font-size:clamp(2rem,4vw,3rem);text-transform:uppercase;line-height:.94}
.foot h2 em{font-style:normal;color:var(--flame-500)}
.foot__col h3{font-family:var(--font-body);font-weight:800;font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;color:var(--flame-400);margin-bottom:16px}
.foot__col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:11px}
.foot__col a{color:var(--brown-200);font-size:.88rem}
.foot__col a:hover{color:var(--cream-100)}
.socials{display:flex;gap:10px;margin-top:20px}
.socials a{width:42px;height:42px;display:grid;place-items:center;border:1.5px solid rgba(247,241,230,.24);border-radius:50%;color:var(--cream-200);font-size:.62rem;font-weight:800;letter-spacing:.04em;transition:all .18s}
.socials a:hover{background:var(--flame-500);border-color:var(--flame-500);color:#FFFDF8}
.foot__bar{position:relative;border-top:1px solid rgba(247,241,230,.13);padding:20px 0}
.foot__bar .wrap{display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;font-size:.74rem;color:var(--brown-300)}
.foot__bar a{color:var(--brown-300)}
.foot__bar a:hover{color:var(--cream-200)}

/* ---------- promotional popup ---------- */
.promo{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:20px;background:rgba(17,17,17,.72);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);opacity:0;visibility:hidden;transition:opacity .4s cubic-bezier(.2,.8,.2,1),visibility .4s}
.promo.is-open{opacity:1;visibility:visible}
.promo__box{position:relative;width:100%;max-width:880px;max-height:92svh;overflow:auto;display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);background:var(--brown-700);border-radius:26px;box-shadow:0 40px 90px rgba(0,0,0,.5);transform:translateY(26px) scale(.97);opacity:0;transition:transform .5s cubic-bezier(.16,1,.3,1),opacity .4s}
.promo.is-open .promo__box{transform:none;opacity:1}
.promo__art{position:relative;min-height:280px;background:linear-gradient(165deg,#170F0B,#8E2F14);display:grid;place-items:center;overflow:hidden}
.promo__art::before{content:"";position:absolute;inset:0;background:url("../img/pattern-tile-cream.png") 0 0/220px repeat;opacity:.07}
.promo__art img{position:relative;width:66%;max-width:220px;filter:drop-shadow(0 18px 34px rgba(0,0,0,.5))}
.promo__body{padding:clamp(26px,3vw,42px);color:var(--cream-200)}
.promo__body h2{font-size:clamp(1.9rem,3.4vw,2.9rem);text-transform:uppercase;line-height:.96;margin:14px 0 14px;color:var(--cream-100)}
.promo__body p{color:var(--brown-200);font-size:.94rem;margin-bottom:24px}
.promo__acts{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.promo__close{position:absolute;top:14px;right:14px;z-index:3;width:44px;height:44px;display:grid;place-items:center;border:1.5px solid rgba(247,241,230,.3);border-radius:50%;background:rgba(23,15,11,.4);color:var(--cream-200);font-size:1rem;cursor:pointer;transition:all .18s}
.promo__close:hover{background:var(--flame-500);border-color:var(--flame-500);color:#FFFDF8}
@media(max-width:720px){.promo__box{grid-template-columns:1fr}.promo__art{min-height:170px}.promo__art img{max-width:130px}}

/* ---------- custom cursor ---------- */
.cursor{position:fixed;top:0;left:0;z-index:150;width:78px;height:78px;margin:-39px 0 0 -39px;border-radius:50%;background:var(--flame-500);color:#FFFDF8;display:grid;place-items:center;font-size:.55rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;text-align:center;pointer-events:none;opacity:0;transform:scale(.4);transition:opacity .22s,transform .28s cubic-bezier(.16,1,.3,1)}
.cursor.is-on{opacity:1;transform:scale(1)}
@media(hover:none),(pointer:coarse){.cursor{display:none}}

/* ---------- loader ---------- */
.loader{position:fixed;inset:0;z-index:200;display:grid;place-items:center;background:var(--brown-700);transition:opacity .5s cubic-bezier(.2,.8,.2,1),visibility .5s}
.loader::before{content:"";position:absolute;inset:0;background:url("../img/pattern-tile-cream.png") 0 0/300px repeat;opacity:.04}
.loader.is-done{opacity:0;visibility:hidden}
.loader__in{position:relative;display:flex;flex-direction:column;align-items:center;gap:18px}
.loader__in img{height:84px;animation:ignite .9s cubic-bezier(.16,1,.3,1) both}
.loader__in b{font-family:var(--font-body);font-weight:800;font-size:.6rem;letter-spacing:.34em;text-transform:uppercase;color:var(--flame-400);opacity:0;animation:fadein .5s .45s both}
.loader__bar{width:120px;height:2px;background:rgba(247,241,230,.2);overflow:hidden}
.loader__bar i{display:block;height:100%;background:var(--flame-500);transform-origin:left;animation:fill .95s cubic-bezier(.4,0,.2,1) both}
@keyframes ignite{from{opacity:0;transform:translateY(14px) scale(.86)}to{opacity:1;transform:none}}
@keyframes fadein{to{opacity:1}}
@keyframes fill{from{transform:scaleX(0)}to{transform:scaleX(1)}}

/* ---------- legal pages ---------- */
.legal{max-width:760px}
.legal h2{font-size:clamp(1.35rem,2.1vw,1.75rem);margin:44px 0 12px}
.legal h2:first-of-type{margin-top:0}
.legal p,.legal li{font-size:.98rem;line-height:1.72}
.legal ul{padding-left:22px;display:grid;gap:8px;margin:12px 0}
.toc{background:var(--cream-100);border:1px solid var(--border-hairline);border-radius:18px;padding:26px 30px;margin-bottom:44px}
.toc h2{font-family:var(--font-body);font-size:.68rem!important;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--flame-600);margin:0 0 14px!important}
.toc ol{margin:0;padding-left:20px;display:grid;gap:9px;font-size:.92rem}
.pagehead{padding:calc(var(--nav-h) + clamp(48px,7vw,96px)) 0 clamp(40px,5vw,72px);background:var(--brown-700);color:var(--cream-200);position:relative;overflow:hidden}
.pagehead::before{content:"";position:absolute;inset:0;background:url("../img/pattern-tile-cream.png") 0 0/380px repeat;opacity:.05}
.pagehead::after{content:"";position:absolute;inset:0;background:var(--grill);opacity:.4}
.pagehead .wrap{position:relative}
.crumbs{display:flex;gap:8px;font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--brown-300);margin-bottom:22px}
.crumbs a{color:var(--flame-300)}
.pagehead h1{font-size:clamp(2.4rem,7vw,5rem);text-transform:uppercase;line-height:.94;color:var(--cream-100)}
.pagehead .lede{margin-top:20px;color:var(--brown-200)}

/* ---------- sticky mobile CTA ---------- */
.stickycta{position:fixed;left:0;right:0;bottom:0;z-index:85;display:none;padding:12px var(--edge) calc(12px + env(safe-area-inset-bottom));background:rgba(43,30,23,.94);backdrop-filter:blur(10px);border-top:1px solid rgba(247,241,230,.14);transform:translateY(110%);transition:transform .4s cubic-bezier(.16,1,.3,1)}
.stickycta.is-in{transform:none}
@media(max-width:768px){.stickycta{display:block}body{padding-bottom:80px}}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  .rv,.mask>*{opacity:1!important;transform:none!important}
  .float__img,.float__glow,.float__shadow,.float__lift{opacity:1!important;transform:none!important;animation:none!important}
  .float__shadow{opacity:.9!important}
  .smoke{display:none}
  .cursor{display:none}
}

/* ==========================================================================
   EVENTS
   ========================================================================== */
.evstats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(16px,2vw,28px)}
@media(max-width:820px){.evstats{grid-template-columns:repeat(2,minmax(0,1fr))}}
.evstat__n{font-size:clamp(2.6rem,6vw,4.4rem);line-height:1;color:var(--flame-500)}
.evstat__l{margin-top:10px;font-size:.74rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--brown-200)}
.sec--cream .evstat__l,.sec--card .evstat__l{color:var(--ink-500)}

.evlist{display:flex;flex-direction:column;gap:14px}
.ev{display:grid;grid-template-columns:180px minmax(0,1fr) auto;gap:clamp(18px,2.4vw,34px);align-items:center;background:var(--cream-100);border:1px solid var(--border-hairline);border-radius:20px;padding:clamp(18px,2vw,26px);transition:transform .3s cubic-bezier(.16,1,.3,1),box-shadow .3s,border-color .3s}
.ev:hover{transform:translateY(-3px);box-shadow:0 18px 44px rgba(43,30,23,.14);border-color:rgba(211,84,44,.4)}
.sec--brown .ev,.sec--black .ev{background:var(--cream-100);color:var(--ink-900)}
.sec--brown .ev h3,.sec--black .ev h3{color:var(--brown-700)}
.ev__date{border-right:1px solid var(--border-hairline);padding-right:clamp(14px,2vw,26px)}
.ev__d{display:block;font-family:var(--font-display);font-weight:700;font-size:1.02rem;line-height:1.3;color:var(--brown-700)}
.ev__kind{display:block;font-size:.62rem;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--flame-600);margin-bottom:8px}
.ev__meta{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px 26px}
.ev__meta li{font-size:.86rem;color:var(--ink-700);display:flex;gap:8px;align-items:baseline}
.ev__meta b{font-size:.6rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-500)}
.ev__side{display:flex;flex-direction:column;align-items:flex-end;gap:12px}
.ev__status{display:inline-flex;align-items:center;gap:7px;padding:5px 13px;border-radius:999px;font-size:.58rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap}
.ev__status::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.ev--go{background:var(--success-100);color:#3B5C29}
.ev--sell{background:var(--flame-100);color:var(--flame-700)}
.ev--out{background:var(--brown-100);color:var(--brown-600)}
.ev--pend{background:var(--warning-100);color:#7A5410}
@media(max-width:860px){.ev{grid-template-columns:1fr;align-items:start;gap:16px}.ev__date{border-right:0;border-bottom:1px solid var(--border-hairline);padding:0 0 14px}.ev__side{align-items:flex-start;flex-direction:row;justify-content:space-between;width:100%}}

/* past track record */
.evpast{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 clamp(24px,4vw,56px);margin:0}
.evpast > div{display:flex;justify-content:space-between;gap:18px;padding:16px 0;border-bottom:1px solid rgba(247,241,230,.14)}
.evpast dt{margin:0;font-family:var(--font-display);font-weight:700;font-size:1.02rem;color:var(--cream-100)}
.evpast dd{margin:0;font-size:.82rem;color:var(--brown-200);text-align:right;white-space:nowrap}
@media(max-width:700px){.evpast{grid-template-columns:1fr}}

/* event detail popup */
.evmodal{position:fixed;inset:0;z-index:130;display:grid;place-items:center;padding:20px;background:rgba(17,17,17,.74);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);opacity:0;visibility:hidden;transition:opacity .35s cubic-bezier(.2,.8,.2,1),visibility .35s}
.evmodal.is-open{opacity:1;visibility:visible}
.evmodal__box{position:relative;width:100%;max-width:620px;max-height:90svh;overflow:auto;background:var(--cream-100);border-radius:24px;box-shadow:0 40px 90px rgba(0,0,0,.5);transform:translateY(24px) scale(.97);opacity:0;transition:transform .45s cubic-bezier(.16,1,.3,1),opacity .35s}
.evmodal.is-open .evmodal__box{transform:none;opacity:1}
.evmodal__strip{height:10px;background:repeating-linear-gradient(90deg,var(--flame-500) 0 22px,transparent 22px 44px)}
.evmodal__body{padding:clamp(24px,3vw,38px)}
.evmodal__close{position:absolute;top:20px;right:18px;z-index:3;width:42px;height:42px;display:grid;place-items:center;border:1.5px solid var(--border-hairline);border-radius:50%;background:var(--cream-100);color:var(--brown-700);font-size:1rem;cursor:pointer;transition:all .18s}
.evmodal__close:hover{background:var(--flame-500);border-color:var(--flame-500);color:#FFFDF8}
.evmodal__h{font-family:var(--font-body);font-weight:800;font-size:.64rem;letter-spacing:.2em;text-transform:uppercase;color:var(--flame-600);margin:26px 0 12px}
.evmodal__serve{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.evmodal__serve li{padding:7px 14px;border-radius:999px;background:var(--cream-400);font-size:.8rem;font-weight:600;color:var(--brown-700)}
.evmodal__acts{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.evmodal__note{margin-top:14px;font-size:.74rem;color:var(--ink-500)}

/* ---------- customer journey (four steps) ---------- */
.journey{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(14px,1.8vw,24px);counter-reset:none}
.jstep{position:relative;display:flex;flex-direction:column}
/* connector arrow between steps, drawn on the card so it survives reflow */
.jstep:not(:last-child)::after{content:"";position:absolute;top:clamp(28px,3vw,38px);right:calc(-1 * clamp(14px,1.8vw,24px) / 2 - 5px);width:10px;height:10px;border-top:2px solid rgba(211,84,44,.55);border-right:2px solid rgba(211,84,44,.55);transform:rotate(45deg);z-index:2}
.jstep__tag{margin-top:auto;padding-top:16px;font-size:.6rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--brown-200)}
.jstep__tag--hot{color:var(--flame-400)}
.sec--black .jstep--win,.sec--brown .jstep--win,.journey .jstep--win{border-color:rgba(211,84,44,.42)}
.jstep--win .card__n{color:var(--flame-400)}
.jstep--win::before{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(120% 90% at 50% 118%,rgba(211,84,44,.24),transparent 70%);pointer-events:none}
@media(max-width:900px){.journey{grid-template-columns:repeat(2,minmax(0,1fr))}.jstep:nth-child(2)::after{display:none}}
@media(max-width:560px){.journey{grid-template-columns:1fr}.jstep::after{display:none}}


/* ==========================================================================
   WORDPRESS LAYER
   Everything below adapts the static site to WordPress output.
   ========================================================================== */

/* reveal animations never hide content without JS */
.no-js .rv,.no-js .mask>*{opacity:1!important;transform:none!important}

/* admin bar offsets for the fixed header */
.admin-bar .nav{top:32px}
.admin-bar .mmenu{top:32px}
@media screen and (max-width:782px){.admin-bar .nav,.admin-bar .mmenu{top:46px}}
@media screen and (max-width:600px){.admin-bar .nav{top:0}#wpadminbar{position:fixed}}

/* nav: WordPress menu markup */
.nav__links li{list-style:none}
.nav__links .current-menu-item>a,.nav__links .current_page_item>a{color:var(--cream-100)}
.nav__links .current-menu-item>a::after,.nav__links .current_page_item>a::after{transform:scaleX(1)}
.nav__right{margin-left:auto;display:flex;align-items:center;gap:12px}
.nav__right .nav__cta{margin-left:0}
@media(max-width:1000px){.nav__right .nav__burger{margin-left:0}}
.nav__bag{position:relative;width:44px;height:44px;display:grid;place-items:center;border:1.5px solid rgba(247,241,230,.3);border-radius:50%;color:var(--cream-200)}
.nav__bag:hover{background:var(--cream-200);color:var(--brown-700)}
.nav__bagn{position:absolute;top:-4px;right:-4px;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:var(--flame-500);color:#FFFDF8;font-size:.62rem;font-weight:800;display:grid;place-items:center;line-height:1}
.nav__bagn.is-empty{display:none}
.mmenu ol li{list-style:none}
.mmenu__meta a{color:var(--brown-200)}
.nav-solid-always .nav{height:var(--nav-h-compact);background:rgba(43,30,23,.96);box-shadow:0 10px 34px rgba(23,15,11,.28)}
.nav-solid-always .nav__logo img{height:31px}
.nav-solid-always main,.nav-solid-always .bbq-shop{padding-top:calc(var(--nav-h-compact) + 12px)}

/* utilities used by templates */
.mt-16{margin-top:16px}.mt-18{margin-top:18px}.mt-20{margin-top:20px}.mt-22{margin-top:22px}.mt-24{margin-top:24px}.mt-28{margin-top:28px}.mt-32{margin-top:32px}
.mt-block{margin-top:clamp(32px,4vw,52px)}.mt-section{margin-top:clamp(36px,5vw,64px)}
.small{font-size:.88rem}.center{text-align:center}.caps{text-transform:uppercase;line-height:.94}
.plate{background:var(--cream-300);padding:8px 26px;border-radius:14px;display:inline-block}
.btnrow{display:flex;gap:14px;flex-wrap:wrap;align-items:center}.btnrow--center{justify-content:center}
.sec__headrow{display:flex;flex-wrap:wrap;gap:22px;align-items:flex-end;justify-content:space-between;margin-bottom:clamp(8px,1vw,12px)}
.sec__aside{max-width:34ch;font-size:.9rem}
.sec--tight-top{padding-top:clamp(44px,5vw,72px)}
.sec--flush-top{padding-top:0}
.sec--band{padding-block:clamp(48px,6vw,80px)}
.sec--cta{padding-block:clamp(60px,8vw,110px)}
.split--top{align-items:start}
.on-dark{color:var(--flame-300)!important}
.card__p{font-size:.92rem;margin-top:8px}
.card__link{margin-top:16px;color:var(--flame-600)}
.stat__n{font-size:clamp(2.4rem,5vw,3.4rem);color:var(--flame-500);line-height:1}
.stat__l{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;margin-top:8px}
.evhead{margin:18px 0 clamp(30px,4vw,46px);max-width:26ch}
.ticklist{list-style:none;padding:0;display:grid;gap:11px;font-size:.95rem;color:var(--brown-200)}
.ticklist li{position:relative;padding-left:26px}
.ticklist li::before{content:"";position:absolute;left:0;top:.5em;width:12px;height:7px;border-left:2px solid var(--flame-500);border-bottom:2px solid var(--flame-500);transform:rotate(-45deg)}
.ticklist--dark{color:var(--ink-700)}
.foot__lede{margin:18px 0 24px;max-width:34ch;font-size:.92rem}
.foot__day{display:block;font-weight:700;color:var(--cream-200)}
.foot__col .menu{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:11px}
.foot__legal{list-style:none;margin:0;padding:0;display:flex;gap:18px;flex-wrap:wrap}
.foot__legal a{color:var(--brown-300)}.foot__legal a:hover{color:var(--cream-200)}
.hero__in--single{grid-template-columns:1fr;align-items:center;padding-bottom:clamp(48px,8vh,92px)}
.hero--404{min-height:92svh}.hero__404{max-width:24ch}
.hero__404 .mega span{display:block;color:var(--cream-100)}

/* real photos in place of placeholder slots */
.photo{margin:0;border-radius:20px;overflow:hidden;aspect-ratio:4/3;background:var(--brown-700)}
.photo--tall{aspect-ratio:3/4}.photo--wide{aspect-ratio:16/9}
.photo img{width:100%;height:100%;object-fit:cover}
.imgslot:empty::after{background:none}

/* menu cards with real product images */
.fcard__img{display:block}
.fcard__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;transition:transform .55s cubic-bezier(.16,1,.3,1)}
.fcard:hover .fcard__img img{transform:scale(1.05)}
.fcard__img.has-img::before{display:none}
.fcard__img.has-img::after{background:linear-gradient(180deg,rgba(23,15,11,0) 55%,rgba(23,15,11,.35))}
.fcard__badges{position:absolute;top:12px;left:12px;z-index:2;display:flex;flex-direction:column;align-items:flex-start;gap:6px}
.fcard__badges .bbq-badge{padding:5px 12px;border-radius:999px;font-size:.55rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;line-height:1}
.bbq-badge--flame{background:var(--flame-500);color:#FFFDF8}.bbq-badge--dark{background:var(--brown-700);color:var(--cream-300)}
.bbq-badge--low{background:#FBF0D8;color:#7A5410}.bbq-badge--out{background:var(--brown-100);color:var(--brown-600)}
.fcard h3 a{color:inherit}
.fcard__price .woocommerce-Price-amount{white-space:nowrap}
.fcard__price del{opacity:.5;font-size:.8em;margin-right:4px}.fcard__price ins{text-decoration:none;color:var(--flame-600)}
.fcard__desc{font-size:.9rem}
.fcard__add{color:var(--flame-600)!important}
.fcard__add.loading{opacity:.5;pointer-events:none}
.fcard__add.added::after{transform:scaleX(1)}
.fcard .added_to_cart{margin-left:14px;font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--brown-700)}
.fcard__out{font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-500)}
.tabpanel__intro{margin:6px 0 26px}
.tabpanel__more{margin-top:26px}
.tabpanel__more a{color:var(--flame-600)}

/* events additions */
.ev__date{display:flex;flex-direction:column;line-height:1}
.ev__day{font-family:var(--font-display);font-weight:900;font-size:2.6rem;color:var(--flame-500)}
.ev__mon{font-weight:800;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--brown-700);margin-top:6px}
.ev__wk{font-size:.7rem;color:var(--ink-500);margin-top:4px}
.ev h3 a{color:var(--brown-700)}
.evempty{background:var(--cream-100);border:1px dashed rgba(43,30,23,.24);border-radius:20px;padding:clamp(24px,3vw,40px);display:grid;gap:10px}
.evside{position:sticky;top:calc(var(--nav-h-compact) + 24px)}
.evside__img{margin:-8px -8px 18px;border-radius:14px;overflow:hidden}
.evmodal[hidden]{display:grid}
.evmodal__img{margin:0 0 18px;border-radius:14px;overflow:hidden;aspect-ratio:16/9}
.evmodal__img img{width:100%;height:100%;object-fit:cover}
.btn.is-disabled{opacity:.55;pointer-events:none}

/* forms */
.form__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.field{grid-column:1/-1}.field--half{grid-column:auto}
@media(max-width:560px){.form__grid{grid-template-columns:1fr}.field--half{grid-column:1/-1}}
.bbq-hp{position:absolute!important;left:-10000px;width:1px;height:1px;overflow:hidden}
.formnote--ok{background:var(--success-100);border-color:rgba(78,122,56,.35);color:#2F4B22}
.formnote--err{background:#FAE1DD;border-color:rgba(194,46,30,.35);color:#7A1C12}
.sec--brown .formnote--ok,.sec--black .formnote--ok{background:rgba(78,122,56,.2);color:#DDEBD3}
.sec--brown .formnote--err,.sec--black .formnote--err{background:rgba(194,46,30,.2);color:#F6CFC8}

/* contact */
.mapframe{border-radius:22px;overflow:hidden;aspect-ratio:16/9;background:var(--brown-700)}
.mapframe iframe{width:100%;height:100%;border:0;display:block}
.deflist--tight div{padding:10px 0}
.faq{display:grid;gap:0}
.faq__item{border-bottom:1px solid rgba(247,241,230,.14);padding:18px 0}
.faq__item summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:18px;font-weight:700;font-size:1rem;color:var(--cream-100)}
.faq__item summary::-webkit-details-marker{display:none}
.faq__item summary::after{content:"+";font-family:var(--font-display);font-size:1.4rem;line-height:1;color:var(--flame-400);transition:transform .25s cubic-bezier(.16,1,.3,1)}
.faq__item[open] summary::after{transform:rotate(45deg)}
.faq__item p{margin-top:12px;color:var(--brown-200);line-height:1.65}
.faq__item--todo{display:flex;justify-content:space-between;gap:18px;align-items:center;color:var(--brown-200)}

/* editor content */
.entry{line-height:1.72}
.entry>*+*{margin-top:1.1em}
.entry h2{font-size:clamp(1.35rem,2.1vw,1.75rem);margin-top:1.8em}
.entry h3{font-size:1.2rem;margin-top:1.5em}
.entry ul,.entry ol{padding-left:22px}
.entry img{border-radius:16px;height:auto}
.entry a{text-decoration:underline;text-underline-offset:3px}
.entry .btn{text-decoration:none}
.entry--intro{max-width:62ch;margin-bottom:28px}
.entry--shop{max-width:none}
.entry__hero{margin:0 0 28px;border-radius:20px;overflow:hidden}
.legal__updated{font-size:.86rem}
.legal .wp-block-heading{scroll-margin-top:calc(var(--nav-h-compact) + 24px)}
.sections>.sec:first-child{padding-top:clamp(56px,7vw,96px)}
.alignwide{max-width:var(--max);margin-inline:auto}
.alignfull{width:100vw;margin-inline:calc(50% - 50vw)}
.aligncenter{margin-inline:auto}
.wp-caption-text,.wp-element-caption{font-size:.8rem;color:var(--ink-500);margin-top:8px}
.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important}
.screen-reader-text:focus{clip:auto;clip-path:none;height:auto;width:auto;background:var(--flame-500);color:#FFFDF8;padding:12px 20px;z-index:200;left:12px;top:12px}

/* blog cards + pagination */
.postcard{display:flex;flex-direction:column;gap:8px}
.postcard__img{margin:calc(-1 * clamp(22px,2.4vw,34px)) calc(-1 * clamp(22px,2.4vw,34px)) 12px;display:block;aspect-ratio:4/3;overflow:hidden;border-radius:20px 20px 0 0}
.postcard__img img{width:100%;height:100%;object-fit:cover}
.postcard h2 a{color:var(--brown-700)}
.pager{margin-top:40px}
.pager .nav-links{display:flex;gap:8px;flex-wrap:wrap}
.pager .page-numbers{min-width:44px;height:44px;display:grid;place-items:center;padding:0 12px;border-radius:999px;border:1.5px solid rgba(43,30,23,.14);color:var(--brown-700);font-weight:700}
.pager .page-numbers.current{background:var(--brown-700);border-color:var(--brown-700);color:var(--cream-200)}
.search-form{display:flex;gap:10px;margin-top:18px}
.search-form input[type=search]{flex:1;min-height:52px;padding:0 16px;border:1.5px solid rgba(43,30,23,.14);border-radius:12px;background:var(--cream-100);font:inherit}
.search-form .search-submit{min-height:52px;padding:0 24px;border:0;border-radius:999px;background:var(--flame-500);color:#FFFDF8;font-weight:800;letter-spacing:.1em;text-transform:uppercase;font-size:.72rem;cursor:pointer}

/* one sticky bar at a time: product pages have their own add-to-bag bar, cart/checkout need none */
.single-product .stickycta,.woocommerce-cart .stickycta,.woocommerce-checkout .stickycta{display:none!important}
.promo__no{background:none;border:0;color:var(--brown-200);cursor:pointer;font:inherit;font-weight:700;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase}
.postcard__date{margin-bottom:2px}
.ev__main{min-width:0}
