:root{--ink:#11120f;--soft:#f6f7f8;--white:#fff;--lime:#2356e8;--muted:#8e949b;--line:rgba(17,18,15,.15);--display:'Oswald',sans-serif;--body:'DM Sans',sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--soft);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.6}
body.menu-open{overflow:hidden}
a{color:inherit;text-decoration:none}
button,input,select{font:inherit}
.skip-link{position:fixed;top:-100px;left:1rem;background:var(--lime);padding:.75rem 1rem;z-index:100}
.skip-link:focus{top:1rem}
.site-header{height:84px;padding:0 4vw;display:flex;align-items:center;justify-content:space-between;background:var(--ink);color:white;position:absolute;z-index:20;width:100%;border-bottom:1px solid rgba(255,255,255,.15)}
.brand{display:grid;grid-template-columns:auto auto;gap:0 3px;line-height:.75;font-family:var(--display);font-size:1.48rem;letter-spacing:-.05em}
.brand b{color:var(--lime)}
.brand small{grid-column:1/3;font-family:var(--body);font-size:.42rem;letter-spacing:.46em;line-height:1.8}
.brand-logo{display:block;padding:0;line-height:1}
.brand-logo img{display:block;width:auto;height:62px;object-fit:contain}
.footer-brand.brand-logo img{height:66px}
.desktop-nav{display:flex;gap:2.2rem;font-size:.82rem;font-weight:600}
.desktop-nav a{transition:color .2s}
.desktop-nav a:hover{color:var(--lime)}
.button{background:var(--lime);color:var(--ink);padding:1rem 1.3rem;display:inline-flex;align-items:center;justify-content:space-between;gap:2rem;text-transform:uppercase;font-size:.76rem;font-weight:800;letter-spacing:.08em;border:1px solid var(--lime);cursor:pointer;transition:.2s}
.button:hover{background:white;border-color:white;transform:translateY(-2px)}
.button-small{padding:.75rem 1rem;gap:1rem}
.menu-toggle,.mobile-menu{display:none}
.hero{height:min(720px,calc(100vh - 24px));min-height:620px;max-height:720px;position:relative;color:white;display:flex;align-items:center;overflow:hidden}
.hero-image,.hero-overlay{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-overlay{background:linear-gradient(90deg,rgba(10,11,9,.95) 0%,rgba(10,11,9,.66) 43%,rgba(10,11,9,.08) 80%),linear-gradient(0deg,rgba(10,11,9,.45),transparent 45%)}
.hero-content{position:relative;z-index:2;margin-left:7vw;margin-top:44px;max-width:680px}
.eyebrow,.section-label{font-size:.68rem;letter-spacing:.17em;font-weight:700;text-transform:uppercase;display:flex;align-items:center;gap:.8rem}
.eyebrow span{width:25px;height:2px;background:var(--lime)}
@media(max-width:760px){.hero .eyebrow{font-size:clamp(.65rem,3vw,.8rem);line-height:1.5;letter-spacing:.04em;white-space:nowrap;gap:.55rem}.hero .eyebrow span{width:18px;flex-shrink:0}}
h1,h2,h3{font-family:var(--display);line-height:.93;margin:0;text-transform:uppercase}
h1{font-size:clamp(4.6rem,8vw,7.3rem);letter-spacing:-.045em;margin:.9rem 0}
em{font-style:normal;color:var(--lime)}
.hero-copy{font-size:1.08rem;max-width:510px;color:#d4d5ce}
.hero-actions{display:flex;align-items:center;gap:2rem;margin-top:1.7rem}
.hero-consult{background:transparent;color:#fff;border-color:rgba(255,255,255,.7);gap:1rem}
.hero-consult:hover{background:#fff;color:var(--ink);border-color:#fff}
.text-link,.arrow-link{text-transform:uppercase;font-weight:700;font-size:.72rem;letter-spacing:.1em;border-bottom:1px solid;padding-bottom:.3rem}
.hero-actions .text-link[href="#locations"]{display:inline-flex;align-items:center;gap:.65rem}
.hero-actions .text-link[href="#locations"] span{display:inline-block;color:#a9bdff;font-size:1.6rem;font-weight:700;line-height:1;animation:home-club-nudge 2s ease-in-out infinite}
.hero-actions .text-link[href="#locations"] span{color:var(--lime)}
.hero-actions .button[href="#join"] span{color:#fff}
.hero-actions .button[href="#join"]:hover span{color:var(--ink)}
.hero-actions .text-link.is-scrolled[href="#locations"] span{animation:none}
@keyframes home-club-nudge{0%,12%,42%,52%,62%,100%{transform:translateY(0)}28%{transform:translateY(7px)}47%{transform:translateY(3px)}}
@media(prefers-reduced-motion:reduce){.hero-actions .text-link[href="#locations"] span{animation:none}}
.hero-stat{position:absolute;right:4vw;bottom:2.5rem;z-index:2;display:flex;align-items:center;gap:1rem}
.hero-stat strong{font:700 4rem/1 var(--display);color:var(--lime)}
.hero-stat span{font-size:.63rem;line-height:1.4;letter-spacing:.15em}
.scroll-cue{position:absolute;bottom:3rem;left:7vw;z-index:2;font-size:.55rem;letter-spacing:.18em;writing-mode:vertical-rl;display:flex;align-items:center;gap:.7rem}
.scroll-cue i{height:55px;width:1px;background:rgba(255,255,255,.4)}
.section-pad{padding:6.25rem 7vw}
.section-label{margin-bottom:2.5rem}
.section-label span{color:#787a72}
.section-label.light{color:white}
.intro-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:10vw;align-items:start}
.intro h2,.locations h2,.membership h2,.free-pass h2{font-size:clamp(3.2rem,6.4vw,6.2rem);letter-spacing:-.035em}
.intro h2 em,.free-pass h2 em{color:transparent;-webkit-text-stroke:1.5px var(--ink)}
.lead{font-size:1.45rem;line-height:1.35;font-weight:600;margin-top:0}
.intro-grid p:not(.lead){color:#62645d}
.arrow-link{display:inline-flex;gap:2rem;margin-top:1.4rem}
.feature-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);margin-top:4.5rem}
.feature-grid article{padding:2rem 2rem 1rem 0;border-right:1px solid var(--line);position:relative}
.feature-grid article+article{padding-left:2rem}
.feature-grid article:last-child{border:0}
.feature-grid article>b{font-size:.6rem;color:#93958d}
.feature-icon{font-size:2.8rem;margin:2.5rem 0 1.6rem}
.feature-grid h3{font-size:1.5rem}
.feature-grid p{font-size:.85rem;color:#6a6c64}
.locations{background:var(--ink);color:white}
.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:4rem}
.section-heading>p{max-width:420px;color:#aaaca4}
.location-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.location-card{height:460px;position:relative;overflow:hidden;padding:2rem;display:flex;justify-content:space-between;align-items:end;background-size:cover;background-position:center}
.location-card:before{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.93),rgba(0,0,0,.05) 70%),linear-gradient(135deg,#30342d,#111 70%);transition:.35s}
.location-card:hover:before{opacity:.82}
.location-card>*{position:relative}
.club-number{align-self:start;font:600 .75rem var(--body);border:1px solid rgba(255,255,255,.5);width:35px;height:35px;flex:0 0 35px;aspect-ratio:1;border-radius:50%;display:grid;place-items:center}
.location-card p{display:inline-block;width:max-content;max-width:100%;padding:.3rem .45rem;background:rgba(4,7,13,.7);color:#7898ff;font-size:.7rem;font-weight:800;letter-spacing:.13em;line-height:1.35;text-shadow:0 1px 8px rgba(0,0,0,.9)}
.location-card h3{font-size:clamp(2.3rem,3.5vw,4rem);margin:.5rem 0}
.location-card div>span{font-size:.78rem;color:#b8bab2}
.location-card a{margin-top:1.5rem;border-top:1px solid rgba(255,255,255,.25);padding-top:1rem;display:flex;justify-content:space-between;text-transform:uppercase;font-size:.65rem;letter-spacing:.12em}
.niles:after,.elmwood:after,.elk:after{content:"";position:absolute;width:230px;height:230px;border:1px solid rgba(201,255,54,.25);border-radius:50%;top:25%;right:-80px}
.elmwood:after{border-radius:0;transform:rotate(35deg);right:-120px}
.elk:after{width:170px;height:300px;border-radius:0;transform:skew(-20deg)}
.stories{background:#edf1f3}
.testimonial-shell{max-width:1000px;margin:auto;position:relative;padding:0 6rem;text-align:center}
.quote-mark{font:700 8rem/1 Georgia;color:var(--lime);text-shadow:1px 1px 0 var(--ink),-1px -1px 0 var(--ink)}
.testimonial-stage blockquote{font:500 clamp(1.8rem,3.3vw,3.2rem)/1.25 var(--display);margin:0}
.testimonial-stage cite{display:block;font-style:normal;font-size:.72rem;text-transform:uppercase;letter-spacing:.15em;margin-top:2rem}
.testimonial-stage cite span{display:block;color:#6f716a;font-size:.62rem;margin-top:.3rem}
.testimonial-controls{display:flex;justify-content:center;align-items:center;gap:1.5rem;margin-top:3rem}
.testimonial-controls button{width:42px;height:42px;border:1px solid var(--ink);border-radius:50%;background:transparent;cursor:pointer}
.testimonial-controls button:hover{background:var(--lime)}
.review-count{font-size:.65rem;letter-spacing:.15em}
.membership{background:var(--ink);color:white;display:grid;grid-template-columns:1.15fr .85fr;gap:10vw;align-items:end}
.membership>div>p{max-width:520px;color:#afb1aa}
.membership ul{list-style:none;margin:0;padding:0;border-top:1px solid #393a36}
.membership li{padding:1.2rem 0;border-bottom:1px solid #393a36;font-size:.86rem}
.membership li span{color:var(--lime);margin-right:1rem}
.free-pass{display:grid;grid-template-columns:1fr 1fr;gap:12vw;align-items:center}
.free-pass h2{margin-bottom:2rem}
.pass-copy>p{max-width:480px;color:#60625b}
.pass-form{background:white;padding:2.5rem;box-shadow:0 22px 80px rgba(0,0,0,.1)}
.pass-form label{display:block;font-size:.62rem;text-transform:uppercase;letter-spacing:.12em;font-weight:700;margin-bottom:1.3rem}
.pass-form input,.pass-form select{display:block;border:0;border-bottom:1px solid #bdbeb8;width:100%;padding:.7rem 0;background:transparent;border-radius:0;outline:none;text-transform:none;letter-spacing:0;font-size:.95rem}
.pass-form input:focus,.pass-form select:focus{border-color:var(--ink)}
.pass-form .button{width:100%;margin-top:1rem}
.form-note,.form-message{font-size:.62rem;color:#777;text-align:center}
.form-message{color:#3b6900;font-weight:700}
footer{background:#0b0c0a;color:white;padding:4rem 7vw 2rem;display:grid;grid-template-columns:auto 1fr auto;gap:4rem;align-items:center}
.footer-brand{font-size:2rem}
footer>p{font-size:.8rem;color:#898b84}
.footer-links{display:flex;gap:2rem;font-size:.7rem;text-transform:uppercase;letter-spacing:.08em}
.copyright{grid-column:1/4;border-top:1px solid #2d2e2a;padding-top:1.5rem;margin-top:2rem}
.location-card.upcoming:before{background:linear-gradient(0deg,rgba(0,0,0,.96),rgba(0,0,0,.45)),linear-gradient(135deg,#252822,#0e0f0d)}
.location-card.niles{background-image:url('../assets/locations/current-site/gym-04.jpeg')}
.location-card.elmwood{background-image:url('../assets/locations/elmwood-park/elmwood-park-club.jpeg')}
.coming-soon-label{display:block!important;margin-top:1.5rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.25);color:white!important;text-transform:uppercase;letter-spacing:.1em}
.join{background:#f3f5f6}
.join-heading{display:grid;grid-template-columns:1fr 1fr;gap:6vw;align-items:end;margin-bottom:3rem}
.join h2{font-size:clamp(3.2rem,6.4vw,6.2rem);letter-spacing:-.035em}
.join-heading p{max-width:520px;color:#60625b}
.club-tabs{display:flex;flex-wrap:wrap;gap:.6rem}
.club-tab{border:1px solid var(--ink);background:transparent;color:var(--ink);padding:.85rem 1rem;font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;cursor:pointer}
.club-tab.active{background:var(--ink);color:white}
.club-tab.disabled{opacity:.55;cursor:not-allowed}
.embed-shell{background:white;min-height:800px;box-shadow:0 18px 55px rgba(0,0,0,.08);overflow:hidden}
.membership-frame{display:block;border:0}
.mobile-action-bar{display:none}
@media(max-width:900px){.join-heading{grid-template-columns:1fr;gap:2rem}.embed-shell{min-height:720px}.membership-frame{height:720px}}
@media(max-width:700px){body{padding-bottom:calc(72px + env(safe-area-inset-bottom))}.join h2{font-size:14vw}.club-tabs{display:grid}.club-tab{text-align:center}.embed-shell{margin-left:-6vw;margin-right:-6vw;min-height:680px}.membership-frame{height:680px}.mobile-action-bar{position:fixed;z-index:100;left:0;right:0;bottom:0;min-height:72px;display:grid;grid-template-columns:repeat(3,1fr);background:#fff;color:var(--ink);border-top:1px solid rgba(17,18,15,.16);box-shadow:0 -10px 28px rgba(0,0,0,.14);padding-bottom:env(safe-area-inset-bottom)}.mobile-action-bar a{min-height:72px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;border-right:1px solid rgba(17,18,15,.12);font-size:.7rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.mobile-action-bar a:last-child{border-right:0}.mobile-action-bar svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.mobile-action-bar .mobile-action-primary{background:var(--lime);color:#fff}}

/* Homepage v2: tighter editorial rhythm, image-first proof */
.home-v2 .site-header{position:fixed;top:0;height:76px;padding:0 5vw;background:rgba(9,11,15,.8);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:background .2s,box-shadow .2s}
.home-v2 .site-header.is-scrolled{background:rgba(9,11,15,.97);box-shadow:0 8px 28px rgba(0,0,0,.22)}
.home-v2 .brand-logo img{height:62px}
.home-v2 .desktop-nav{gap:1.7rem;font-size:.76rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;white-space:nowrap}
.header-actions{display:flex;align-items:center;gap:.75rem;white-space:nowrap}
.header-consult{padding:.72rem 1rem;border:1px solid rgba(255,255,255,.55);font-size:.7rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase;transition:.2s}
.header-consult:hover{background:#fff;color:var(--ink)}
@media(min-width:901px) and (max-width:1200px){.home-v2 .site-header{padding:0 3vw}.home-v2 .desktop-nav{gap:1rem;font-size:.68rem;letter-spacing:.04em}.home-v2 .header-actions{gap:.4rem}.home-v2 .header-consult{padding:.65rem .7rem;font-size:.62rem;letter-spacing:.04em}.home-v2 .header-cta{padding:.65rem .7rem;gap:.45rem;font-size:.64rem;letter-spacing:.04em}}
.home-v2 .hero{height:610px;min-height:610px;max-height:610px}
.home-v2 .hero-image{height:112%;top:-6%;will-change:transform}
.home-v2 .hero-content{margin-top:50px;width:min(760px,88vw);max-width:760px;min-width:0}
.home-v2 .hero-content h1{font-size:clamp(4.4rem,7.4vw,7rem)}
.home-v2 .hero-overlay{background:linear-gradient(90deg,rgba(5,7,10,.96),rgba(5,7,10,.58) 55%,rgba(5,7,10,.12)),linear-gradient(0deg,rgba(5,7,10,.55),transparent 55%)}
.home-v2 .hero-stat strong{font-size:2.8rem}
.home-v2 .section-pad{padding:4.5rem 6vw}
.home-v2 .club-value{padding-top:3.4rem;padding-bottom:3.4rem}
.home-v2 .locations{padding-top:3.4rem}
.home-v2 .section-label{margin-bottom:1.5rem;font-size:.75rem}
.value-heading,.story-heading{display:flex;align-items:end;justify-content:space-between;gap:4rem;margin-bottom:2.25rem}
.value-heading h2,.club-film h2,.story-heading h2{font-size:clamp(3.3rem,5.8vw,5.8rem);letter-spacing:-.035em}
.value-heading>p{max-width:470px;margin:0;color:#4f555d;font-size:1.05rem}
.value-visual{display:grid;grid-template-columns:1.5fr .65fr;min-height:390px;background:#0b0d11;color:#fff;overflow:hidden}
.value-visual>img{width:100%;height:100%;max-height:430px;object-fit:cover}
.value-points{display:grid}
.value-points article{display:flex;flex-direction:column;justify-content:center;padding:1.5rem 2rem;border-bottom:1px solid #2b2f37}
.value-points article:last-child{border:0}
.value-points strong{font:700 2.7rem/1 var(--display);color:var(--lime)}
.value-points span{margin-top:.5rem;color:#c4c8cf;font-size:.85rem}
.benefit-row{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid #d4d8dc;border-top:0;background:#fff}
.benefit-row span{padding:1.1rem 1.25rem;border-right:1px solid #d4d8dc;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.benefit-row span:last-child{border:0}
.home-v2 .section-heading{margin-bottom:2.25rem}
.home-v2 .location-card{height:390px;padding:1.6rem;background-position:center}
.home-v2 .location-card:before{background:linear-gradient(0deg,rgba(0,0,0,.92) 0%,rgba(0,0,0,.18) 72%)}
.home-v2 .location-card:hover:before{opacity:.9}
.home-v2 .location-card h3{font-size:clamp(2.4rem,3.2vw,3.5rem);min-height:1.86em}
.home-v2 .location-card div{width:100%}
.home-v2 .location-card div>span{display:block;min-height:3.2em}
.home-v2 .location-card div>b{margin-top:1rem;border-top:1px solid rgba(255,255,255,.32);padding-top:.9rem;display:flex;justify-content:space-between;text-transform:uppercase;font-size:.7rem;letter-spacing:.09em}
.home-v2 .location-card div>b i{font-style:normal}
.home-v2 .location-card.northwest{background-image:url('../assets/locations/current-site/gym-01.jpeg');background-position:center}
.club-film{display:grid;grid-template-columns:.62fr 1.38fr;gap:5vw;align-items:center;background:#fff}
.film-copy p{max-width:430px;color:#565d66}
.video-shell{position:relative;aspect-ratio:16/9;background:#080a0d;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.13)}
.video-shell iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.eyebrow-line{width:25px;height:2px;background:var(--lime);flex:0 0 auto}
.eyebrow-brand{width:auto!important;height:auto!important;background:none!important;flex:0 0 auto}
.hero-marquee{width:100%!important;max-width:100%;height:auto!important;background:none!important;min-width:0;overflow:hidden;white-space:nowrap;flex:1 1 auto}
.hero-marquee-track{display:inline-flex;width:auto!important;height:auto!important;background:none!important;white-space:nowrap;animation:hero-locations-marquee 14s linear infinite}
.hero-marquee-group{display:inline-flex!important;align-items:center;gap:.75rem;width:auto!important;height:auto!important;background:none!important;padding-right:.75rem}
.hero-marquee-group>span{width:auto!important;height:auto!important;background:none!important;flex:0 0 auto}
.hero-marquee-group>i{display:block;width:5px;height:5px;border-radius:50%;background:var(--lime);flex:0 0 auto}
@keyframes hero-locations-marquee{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.hero-marquee-track{animation:none}}
@media(max-width:700px){.home-v2 .hero-content{transform:translateY(-14px)}}
@media(max-width:700px){.join .embed-shell{min-height:1600px}.join .membership-frame{height:1600px}}
.home-v2 .stories{background:#0c0f14;color:#fff}
.story-heading{margin-bottom:2rem}
.story-heading .text-link{flex:0 0 auto}
.story-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.story-card{background:#171b22;border:1px solid #2b3039;overflow:hidden}
.story-card>div:last-child{padding:1.25rem}
.story-photo{aspect-ratio:1/1;background:#20252d;display:grid;place-items:center;position:relative;overflow:hidden}
.story-photo.pending:after{content:"PHOTO PENDING";position:absolute;left:1rem;bottom:1rem;color:#9299a5;font-size:.65rem;letter-spacing:.13em}
.story-photo span{font:700 clamp(2.5rem,4vw,4.3rem)/1 var(--display);color:#303641;transform:rotate(-8deg)}
.story-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .45s ease}
.story-card:hover .story-photo img{transform:scale(1.025)}
.story-card strong{color:#7295ff;font-size:.72rem;letter-spacing:.1em}
.story-card h3{font-size:2rem;margin:.4rem 0 .65rem}
.story-card p{color:#b9bec7;font-size:.84rem;line-height:1.5;margin:0}
.asset-note{margin:1.2rem 0 0;color:#7f8793;font-size:.72rem}
.home-v2 .membership{gap:6vw}
.home-v2 .join-heading{margin-bottom:2rem}
.home-v2 footer{padding-top:3rem}

.home-v2 .club-tabs{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr));gap:.75rem;width:min(100%,650px)}
.home-v2 .club-tab{min-height:74px;padding:.8rem 1rem;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:.25rem;text-align:left;border-color:#c8ccd2;background:#fff}
.home-v2 .club-tab span{font-size:.78rem}
.home-v2 .club-tab small{font-size:.64rem;font-weight:700;letter-spacing:.07em;color:#6f7680}
.home-v2 .club-tab.active{background:#2356e8;border-color:#2356e8;color:#fff;box-shadow:inset 0 -3px 0 #9fb5ff}
.home-v2 .club-tab.active small{color:#c5cad1}
.home-v2 .club-tab.disabled{background:#eef0f3;border-style:dashed;opacity:1;color:#6c727b}
