:root{--ink:#0b0b0b;--surface:#f2efe9;--surface-2:#dcd7cf;--panel:#151515;--text:#101010;--muted:#5c5954;--accent:#ef4423;--accent-2:#ffb23e;--white:#fff;--line:rgba(15,15,15,.2);--display:"Barlow Condensed",sans-serif;--body:"DM Sans",sans-serif;--serif:"DM Serif Display",serif;--max:1440px;--pad:clamp(1.25rem,6vw,7rem)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--surface);color:var(--text);font-family:var(--body);font-size:16px;line-height:1.6;transition:background .25s,color .25s}a{color:inherit}img{display:block;max-width:100%}button{font:inherit}.skip{position:fixed;top:-5rem;left:1rem;background:#fff;color:#111;padding:.75rem 1rem;z-index:1000}.skip:focus{top:1rem}
.design-dock{position:fixed;z-index:100;left:50%;bottom:1rem;transform:translateX(-50%);display:flex;align-items:center;gap:.7rem;background:rgba(10,10,10,.92);color:#fff;padding:.45rem;border:1px solid rgba(255,255,255,.2);box-shadow:0 12px 40px rgba(0,0,0,.3);backdrop-filter:blur(15px)}.design-dock>span{font-size:.66rem;text-transform:uppercase;letter-spacing:.14em;padding:0 .65rem;color:#aaa}.design-dock>div{display:flex;gap:.3rem}.design-choice{border:0;background:transparent;color:#aaa;padding:.65rem .8rem;cursor:pointer;font-size:.75rem;white-space:nowrap}.design-choice b{color:#777;margin-right:.25rem}.design-choice.is-active{background:var(--accent);color:#fff}.design-choice.is-active b{color:inherit}
.site-header{height:82px;width:100%;padding:0 var(--pad);position:absolute;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;color:#fff;border-bottom:1px solid rgba(255,255,255,.18)}.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none}.brand-mark{display:grid;place-items:center;width:40px;height:40px;background:var(--accent);color:#fff;font:900 1.6rem/1 var(--display);transform:skew(-8deg)}.brand-type{font:800 1.4rem/1 var(--display);letter-spacing:.04em}.brand-type b{color:var(--accent)}nav{display:flex;align-items:center;gap:2rem}nav a{text-decoration:none;font-size:.82rem;font-weight:700}nav a:not(.nav-book):hover{color:var(--accent-2)}.nav-book{border:1px solid rgba(255,255,255,.75);padding:.72rem 1rem;text-transform:uppercase;letter-spacing:.1em}.nav-book:hover{background:#fff;color:#111}.nav-toggle{display:none;background:none;border:1px solid rgba(255,255,255,.45);color:#fff;text-transform:uppercase;letter-spacing:.1em;padding:.55rem .75rem}
.hero{min-height:780px;height:100vh;max-height:970px;background:#080808;position:relative;color:#fff;overflow:hidden}.hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.91) 0%,rgba(0,0,0,.68) 42%,rgba(0,0,0,.08) 78%),linear-gradient(0deg,rgba(0,0,0,.72),transparent 48%)}.hero-content{position:relative;z-index:2;max-width:860px;margin-left:var(--pad);padding-top:clamp(9.5rem,20vh,13rem)}.eyebrow,.section-label{text-transform:uppercase;font-weight:800;font-size:.76rem;letter-spacing:.18em}.eyebrow{display:flex;align-items:center;gap:.7rem;margin:0 0 1.5rem}.eyebrow:before{content:"";width:40px;height:3px;background:var(--accent)}
h1,h2{margin:0;font-family:var(--display);font-weight:900;text-transform:uppercase;letter-spacing:-.025em;line-height:.87}h1{font-size:clamp(4.7rem,10vw,9.5rem)}h1 em,h2 em{color:var(--accent);font-style:italic}.hero-copy{max-width:620px;color:#ddd;font-size:clamp(1rem,1.4vw,1.2rem);margin:1.6rem 0 2rem}.hero-actions{display:flex;align-items:center;gap:1.6rem}.button{display:inline-flex;align-items:center;justify-content:center;gap:1.4rem;text-decoration:none;text-transform:uppercase;letter-spacing:.11em;font-size:.78rem;font-weight:800;padding:1rem 1.25rem;transition:transform .2s,background .2s}.button:hover{transform:translateY(-2px)}.primary{background:var(--accent);color:#fff}.quiet-link{font-size:.8rem;color:#ddd;text-underline-offset:5px}
.hero-proof{position:absolute;z-index:3;left:var(--pad);bottom:2.5rem;display:flex;border-top:1px solid rgba(255,255,255,.25);padding-top:1rem}.hero-proof>div{display:flex;flex-direction:column;min-width:150px;margin-right:2rem;padding-right:2rem;border-right:1px solid rgba(255,255,255,.2)}.hero-proof>div:last-child{border:0}.hero-proof strong{font:900 1.8rem/1 var(--display)}.hero-proof span{font-size:.67rem;text-transform:uppercase;letter-spacing:.09em;color:#aaa}.hero-stamp{position:absolute;right:2rem;top:50%;z-index:3;writing-mode:vertical-rl;transform:translateY(-50%);font-size:.62rem;letter-spacing:.34em;color:#bbb}.marquee{overflow:hidden;background:var(--accent);color:#fff;padding:.92rem 0;white-space:nowrap}.marquee div{font:800 1rem var(--display);letter-spacing:.1em;text-transform:uppercase;text-align:center}.marquee i{font-style:normal;font-size:.6rem;margin:0 1.5rem}
.section{padding:clamp(5rem,9vw,9rem) var(--pad);max-width:var(--max);margin:0 auto}.section-label{display:flex;align-items:center;gap:1rem;margin-bottom:3rem}.section-label span{color:var(--accent)}.section-label:after{content:"";width:72px;height:1px;background:var(--line)}.section-label.light:after{background:rgba(255,255,255,.24)}.experience-intro{display:grid;grid-template-columns:1.3fr .7fr;gap:8vw;align-items:start}.experience-intro h2,.ross h2,.faq h2{font-size:clamp(3.8rem,6.5vw,7rem)}.lead-copy{color:var(--muted);max-width:540px}.lead-copy p:first-child{color:var(--text);font-size:1.12rem}.principles{display:grid;grid-template-columns:repeat(3,1fr);margin-top:5rem;border-top:1px solid var(--line)}.principles article{padding:1.8rem 2.2rem 1rem 0;min-height:240px;border-right:1px solid var(--line)}.principles article+article{padding-left:2.2rem}.principles article:last-child{border:0}.principles span{color:var(--accent);font:800 1rem var(--display)}.principles h3{font:800 2.2rem/1 var(--display);text-transform:uppercase;margin:2.8rem 0 .8rem}.principles p{color:var(--muted);max-width:330px}
.classes{max-width:none;background:var(--panel);color:#fff}.class-heading{max-width:calc(var(--max) - var(--pad)*2);margin:0 auto;display:flex;align-items:end;justify-content:space-between;gap:4rem}.class-heading h2{font-size:clamp(4rem,7vw,7.5rem)}.class-heading>p{color:#aaa;max-width:430px;margin-bottom:.5rem}.class-grid{max-width:calc(var(--max) - var(--pad)*2);margin:4rem auto 0;display:grid;grid-template-columns:repeat(3,1fr);border:1px solid rgba(255,255,255,.18)}.class-card{padding:2rem;display:flex;flex-direction:column;min-height:610px;border-right:1px solid rgba(255,255,255,.18);background:#181818}.class-card:last-child{border:0}.class-card.featured{background:var(--accent);color:#fff}.class-card.night-card{background:#0b1118}.card-top{display:flex;align-items:center;justify-content:space-between}.card-id{font:800 1rem var(--display);color:var(--accent)}.featured .card-id{color:#fff}.tag{border:1px solid currentColor;padding:.28rem .5rem;font-size:.62rem;text-transform:uppercase;letter-spacing:.12em}.tag.new{background:var(--accent);border-color:var(--accent)}
.class-card h3{font:900 clamp(2.4rem,4vw,4rem)/.9 var(--display);text-transform:uppercase;margin:4.5rem 0 .6rem}.venue{font-size:.73rem;text-transform:uppercase;letter-spacing:.08em;color:#999;min-height:2.5rem}.featured .venue{color:rgba(255,255,255,.76)}.class-facts{display:grid;grid-template-columns:1.2fr .7fr 1fr;align-items:end;border-top:1px solid rgba(255,255,255,.2);border-bottom:1px solid rgba(255,255,255,.2);padding:1.25rem 0;margin:1.3rem 0}.class-facts strong{font:900 2.7rem/1 var(--display)}.class-facts span{font-size:.7rem;text-transform:uppercase;letter-spacing:.07em;line-height:1.4}.card-copy{color:#aaa;font-size:.9rem}.featured .card-copy{color:rgba(255,255,255,.86)}.card-action{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding:1rem 0 0;border-top:1px solid currentColor;text-decoration:none;text-transform:uppercase;letter-spacing:.09em;font-size:.72rem;font-weight:800}.dual-actions{margin-top:auto}.dual-actions .card-action{margin-top:.65rem}.card-action:hover span{transform:translate(2px,-2px)}
.ross{display:grid;grid-template-columns:150px 1.1fr .9fr;align-items:center;gap:5vw}.ross-monogram{width:135px;height:135px;border:7px solid var(--accent);border-radius:50%;display:grid;place-items:center;background:var(--ink);color:var(--accent);font:900 3.5rem var(--display);transform:rotate(-7deg)}.ross-copy{color:var(--muted)}.ross-copy .big-copy{color:var(--text);font-size:1.12rem;font-weight:600}.manifesto{background:var(--accent);color:#fff;padding:3.5rem var(--pad);display:flex;justify-content:space-between;gap:2rem}.manifesto p{margin:0;font:900 clamp(2.2rem,5vw,5rem)/.9 var(--display);text-transform:uppercase}.manifesto p:nth-child(2){font-style:italic;color:#171717}
.faq{background:var(--surface-2);max-width:none}.faq>.section-label,.faq-layout{max-width:calc(var(--max) - var(--pad)*2);margin-left:auto;margin-right:auto}.faq-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:8vw}.faq-list{border-top:1px solid var(--line)}.faq-list details{border-bottom:1px solid var(--line);padding:1.25rem 0}.faq-list summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:1rem;font:800 1.4rem var(--display);text-transform:uppercase}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary:after{content:"+";color:var(--accent);font-size:1.5rem}.faq-list details[open] summary:after{content:"−"}.faq-list p{color:var(--muted);max-width:650px;margin:.8rem 2rem .25rem 0}
.final-cta{background:#080808;color:#fff;text-align:center;padding:clamp(6rem,11vw,10rem) 1.2rem;display:flex;flex-direction:column;align-items:center}.final-cta h2{font-size:clamp(4.3rem,9vw,9rem);margin-bottom:2rem}.final-cta .eyebrow:before{display:none}.final-cta .eyebrow{color:#aaa}footer{background:#080808;color:#999;border-top:1px solid #252525;padding:3rem var(--pad) 6rem;display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center;gap:2rem}.footer-brand{color:#fff}footer>p{text-align:center;text-transform:uppercase;font:800 .9rem var(--display)}footer>div{display:flex;justify-content:flex-end;gap:1.4rem}footer>div a{text-transform:uppercase;text-decoration:none;font-size:.7rem;letter-spacing:.08em}footer>small{grid-column:1/-1;text-align:center;border-top:1px solid #222;padding-top:1.5rem;font-size:.68rem}

/* Design 02 — premium editorial */
body[data-design="editorial"]{--surface:#eee7dc;--surface-2:#e2d5c2;--panel:#243229;--text:#1e2a23;--muted:#675f55;--accent:#b43c28;--accent-2:#d99748;--ink:#1e2a23;--line:rgba(30,42,35,.23)}body[data-design="editorial"] .brand-mark{border-radius:50%;transform:none;background:transparent;border:2px solid currentColor;font-family:var(--serif)}body[data-design="editorial"] .brand-type{font-family:var(--serif);font-weight:400;letter-spacing:0}body[data-design="editorial"] .brand-type b{font-weight:400}body[data-design="editorial"] .hero{min-height:820px}body[data-design="editorial"] .hero>img{width:58%;left:auto;right:0}body[data-design="editorial"] .hero-shade{background:linear-gradient(90deg,#1e2a23 0%,#1e2a23 43%,rgba(30,42,35,.9) 52%,rgba(30,42,35,.05) 78%)}body[data-design="editorial"] h1,body[data-design="editorial"] h2{font-family:var(--serif);font-weight:400;text-transform:none;line-height:.95;letter-spacing:-.02em}body[data-design="editorial"] h1{font-size:clamp(4.3rem,8vw,8rem);max-width:780px}body[data-design="editorial"] h1 em,body[data-design="editorial"] h2 em{font-weight:400}body[data-design="editorial"] .hero-stamp{display:none}body[data-design="editorial"] .marquee{background:#d9c4a4;color:#1e2a23}body[data-design="editorial"] .experience-intro{grid-template-columns:.9fr 1.1fr}body[data-design="editorial"] .principles article{min-height:280px}body[data-design="editorial"] .principles h3,body[data-design="editorial"] .class-card h3,body[data-design="editorial"] .faq-list summary{font-family:var(--serif);font-weight:400;text-transform:none}body[data-design="editorial"] .class-heading{align-items:start}body[data-design="editorial"] .class-grid{gap:1rem;border:0}body[data-design="editorial"] .class-card{border:0;min-height:640px;background:#344339}body[data-design="editorial"] .class-card.featured{background:#f4eee5;color:#1e2a23;box-shadow:inset 0 0 0 1px rgba(30,42,35,.22)}body[data-design="editorial"] .class-card.featured .venue,body[data-design="editorial"] .class-card.featured .card-copy{color:#675f55}body[data-design="editorial"] .class-card.featured .class-facts{border-color:rgba(30,42,35,.2)}body[data-design="editorial"] .class-card.night-card{background:#111c24}body[data-design="editorial"] .ross-monogram{border-radius:0;transform:none;background:transparent;font-family:var(--serif)}body[data-design="editorial"] .manifesto{background:#d9c4a4;color:#1e2a23}body[data-design="editorial"] .manifesto p:nth-child(2){color:var(--accent)}

/* Design 03 — modern night shift */
body[data-design="night"]{--surface:#07111c;--surface-2:#0e1b27;--panel:#09131e;--text:#f3f5f6;--muted:#9aa8b4;--accent:#ff5a23;--accent-2:#ffbf3f;--ink:#050b11;--line:rgba(255,255,255,.18)}body[data-design="night"] .site-header{background:rgba(4,10,16,.5);backdrop-filter:blur(12px)}body[data-design="night"] .brand-mark{background:#fff;color:#07111c;transform:none}body[data-design="night"] .hero>img{filter:saturate(.72) contrast(1.06);object-position:center}body[data-design="night"] .hero-shade{background:linear-gradient(0deg,#07111c 0%,rgba(7,17,28,.15) 55%,rgba(7,17,28,.58)),linear-gradient(90deg,rgba(7,17,28,.88),rgba(7,17,28,.02) 75%)}body[data-design="night"] .hero-content{padding-top:clamp(10rem,22vh,14rem)}body[data-design="night"] h1{max-width:1000px;font-size:clamp(4.7rem,10.5vw,10rem)}body[data-design="night"] h1 em,body[data-design="night"] h2 em{color:var(--accent-2)}body[data-design="night"] .marquee{background:var(--accent-2);color:#07111c}body[data-design="night"] .experience-intro{grid-template-columns:1fr 1fr}body[data-design="night"] .principles article{background:#0c1924;padding:2rem;margin-right:.8rem;border:1px solid rgba(255,255,255,.1);min-height:270px}body[data-design="night"] .principles article+article{padding-left:2rem}body[data-design="night"] .principles article:last-child{border:1px solid rgba(255,255,255,.1);margin-right:0}body[data-design="night"] .class-grid{gap:1rem;border:0}body[data-design="night"] .class-card{border:1px solid rgba(255,255,255,.13);background:#0d1b27}body[data-design="night"] .class-card.featured{background:#131f29;border-color:var(--accent)}body[data-design="night"] .class-card.night-card{background:linear-gradient(150deg,#e94718,#ff6a28);color:#fff;border:0}body[data-design="night"] .night-card .venue,body[data-design="night"] .night-card .card-copy{color:rgba(255,255,255,.8)}body[data-design="night"] .ross-monogram{background:transparent;color:var(--accent-2);border-color:var(--accent-2);border-radius:10px;transform:none}body[data-design="night"] .manifesto{background:var(--accent-2);color:#07111c}body[data-design="night"] .manifesto p:nth-child(2){color:var(--accent);font-style:normal}body[data-design="night"] .final-cta,body[data-design="night"] footer{background:#03080d}

@media(max-width:1000px){.site-header{height:70px}.nav-toggle{display:block}nav{position:absolute;left:0;right:0;top:70px;background:#0a0a0a;padding:1.4rem;display:none;flex-direction:column;align-items:stretch}nav.open{display:flex}.nav-book{text-align:center}.hero{min-height:800px}.hero-stamp{display:none}.experience-intro,.faq-layout{grid-template-columns:1fr;gap:2.5rem}.principles{grid-template-columns:1fr}.principles article,.principles article+article{border-right:0;border-bottom:1px solid var(--line);padding:1.5rem 0;min-height:auto}.principles h3{margin:1.5rem 0 .5rem}.class-heading{display:block}.class-heading>p{margin-top:1.5rem}.class-grid{grid-template-columns:1fr}.class-card{border-right:0;border-bottom:1px solid rgba(255,255,255,.18);min-height:560px}.ross{grid-template-columns:120px 1fr}.ross-copy{grid-column:2}.manifesto{flex-direction:column}.manifesto p:nth-child(2){text-align:center}.manifesto p:nth-child(3){text-align:right}body[data-design="editorial"] .hero>img{width:100%}body[data-design="editorial"] .hero-shade{background:linear-gradient(90deg,rgba(30,42,35,.95),rgba(30,42,35,.45)),linear-gradient(0deg,#1e2a23,transparent 65%)}body[data-design="editorial"] .class-grid,body[data-design="night"] .class-grid{gap:1rem}body[data-design="night"] .principles article,body[data-design="night"] .principles article+article{margin:0 0 .8rem;padding:2rem}.footer-brand,footer>p,footer>div{grid-column:1/-1;justify-content:center;text-align:center}}
@media(max-width:650px){.design-dock{width:calc(100% - 1rem);bottom:.5rem;justify-content:center}.design-dock>span{display:none}.design-choice{padding:.65rem .55rem;font-size:.69rem}.design-choice b{display:none}.hero{height:auto;min-height:850px}.hero-content{margin-left:1.2rem;padding:9.5rem 1.2rem 0 0}.hero>img{object-position:64% center}.hero-shade{background:linear-gradient(90deg,rgba(0,0,0,.86),rgba(0,0,0,.22)),linear-gradient(0deg,rgba(0,0,0,.88),transparent 70%)}h1{font-size:4.1rem}.hero-actions{flex-direction:column;align-items:flex-start}.hero-proof{left:1.2rem;bottom:2rem;right:1.2rem;display:grid;grid-template-columns:1fr 1fr}.hero-proof>div{min-width:0;margin-right:.8rem;padding-right:.8rem}.hero-proof>div:last-child{display:none}.marquee div{text-align:left}.section{padding:4.5rem 1.2rem}.experience-intro h2,.ross h2,.faq h2,.class-heading h2{font-size:3.7rem}.class-card{padding:1.5rem;min-height:570px}.class-facts{grid-template-columns:1fr 1fr}.class-facts span:last-child{grid-column:1/-1;margin-top:1rem}.ross{grid-template-columns:1fr}.ross-monogram{width:105px;height:105px;font-size:2.6rem}.ross-copy{grid-column:1}.manifesto{padding:3rem 1.2rem}.final-cta h2{font-size:4rem}footer{grid-template-columns:1fr;padding:3rem 1.2rem 6.5rem}body[data-design="editorial"] .hero-shade{background:linear-gradient(90deg,rgba(30,42,35,.92),rgba(30,42,35,.32)),linear-gradient(0deg,#1e2a23,transparent 70%)}body[data-design="editorial"] h1{font-size:3.8rem}body[data-design="night"] h1{font-size:4rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button,body{transition:none}}

/* Guided booking journey */
.hero{min-height:780px;height:88vh;max-height:920px}.hero>img{width:118%;max-width:none;left:0;right:auto;object-position:center 38%}.hero-shade{background:radial-gradient(ellipse 72% 68% at 12% 78%,rgba(0,0,0,.99) 0%,rgba(0,0,0,.93) 38%,rgba(0,0,0,.62) 62%,transparent 86%),linear-gradient(90deg,rgba(0,0,0,.94) 0%,rgba(0,0,0,.74) 38%,rgba(0,0,0,.24) 68%,rgba(0,0,0,.05) 100%),linear-gradient(0deg,rgba(0,0,0,.88),transparent 64%)}.hero-content{padding-top:clamp(8.5rem,17vh,10.5rem)}.hero .eyebrow{font-size:clamp(.9rem,1.2vw,1.1rem);line-height:1.35;letter-spacing:.14em;max-width:860px}.hero-copy,.hero-proof{text-shadow:0 2px 12px rgba(0,0,0,.95)}
.logo-brand{width:108px;height:68px;overflow:hidden;display:block}.logo-brand img{width:100%;height:100%;object-fit:contain}.footer-brand{width:105px;height:86px;margin:0}
.date-finder{max-width:none;background:#f2efe9;color:#101010}.date-finder>*{max-width:calc(var(--max) - var(--pad)*2);margin-left:auto;margin-right:auto}.finder-heading{display:grid;grid-template-columns:1.25fr .75fr;gap:7vw;align-items:end}.finder-heading h2{font-size:clamp(3.8rem,6.5vw,7rem)}.finder-heading>p{max-width:500px;color:#5c5954;margin-bottom:.4rem;font-size:1.05rem}.step-tag{display:inline-flex;margin:0 0 1.2rem;background:var(--accent);color:#fff;padding:.4rem .65rem;text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;font-weight:800}
.preference-box{margin-top:3.5rem;background:#fff;border:1px solid #c8c2b9;padding:clamp(1.25rem,3vw,2.5rem)}.preference-title{margin:0;text-transform:uppercase;letter-spacing:.09em;font-weight:800;font-size:.86rem;display:flex;align-items:center;gap:.7rem}.preference-title span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#101010;color:#fff}.preference-options{display:flex;flex-wrap:wrap;gap:.65rem;margin:1.3rem 0 1.6rem}.preference{border:1px solid #aaa39a;background:#fff;color:#222;padding:.8rem 1rem;cursor:pointer;font-size:.88rem;font-weight:700}.preference:hover{border-color:var(--accent)}.preference.active{background:#111;color:#fff;border-color:#111}.recommendation{background:#111;color:#fff;padding:1.35rem 1.5rem;display:flex;align-items:center;justify-content:space-between;gap:2rem}.recommendation>div{display:flex;flex-direction:column}.recommend-label{color:var(--accent-2);text-transform:uppercase;letter-spacing:.12em;font-size:.68rem;font-weight:800}.recommendation strong{font:800 2rem/1.1 var(--display);text-transform:uppercase;margin:.35rem 0}.recommendation p{margin:0;color:#c7c7c7;font-size:.9rem}.recommendation .button{flex:0 0 auto}
.available-heading{margin-top:3.5rem;display:flex;justify-content:space-between;align-items:center;gap:1rem}.available-heading small{color:#666}.schedule-heading{margin-top:3.5rem;padding-top:2rem;border-top:2px solid #171717;display:flex;justify-content:space-between;align-items:end;gap:2rem}.schedule-heading h3{font:900 clamp(2rem,4vw,3.6rem)/.95 var(--display);text-transform:uppercase;margin:.45rem 0 0}.schedule-heading p{max-width:520px;margin:0;color:#5c5954}.date-grid{display:grid;gap:1rem;margin-top:1.2rem}.date-card{display:grid;grid-template-columns:120px 1fr auto 210px;align-items:center;gap:1.5rem;background:#fff;border:1px solid #c8c2b9;padding:1rem}.date-card.next{border:2px solid var(--accent)}.date-badge{background:#111;color:#fff;min-height:94px;display:flex;align-items:center;justify-content:center;gap:.6rem}.date-badge strong{font:900 3.6rem/1 var(--display)}.date-badge span{font:800 .82rem/1.15 var(--display);letter-spacing:.08em}.date-info h3{font:900 2.2rem/1 var(--display);text-transform:uppercase;margin:.25rem 0}.date-info p{margin:0;color:#5c5954;font-size:.9rem}.availability{color:var(--accent);font-size:.67rem;font-weight:800;text-transform:uppercase;letter-spacing:.12em}.date-price{display:flex;flex-direction:column;text-align:right}.date-price strong{font:900 2rem/1 var(--display)}.date-price span{font-size:.68rem;color:#777;text-transform:uppercase}.date-book{background:var(--accent);color:#fff;text-decoration:none;text-transform:uppercase;letter-spacing:.08em;font-size:.76rem;font-weight:800;padding:1rem;display:flex;justify-content:space-between;align-items:center}.date-book:hover{background:#ff572f}.booking-note{margin-top:1rem;background:#ded9d1;padding:1rem 1.2rem;color:#47433e;font-size:.86rem}.best-for{font-size:.92rem;color:#ddd;border-left:3px solid var(--accent);padding-left:.8rem}.featured .best-for{color:#fff;border-left-color:#111}
.gallery-section{background:#0b0b0b;color:#fff;padding-bottom:clamp(4rem,8vw,7rem)}.gallery-intro{display:grid;grid-template-columns:1.15fr .85fr;gap:8vw;align-items:end}.gallery-intro h2{font-size:clamp(4rem,7vw,7.5rem)}.gallery-intro>p{color:#aaa;font-size:1.05rem;margin-bottom:.5rem}.photo-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:260px;gap:.55rem;padding:0 .55rem}.photo-grid figure{margin:0;overflow:hidden;background:#181818}.photo-grid figure.wide{grid-column:span 2}.photo-grid img{width:100%;height:100%;object-fit:cover;filter:saturate(.94);transition:transform .35s ease,filter .35s ease}.photo-grid figure:hover img{transform:scale(1.025);filter:saturate(1.08)}.gallery-extra{display:none}.photo-grid.expanded .gallery-extra{display:block}.gallery-control{display:flex;justify-content:center;margin-top:2rem}.gallery-toggle{border:1px solid #777;background:transparent;color:#fff;padding:1rem 1.4rem;text-transform:uppercase;letter-spacing:.1em;font-size:.76rem;font-weight:800;cursor:pointer}.gallery-toggle:hover{border-color:var(--accent);color:var(--accent)}

@media(max-width:1000px){.hero>img{width:100%;left:0;object-position:52% center}.logo-brand{width:88px;height:58px}.finder-heading{grid-template-columns:1fr;gap:1.2rem}.schedule-heading{align-items:start;flex-direction:column;gap:1rem}.date-card{grid-template-columns:100px 1fr auto}.date-book{grid-column:1/-1}.date-price{padding-right:.5rem}.gallery-intro{grid-template-columns:1fr;gap:1.5rem}.photo-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:260px}}
@media(max-width:650px){.hero{min-height:900px;height:auto}.hero-content{padding-top:8.5rem}.logo-brand{width:76px;height:54px}.finder-heading h2{font-size:3.65rem}.preference-options{display:grid;grid-template-columns:1fr 1fr}.preference{min-height:54px;padding:.7rem;font-size:.78rem}.recommendation{align-items:stretch;flex-direction:column}.recommendation .button{width:100%}.available-heading{align-items:flex-start;flex-direction:column}.date-card{grid-template-columns:82px 1fr;gap:1rem}.date-badge{min-height:82px}.date-info h3{font-size:1.9rem}.date-price{grid-column:1/-1;text-align:left;border-top:1px solid #ddd;padding-top:.8rem}.date-book{grid-column:1/-1}.footer-brand{margin:0 auto}.gallery-intro h2{font-size:3.8rem}.photo-grid{grid-template-columns:1fr;grid-auto-rows:270px;padding:0 .4rem}.photo-grid figure.wide{grid-column:auto}}
@media(max-width:650px){.hero>img{object-position:52% center}.hero-shade{background:radial-gradient(ellipse 125% 58% at 0% 76%,rgba(0,0,0,.98),rgba(0,0,0,.84) 52%,transparent 82%),linear-gradient(90deg,rgba(0,0,0,.92),rgba(0,0,0,.35)),linear-gradient(0deg,rgba(0,0,0,.9),transparent 76%)}}
footer>p{font-size:1.3rem;letter-spacing:.04em}
@media(max-width:650px){footer>p{font-size:1.05rem}}

/* Social ticker + store */
.social-ticker{position:relative;z-index:10;margin-top:82px;overflow:hidden;background:var(--accent);color:#fff;white-space:nowrap}.social-ticker div{display:inline-block;padding:.55rem 0;font:800 .9rem var(--display);letter-spacing:.12em;text-transform:uppercase;animation:social-roll 22s linear infinite}.social-ticker i{font-style:normal;font-size:.55rem;margin:0 2.2rem}.store-page{background:#f2efe9}.store-header{position:absolute;background:#0b0b0b}.store-hero{max-width:none;background:#0b0b0b;color:#fff;padding-top:clamp(5rem,8vw,8rem);padding-bottom:clamp(6rem,11vw,10rem)}.store-hero>.section-label,.store-hero-grid,.store-products>.section-label{max-width:calc(var(--max) - var(--pad)*2);margin-left:auto;margin-right:auto}.store-hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:8vw;align-items:end}.store-hero h1{font-size:clamp(4.8rem,9vw,9rem)}.store-intro{max-width:500px;color:#c9c9c9;font-size:1.05rem}.store-intro .button{margin-top:1rem}.store-products{max-width:none;background:#f2efe9}.product-card{max-width:calc(var(--max) - var(--pad)*2);margin:0 auto;display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,7vw,7rem);align-items:center}.product-images{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}.product-images img{width:100%;aspect-ratio:1;object-fit:cover;background:#fff}.product-copy h2{font:900 clamp(3.4rem,6vw,6.5rem)/.9 var(--display);text-transform:uppercase;letter-spacing:-.025em;margin:.6rem 0 1rem}.product-copy h2 em{color:var(--accent);font-style:italic}.product-copy p:not(.product-price){max-width:470px;color:#5c5954}.product-price{font:900 2.8rem/1 var(--display);margin:.4rem 0;color:#111}.store-note{background:var(--accent);color:#fff;padding:3rem var(--pad);display:flex;justify-content:center;align-items:center;gap:2rem}.store-note p{margin:0;font:900 2.8rem/1 var(--display);text-transform:uppercase}.store-note a{color:#fff;text-transform:uppercase;letter-spacing:.1em;font-weight:800}.store-page footer{margin-top:0}
@keyframes social-roll{from{transform:translateX(0)}to{transform:translateX(-35%)}}
@media(prefers-reduced-motion:reduce){.social-ticker div{animation:none}}
@media(max-width:1000px){.store-hero-grid,.product-card{grid-template-columns:1fr;gap:2.5rem}.store-hero h1{max-width:760px}.product-copy{max-width:680px}}
@media(max-width:650px){.social-ticker{margin-top:70px}.social-ticker div{font-size:.78rem}.store-hero{padding-top:4rem}.store-hero h1{font-size:4.4rem}.product-images{grid-template-columns:1fr 1fr}.product-copy h2{font-size:3.8rem}.store-note{flex-direction:column;align-items:flex-start;gap:1rem}.store-note p{font-size:2.4rem}}
.product-card+.product-card{margin-top:clamp(5rem,10vw,9rem);padding-top:clamp(5rem,8vw,8rem);border-top:1px solid #c8c2b9}.product-card-reverse .product-images{order:2;grid-template-columns:1fr}.product-card-reverse .product-copy{order:1}
.social-ticker{background:#080808;color:var(--accent);border-bottom:1px solid rgba(239,68,35,.35)}.social-ticker div{display:block;width:max-content;padding:.72rem 0;font-size:1.28rem;animation:social-roll 28s linear infinite}.social-ticker i{font-size:.7rem}
@media(max-width:650px){.social-ticker div{font-size:1rem}}
.contact-strip{position:relative;z-index:11;margin-top:82px;background:#080808;color:#fff;display:flex;align-items:center;gap:clamp(2rem,6vw,6rem);padding:.8rem var(--pad);border-bottom:1px solid #2b2b2b}.contact-strip a{color:#fff;text-decoration:none;font:700 1.05rem var(--body);letter-spacing:.01em}.contact-strip a:hover{color:var(--accent-2)}.social-ticker{margin-top:0;background:var(--accent);color:#fff;border-bottom:0}.social-ticker div{font-size:1.28rem}
@media(max-width:650px){.contact-strip{margin-top:70px;gap:1rem;padding:.65rem 1.2rem;flex-wrap:wrap}.contact-strip a{font-size:.82rem}.social-ticker div{font-size:1rem}}
.site-header{background:#080808}
nav a{font-size:1.1rem;font-weight:800}
.store-products .product-images{max-width:560px}.store-products .product-images img{max-height:360px;object-fit:contain;padding:1rem;background:#fff}
@media(max-width:650px){.store-products .product-images{max-width:100%}.store-products .product-images img{max-height:280px;padding:.6rem}}
.contact-page{background:#f2efe9}.contact-hero{max-width:none;background:#0b0b0b;color:#fff;padding-top:clamp(5rem,8vw,8rem);padding-bottom:clamp(6rem,11vw,10rem)}.contact-hero>.section-label,.contact-grid{max-width:calc(var(--max) - var(--pad)*2);margin-left:auto;margin-right:auto}.contact-grid{display:grid;grid-template-columns:1fr .85fr;gap:clamp(3rem,8vw,9rem);align-items:start}.contact-hero h1{font-size:clamp(5rem,10vw,9.5rem)}.contact-hero h1 em{color:var(--accent);font-style:italic}.contact-lead{max-width:520px;color:#c7c7c7;font-size:1.05rem;margin:2rem 0}.contact-details{display:flex;flex-wrap:wrap;gap:2rem}.contact-details a{color:#fff;text-decoration:none;font:800 1.45rem/1.1 var(--display);display:flex;flex-direction:column}.contact-details span{color:var(--accent-2);font:800 .7rem var(--body);letter-spacing:.12em;text-transform:uppercase;margin-bottom:.35rem}.contact-form{background:#fff;color:#111;padding:clamp(1.4rem,3vw,2.5rem);display:grid;gap:1.1rem}.contact-form label{display:grid;gap:.4rem;font-weight:700;font-size:.9rem}.contact-form input,.contact-form textarea{width:100%;border:1px solid #aaa39a;padding:.85rem;font:inherit;background:#faf9f7}.contact-form textarea{resize:vertical;min-height:150px}.contact-form .button{border:0;cursor:pointer;justify-self:start}.form-note{font-size:.8rem;color:#6a665f;margin:0}.contact-page footer{margin-top:0}
@media(max-width:1000px){.contact-grid{grid-template-columns:1fr;gap:2.5rem}.contact-form{max-width:680px}}
@media(max-width:650px){.contact-hero{padding-top:4rem}.contact-hero h1{font-size:4.4rem}.contact-details{flex-direction:column;gap:1.2rem}.contact-form .button{width:100%}}
.store-hero .eyebrow{font-size:1rem}
.store-page,.store-page .store-products{background:#0b0b0b;color:#fff}.store-page .product-copy p:not(.product-price){color:#c7c7c7}.store-page .product-price{color:#fff}
.store-hero{padding-top:clamp(3.5rem,5vw,5rem);padding-bottom:clamp(3.5rem,5vw,5rem)}.store-hero-grid{grid-template-columns:1fr auto;gap:3rem;align-items:center}.store-hero h1{font-size:clamp(3rem,6vw,6rem);white-space:nowrap}.store-intro{max-width:none}
@media(max-width:1000px){.store-hero-grid{grid-template-columns:1fr;gap:1.5rem}.store-hero h1{white-space:normal}}
.store-hero + .store-products{padding-top:clamp(1.5rem,3vw,3rem)}

/* Contact strip removed: ticker sits directly under the header */
.social-ticker{margin-top:82px}
@media(max-width:650px){.social-ticker{margin-top:70px}}
/* RW badge removed: two-column pitmaster section */
.ross{grid-template-columns:1.1fr .9fr}
@media(max-width:1000px){.ross{grid-template-columns:1fr}.ross-copy{grid-column:1}}
/* Hero button removed: hero fits its text, no empty space underneath */
.hero{height:auto;min-height:0;max-height:none}
.hero-content{padding-bottom:clamp(3.5rem,8vh,6rem)}

/* Moving tickers (socials + statement banner) with flame separators */
.social-ticker,.marquee{overflow:hidden;background:var(--accent);color:#fff;white-space:nowrap;padding:0}
.social-ticker .ticker-track,.marquee .ticker-track{display:flex;width:max-content;padding:.72rem 0;font:800 1.28rem/1 var(--display);letter-spacing:.12em;text-transform:uppercase;text-align:left;animation:ticker-roll var(--ticker-speed,60s) linear infinite}
.marquee{--ticker-speed:50s}
.ticker-group{display:flex;align-items:center;flex:0 0 auto}
.ticker-flame{display:block;width:1.05em;height:1.05em;margin:0 1.6rem;flex:0 0 auto;color:#fff}
@keyframes ticker-roll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(max-width:650px){.social-ticker .ticker-track,.marquee .ticker-track{font-size:1rem;padding:.65rem 0}.ticker-flame{margin:0 1.1rem}}
@media(prefers-reduced-motion:reduce){.social-ticker .ticker-track,.marquee .ticker-track{animation:none}}
/* Homepage: socials ticker sits under the hero instead of under the header */
.hero + .social-ticker{margin-top:0}
.hero:first-child{margin-top:82px}
@media(max-width:650px){.hero:first-child{margin-top:70px}}

/* "The Smoke School difference" points: dark cards with icons */
.principles{gap:1.2rem;border-top:0}
.principles article,.principles article+article{position:relative;overflow:hidden;background:#0b0b0b;color:#fff;padding:2.4rem 2.2rem 2.6rem;min-height:0;border:0;border-radius:4px;transition:transform .3s ease}
.principles article::after{content:"";position:absolute;left:0;bottom:0;height:5px;width:30%;background:var(--accent);transition:width .4s ease}
.principles article:hover{transform:translateY(-6px)}
.principles article:hover::after{width:100%}
.principle-icon{display:grid;place-items:center;width:72px;height:72px;border-radius:50%;background:rgba(239,68,35,.12);border:1px solid rgba(239,68,35,.45);color:var(--accent)}
.principle-icon svg{width:38px;height:38px}
.principles h3{color:#fff;margin:2rem 0 .7rem}
.principles p{color:rgba(255,255,255,.68)}
@media(max-width:900px){.principles{grid-template-columns:1fr}.principles article,.principles article+article{padding:2rem 1.6rem 2.2rem}.principles h3{margin:1.4rem 0 .5rem}}
@media(prefers-reduced-motion:reduce){.principles article,.principles article::after{transition:none}}

/* Gallery: single scrolling row */
.photo-grid{display:flex;gap:.7rem;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-padding:0 var(--pad);padding:0 var(--pad);scrollbar-width:none;-webkit-overflow-scrolling:touch;cursor:grab}
.photo-grid::-webkit-scrollbar{display:none}
.photo-grid.dragging{cursor:grabbing;scroll-snap-type:none}
.photo-grid.dragging img{pointer-events:none}
.photo-grid:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.photo-grid figure,.photo-grid figure.wide{flex:0 0 auto;height:clamp(320px,58vh,560px);aspect-ratio:4/5;scroll-snap-align:start;grid-column:auto;display:block}
.photo-grid figure.wide{aspect-ratio:3/2}
.photo-grid img{user-select:none;-webkit-user-drag:none}
.gallery-nav{display:flex;align-items:center;gap:2rem;padding:2rem var(--pad) 0;max-width:var(--max);margin:0 auto}
.gallery-progress{flex:1;height:2px;background:rgba(255,255,255,.18);position:relative;overflow:hidden}
.gallery-progress span{position:absolute;inset:0 auto 0 0;width:0;background:var(--accent);transition:width .15s linear}
.gallery-arrows{display:flex;gap:.6rem}
.gallery-arrow{width:54px;height:54px;border-radius:50%;border:1px solid #777;background:transparent;color:#fff;font-size:1.3rem;cursor:pointer;transition:border-color .2s,color .2s,background .2s,opacity .2s}
.gallery-arrow:hover:not(:disabled){border-color:var(--accent);background:var(--accent)}
.gallery-arrow:disabled{opacity:.3;cursor:default}
@media(max-width:650px){.photo-grid{gap:.5rem}.photo-grid figure,.photo-grid figure.wide{height:360px}.photo-grid figure{aspect-ratio:3/4}.gallery-arrow{width:46px;height:46px}.gallery-nav{gap:1.2rem;padding-top:1.4rem}}

/* Dates accordion */
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.class-accordions{margin-top:1.6rem;border-top:2px solid #171717}
.class-accordion{border-bottom:1px solid rgba(15,15,15,.2)}
.class-accordion summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:1.4fr 1fr auto 44px;gap:1.5rem;align-items:center;padding:1.6rem 0}
.class-accordion summary::-webkit-details-marker{display:none}
.class-accordion h3{font:900 clamp(1.6rem,2.6vw,2.3rem)/1 var(--display);text-transform:uppercase;margin:0;transition:color .2s}
.class-accordion summary:hover h3,.class-accordion[open] h3{color:var(--accent)}
.class-accordion-title p{margin:.35rem 0 0;color:#5c5954;font-size:.95rem}
.class-accordion-meta strong{display:block;font:900 1.6rem/1 var(--display)}
.class-accordion-meta span{color:#5c5954;font-size:.85rem}
.class-accordion-count{background:#101010;color:#fff;font-size:.72rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;padding:.5rem .8rem;white-space:nowrap}
.class-accordion-icon{width:44px;height:44px;border-radius:50%;border:1px solid #101010;position:relative;transition:background .2s,border-color .2s}
.class-accordion-icon::before,.class-accordion-icon::after{content:"";position:absolute;left:50%;top:50%;width:14px;height:2px;background:currentColor;transform:translate(-50%,-50%);transition:transform .25s}
.class-accordion-icon::after{transform:translate(-50%,-50%) rotate(90deg)}
.class-accordion[open] .class-accordion-icon{background:var(--accent);border-color:var(--accent);color:#fff}
.class-accordion[open] .class-accordion-icon::after{transform:translate(-50%,-50%) rotate(0)}
.class-date-list{list-style:none;margin:0 0 1.8rem;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:.6rem}
.class-date{display:grid;grid-template-columns:auto 1fr auto;gap:1rem;align-items:center;background:#fff;padding:.9rem .9rem .9rem 1rem;border-left:4px solid var(--accent)}
.class-date-day{text-align:center;min-width:64px}
.class-date-day strong{display:block;font:900 2.1rem/1 var(--display)}
.class-date-day span{font-size:.68rem;font-weight:800;letter-spacing:.08em;color:#5c5954}
.class-date-info strong{display:block;font-weight:700}
.class-date-info span{font-size:.82rem;color:#5c5954}
.class-date-book{background:var(--accent);color:#fff;text-decoration:none;text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;font-weight:800;padding:.75rem 1rem;white-space:nowrap}
.class-date-book:hover{background:#ff572f}
.class-date-empty{margin:0 0 1.8rem;padding:1.2rem;background:#fff;border-left:4px solid var(--accent)}
.class-date-empty a{color:var(--accent);font-weight:700}
@media(max-width:800px){
  .class-accordion summary{grid-template-columns:1fr 40px;gap:.6rem 1rem;padding:1.3rem 0}
  .class-accordion-title{grid-column:1}
  .class-accordion-icon{grid-column:2;grid-row:1;width:40px;height:40px}
  .class-accordion-meta{grid-column:1;display:flex;gap:.7rem;align-items:baseline;flex-wrap:wrap}
  .class-accordion-meta strong{font-size:1.3rem}
  .class-accordion-count{grid-column:1;justify-self:start}
  .class-date-list{grid-template-columns:1fr}
}
@media(min-width:801px){.class-accordion summary{grid-template-columns:minmax(0,1fr) 230px 170px 44px}.class-accordion-count{justify-self:end}}
.class-date-list{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
@media(max-width:800px){.class-date-list{grid-template-columns:1fr}}
/* Sold out / coming soon date buttons */
.class-date-book.is-sold-out{background:#d6d1c9;color:#6b665f;cursor:default}
.class-date.sold-out .class-date-day,.class-date.sold-out .class-date-info{opacity:.55}
.class-date.sold-out{border-left-color:#bdb7ae}

/* Contact form extras */
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem}
.contact-form select{width:100%;border:1px solid #aaa39a;padding:.85rem;font:inherit;background:#faf9f7;color:#111;appearance:none;background-image:linear-gradient(45deg,transparent 50%,#111 50%),linear-gradient(135deg,#111 50%,transparent 50%);background-position:calc(100% - 20px) 55%,calc(100% - 14px) 55%;background-size:6px 6px;background-repeat:no-repeat}
.contact-form input:focus,.contact-form textarea:focus,.contact-form select:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}
.contact-form .optional{font-weight:400;color:#77716a}
.contact-form .button{margin-top:.3rem}
.form-honeypot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.contact-form{border-top:6px solid var(--accent);position:relative}
@media(max-width:650px){.form-row{grid-template-columns:1fr}}

/* Gallery: printed-photo frames with a flame mark, slight tilt */
.photo-grid{padding-top:1.4rem;padding-bottom:1.6rem;gap:1.4rem}
.photo-grid figure,.photo-grid figure.wide{position:relative;background:#f2efe9;padding:.6rem .6rem 2.6rem;box-shadow:0 18px 40px rgba(0,0,0,.45);transform:rotate(-1.2deg);transition:transform .35s ease,box-shadow .35s ease;overflow:visible}
.photo-grid figure:nth-child(even){transform:rotate(1deg)}
.photo-grid figure:nth-child(3n){transform:rotate(-.4deg)}
.photo-grid figure img{width:100%;height:100%;object-fit:cover;display:block}
.photo-grid figure::after{content:"";position:absolute;left:50%;bottom:.75rem;width:16px;height:16px;transform:translateX(-50%);background:var(--accent);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath d='M32 7c8 11 16 18 16 30 0 12-7 20-17 20S15 49 15 39c0-8 4-14 10-20 0 8 2 12 7 15-2-10 0-18 0-27Z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath d='M32 7c8 11 16 18 16 30 0 12-7 20-17 20S15 49 15 39c0-8 4-14 10-20 0 8 2 12 7 15-2-10 0-18 0-27Z'/%3E%3C/svg%3E") center/contain no-repeat}
.photo-grid figure:hover{transform:rotate(0) translateY(-8px);box-shadow:0 26px 50px rgba(0,0,0,.55);z-index:2}
@media(max-width:650px){.photo-grid{gap:1rem}.photo-grid figure,.photo-grid figure.wide{padding:.45rem .45rem 2.1rem}.photo-grid figure::after{bottom:.6rem;width:14px;height:14px}}
@media(prefers-reduced-motion:reduce){.photo-grid figure{transition:none}}
.photo-grid figure:hover img{transform:none}

/* ---------- Type system: two fonts, consistent labels ----------
   Barlow Condensed = headings, prices, big numbers, tickers
   DM Sans          = body text, menu, labels and buttons        */
.eyebrow,.section-label,.availability,.recommend-label,.step-tag,.class-accordion-count,.tag,.preference-title,.contact-details span,.shop-tag{font-family:var(--body);font-weight:800;text-transform:uppercase;letter-spacing:.14em}
.button,.date-book,.class-date-book,.shop-order,.store-note a,.gallery-toggle,.card-action{font-family:var(--body);font-weight:800;text-transform:uppercase;letter-spacing:.11em}
h1 em,h2 em,h3 em{font-family:var(--display);font-weight:900}

/* Header menu: same style as the "Melbourne's best..." line */
nav a{font:800 clamp(.82rem,1.05vw,1.02rem)/1 var(--body);letter-spacing:.14em;text-transform:uppercase}
@media(max-width:1000px){nav a{font-size:1rem;padding:.4rem 0}}

/* Manifesto banner: centred */
.manifesto{display:grid;grid-template-columns:repeat(3,1fr);justify-content:center;text-align:center;gap:2rem}
.manifesto p,.manifesto p:nth-child(2),.manifesto p:nth-child(3){text-align:center}
@media(max-width:800px){.manifesto{grid-template-columns:1fr;gap:1.2rem}}

/* Contact: text and form balanced side by side */
.contact-grid{align-items:center;grid-template-columns:1fr 1fr}
.contact-hero .contact-lead{max-width:460px}
@media(max-width:1000px){.contact-grid{grid-template-columns:1fr}}

/* ---------- BBQ store ---------- */
.store-hero{padding-bottom:clamp(3.5rem,6vw,5rem)}
.shop-steps{list-style:none;margin:clamp(3rem,5vw,4.5rem) auto 0;padding:1.6rem 0 0;max-width:calc(var(--max) - var(--pad)*2);display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;border-top:1px solid #2b2b2b}
.shop-steps li{display:flex;gap:.9rem;align-items:flex-start}
.shop-steps svg{width:22px;height:22px;flex:0 0 auto;color:var(--accent);margin-top:.15rem}
.shop-steps strong{display:block;font:800 1.35rem/1 var(--display);text-transform:uppercase;margin-bottom:.3rem}
.shop-steps span span,.shop-steps li>span{color:#bdbdbd;font-size:.92rem}
.shop-steps strong{color:#fff}
.shop{max-width:none;background:#f2efe9;color:#101010}
.shop>*{max-width:calc(var(--max) - var(--pad)*2);margin-left:auto;margin-right:auto}
.shop-feature{display:grid;grid-template-columns:1.1fr 1fr;background:var(--accent);color:#fff;overflow:hidden}
.shop-feature-media{min-height:380px;overflow:hidden}
.shop-feature-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s ease}
.shop-feature:hover .shop-feature-media img{transform:scale(1.04)}
.shop-feature-body{padding:clamp(2rem,4vw,3.5rem);display:flex;flex-direction:column;justify-content:center}
.shop-feature .eyebrow{color:#fff}
.shop-feature .eyebrow:before{background:#fff}
.shop-feature h2{font-size:clamp(2.6rem,4.4vw,4.4rem);margin:0 0 1rem}
.shop-feature h2 em{color:#101010}
.shop-feature-body>p{margin:0 0 1.8rem;max-width:420px;color:rgba(255,255,255,.9);font-size:1.05rem}
.shop-feature-foot{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap}
.shop-feature .shop-price{color:#fff}
.shop-feature .button{background:#101010;color:#fff}
.shop-feature .button:hover{background:#000}
.shop-heading{display:flex;justify-content:space-between;align-items:end;gap:2rem;margin-top:clamp(4rem,7vw,6rem);margin-bottom:2rem;padding-bottom:1.2rem;border-bottom:2px solid #171717}
.shop-heading h2{font-size:clamp(3rem,5vw,4.6rem)}
.shop-heading h2 em{color:var(--accent)}
.shop-heading p{margin:0;color:#5c5954;max-width:360px}
.shop-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem}
.shop-card{background:#fff;display:flex;flex-direction:column;transition:transform .3s ease,box-shadow .3s ease}
.shop-card:hover{transform:translateY(-6px);box-shadow:0 20px 40px rgba(0,0,0,.12)}
.shop-card-media{position:relative;aspect-ratio:1/1;overflow:hidden;background:#fff}
.shop-card-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:opacity .4s ease,transform .5s ease}
.shop-card.contain .shop-card-media img{object-fit:contain;padding:8%}
.shop-card.has-swap .shop-card-media img+img{opacity:0}
.shop-card.has-swap:hover .shop-card-media img:first-child{opacity:0}
.shop-card.has-swap:hover .shop-card-media img+img{opacity:1}
.shop-card:not(.has-swap):hover .shop-card-media img{transform:scale(1.05)}
.shop-tag{position:absolute;top:.8rem;left:.8rem;background:#101010;color:#fff;font-size:.62rem;padding:.4rem .6rem}
.shop-card-body{padding:1.3rem 1.3rem 1.4rem;display:flex;flex-direction:column;flex:1;border-top:4px solid var(--accent)}
.shop-card-body h3{font:900 1.9rem/1 var(--display);text-transform:uppercase;margin:0 0 .6rem}
.shop-card-body p{margin:0 0 1.3rem;color:#5c5954;font-size:.92rem;line-height:1.5}
.shop-card-foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:1rem}
.shop-price{font:900 1.5rem/1 var(--display);text-transform:uppercase}
.shop-order{background:var(--accent);color:#fff;text-decoration:none;font-size:.72rem;padding:.75rem 1rem;white-space:nowrap}
.shop-order:hover{background:#ff572f}
@media(max-width:1100px){.shop-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:800px){.shop-feature{grid-template-columns:1fr}.shop-feature-media{min-height:260px}.shop-steps{grid-template-columns:1fr;gap:1.1rem}.shop-heading{flex-direction:column;align-items:flex-start;gap:.8rem}}
@media(max-width:520px){.shop-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.shop-card,.shop-card-media img,.shop-feature-media img{transition:none}}
.contact-hero h1{font-size:clamp(4.4rem,8vw,8rem)}
/* Store: GST note, sold out, longer buttons */
.shop-fineprint{margin-top:1.4rem;color:#5c5954;font-size:.85rem}
.shop-order.is-sold-out,.shop-feature .button.is-sold-out{background:#d6d1c9;color:#6b665f;cursor:default}
.shop-card.sold-out .shop-card-media img{filter:grayscale(1);opacity:.7}
.shop-feature-media{background:#0e0d0c}
.shop-price{white-space:nowrap}

/* Instagram ticker link */
.ticker-link{display:block;color:inherit;text-decoration:none}
.social-ticker:hover .ticker-track{animation-play-state:paused}
.ticker-link:focus-visible{outline:2px solid #fff;outline-offset:-4px}

/* Voucher options */
.voucher-options{display:grid;gap:.7rem;max-width:460px}
.voucher-option{display:flex;align-items:center;justify-content:space-between;gap:1rem;background:rgba(0,0,0,.14);padding:.9rem .9rem .9rem 1.1rem}
.voucher-option>div{display:flex;flex-direction:column;gap:.25rem}
.voucher-option strong{font:800 .72rem/1 var(--body);letter-spacing:.14em;text-transform:uppercase}
.voucher-option .shop-price{font-size:1.9rem}
.voucher-option .button{width:auto;padding:.85rem 1.2rem}
.shop-fineprint a{color:inherit;font-weight:700}

/* Policies page */
.policy-page .policy-hero{padding-bottom:clamp(3rem,5vw,4rem)}
.policy-toc{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:2rem}
.policy-toc a{border:1px solid #444;color:#fff;text-decoration:none;font:800 .72rem/1 var(--body);letter-spacing:.14em;text-transform:uppercase;padding:.7rem .9rem;transition:background .2s,border-color .2s}
.policy-toc a:hover{background:var(--accent);border-color:var(--accent)}
.policy{max-width:none;background:#f2efe9;color:#101010}
.policy article{max-width:760px;margin:0 auto;padding:clamp(2.2rem,4vw,3.2rem) 0;border-bottom:1px solid rgba(15,15,15,.15);scroll-margin-top:100px}
.policy article:last-child{border-bottom:0}
.policy h2{font-size:clamp(2.4rem,4vw,3.4rem);margin:0 0 1.2rem}
.policy h2 em{color:var(--accent)}
.policy h3{font:900 1.35rem/1.1 var(--display);text-transform:uppercase;margin:1.6rem 0 .5rem}
.policy p,.policy li{color:#3f3c38;line-height:1.7}
.policy ul{padding-left:1.2rem;margin:.4rem 0 0}
.policy li{margin-bottom:.45rem}
.policy li::marker{color:var(--accent)}
.policy a{color:var(--accent);font-weight:700}
.shop-feature-media{background:#0f0d0c;display:flex;align-items:center}.shop-feature-media img{object-fit:contain;height:auto;max-height:100%}

/* Spots left + sold-out notice */
.class-date-spots{display:block;font-style:normal;font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#5c5954;margin-top:.2rem}
.class-date-spots.low{color:var(--accent)}
.class-date-notice{margin:1.2rem 0 0;padding:1rem 1.2rem;background:#101010;color:#fff;border-left:4px solid var(--accent);font-weight:600}

/* Booking confirmed page */
.booked-hero{padding-bottom:clamp(5rem,9vw,8rem)}
.booked-hero h1{margin-bottom:2rem}
.booked-card{background:#fff;color:#101010;border-top:6px solid var(--accent);padding:1.6rem 1.8rem;max-width:560px;margin:0 0 1.8rem}
.booked-class{font:900 clamp(1.8rem,3vw,2.4rem)/1 var(--display);text-transform:uppercase;margin:0 0 .6rem}
.booked-when{font-weight:700;margin:0 0 .3rem}
.booked-where{margin:0;color:#5c5954}
.booked-actions{display:flex;gap:1.6rem;align-items:center;flex-wrap:wrap;margin-top:2rem}
.booked-actions .button{width:auto}
.booked-link{color:#fff;font:800 .74rem/1 var(--body);letter-spacing:.14em;text-transform:uppercase}

/* Blog list */
.blog-list{max-width:none;background:#f2efe9;color:#101010}
.blog-grid{max-width:calc(var(--max) - var(--pad)*2);margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:1.3rem}
.blog-card{background:#fff;color:inherit;text-decoration:none;display:flex;flex-direction:column;transition:transform .3s ease,box-shadow .3s ease}
.blog-card:hover{transform:translateY(-6px);box-shadow:0 20px 40px rgba(0,0,0,.12)}
.blog-card-media{aspect-ratio:3/2;overflow:hidden}
.blog-card-media img{width:100%;height:100%;object-fit:cover;display:block}
.blog-card-body{padding:1.4rem 1.4rem 1.6rem;border-top:4px solid var(--accent);display:flex;flex-direction:column;flex:1}
.blog-card time,.post-header time{font:800 .7rem/1 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.blog-card h2{font-size:clamp(1.7rem,2.4vw,2.2rem);margin:.7rem 0 .6rem}
.blog-card p{margin:0 0 1.2rem;color:#5c5954;font-size:.95rem;line-height:1.55}
.blog-more{margin-top:auto;font:800 .72rem/1 var(--body);letter-spacing:.11em;text-transform:uppercase}
@media(max-width:1000px){.blog-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:650px){.blog-grid{grid-template-columns:1fr}}

/* Blog post */
.post-header{max-width:900px;padding-bottom:2.5rem}
.post-header h1{font-size:clamp(3rem,7vw,6rem);margin:1rem 0 1.2rem}
.post-back{display:inline-block;color:#fff;text-decoration:none;font:800 .72rem/1 var(--body);letter-spacing:.14em;text-transform:uppercase;margin-bottom:2rem}
.post-back:hover{color:var(--accent)}
.post-cover{max-width:calc(var(--max) - var(--pad)*2);margin:0 auto;padding:0 var(--pad)}
.post-cover img{width:100%;max-height:620px;object-fit:cover;display:block}
.post-body{max-width:none;background:#f2efe9;color:#2b2926;margin-top:-1px}
.post-body>*{max-width:720px;margin-left:auto;margin-right:auto}
.post-body p,.post-body li{font-size:1.08rem;line-height:1.75}
.post-body h2{font-size:clamp(2rem,3.5vw,2.8rem);margin:2.4rem auto 1rem}
.post-body h3{font:900 1.5rem/1.1 var(--display);text-transform:uppercase;margin:2rem auto .6rem}
.post-body img{display:block;width:100%;height:auto;margin:2rem auto}
.post-body a{color:var(--accent);font-weight:700}
.post-body blockquote{border-left:4px solid var(--accent);padding-left:1.2rem;font-style:italic}
.post{background:#0b0b0b;color:#fff}
.post-header{margin:0 auto}
.post-header h1{color:#fff}
.post-header .contact-lead{color:#c9c6c1}
.post-cover{padding-bottom:0;background:linear-gradient(#0b0b0b 60%,#f2efe9 60%)}
.post-body{padding-top:clamp(3rem,6vw,5rem)}
.post-back{display:block;width:max-content}
.post-cover{max-width:none;margin:0}
.post-cover img{max-width:calc(var(--max) - var(--pad)*2);margin:0 auto}
/* Pre-order products */
.shop-tag-pre{background:var(--accent)}
.shop-pre-note{margin:-.6rem 0 1.2rem !important;font-size:.8rem !important;color:#101010 !important;font-weight:600}
.shop-pre-note a{color:var(--accent)}
/* Golden Ticket: emailed / posted choice */
.voucher-options{max-width:520px}
.voucher-buttons{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:flex-end}
.voucher-option .button{white-space:nowrap}
.shop-feature .button-alt{background:#fff;color:#101010}
.shop-feature .button-alt:hover{background:#f2efe9}
.voucher-extra{opacity:.7;font-weight:800}
.voucher-note{margin:1rem 0 0 !important;font-size:.88rem !important;color:rgba(255,255,255,.85) !important;max-width:460px}
@media(max-width:650px){.voucher-option{flex-direction:column;align-items:stretch}.voucher-buttons{justify-content:stretch}.voucher-buttons .button{flex:1}}
