:root { --ember:#ef4823; --cream:#f5efe5; --ink:#0a0a09; }
* { box-sizing:border-box; }
html, body { width:100%; min-height:100%; margin:0; background:var(--ink); scroll-behavior:smooth; }
body { overflow-x:hidden; color:var(--cream); font-family:"DM Sans",sans-serif; }
a { color:inherit; text-decoration:none; }
button { color:inherit; font:inherit; }

.site-shell { position:relative; width:100%; min-height:100dvh; background:#0b0b09; overflow:hidden; }
.site-header { position:absolute; z-index:20; inset:0 0 auto; height:100px; padding:0 clamp(20px,3vw,58px); display:flex; align-items:center; justify-content:space-between; gap:24px; background:rgba(7,7,6,.9); border-bottom:1px solid rgba(255,255,255,.06); }
.site-header.is-sticky { position:fixed; z-index:1000; animation:hogHeaderStickyIn .28s ease both; box-shadow:0 5px 18px rgba(0,0,0,.18); }
@keyframes hogHeaderStickyIn { from { transform:translateY(-100%); } to { transform:translateY(0); } }
.brand { display:flex; align-items:center; gap:13px; min-width:195px; }
.brand-mark { display:grid; place-items:center; width:43px; height:43px; color:var(--ember); font-weight:700; border:1px solid var(--ember); transform:rotate(45deg); }
.brand-mark::first-letter { transform:rotate(-45deg); }
.brand-logo-image { display:block; width:clamp(175px,13vw,225px); height:auto; }
.brand-copy { display:flex; flex-direction:column; line-height:1; }
.brand-copy b { font-size:20px; letter-spacing:.04em; }
.brand-copy small { margin-top:7px; color:#a8a39b; font-size:8px; letter-spacing:.32em; }
.main-nav { display:flex; align-items:center; justify-content:center; gap:clamp(14px,1.55vw,30px); font-size:clamp(9px,.72vw,11px); font-weight:700; line-height:1.5; letter-spacing:.055em; white-space:nowrap; }
.main-nav a { position:relative; padding:40px 0; }
.main-nav a::after { content:""; position:absolute; left:0; right:100%; bottom:29px; height:2px; background:var(--ember); transition:right .25s; }
.main-nav a:hover::after,.main-nav a.active::after { right:0; }
.main-nav a.active { color:var(--ember); }
.reserve-button { display:flex; align-items:center; gap:14px; height:48px; padding:0 16px; border:1px solid var(--ember); font-size:11px; font-weight:700; white-space:nowrap; }
.reserve-button i { width:30px; height:1px; background:#fff; }
.reserve-button b { font-size:18px; font-weight:400; transition:transform .2s; }
.reserve-button:hover b { transform:translateX(4px); }
.menu-toggle { display:none; border:0; background:none; }

.hero { position:relative; height:100dvh; min-height:620px; overflow:hidden; }
.slides,.slide { position:absolute; inset:0; }
.slide { display:grid; place-items:center; opacity:0; visibility:hidden; background-image:linear-gradient(90deg,rgba(0,0,0,.72),rgba(0,0,0,.28) 50%,rgba(0,0,0,.7)),linear-gradient(rgba(0,0,0,.15),rgba(0,0,0,.62)),var(--image); background-size:cover; background-position:center; transform:scale(1.07); transition:opacity .9s ease,transform 5.5s ease,visibility .9s; }
.slide.is-active { opacity:1; visibility:visible; transform:scale(1); z-index:2; }
.slide-content { position:relative; z-index:3; width:min(880px,80vw); padding-top:75px; text-align:center; }
.eyebrow { margin:0 0 16px; color:#e8e1d8; font-size:clamp(11px,1vw,14px); font-weight:700; letter-spacing:.32em; }
.slide h1,.slide h2 { margin:0; font-family:"Anton",Impact,sans-serif; font-size:clamp(62px,7.6vw,132px); font-weight:400; line-height:.86; letter-spacing:.012em; text-transform:uppercase; text-shadow:0 7px 30px #000; }
.slide h1 em,.slide h2 em { color:var(--ember); font-style:normal; -webkit-text-stroke:1px rgba(255,255,255,.18); }
.subline { display:flex; align-items:center; justify-content:center; gap:20px; margin:30px auto 32px; font-size:clamp(11px,1.15vw,15px); font-weight:600; letter-spacing:.12em; text-transform:uppercase; }
.subline span { width:clamp(40px,7vw,100px); height:1px; background:rgba(255,255,255,.55); }
.hero-actions { display:flex; justify-content:center; gap:45px; }
.hero-actions a { position:relative; padding:9px 2px; font-size:12px; font-weight:700; }
.hero-actions a::after { content:""; position:absolute; left:0; right:100%; bottom:2px; height:2px; background:var(--ember); transition:right .25s; }
.hero-actions a:hover::after { right:0; }
.hero-frame { position:absolute; z-index:4; inset:clamp(118px,15vh,150px) clamp(28px,4vw,78px) clamp(65px,8vh,88px); border:1px solid rgba(255,255,255,.16); pointer-events:none; }
.slide-count { position:absolute; z-index:7; left:clamp(43px,5.5vw,105px); bottom:91px; display:flex; align-items:baseline; gap:6px; }
.slide-count b { font:400 25px "Anton"; color:var(--ember); }.slide-count span,.slide-count small { color:#9e9991; font-size:11px; }
.slider-nav { position:absolute; z-index:7; left:50%; bottom:38px; display:flex; gap:10px; transform:translateX(-50%); }
.slider-dot { display:grid; place-items:center; width:49px; height:49px; padding:0; border:1px solid rgba(255,255,255,.4); border-radius:50%; background:rgba(0,0,0,.32); cursor:pointer; transition:.25s; }
.slider-dot span { font:400 14px "Anton"; }.slider-dot:hover,.slider-dot.is-active { border-color:#fff; background:var(--ember); transform:translateY(-4px); }
.slide-arrow { position:absolute; z-index:7; top:52%; display:grid; place-items:center; width:58px; height:58px; padding:0; border:1px solid rgba(255,255,255,.34); border-radius:50%; color:#fff; background:rgba(8,8,7,.3); cursor:pointer; opacity:.9; backdrop-filter:blur(3px); transition:border-color .28s,background .28s,transform .28s,box-shadow .28s; }
.slide-arrow::before { content:""; position:absolute; inset:6px; border:1px solid rgba(255,255,255,.1); border-radius:50%; transition:border-color .28s; }.slide-arrow span { position:relative; display:block; width:25px; height:12px; transition:transform .28s; }.slide-arrow span::before { content:""; position:absolute; top:50%; width:24px; height:1px; background:currentColor; transform:translateY(-50%); }.slide-arrow i { position:absolute; top:50%; width:8px; height:8px; border-top:1px solid currentColor; border-right:1px solid currentColor; }
.slide-arrow.prev span::before { right:0; }.slide-arrow.prev i { left:0; transform:translateY(-50%) rotate(-135deg); }.slide-arrow.next span::before { left:0; }.slide-arrow.next i { right:0; transform:translateY(-50%) rotate(45deg); }
.slide-arrow:hover { border-color:var(--ember); color:#fff; background:rgba(239,72,35,.82); transform:translateY(-2px); box-shadow:0 8px 25px rgba(0,0,0,.3); }.slide-arrow:hover::before { border-color:rgba(255,255,255,.32); }.slide-arrow.prev:hover span { transform:translateX(-3px); }.slide-arrow.next:hover span { transform:translateX(3px); }.slide-arrow:focus-visible { outline:2px solid var(--ember); outline-offset:4px; }.slide-arrow.prev { left:clamp(28px,4vw,78px); }.slide-arrow.next { right:clamp(28px,4vw,78px); }

#smoke-canvas { position:fixed; z-index:6; inset:0; width:100%; height:100%; pointer-events:none; mix-blend-mode:screen; opacity:.67; filter:saturate(.28) sepia(.12) blur(.25px); }

.about-section { position:relative; min-height:790px; display:grid; place-items:center; padding:110px clamp(28px,8vw,150px); overflow:hidden; color:#141310; background:#f4f0e9; }
.about-inner { position:relative; z-index:2; display:grid; grid-template-columns:minmax(360px,570px) minmax(360px,590px); align-items:center; gap:clamp(60px,8vw,145px); width:min(1320px,100%); }
.about-visual { position:relative; }
.about-image-wrap { position:relative; height:545px; overflow:hidden; background:#191713; box-shadow:22px 25px 0 #e7dfd4; }
.about-image-wrap::after { content:""; position:absolute; inset:0; background:linear-gradient(140deg,transparent 45%,rgba(0,0,0,.35)); }
.about-image-wrap img { width:100%; height:100%; object-fit:cover; object-position:center; filter:saturate(.82) contrast(1.05); transition:transform 1s ease; }
.about-image-wrap:hover img { transform:scale(1.035); }
.about-number { position:absolute; z-index:3; top:-55px; left:-48px; color:transparent; font:400 106px/1 "Anton",Impact,sans-serif; -webkit-text-stroke:1px rgba(239,72,35,.42); }
.about-stamp { position:absolute; z-index:3; right:-42px; bottom:-42px; display:grid; place-items:center; width:124px; height:124px; border-radius:50%; color:#fff; background:var(--ember); box-shadow:0 15px 40px rgba(66,25,13,.24); text-align:center; }
.about-stamp::before { content:""; position:absolute; inset:9px; border:1px dashed rgba(255,255,255,.65); border-radius:50%; }
.about-stamp span { font-size:9px; font-weight:700; line-height:1.35; letter-spacing:.13em; transform:translateY(-13px); }.about-stamp b { position:absolute; bottom:20px; font-size:24px; }
.section-label { display:inline-block; margin:0 0 24px; padding:10px 14px; color:#fff; background:var(--ember); font-size:10px; font-weight:700; letter-spacing:.13em; }
.about-copy h2 { margin:0; font:400 clamp(48px,4.7vw,76px)/.98 "Anton",Impact,sans-serif; letter-spacing:.018em; text-transform:uppercase; }
.about-copy h2 em { color:var(--ember); font-style:normal; }
.about-lead { margin:30px 0 17px; max-width:610px; color:#33302b; font-size:18px; font-weight:600; line-height:1.65; }
.about-text { margin:0; max-width:600px; color:#777168; font-size:14px; line-height:1.9; }
.about-details { display:flex; align-items:center; gap:16px; margin-top:34px; padding-top:29px; border-top:1px solid #d8d0c5; }
.detail-icon { display:grid; place-items:center; flex:0 0 52px; height:52px; border-radius:50%; color:#fff; background:var(--ember); font-size:22px; }
.about-details div:nth-child(2) { display:flex; flex-direction:column; gap:5px; }.about-details small { color:#8e877e; font-size:9px; font-weight:700; letter-spacing:.15em; }.about-details strong { font:400 17px "Anton",Impact,sans-serif; letter-spacing:.06em; }
.about-details a { margin-left:auto; padding:13px 0; border-bottom:2px solid var(--ember); font-size:11px; font-weight:700; letter-spacing:.08em; }.about-details a span { margin-left:14px; color:var(--ember); font-size:18px; }
.about-ornament { position:absolute; color:rgba(26,23,19,.055); font:400 210px/1 "Anton",Impact,sans-serif; pointer-events:none; }.about-ornament-left { left:-25px; bottom:20px; transform:rotate(-12deg); }.about-ornament-right { top:-30px; right:-12px; font-size:290px; }

.catering-section { position:relative; padding:100px clamp(24px,4vw,70px) 115px; overflow:hidden; color:#171512; background:#faf8f4; }
.catering-section::before { content:"CATERING"; position:absolute; left:-15px; bottom:-40px; color:rgba(20,18,15,.035); font:400 clamp(130px,19vw,310px)/.8 "Anton",Impact,sans-serif; letter-spacing:.02em; pointer-events:none; }
.catering-heading { position:relative; z-index:2; margin:0 auto 50px; text-align:center; }.catering-heading .section-label { margin-bottom:18px; }.catering-heading h2 { margin:0; color:#171512; font:400 clamp(48px,5vw,78px)/1 "Anton",Impact,sans-serif; letter-spacing:.02em; }.catering-heading h2 em { color:var(--ember); font-style:normal; }
.catering-grid { position:relative; z-index:2; display:grid; grid-template-columns:minmax(245px,.78fr) minmax(500px,2.2fr) minmax(260px,.88fr); gap:26px; width:min(1480px,100%); margin:auto; }
.catering-info,.catering-cta { min-height:410px; display:flex; flex-direction:column; justify-content:center; padding:clamp(30px,3vw,52px); }
.catering-info { color:#fff; background:var(--ember); }.catering-cta { color:#fff; background:#171715; }
.catering-kicker { margin-bottom:9px; font-size:9px; font-weight:700; letter-spacing:.16em; opacity:.68; }
.catering-info h3,.catering-cta h3 { margin:0; font:400 clamp(30px,2.35vw,42px)/1.02 "Anton",Impact,sans-serif; letter-spacing:.025em; }
.mini-mark { display:flex; align-items:center; gap:6px; margin:18px 0 27px; }.mini-mark i { width:6px; height:6px; background:currentColor; transform:rotate(45deg); }.mini-mark span { width:40px; height:1px; margin-left:5px; background:currentColor; opacity:.7; }
.catering-info p { margin:0 0 10px; font-size:13px; line-height:1.75; }.catering-info > a { width:max-content; color:#fff; font:400 21px "Anton",Impact,sans-serif; letter-spacing:.04em; }.catering-info small { margin-top:34px; font-size:9px; font-weight:700; letter-spacing:.09em; opacity:.72; }
.catering-visual { position:relative; min-height:410px; overflow:hidden; background:#251a15; }.catering-visual::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(0,0,0,.55),rgba(0,0,0,.08) 60%,rgba(0,0,0,.25)); }.catering-visual img { width:100%; height:100%; object-fit:cover; transition:transform 1.2s ease; }.catering-visual:hover img { transform:scale(1.035); }
.catering-overlay { position:absolute; z-index:2; left:clamp(30px,4vw,70px); top:50%; color:#fff; transform:translateY(-50%); text-shadow:0 4px 20px #000; }.catering-overlay span { display:block; margin-bottom:9px; color:#f1d7cc; font-size:9px; font-weight:700; letter-spacing:.22em; }.catering-overlay strong { display:block; font:400 clamp(45px,4.5vw,75px)/.9 "Anton",Impact,sans-serif; letter-spacing:.02em; }.catering-overlay p { margin:17px 0 0; font-size:12px; font-weight:600; letter-spacing:.06em; }
.catering-badge { position:absolute; z-index:3; right:25px; top:24px; display:grid; place-items:center; width:88px; height:88px; border-radius:50%; color:#fff; background:var(--ember); box-shadow:0 8px 25px rgba(0,0,0,.25); }.catering-badge::after { content:""; position:absolute; inset:8px; border:1px dashed rgba(255,255,255,.7); border-radius:50%; }.catering-badge b { margin-top:14px; font:400 24px/1 "Anton"; }.catering-badge span { margin-bottom:13px; font-size:8px; font-weight:700; letter-spacing:.13em; }
.catering-cta p { margin:0 0 29px; color:#bbb4aa; font-size:12px; line-height:1.75; }.catering-cta > a { display:flex; align-items:center; gap:13px; width:100%; min-height:50px; padding:0 16px; border:1px solid var(--ember); color:#fff; font-size:10px; font-weight:700; letter-spacing:.06em; }.catering-cta > a i { flex:1; height:1px; background:var(--ember); }.catering-cta > a b { color:var(--ember); font-size:18px; transition:transform .2s; }.catering-cta > a:hover b { transform:translateX(4px); }

.services-section { position:relative; min-height:850px; padding:105px 0 95px; overflow:hidden; color:#f5efe5; background:#0c0b0a; }
.services-section::before { content:""; position:absolute; inset:0; opacity:.13; background:radial-gradient(circle at 15% 30%,#ef4823 0,transparent 28%),linear-gradient(120deg,transparent 35%,rgba(255,255,255,.035) 35.2%,transparent 35.5%); pointer-events:none; }
.services-heading { position:relative; z-index:2; text-align:center; padding:0 25px; }
.services-heading .section-label { margin-bottom:19px; }
.services-heading h2 { margin:0; font:400 clamp(50px,5.3vw,82px)/1 "Anton",Impact,sans-serif; letter-spacing:.02em; }.services-heading h2 em { color:var(--ember); font-style:normal; }
.services-heading > p:not(.section-label) { margin:13px 0 18px; color:#9f9990; font-size:13px; letter-spacing:.08em; }
.heading-mark { display:flex; align-items:center; justify-content:center; gap:7px; height:32px; }.heading-mark span { width:42px; height:1px; background:#4c4741; }.heading-mark i { width:6px; height:6px; background:var(--ember); transform:rotate(45deg); }
.service-slider-wrap { position:relative; z-index:2; width:min(1500px,100%); margin:45px auto 0; padding:0 clamp(55px,7vw,105px); }
.service-track { display:flex; gap:24px; overflow-x:auto; padding:0 2px 38px; scroll-snap-type:x mandatory; scroll-behavior:smooth; scrollbar-width:none; cursor:grab; touch-action:pan-x pan-y; overscroll-behavior-inline:contain; -webkit-overflow-scrolling:touch; }.service-track::-webkit-scrollbar { display:none; }.service-track.is-dragging,.service-track.is-gliding { cursor:grabbing; scroll-snap-type:none; scroll-behavior:auto; user-select:none; }
.service-card { flex:0 0 clamp(260px,23.5vw,350px); scroll-snap-align:start; }
.service-image { position:relative; height:315px; overflow:hidden; background:#211e1b; }
.service-image::before { content:""; position:absolute; z-index:2; inset:0; border:1px solid rgba(255,255,255,.08); background:linear-gradient(180deg,transparent 52%,rgba(0,0,0,.52)); pointer-events:none; }
.service-image img { width:100%; height:100%; object-fit:cover; filter:saturate(.8) contrast(1.08); transition:transform .7s ease,filter .5s; }.service-card:hover img { transform:scale(1.06); filter:saturate(1) contrast(1.04); }
.service-title { position:relative; width:calc(100% - 34px); min-height:72px; margin:-18px auto 0; display:flex; align-items:center; justify-content:center; padding:18px 24px; border:1px solid #5b554e; background:#0c0b0a; text-align:center; }
.service-title::before { content:""; position:absolute; top:-20px; left:50%; height:20px; border-left:1px solid #817971; }.service-title span { position:absolute; left:12px; color:var(--ember); font:400 11px "Anton",Impact,sans-serif; }.service-title h3 { margin:0; font:400 19px/1.1 "Anton",Impact,sans-serif; letter-spacing:.045em; }
.service-arrow { position:absolute; z-index:3; top:137px; display:grid; place-items:center; width:46px; height:46px; border:1px solid #4c4741; border-radius:50%; color:#fff; background:#0c0b0a; font-size:20px; cursor:pointer; transition:.25s; }.service-arrow:hover { border-color:var(--ember); color:var(--ember); }.service-prev { left:18px; }.service-next { right:18px; }
.service-progress { position:relative; z-index:2; width:min(360px,55vw); height:2px; margin:10px auto 30px; overflow:hidden; background:#393531; }.service-progress span { display:block; width:20%; height:100%; background:var(--ember); transform-origin:left; transition:transform .15s; }

/* Isolated parallax promotion */
.parallax-promo-section { position:relative; width:100%; height:470px; display:grid; place-items:center; overflow:hidden; isolation:isolate; }
.parallax-promo-bg { position:absolute; z-index:-3; inset:-18% 0; background-image:url('https://images.unsplash.com/photo-1709433420601-6e473136571b?auto=format&fit=crop&fm=jpg&q=88&w=2400'); background-position:center 52%; background-repeat:no-repeat; background-size:cover; will-change:transform; transform:translate3d(0,0,0) scale(1.03); }
.parallax-promo-overlay { position:absolute; z-index:-2; inset:0; background:linear-gradient(90deg,rgba(5,5,4,.76),rgba(8,6,5,.58) 50%,rgba(5,5,4,.76)); }
.parallax-promo-content { width:min(850px,88vw); padding:30px 20px; color:#fff; text-align:center; opacity:0; transform:translateY(25px); transition:opacity .75s ease,transform .75s ease; }
.parallax-promo-content.is-visible { opacity:1; transform:translateY(0); }
.parallax-promo-label { display:inline-block; margin:0 0 20px; padding:9px 14px; color:#fff; background:var(--ember); font-size:9px; font-weight:700; letter-spacing:.09em; }
.parallax-promo-title { margin:0; font:400 clamp(50px,5.25vw,80px)/.96 "Anton",Impact,sans-serif; letter-spacing:.025em; text-shadow:0 5px 24px rgba(0,0,0,.55); }
.parallax-promo-button { display:flex; align-items:center; gap:14px; width:190px; min-height:50px; margin:30px auto 0; padding:0 16px; border:1px solid rgba(255,255,255,.8); color:#fff; font-size:9px; font-weight:700; letter-spacing:.09em; transition:border-color .25s,background .25s; }
.parallax-promo-button i { flex:1; height:1px; background:rgba(255,255,255,.8); }.parallax-promo-button b { font-size:17px; font-weight:400; transition:transform .2s; }.parallax-promo-button:hover { border-color:var(--ember); background:rgba(239,72,35,.12); }.parallax-promo-button:hover b { transform:translateX(4px); }

.food-menu-section { position:relative; padding:105px clamp(25px,7vw,125px) 90px; overflow:hidden; color:#181613; background:#f7f4ef; }
.food-menu-section::before { content:"MENU"; position:absolute; right:-25px; top:25px; color:rgba(25,21,17,.035); font:400 clamp(150px,22vw,340px)/1 "Anton",Impact,sans-serif; pointer-events:none; }
.food-menu-head { position:relative; z-index:2; display:flex; align-items:flex-end; justify-content:space-between; gap:40px; width:min(1320px,100%); margin:0 auto 48px; }.food-menu-head .section-label { margin-bottom:15px; }.food-menu-head h2 { margin:0; font:400 clamp(50px,5.2vw,80px)/1 "Anton",Impact,sans-serif; letter-spacing:.02em; }.food-menu-head h2 em { color:var(--ember); font-style:normal; }
.menu-filters { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; }.menu-filters button { min-height:43px; padding:0 16px; border:1px solid #d7d0c7; color:#312e29; background:transparent; font-size:9px; font-weight:700; letter-spacing:.06em; cursor:pointer; transition:.2s; }.menu-filters button:hover,.menu-filters button.is-active { border-color:var(--ember); color:#fff; background:var(--ember); }
.food-menu-layout { position:relative; z-index:2; display:grid; grid-template-columns:minmax(300px,390px) 1fr; gap:20px; width:min(1320px,100%); margin:auto; }
.menu-feature { background:#ebe7e1; }.menu-feature-image { position:relative; height:270px; overflow:hidden; }.menu-feature-image::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent,rgba(0,0,0,.45)); }.menu-feature-image img { width:100%; height:100%; object-fit:cover; }.menu-feature-image > span { position:absolute; z-index:2; left:20px; bottom:18px; color:#fff; font-size:9px; font-weight:700; letter-spacing:.14em; }
.menu-feature-list { padding:9px 24px 16px; }.menu-feature-list > div { display:flex; align-items:center; justify-content:space-between; gap:20px; min-height:83px; border-bottom:1px solid #d0cac2; }.menu-feature-list > div:last-child { border-bottom:0; }.menu-feature-list span { display:flex; flex-direction:column; gap:5px; }.menu-feature-list b { font:400 18px "Anton",Impact,sans-serif; letter-spacing:.035em; }.menu-feature-list small { color:#827b72; font-size:10px; }.menu-feature-list strong { flex:none; color:var(--ember); font-size:11px; }
.menu-card-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; align-content:start; }
.menu-dish { min-width:0; display:grid; grid-template-columns:46% 54%; height:145px; border:1px solid #ddd6ce; background:#fff; opacity:1; transform:scale(1); transition:opacity .3s,transform .3s,border-color .25s; }.menu-dish:hover { border-color:#aaa198; }.menu-dish.is-hidden { display:none; }.dish-image { height:143px; overflow:hidden; }.dish-image img { width:100%; height:100%; object-fit:cover; filter:saturate(.83) contrast(1.04); transition:transform .6s; }.menu-dish:hover img { transform:scale(1.055); }
.dish-copy { display:flex; flex-direction:column; justify-content:center; padding:13px 16px; }.dish-copy > span { margin-bottom:5px; color:var(--ember); font-size:7px; font-weight:700; letter-spacing:.12em; }.dish-copy h3 { margin:0 0 5px; font:400 clamp(15px,1.25vw,19px)/1.02 "Anton",Impact,sans-serif; letter-spacing:.035em; }.dish-copy p { margin:0; color:#8a837a; font-size:8px; line-height:1.35; }.dish-copy strong { margin-top:9px; color:var(--ember); font-size:10px; }
.full-menu-pdf { position:relative; z-index:2; display:flex; align-items:center; gap:17px; width:max-content; min-width:230px; min-height:53px; margin:44px auto 0; padding:0 18px; border:1px solid var(--ember); color:#181613; font-size:10px; font-weight:700; letter-spacing:.09em; }.full-menu-pdf i { flex:1; height:1px; background:var(--ember); }.full-menu-pdf b { color:var(--ember); font-size:18px; transition:transform .2s; }.full-menu-pdf:hover b { transform:translate(3px,-3px); }.menu-note { position:relative; z-index:2; margin:17px auto 0; color:#928b82; font-size:9px; text-align:center; }

.hog-news-section { position:relative; padding:105px clamp(25px,7vw,125px) 115px; overflow:hidden; color:#181613; background:#fff; }
.hog-news-section::before { content:"NEWS"; position:absolute; left:-20px; bottom:-35px; color:rgba(22,19,16,.03); font:400 clamp(170px,25vw,390px)/.8 "Anton",Impact,sans-serif; pointer-events:none; }
.hog-news-heading { position:relative; z-index:2; margin:0 auto 50px; text-align:center; }.hog-news-heading .section-label { margin-bottom:16px; }.hog-news-heading h2 { margin:0; font:400 clamp(50px,5.2vw,80px)/1 "Anton",Impact,sans-serif; letter-spacing:.02em; }.hog-news-heading h2 em { color:var(--ember); font-style:normal; }.hog-news-heading > p:not(.section-label) { margin:13px 0 16px; color:#8b847b; font-size:11px; letter-spacing:.06em; }
.hog-news-grid { position:relative; z-index:2; display:grid; grid-template-columns:1fr 1fr; grid-auto-rows:315px; width:min(1120px,100%); margin:auto; box-shadow:0 20px 55px rgba(42,31,22,.08); }
.hog-news-grid > article { min-height:0; }.hog-news-image { position:relative; overflow:hidden; background:#211b17; }.hog-news-image img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:saturate(.82) contrast(1.05); transition:transform .8s ease; }.hog-news-image:hover img { transform:scale(1.035); }.hog-news-image::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 55%,rgba(0,0,0,.28)); pointer-events:none; }
.hog-news-image time { position:absolute; z-index:2; top:28px; left:30px; display:flex; flex-direction:column; align-items:center; justify-content:center; width:64px; height:70px; color:#fff; background:var(--ember); }.hog-news-image time b { font:400 27px/1 "Anton",Impact,sans-serif; }.hog-news-image time span { margin-top:5px; font-size:8px; font-weight:700; letter-spacing:.1em; }
.hog-news-copy { display:flex; flex-direction:column; justify-content:center; padding:clamp(35px,5vw,65px); background:#f2efea; }.hog-news-meta { display:flex; align-items:center; gap:10px; margin-bottom:20px; color:#6f6961; font-size:8px; font-weight:700; letter-spacing:.09em; }.hog-news-meta i { width:5px; height:5px; background:var(--ember); transform:rotate(45deg); }
.hog-news-copy h3 { margin:0; font:400 clamp(28px,2.8vw,43px)/1.03 "Anton",Impact,sans-serif; letter-spacing:.025em; }.hog-news-copy p { max-width:430px; margin:18px 0 28px; color:#79736b; font-size:11px; line-height:1.75; }.hog-news-coming { display:flex; align-items:center; gap:14px; width:210px; min-height:46px; padding:0 14px; border:1px solid #d6cec5; color:#7e776f; font-size:8px; font-weight:700; letter-spacing:.08em; }.hog-news-coming i { flex:1; height:1px; background:var(--ember); }.hog-news-coming b { color:var(--ember); font-size:16px; font-weight:400; }.hog-news-image-two { grid-column:2; }.hog-news-grid > .hog-news-copy:nth-child(3) { grid-column:1; grid-row:2; }

/* Isolated Customer Reviews section */
.kbbq-reviews-section { position:relative; min-height:650px; display:grid; place-items:center; overflow:hidden; isolation:isolate; padding:90px clamp(25px,6vw,100px); }
.kbbq-reviews-bg { position:absolute; z-index:-3; inset:-18% 0; background-image:url('https://images.unsplash.com/photo-1708388465047-5309a18c4c5d?auto=format&fit=crop&fm=jpg&q=76&w=2400'); background-position:center; background-size:cover; will-change:transform; transform:translate3d(0,0,0) scale(1.04); }
.kbbq-reviews-overlay { position:absolute; z-index:-2; inset:0; background:linear-gradient(120deg,rgba(7,7,6,.95),rgba(10,9,8,.86)); }
.kbbq-reviews-inner { width:min(1120px,100%); }
.kbbq-reviews-heading { margin-bottom:45px; color:#fff; text-align:center; }.kbbq-reviews-label { display:inline-block; margin:0 0 15px; padding:9px 14px; color:#fff; background:var(--ember); font-size:9px; font-weight:700; letter-spacing:.08em; }.kbbq-reviews-heading h2 { margin:0; font:400 clamp(42px,4.4vw,68px)/1 "Anton",Impact,sans-serif; letter-spacing:.025em; }.kbbq-reviews-heading h2 em { color:var(--ember); font-style:normal; }.kbbq-reviews-mark { display:flex; align-items:center; justify-content:center; gap:7px; margin-top:22px; }.kbbq-reviews-mark span { width:37px; height:1px; background:#615b54; }.kbbq-reviews-mark i { width:6px; height:6px; background:var(--ember); transform:rotate(45deg); }
.kbbq-reviews-slider-wrap { position:relative; padding:0 46px; }.kbbq-reviews-viewport { overflow:hidden; touch-action:pan-y; }.kbbq-reviews-track { display:flex; gap:18px; transition:transform .55s cubic-bezier(.22,.61,.36,1); will-change:transform; }
.kbbq-review-card { flex:0 0 calc((100% - 18px)/2); min-width:0; min-height:245px; display:grid; grid-template-columns:112px 1fr; gap:23px; padding:30px; border-bottom:2px solid var(--ember); color:#1b1916; background:#fff; }
.kbbq-review-avatar { display:grid; place-items:center; width:112px; height:122px; color:#fff; font:400 34px "Anton",Impact,sans-serif; letter-spacing:.04em; background:linear-gradient(135deg,#342f2a,#171513); }.kbbq-review-avatar-two,.kbbq-review-avatar-four { background:linear-gradient(135deg,#ef4823,#6e1d0d); }
.kbbq-review-body { display:flex; flex-direction:column; min-width:0; }.kbbq-review-body > p { margin:0; color:#777169; font-size:12px; line-height:1.65; }.kbbq-review-bottom { position:relative; display:grid; grid-template-columns:auto 1fr; align-items:end; gap:16px; margin-top:auto; padding-top:18px; }.kbbq-review-stars { color:var(--ember); font-size:16px; letter-spacing:2px; white-space:nowrap; }.kbbq-review-bottom > span:nth-child(2) { display:flex; flex-direction:column; gap:4px; }.kbbq-review-bottom strong { font:400 16px "Anton",Impact,sans-serif; letter-spacing:.04em; }.kbbq-review-bottom small { font-size:7px; font-weight:700; letter-spacing:.1em; }.kbbq-review-bottom > b { position:absolute; right:0; bottom:-6px; color:var(--ember); font:400 52px/1 Georgia,serif; }
.kbbq-reviews-arrow { position:absolute; z-index:2; top:50%; width:38px; height:38px; border:1px solid #5e5851; border-radius:50%; color:#fff; background:rgba(10,9,8,.72); font-size:17px; cursor:pointer; transform:translateY(-50%); transition:.2s; }.kbbq-reviews-arrow:hover { border-color:var(--ember); color:var(--ember); }.kbbq-reviews-prev { left:0; }.kbbq-reviews-next { right:0; }
.kbbq-reviews-dots { display:flex; justify-content:center; gap:9px; margin-top:25px; }.kbbq-reviews-dots button { width:24px; height:3px; padding:0; border:0; background:#555049; cursor:pointer; transition:.25s; }.kbbq-reviews-dots button.is-active { width:43px; background:var(--ember); }

/* HOGHEAVEN footer */
.hog-footer { position:relative; min-height:585px; overflow:hidden; isolation:isolate; color:#fff; background:#0b0a09; }
.hog-footer-bg { position:absolute; z-index:-3; inset:0; background:url('./assets/hogheaven-footer-landscape.png') center/cover no-repeat; }
.hog-footer-overlay { position:absolute; z-index:-2; inset:0; background:linear-gradient(180deg,rgba(8,7,6,.55),rgba(8,7,6,.88) 52%,rgba(8,7,6,.98)); }
.hog-footer-main { display:grid; grid-template-columns:1.2fr 1fr 1fr 1fr; gap:clamp(35px,5vw,80px); width:min(1400px,calc(100% - 80px)); margin:auto; padding:145px 0 85px; }
.hog-footer-brand { display:flex; align-items:center; gap:15px; width:max-content; }.hog-footer-mark { display:grid; place-items:center; width:48px; height:48px; border:1px solid var(--ember); color:var(--ember); font-size:20px; transform:rotate(45deg); }.hog-footer-brand > span:last-child { display:flex; flex-direction:column; }.hog-footer-brand b { font-size:24px; letter-spacing:.04em; }.hog-footer-brand small { margin-top:6px; color:#aaa39b; font-size:10px; letter-spacing:.28em; }.hog-footer-brand-col > p { max-width:320px; margin:25px 0; color:#bdb6ae; font-size:14px; line-height:1.75; }
.hog-footer-logo-image { display:block; width:240px; max-width:100%; height:auto; }
.hog-footer-socials { display:flex; gap:9px; }.hog-footer-socials a { display:grid; place-items:center; width:36px; height:36px; border:1px solid rgba(255,255,255,.28); border-radius:50%; color:#fff; transition:border-color .2s,color .2s,transform .2s; }.hog-footer-socials a:hover { border-color:var(--ember); color:var(--ember); transform:translateY(-2px); }.hog-footer-socials svg { width:16px; height:16px; overflow:visible; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }.hog-footer-socials svg path:not(.icon-fill) { fill:currentColor; stroke:none; }.hog-footer-socials svg .icon-fill { fill:currentColor; stroke:none; }
.hog-footer-column { display:flex; flex-direction:column; align-items:flex-start; }.hog-footer-column h2 { width:100%; margin:0 0 27px; padding-bottom:17px; border-bottom:1px solid rgba(255,255,255,.2); font:400 24px "Anton",Impact,sans-serif; letter-spacing:.04em; }.hog-footer-column address { margin:0 0 12px; color:#ddd6ce; font-size:14px; font-style:normal; line-height:1.7; }.hog-footer-column > a,.hog-footer-column > span { margin-bottom:12px; color:#eee8e1; font-size:14px; }.hog-footer-column > a:hover { color:var(--ember); }
.hog-footer-menu { gap:3px; }.hog-footer-menu > a { display:flex; align-items:center; gap:10px; }.hog-footer-menu > a b { color:var(--ember); font-size:16px; font-weight:400; }
.hog-footer-hours { display:grid; grid-template-columns:auto 1fr; gap:14px 18px; width:100%; }.hog-footer-hours span { color:#aaa39b; font-size:11px; font-weight:700; letter-spacing:.08em; }.hog-footer-hours b { font-size:13px; font-weight:500; }.hog-footer-column > small { margin-top:24px; color:#9e9790; font-size:11px; }
.hog-footer-bottom { min-height:70px; display:flex; align-items:center; justify-content:space-between; gap:30px; padding:0 clamp(30px,5vw,80px); border-top:1px solid rgba(255,255,255,.1); background:rgba(7,7,6,.85); }.hog-footer-bottom p,.hog-footer-bottom span { margin:0; color:#aaa39b; font-size:10px; letter-spacing:.08em; }.hog-footer-bottom > div { display:flex; align-items:center; gap:30px; }.hog-footer-bottom a { display:grid; place-items:center; width:42px; height:42px; border-radius:50%; color:#fff; background:var(--ember); font-size:18px; transition:transform .2s; }.hog-footer-bottom a:hover { transform:translateY(-3px); }

@media (max-width:1100px) {
  .site-header { height:76px; padding:0 22px; }.main-nav { position:absolute; top:76px; left:0; right:0; display:none; flex-direction:column; gap:0; padding:12px 24px 25px; background:#0a0a09; }.main-nav.is-open { display:flex; }.main-nav a { width:100%; padding:14px 0; }.main-nav a::after { bottom:8px; }.menu-toggle { display:block; margin-left:auto; margin-right:20px; font-size:11px; letter-spacing:.14em; cursor:pointer; }.reserve-button { padding:0 12px; }.reserve-button i,.reserve-button b { display:none; }.brand { min-width:0; }.brand-copy b { font-size:15px; }
  .hero-frame { inset:110px 22px 76px; }.slide-content { padding-top:55px; }.slide h1,.slide h2 { font-size:clamp(54px,13vw,96px); }.slide-arrow { display:none; }.slide-count { left:33px; bottom:85px; }
}
@media (max-width:960px) {
  .about-section { padding:100px 45px 120px; }.about-inner { grid-template-columns:1fr; gap:85px; max-width:680px; }.about-image-wrap { height:520px; }.about-copy { padding:0 15px; }
  .catering-section { padding:90px 35px 100px; }.catering-grid { grid-template-columns:1fr 1fr; }.catering-visual { grid-column:1/-1; grid-row:1; min-height:480px; }.catering-info,.catering-cta { min-height:350px; }
  .services-section { min-height:0; padding:90px 0 85px; }.service-card { flex-basis:310px; }.service-slider-wrap { padding:0 55px; }
  .parallax-promo-section { height:430px; }
  .food-menu-section { padding:90px 40px 80px; }.food-menu-head { align-items:flex-start; flex-direction:column; }.menu-filters { justify-content:flex-start; }.food-menu-layout { grid-template-columns:1fr; }.menu-feature { display:grid; grid-template-columns:42% 58%; }.menu-feature-image { height:auto; min-height:365px; }
  .hog-news-section { padding:90px 40px 100px; }.hog-news-grid { grid-auto-rows:290px; }.hog-news-copy { padding:38px; }
  .kbbq-reviews-section { min-height:620px; padding:80px 30px; }.kbbq-review-card { padding:25px; grid-template-columns:90px 1fr; gap:18px; }.kbbq-review-avatar { width:90px; height:105px; }
  .hog-footer-main { grid-template-columns:1fr 1fr; width:min(760px,calc(100% - 70px)); padding-top:120px; }.hog-footer { min-height:0; }
}
@media (max-width:560px) {
  .reserve-button { display:none; }.brand-mark { width:36px; height:36px; }.slide-content { width:88vw; }.eyebrow { letter-spacing:.2em; }.subline { line-height:1.5; }.subline span { display:none; }.hero-actions { gap:22px; flex-wrap:wrap; }.hero-frame { top:98px; bottom:68px; }.slider-nav { bottom:28px; }.slider-dot { width:42px; height:42px; }.slide-count { display:none; }
  .about-section { min-height:0; padding:90px 22px 100px; }.about-inner { gap:68px; }.about-image-wrap { height:410px; box-shadow:12px 14px 0 #e7dfd4; }.about-number { left:2px; top:-48px; font-size:78px; }.about-stamp { right:-4px; bottom:-38px; width:104px; height:104px; }.about-stamp b { bottom:14px; }.about-copy { padding:0; }.about-copy h2 { font-size:48px; }.about-lead { font-size:16px; }.about-details { flex-wrap:wrap; }.about-details a { width:100%; margin:12px 0 0 68px; }
  .catering-section { padding:80px 18px 90px; }.catering-heading { margin-bottom:38px; }.catering-heading h2 { font-size:48px; }.catering-grid { display:flex; flex-direction:column; gap:14px; }.catering-visual { order:1; min-height:410px; }.catering-info { order:2; }.catering-cta { order:3; }.catering-info,.catering-cta { min-height:320px; padding:38px 30px; }.catering-overlay { left:25px; }.catering-overlay strong { font-size:50px; }.catering-overlay p { max-width:240px; line-height:1.5; }.catering-badge { width:76px; height:76px; right:14px; top:14px; }
  .services-section { padding-top:80px; }.services-heading h2 { font-size:48px; }.services-heading > p:not(.section-label) { line-height:1.6; }.service-slider-wrap { padding:0 0 0 22px; margin-top:35px; }.service-track { padding-right:22px; scroll-padding-inline:22px; }.service-card { flex-basis:82vw; }.service-image { height:300px; }.service-arrow { display:none; }
  .parallax-promo-section { height:380px; }.parallax-promo-bg { inset:0; transform:none!important; will-change:auto; }.parallax-promo-content { width:94vw; }.parallax-promo-title { font-size:clamp(38px,11vw,53px); line-height:.98; }.parallax-promo-label { font-size:8px; }.parallax-promo-button { margin-top:25px; }
  .food-menu-section { padding:80px 18px 75px; }.food-menu-head { margin-bottom:35px; gap:27px; }.food-menu-head h2 { font-size:50px; }.menu-filters { display:grid; grid-template-columns:1fr 1fr; width:100%; }.menu-filters button:first-child { grid-column:1/-1; }.menu-feature { display:block; }.menu-feature-image { min-height:0; height:260px; }.menu-card-grid { grid-template-columns:1fr; }.menu-dish { grid-template-columns:44% 56%; height:180px; }.dish-image { height:178px; }.dish-copy { padding:17px; }.dish-copy h3 { font-size:18px; }.dish-copy p { font-size:9px; }.dish-copy strong { margin-top:13px; }
  .hog-news-section { padding:80px 18px 90px; }.hog-news-heading { margin-bottom:38px; }.hog-news-heading h2 { font-size:49px; }.hog-news-heading > p:not(.section-label) { line-height:1.6; }.hog-news-grid { display:flex; flex-direction:column; }.hog-news-grid > article { min-height:270px; }.hog-news-copy { padding:35px 28px; }.hog-news-image-one { order:1; }.hog-news-grid > .hog-news-copy:nth-child(2) { order:2; }.hog-news-image-two { order:3; }.hog-news-grid > .hog-news-copy:nth-child(3) { order:4; }.hog-news-copy h3 { font-size:34px; }
  .kbbq-reviews-section { min-height:600px; padding:75px 16px; }.kbbq-reviews-bg { inset:0; transform:none!important; will-change:auto; }.kbbq-reviews-heading { margin-bottom:35px; }.kbbq-reviews-heading h2 { font-size:44px; }.kbbq-reviews-slider-wrap { padding:0 30px; }.kbbq-review-card { flex-basis:100%; min-height:360px; grid-template-columns:1fr; gap:17px; padding:26px; }.kbbq-review-avatar { width:74px; height:74px; }.kbbq-review-body > p { font-size:12px; }.kbbq-review-bottom { grid-template-columns:1fr; align-items:start; }.kbbq-review-bottom > b { right:0; }.kbbq-reviews-arrow { width:32px; height:32px; }.kbbq-reviews-prev { left:-5px; }.kbbq-reviews-next { right:-5px; }
  .hog-footer-bg { background-position:64% center; }.hog-footer-main { grid-template-columns:1fr; gap:45px; width:calc(100% - 44px); padding:100px 0 65px; }.hog-footer-brand-col > p { max-width:100%; }.hog-footer-bottom { flex-direction:column; align-items:flex-start; padding:25px 22px; }.hog-footer-bottom > div { width:100%; justify-content:space-between; }.hog-footer-bottom span { max-width:220px; line-height:1.5; }
}
@media (prefers-reduced-motion:reduce) { .kbbq-reviews-bg { transform:none!important; }.kbbq-reviews-track { transition-duration:.01ms!important; } }
@media (prefers-reduced-motion:reduce) { .parallax-promo-bg { transform:none!important; }.parallax-promo-content { opacity:1; transform:none; } }
@media (prefers-reduced-motion:reduce) { .slide,.slider-dot,* { transition-duration:.01ms!important; } #smoke-canvas { display:none; } }

/* Subtle, one-time scroll reveals. Enabled by JS only. */
.scroll-reveal-ready .scroll-reveal-item { opacity:0; transform:translate3d(0,18px,0); transition:opacity .68s ease,transform .68s cubic-bezier(.22,.61,.36,1); transition-delay:var(--scroll-reveal-delay,0ms); will-change:opacity,transform; }
.scroll-reveal-ready .scroll-reveal-item.scroll-reveal-left { transform:translate3d(-16px,0,0); }
.scroll-reveal-ready .scroll-reveal-item.scroll-reveal-right { transform:translate3d(16px,0,0); }
.scroll-reveal-ready .scroll-reveal-item.is-revealed { opacity:1; transform:translate3d(0,0,0); will-change:auto; }
@media (prefers-reduced-motion:reduce) { .scroll-reveal-ready .scroll-reveal-item { opacity:1!important; transform:none!important; transition:none!important; } }
