/* Fire In Smoke BBQ House Styles */
:root {
  --color-bg: #0f0f0f;
  --color-bg-alt: #181818;
  --color-surface: #1f1f1f;
  --color-accent: #d95d1a;
  --color-accent-alt: #cfa14a;
  --color-text: #f5f3ef;
  --color-text-dim: #c7c2b8;
  --color-border: #2e2e2e;
  --radius-sm: 4px;
  --radius-md: 10px;
  --radius-pill: 50px;
  --shadow-soft: 0 4px 20px -2px rgba(0,0,0,.6);
  --shadow-hover: 0 6px 28px -4px rgba(0,0,0,.7);
  --grad-ember: linear-gradient(135deg, #d95d1a, #cfa14a);
  --font-display: 'Playfair Display', serif;
  --font-body: 'Inter', system-ui, sans-serif;
  --transition: 0.3s cubic-bezier(.4,.0,.2,1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0; font-family: var(--font-body); background: var(--color-bg); color: var(--color-text); -webkit-font-smoothing: antialiased; position:relative; overflow-x:hidden;
}
/* Ambient ember speck texture (very subtle) */
body::before { content:""; position:fixed; inset:0; background:
  radial-gradient(circle at 12% 18%, rgba(217,93,26,.08), transparent 40%),
  radial-gradient(circle at 78% 32%, rgba(207,161,74,.06), transparent 46%),
  radial-gradient(circle at 30% 78%, rgba(217,93,26,.05), transparent 55%),
  repeating-linear-gradient(135deg, rgba(255,255,255,.015) 0 2px, transparent 2px 6px);
  pointer-events:none; z-index:0; mix-blend-mode:overlay; opacity:.45; }
@media (prefers-reduced-motion: reduce){ body::before { animation:none; } }

img { max-width: 100%; display: block; }

h1,h2,h3,h4 { font-family: var(--font-display); line-height: 1.15; margin: 0 0 .6em; font-weight: 600; letter-spacing: .5px; }

p { line-height: 1.6; margin: 0 0 1em; }

.lead { font-size: clamp(1.05rem, 2.2vw, 1.35rem); max-width: 56ch; }

.container { width: min(1400px, 100% - 3rem); margin-inline: auto; }
@media (min-width:1600px){ .container { width: min(1500px, 100% - 4rem); } }
/* Wider hero inner on large desktop while keeping text measure capped */
.hero-content.container { max-width: 1100px; }

/* Split utility for desktop two-column layouts */
.split { display:flex; flex-direction:column; gap:3rem; }
@media (min-width:1000px){ .split { flex-direction:row; align-items:center; }
  .split > * { flex:1; }
  .story-media, .feature-media { display:flex; justify-content:center; }
}
.section-pad { padding: clamp(3.5rem, 7vw, 6rem) 0; }
.section-title { font-size: clamp(1.8rem, 3.6vw, 2.75rem); position: relative; }
.section-title::after { content:""; display:block; width:70px; height:3px; margin-top:.4rem; background: var(--grad-ember); border-radius: 2px; }
.section-intro { color: var(--color-text-dim); margin-top: -0.5em; }
.center { text-align:center; }
.small { font-size: .85rem; }

.skip-link { position: absolute; left: -999px; top: auto; width:1px; height:1px; overflow:hidden; }
.skip-link:focus { left: 0; width:auto; height:auto; background: var(--color-accent); color:#000; padding:.75rem 1rem; z-index:1000; }

/* Header */
.site-header { position: sticky; top:0; z-index: 100; background: rgba(10,10,10,0.45); backdrop-filter: blur(14px) saturate(140%); -webkit-backdrop-filter: blur(14px) saturate(140%); border-bottom:1px solid rgba(255,255,255,.06); transition: background .35s ease, box-shadow .35s ease, backdrop-filter .35s ease; }
.site-header.shrink { background: rgba(12,12,12,0.92); box-shadow: var(--shadow-soft); }
.header-inner { display: flex; align-items: center; justify-content: space-between; min-height: 72px; }
.branding { font-weight: 600; font-size: 1.05rem; display:flex; align-items:center; gap:.65rem; letter-spacing:1px; }
.logo-mark { font-size:1.4rem; filter: drop-shadow(0 0 4px rgba(217,93,26,.6)); }
.brand-text { text-transform:uppercase; }
.brand-text .accent { font-weight:400; font-size:.85em; color: var(--color-accent-alt); margin-left:.3ch; }

.primary-nav ul { list-style:none; margin:0; padding:0; display:flex; gap:2.2rem; align-items:center; }
.primary-nav a { text-decoration:none; color: var(--color-text-dim); font-weight:500; font-size:.9rem; position:relative; }
.site-header:not(.shrink) .primary-nav a { color: rgba(255,255,255,0.78); }
.primary-nav a:not(.order-btn)::after { content:""; position:absolute; left:0; bottom:-6px; height:2px; width:0; background: var(--grad-ember); transition: var(--transition); border-radius:2px; }
.primary-nav a:hover, .primary-nav a:focus { color: var(--color-text); }
.primary-nav a:hover::after, .primary-nav a:focus::after { width:100%; }
.order-btn { padding:.7rem 1.1rem; background: var(--grad-ember); color:#111; border-radius: var(--radius-pill); font-weight:600; box-shadow:0 4px 16px -4px rgba(217,93,26,.4); }
.order-btn:hover { filter:brightness(1.08); }

.nav-toggle { display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:.5rem; }
.nav-toggle .bar { width:26px; height:2px; background: var(--color-text); display:block; transition: var(--transition); }

/* Hero */
.hero { position: relative; min-height: clamp(620px, 90vh, 860px); isolation:isolate; }
.hero img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter: brightness(.62) contrast(1.05) saturate(1.15); }
.hero-overlay { position:absolute; inset:0; background: radial-gradient(circle at 30% 40%, rgba(217,93,26,.35), transparent 60%), linear-gradient(to bottom, rgba(0,0,0,.55), rgba(0,0,0,.88)); display:flex; align-items:center; }
.hero-content { position:relative; }
.hero h1 { font-size: clamp(2.3rem, 5.6vw, 3.4rem); background:linear-gradient(90deg,#fff,#e7e2d9,#d95d1a); -webkit-background-clip:text; background-clip:text; color:transparent; filter: drop-shadow(0 4px 20px rgba(0,0,0,.55)); }
.hero-ctas { display:flex; gap:1rem; margin-top:1.25rem; flex-wrap:wrap; }
.future-note { margin-top:1.25rem; font-size:.8rem; text-transform:uppercase; letter-spacing:.12em; color: var(--color-accent-alt); opacity:.85; }

/* Buttons */
.btn { --btn-bg: var(--color-accent); cursor:pointer; border:none; text-decoration:none; display:inline-block; font-weight:600; letter-spacing:.5px; font-size:.85rem; text-transform:uppercase; padding:.9rem 1.45rem; border-radius: var(--radius-pill); background: var(--grad-ember); color:#111; position:relative; transition: var(--transition); }
.btn.primary { box-shadow:0 6px 24px -6px rgba(217,93,26,.5); }
.btn.outline { background:transparent; color: var(--color-text); border:1px solid var(--color-accent); }
.btn.outline:hover { background: var(--grad-ember); color:#111; }
.btn.small { padding:.6rem 1.1rem; font-size:.7rem; }
.btn:hover { transform:translateY(-2px); box-shadow:0 10px 28px -8px rgba(0,0,0,.7); }
.btn:active { transform:translateY(0); }

/* Skeleton Loading */
.menu-grid.skeleton-loading { position:relative; }
.skel-item { --shine: linear-gradient(110deg, rgba(255,255,255,.05) 8%, rgba(255,255,255,.18) 18%, rgba(255,255,255,.05) 33%); background:#1b1b1b; background-image: var(--shine); background-size:200% 100%; animation: shimmer 2s linear infinite; border-radius: var(--radius-sm); height:92px; position:relative; overflow:hidden; border:1px solid #262626; }
@media (min-width:680px){ .skel-item { height:108px; } }

/* Price alignment */
.price { font-variant-numeric: tabular-nums; }

/* Add button success state */
.add-cart.added { background: linear-gradient(135deg,#2d8f4d,#3aa85d); color:#fff !important; cursor:default; position:relative; }
.add-cart.added::after { content:'✓'; margin-left:.4rem; }
.add-cart.added.pulse { animation: addedPulse .6s ease; }
@keyframes addedPulse { 0%{ transform:scale(.95);} 40%{ transform:scale(1.07);} 100%{ transform:scale(1);} }

/* Cart badge pulse */
.cart-count.pulse { animation: cartPulse .65s cubic-bezier(.42,0,.3,1); }
@keyframes cartPulse { 0%{ transform:scale(.6); opacity:.4;} 40%{ transform:scale(1.25); opacity:1;} 100%{ transform:scale(1); } }

/* Button gradient shimmer */
.btn.primary, .btn.outline { position:relative; overflow:hidden; }
.btn.primary::before { content:""; position:absolute; inset:0; background: linear-gradient(120deg, rgba(255,255,255,.12), rgba(255,255,255,0) 35%, rgba(255,255,255,.12) 70%, rgba(255,255,255,0)); transform: translateX(-60%); animation: btnShimmer 4.2s linear infinite; mix-blend-mode:overlay; }
@keyframes btnShimmer { to { transform: translateX(60%); } }

/* Elevated card glow */
.card { transition: transform .5s cubic-bezier(.16,.8,.25,1), box-shadow .5s, background .5s; }
.card:hover { background: linear-gradient(135deg, rgba(255,255,255,.07), rgba(255,255,255,.02)); box-shadow:0 10px 38px -8px rgba(217,93,26,.55),0 4px 18px -4px rgba(0,0,0,.7); }

/* Focus ring */
:focus-visible { outline:2px solid transparent; box-shadow:0 0 0 2px rgba(217,93,26,.9), 0 0 0 4px rgba(207,161,74,.6), 0 0 0 6px rgba(217,93,26,.25); border-radius:4px; }

/* Map embed */
.map-placeholder { position:relative; padding:0; }
.map-embed { width:100%; height:100%; min-height:360px; border:0; border-radius: var(--radius-md); filter:contrast(1.05) brightness(.95) saturate(1.15); }

/* Hero parallax (content) */
.parallax-hero { will-change: transform; transition: transform .2s linear; }

/* Reduced motion overrides */
@media (prefers-reduced-motion: reduce){ .btn.primary::before, .cart-count.pulse, .add-cart.added.pulse { animation:none !important; } }

/* Footer */
.site-footer { background:#0c0c0c; padding:3.5rem 0 2.5rem; margin-top:4rem; border-top:1px solid #1d1d1d; }
.footer-grid { display:grid; gap:2.5rem; }
@media (min-width: 920px){ .footer-grid { grid-template-columns: repeat(4,1fr); align-items:start; } }
.foot-brand { font-size: .9rem; letter-spacing:.05em; }
.tagline { margin:.4rem 0 0; font-size:.7rem; text-transform:uppercase; letter-spacing:.25em; color: var(--color-accent-alt); }
.foot-nav { list-style:none; padding:0; margin:0; display:grid; gap:.55rem; font-size:.8rem; }
.foot-nav a { color: var(--color-text-dim); text-decoration:none; }
.foot-nav a:hover { color: var(--color-text); }
.social { display:flex; gap:1.1rem; flex-wrap:wrap; }
.social-link { color: var(--color-text-dim); font-size:.8rem; text-decoration:none; letter-spacing:.15em; text-transform:uppercase; position:relative; }
.social-link::after { content:""; position:absolute; left:0; bottom:-4px; height:1px; width:0; background: var(--grad-ember); transition: var(--transition); }
.social-link:hover::after { width:100%; }
.legal { grid-column:1/-1; margin-top:1rem; color: var(--color-text-dim); }

/* Animations & Effects */
.fade-in { opacity:0; transform:translateY(18px); transition: .8s cubic-bezier(.16,.8,.25,1); }
.fade-in.visible { opacity:1; transform:none; }

/* Utilities */
.story, .menu-preview, .highlights, .gallery, .location, .reservations, .order-online { position:relative; }
.story::before, .menu-preview::before, .gallery::before, .location::before, .reservations::before, .order-online::before { content:""; position:absolute; inset:0; pointer-events:none; background: radial-gradient(circle at 85% 10%, rgba(217,93,26,.08), transparent 60%); opacity:.8; }

/* Responsive Navigation */
@media (max-width: 820px) {
  .primary-nav ul { position:fixed; inset:0 0 auto 0; top:72px; background:rgba(15,15,15,.96); flex-direction:column; padding:2.5rem 2rem 4rem; gap:1.5rem; transform:translateY(-120%); transition: var(--transition); }
  .primary-nav ul.open { transform:translateY(0); }
  .nav-toggle { display:flex; }
}

/* Header shrink effect */
.site-header.shrink .header-inner { min-height:60px; }
.site-header.shrink .logo-mark { transform:scale(.9); }

/* Focus styles */
:focus-visible { outline:2px solid var(--color-accent); outline-offset:2px; }

/* Scrollbar styling (webkit) */
::-webkit-scrollbar { width:12px; }
::-webkit-scrollbar-track { background:#0e0e0e; }
::-webkit-scrollbar-thumb { background:#242424; border-radius:20px; border:2px solid #0e0e0e; }
::-webkit-scrollbar-thumb:hover { background:#303030; }

/* Print minimal */
@media print { .hero, .gallery, .map-placeholder, .nav-toggle, .primary-nav ul { display:none !important; } body { background:#fff; color:#000; } }

/* Contact Section */
.contact { background: linear-gradient(145deg,#121212,#0e0e0e 55%); }
.contact-grid { display:grid; gap:2.5rem; margin-top:2rem; }
@media (min-width:900px){ .contact-grid { grid-template-columns: repeat(3,1fr); } }
.contact-block { background: linear-gradient(135deg, rgba(255,255,255,.05), rgba(255,255,255,.02)); border:1px solid rgba(255,255,255,.08); padding:1.75rem 1.4rem 1.6rem; border-radius: var(--radius-md); position:relative; overflow:hidden; box-shadow: var(--shadow-soft); }
.contact-block::before { content:""; position:absolute; inset:0; background: radial-gradient(circle at 120% -10%, rgba(217,93,26,.15), transparent 60%); opacity:.9; pointer-events:none; }
.contact-block h3 { margin-top:0; font-size:1rem; letter-spacing:.15em; text-transform:uppercase; color: var(--color-accent-alt); }
.contact-lines a { color: var(--color-text); text-decoration:none; }
.contact-lines a:hover { text-decoration:underline; }
.hours-inline { font-size:.85rem; color: var(--color-text-dim); margin:.75rem 0 0; }
.social-list { list-style:none; padding:0; margin:.5rem 0 0; display:grid; gap:.6rem; }
.social-list a { display:flex; flex-direction:column; gap:.15rem; text-decoration:none; color: var(--color-text-dim); font-size:.8rem; letter-spacing:.05em; background:#161616; padding:.7rem .85rem .65rem; border:1px solid #262626; border-radius: var(--radius-sm); transition: var(--transition); }
.social-list a span { font-size:.65rem; letter-spacing:.15em; text-transform:uppercase; color: var(--color-accent-alt); }
.social-list a:hover { background:#1d1d1d; color: var(--color-text); }
.contact .order-links.small-gap { gap:.6rem; margin-top:.9rem; }
.dim { color: var(--color-text-dim); }

/* Lightbox */
.lightbox { position:fixed; inset:0; background:rgba(0,0,0,.88); display:flex; align-items:center; justify-content:center; opacity:0; visibility:hidden; transition:.35s ease; z-index:300; }
.lightbox.open { cursor: zoom-out; }
.lightbox.open { opacity:1; visibility:visible; }
.lightbox-inner { position:relative; max-width:min(92vw,1100px); max-height:88vh; display:flex; flex-direction:column; gap:.75rem; }
.lightbox-img { max-width:100%; max-height:72vh; object-fit:contain; border-radius: var(--radius-md); box-shadow:0 12px 40px -6px rgba(0,0,0,.6); background:#111; }
.lightbox.single .lightbox-nav { display:none !important; }
.menu-thumb { cursor:pointer; }
.menu-thumb:focus-visible { outline:2px solid var(--color-accent); outline-offset:2px; }
.fulfillment-chooser { display:flex; gap:.75rem; margin:.75rem 0 0; flex-wrap:wrap; }
.fulfill-opt { background:#181818; border:1px solid #2a2a2a; padding:.45rem .75rem; border-radius:30px; font-size:.7rem; display:flex; align-items:center; gap:.4rem; cursor:pointer; }
.fulfill-opt input { accent-color: var(--color-accent); }
.fulfill-opt[aria-disabled="true"], .fulfill-opt input:disabled + span { opacity:.45; cursor:not-allowed; }
.fulfillment-row { display:flex; justify-content:space-between; font-size:.7rem; letter-spacing:.08em; text-transform:uppercase; color: var(--color-text-dim); margin-bottom:.25rem; }
.lightbox-caption { font-size:.7rem; letter-spacing:.15em; text-transform:uppercase; color: var(--color-text-dim); text-align:center; margin:0; }
.lightbox-close { position:absolute; top:1rem; right:1rem; background:#191919; border:1px solid #2a2a2a; width:40px; height:40px; display:grid; place-items:center; border-radius:50%; cursor:pointer; color: var(--color-text); font-size:1.2rem; font-weight:300; }
.lightbox-nav { position:absolute; top:50%; transform:translateY(-50%); background:#191919; border:1px solid #2a2a2a; width:46px; height:46px; border-radius:50%; cursor:pointer; color: var(--color-text); font-size:1.4rem; display:grid; place-items:center; }
.lightbox-nav.prev { left: -60px; }
.lightbox-nav.next { right: -60px; }
@media (max-width:860px){ .lightbox-nav.prev { left:8px; } .lightbox-nav.next { right:8px; } }
@media (prefers-reduced-motion: reduce){ .fade-in { transition:none !important; } .lightbox { transition:none !important; } }

/* Cart & Checkout */
.cart-trigger { background:linear-gradient(135deg,#252525,#1a1a1a); color:var(--color-text-dim); border:1px solid #2b2b2b; padding:.6rem .95rem; border-radius: var(--radius-pill); cursor:pointer; font-size:.75rem; letter-spacing:.12em; text-transform:uppercase; display:flex; align-items:center; gap:.5rem; }
.cart-trigger:hover { color:var(--color-text); }
.cart-count { background: var(--grad-ember); color:#111; font-weight:600; font-size:.65rem; min-width:20px; height:20px; display:inline-flex; align-items:center; justify-content:center; border-radius:50%; }
.cart-panel { position:fixed; top:0; right:0; width:min(420px,100%); height:100%; background:#121212; box-shadow:-4px 0 24px -8px rgba(0,0,0,.6); transform:translateX(110%); transition: var(--transition); z-index:400; display:flex; flex-direction:column; }
.cart-panel.open { transform:translateX(0); }
.cart-inner { display:flex; flex-direction:column; padding:1.5rem 1.25rem 2rem; gap:1.25rem; height:100%; overflow:auto; }
.cart-head { display:flex; justify-content:space-between; align-items:center; }
.cart-close { background:none; border:1px solid #2b2b2b; color:var(--color-text-dim); width:38px; height:38px; border-radius:50%; cursor:pointer; font-size:1.2rem; }
.cart-lines { list-style:none; margin:0; padding:0; display:grid; gap:.9rem; }
.cart-line { display:grid; grid-template-columns: 1fr auto; gap:.5rem 1rem; background:#181818; border:1px solid #242424; padding:.75rem .8rem; border-radius: var(--radius-sm); position:relative; }
.cart-line-title { font-size:.8rem; font-weight:600; letter-spacing:.05em; }
.cart-line-price { font-size:.75rem; color: var(--color-accent-alt); }
.qty-controls { display:flex; gap:.4rem; align-items:center; }
.qty-btn { background:#222; border:1px solid #2e2e2e; color:var(--color-text); width:28px; height:28px; border-radius:6px; cursor:pointer; font-size:.9rem; }
.qty-btn:hover { background:#272727; }
.cart-summary { display:grid; gap:.4rem; font-size:.75rem; }
.cart-summary div { display:flex; justify-content:space-between; }
.cart-summary .total { margin-top:.4rem; padding-top:.4rem; border-top:1px solid #2a2a2a; font-size:.85rem; font-weight:600; }
.tip-select { font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; }
.add-cart { margin-top:.5rem; background:#1d1d1d; border:1px solid #2b2b2b; color:var(--color-text-dim); font-size:.6rem; letter-spacing:.15em; text-transform:uppercase; padding:.45rem .7rem; border-radius: var(--radius-pill); cursor:pointer; }
.add-cart:hover { color:var(--color-text); }
.add-cart.disabled { opacity:.4; cursor:not-allowed; }
.checkout-container { margin-top:1rem; }
#card-container { margin:.75rem 0 1rem; }
#payment-status { margin-top:.5rem; }
@media (max-width:640px){ .cart-panel { width:100%; } }

/* Toasts */
.toast-region { position:fixed; bottom:1.25rem; right:1.25rem; display:grid; gap:.6rem; z-index:500; max-width:260px; }
.toast { background:#181818; border:1px solid #2a2a2a; padding:.8rem .95rem; border-radius: var(--radius-md); font-size:.7rem; letter-spacing:.08em; text-transform:uppercase; color: var(--color-text-dim); box-shadow:0 6px 24px -8px rgba(0,0,0,.6); animation: toast-in .4s ease; }
@keyframes toast-in { from { transform:translateY(8px); opacity:0; } to { transform:translateY(0); opacity:1; } }

/* Persistent mini cart (desktop) */
.mini-cart { position:fixed; bottom:1.5rem; left:1.5rem; z-index:450; display:none; }
@media (min-width:1100px){ .mini-cart { display:block; } }
.mini-cart-open { background:linear-gradient(135deg,#1b1b1b,#131313); border:1px solid #262626; color:var(--color-text-dim); padding:.85rem 1.1rem .8rem; border-radius: var(--radius-pill); display:flex; align-items:center; gap:.85rem; cursor:pointer; font-size:.7rem; letter-spacing:.18em; text-transform:uppercase; box-shadow:0 6px 24px -8px rgba(0,0,0,.55); transition: var(--transition); }
.mini-cart-open:hover { color: var(--color-text); background:linear-gradient(135deg,#212121,#161616); }
.mini-cart-total { background: var(--grad-ember); color:#111; padding:.4rem .75rem .35rem; border-radius: var(--radius-pill); font-weight:600; font-size:.65rem; letter-spacing:.12em; }
/* Mobile cart bar */
.mobile-cart-bar { position:fixed; left:0; right:0; bottom:0; z-index:460; background:rgba(15,15,15,.92); backdrop-filter: blur(12px) saturate(150%); -webkit-backdrop-filter: blur(12px) saturate(150%); border-top:1px solid #222; padding:.55rem .85rem .65rem; display:flex; justify-content:center; }
.mobile-cart-btn { width:100%; max-width:560px; background:linear-gradient(135deg,#1d1d1d,#151515); border:1px solid #262626; border-radius: var(--radius-pill); display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.75rem 1.15rem .7rem; cursor:pointer; color: var(--color-text-dim); font-size:.75rem; letter-spacing:.12em; text-transform:uppercase; }
.mobile-cart-btn:hover { color: var(--color-text); }
.mobile-cart-btn .mcb-count { background: var(--grad-ember); color:#111; min-width:30px; height:30px; display:inline-flex; align-items:center; justify-content:center; font-weight:600; border-radius:50%; font-size:.75rem; }
.mobile-cart-btn .mcb-total { font-weight:600; color: var(--color-accent-alt); font-size:.8rem; }
@media (min-width:1100px){ .mobile-cart-bar { display:none; } }

/* Tighten section padding on very small screens */
@media (max-width:600px){
  .testimonials.section-pad, #process.section-pad, .feature-band.section-pad, .story.section-pad { padding:3rem 0; }
  .section-pad { padding:3.25rem 0; }
}

/* Section separators subtle */
@media (max-width:600px){
  .section-pad + .section-pad { position:relative; }
  .section-pad + .section-pad::before { content:""; position:absolute; top:0; left:50%; width:120px; height:2px; transform:translate(-50%, -50%); background:linear-gradient(90deg, rgba(217,93,26,0), rgba(217,93,26,.55), rgba(207,161,74,0)); border-radius:2px; }
}

/* Menu thumbnails */
.menu-item { position:relative; display:grid; grid-template-columns:72px 1fr auto; gap:.85rem .9rem; align-items:start; background:#161616; border:1px solid #232323; padding:.75rem .85rem; border-radius: var(--radius-md); }
.menu-item .menu-thumb { width:72px; height:72px; overflow:hidden; border-radius: var(--radius-sm); background:#1d1d1d; position:relative; flex-shrink:0; }
.menu-item .menu-thumb img.blur-up { filter:blur(12px) saturate(1.2); transform:scale(1.05); }
.menu-item .menu-thumb img.blur-up.loaded { filter:blur(0) saturate(1); transform:scale(1); transition:filter .5s ease, transform .6s ease; }
.menu-item .menu-thumb img { width:100%; height:100%; object-fit:cover; transition:transform .5s ease; filter:brightness(.95) contrast(1.05); }
.menu-item:hover .menu-thumb img { transform:scale(1.08); }
.menu-item .menu-info { display:flex; flex-direction:column; gap:.25rem; }
.menu-item .menu-info h3 { margin:.1rem 0 0; font-size:.85rem; line-height:1.2; }
.menu-item .menu-info p { margin:0; font-size:.65rem; color:var(--color-text-dim); line-height:1.35; }
.menu-item .add-cart { margin-top:.15rem; font-size:.55rem; padding:.4rem .6rem; }
/* Menu chips under title */
.menu-chips { list-style:none; padding:0; margin:-.5rem 0 1.5rem; display:flex; flex-wrap:wrap; gap:.6rem; }
.menu-chips li { background:#181818; border:1px solid #252525; padding:.45rem .75rem .4rem; font-size:.55rem; letter-spacing:.14em; text-transform:uppercase; border-radius: var(--radius-pill); color: var(--color-text-dim); }
@media (min-width:1200px){ .menu-subgroup .menu-grid.compact { grid-template-columns: repeat(2,1fr); } }
@media (max-width:560px){
  .menu-item { grid-template-columns:56px 1fr auto; padding:.65rem .7rem; }
  .menu-item .menu-thumb { width:56px; height:56px; }
  .menu-item .menu-info h3 { font-size:.8rem; }
  .menu-item .menu-info p { font-size:.6rem; }
  .menu-item .add-cart { font-size:.6rem; padding:.55rem .85rem; min-height:40px; }
}
@media (min-width:860px){ .menu-grid { grid-template-columns: repeat(auto-fill, minmax(300px,1fr)); } }
@media (min-width:1200px){ .menu-preview .menu-grid { grid-template-columns: repeat(auto-fill, minmax(340px,1fr)); } }

/* Feature Bands */
.feature-band { background:linear-gradient(90deg,#131313,#101010); }
.feature-band.alt { background:linear-gradient(90deg,#101010,#131313); }
.feature-band .feature-text { flex:1; padding:0 1.2rem; }
.feature-band .feature-text p { max-width:42ch; }
.feature-band .feature-media { flex:1; display:flex; align-items:center; justify-content:center; }
.feature-band .feature-media img { width:100%; height:auto; border-radius:var(--radius-md); box-shadow:0 8px 28px -8px rgba(0,0,0,.55); object-fit:cover; }
.feature-band.feature-shrink .feature-media img { max-width:520px; }
/* Process points list */
.process-points { list-style:none; padding:0; margin:1.25rem 0 0; display:grid; gap:.55rem; font-size:.75rem; letter-spacing:.05em; }
.process-points li { background:#161616; border:1px solid #242424; padding:.55rem .75rem .5rem; border-radius: var(--radius-sm); display:flex; gap:.4rem; align-items:baseline; }
.process-points strong { color: var(--color-accent-alt); font-weight:600; font-size:.7rem; text-transform:uppercase; letter-spacing:.1em; }
@media (max-width:860px){ .feature-band.feature-shrink .feature-media img { max-width:100%; } }
@media (max-width:860px){
  .feature-band .container.split { flex-direction:column; }
  .feature-band.alt .container.split { flex-direction:column; }
  .feature-band .feature-text { padding:1.25rem 0 0; }
}

/* Gallery refinements */
.gallery-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); gap:1rem; }
.g-item { position:relative; overflow:hidden; border-radius:var(--radius-sm); cursor:pointer; background:#161616; border:1px solid #232323; }
.g-item img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s ease; }
.g-item:hover img { transform:scale(1.05); }
.g-item.video::after { content:'▶'; position:absolute; left:8px; bottom:8px; background:rgba(0,0,0,.55); padding:.35rem .55rem; font-size:.75rem; border-radius:var(--radius-pill); letter-spacing:.1em; }
.lightbox-video { max-width:100%; max-height:72vh; object-fit:contain; border-radius: var(--radius-md); box-shadow:0 12px 40px -6px rgba(0,0,0,.6); background:#111; }

/* Testimonials */
.testimonials { position:relative; }
.testimonials::before { content:""; position:absolute; inset:0; background: radial-gradient(circle at 20% 15%, rgba(217,93,26,.10), transparent 60%); pointer-events:none; opacity:.7; }
.testi-grid { display:grid; gap:2rem; margin-top:2.2rem; }
@media (min-width:900px){ .testi-grid { grid-template-columns: repeat(3,1fr); } }
.testi { margin:0; background:linear-gradient(135deg,#161616,#121212); border:1px solid #242424; padding:1.6rem 1.4rem 1.5rem; border-radius: var(--radius-md); position:relative; box-shadow: var(--shadow-soft); }
.testi blockquote { margin:0 0 1rem; font-family: var(--font-display); font-size:1rem; line-height:1.4; font-weight:600; letter-spacing:.5px; position:relative; }
.testi blockquote::before { content:'“'; position:absolute; left:-.4rem; top:-.6rem; font-size:3rem; line-height:1; color:rgba(217,93,26,.25); font-weight:700; font-family: var(--font-display); }
.testi figcaption { font-size:.65rem; letter-spacing:.18em; text-transform:uppercase; color: var(--color-accent-alt); }
