:root{--gold:#e5bd5b;--ink:#080b0c;--paper:#f5f4f0;--muted:#b9b9b5;--max:1180px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:var(--ink);color:#fff}
a{color:inherit;text-decoration:none}.wrap{width:min(var(--max),calc(100% - 40px));margin:auto}
.site-header{height:78px;display:flex;align-items:center;gap:30px;padding:0 max(24px,calc((100% - var(--max))/2));position:fixed;inset:0 0 auto;z-index:20;background:linear-gradient(#050708f2,#050708c7,transparent)}
.brand{display:inline-flex;flex-direction:column;line-height:.8;letter-spacing:2px;min-width:145px}.brand span{font-size:29px;font-weight:900}.brand b{color:var(--gold)}.brand small{font-size:10px;letter-spacing:6px;margin-top:8px}
nav{display:flex;gap:26px;margin-left:auto}nav a{font-size:12px;text-transform:uppercase;font-weight:800}.menu{display:none;margin-left:auto;background:none;border:0;color:#fff;font-size:28px}
.btn{display:inline-block;background:var(--gold);color:#080808;text-transform:uppercase;font-weight:900;padding:16px 25px;border-radius:3px;font-size:13px;letter-spacing:.3px}.ghost{background:transparent;color:#fff;border:1px solid #fff}
.hero{min-height:720px;position:relative;display:grid;align-items:center;overflow:hidden}.hero-bg{position:absolute;inset:0;background-image:url('assets/hero.jpg'),url('assets/tkgym-fallback.jpg');background-size:cover;background-position:center 18%}.shade{position:absolute;inset:0;background:linear-gradient(90deg,#050708f5 0%,#050708c9 36%,#0507083d 70%,#05070872)}
.hero-copy{position:relative;padding-top:70px}.eyebrow{text-transform:uppercase;color:var(--gold);font-weight:900;letter-spacing:4px;font-size:12px}.hero h1,.section h2,.cta h2{font-size:clamp(48px,7vw,92px);line-height:.91;text-transform:uppercase;margin:12px 0 18px;letter-spacing:-3px}.hero h1 em{font-style:normal;color:var(--gold)}.lead{max-width:570px;font-size:19px;line-height:1.55}.actions{display:flex;gap:14px;margin-top:30px}
.benefits{display:grid;grid-template-columns:repeat(4,1fr);max-width:1180px;margin:-34px auto 0;position:relative;z-index:3;background:#0d1113;border:1px solid #202628}.benefits div{padding:26px;display:flex;gap:16px;align-items:center;justify-content:center;font-size:25px}.benefits span{font-size:12px;font-weight:800;text-transform:uppercase;line-height:1.4}
.section{padding:92px 0}.light{background:var(--paper);color:#0b0d0e}.section h2{font-size:clamp(40px,5vw,66px);margin-top:8px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.card{min-height:420px;position:relative;overflow:hidden;background:#202426}.photo{background-size:cover;background-position:center}.p1{background-image:url('assets/class-strength.jpg'),url('assets/tkgym-fallback.jpg')}.p2{background-image:url('assets/class-conditioning.jpg'),url('assets/tkgym-fallback.jpg')}.p3{background-image:url('assets/class-group.jpg'),url('assets/tkgym-fallback.jpg')}.card:after{content:"";position:absolute;inset:35% 0 0;background:linear-gradient(transparent,#050708ee)}.card div{position:absolute;z-index:2;bottom:20px;padding:20px}.card h3{font-size:25px;text-transform:uppercase;margin:0}.card p{margin-bottom:0;line-height:1.45}.center{text-align:center;margin-top:30px}.text-link{font-weight:900;text-transform:uppercase;border-bottom:2px solid var(--gold);padding-bottom:5px}
.dark{background:#0b0f11}.split,.contact{display:grid;grid-template-columns:1.25fr 1fr;gap:80px;align-items:center}.split p{color:#ddd;line-height:1.65;max-width:630px}.checks{list-style:none;padding:0}.checks li{padding:13px 0;border-bottom:1px solid #2b3032}.checks li:before{content:"✓";color:var(--gold);font-weight:900;margin-right:13px}
.three{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}.three article{border-top:3px solid var(--gold);padding-top:25px}.three b{color:var(--gold);font-size:14px}.three h3{font-size:27px;text-transform:uppercase;margin-bottom:8px}.three p{line-height:1.6;color:#555}
.cta{padding:100px 0;background:linear-gradient(90deg,#050708e8,#05070899),url('assets/community.jpg'),url('assets/tkgym-fallback.jpg') center/cover}.cta h2{max-width:800px}.contact-card{background:#111719;border:1px solid #293033;padding:30px;display:grid;gap:16px}.contact-card a{padding:13px 0;border-bottom:1px solid #293033;font-weight:800}
footer{padding:35px max(24px,calc((100% - var(--max))/2));display:flex;justify-content:space-between;align-items:center;color:#aaa;border-top:1px solid #252a2c}footer p{text-transform:uppercase;letter-spacing:3px;font-size:10px}
@media(max-width:850px){.site-header{height:68px}.header-cta,nav{display:none}.menu{display:block}.site-header.open nav{display:flex;position:absolute;top:68px;left:0;right:0;background:#070a0b;padding:25px;flex-direction:column}.hero{min-height:650px}.hero h1{letter-spacing:-2px}.benefits{grid-template-columns:1fr 1fr;margin:0}.cards,.three,.split,.contact{grid-template-columns:1fr}.split,.contact{gap:35px}.card{min-height:350px}.section{padding:70px 0}}
@media(max-width:520px){.wrap{width:min(100% - 28px,var(--max))}.hero{min-height:620px}.hero-copy{padding-top:90px}.hero h1{font-size:52px}.lead{font-size:16px}.actions{flex-direction:column;align-items:flex-start}.benefits{grid-template-columns:1fr 1fr}.benefits div{padding:18px 10px;font-size:20px}.benefits span{font-size:10px}.cards{grid-template-columns:1fr}.section h2,.cta h2{font-size:42px;letter-spacing:-2px}footer{align-items:flex-start;gap:25px;flex-direction:column}}

.subhero{padding:180px 0 95px;background:radial-gradient(circle at 80% 20%,#272011 0,#0b0f11 35%,#060809 72%);border-bottom:1px solid #252a2c}
.subhero h1{font-size:clamp(58px,9vw,116px);line-height:.88;text-transform:uppercase;letter-spacing:-5px;margin:16px 0 24px;max-width:1000px}
.subhero p:not(.eyebrow){max-width:700px;font-size:20px;line-height:1.55;color:#d4d4d0}
.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.service-grid article{background:#fff;border:1px solid #ddd;padding:34px;min-height:280px}.service-grid span{color:var(--gold);font-weight:900}.service-grid h2{font-size:34px;letter-spacing:-1px;margin:45px 0 10px}.service-grid p,.bodycopy,.story p{line-height:1.7;color:#555}
.notice{margin-top:50px;background:#0b0f11;color:#fff;padding:38px;display:flex;align-items:center;justify-content:space-between;gap:30px}.notice h2{font-size:34px;margin:5px 0}.darktext{color:#111}.darktext li{border-color:#ccc}.story{max-width:900px}.story h2{max-width:850px}.story p{font-size:18px}.values article{border-top-color:var(--gold)}.values p{color:#ccc}.contact-light .contact-card{color:#fff}
@media(max-width:850px){.subhero{padding:140px 0 70px}.subhero h1{letter-spacing:-3px}.service-grid{grid-template-columns:1fr}.notice{align-items:flex-start;flex-direction:column}}

.membership-store{padding-top:80px}.store-intro{max-width:760px;margin-bottom:35px}.store-intro h2{margin-bottom:16px}.store-intro p:not(.eyebrow){color:#d2d2cf;line-height:1.65;font-size:17px}
.widget-shell{background:#fff;border-radius:5px;overflow:hidden;border:1px solid #313638;box-shadow:0 22px 60px rgba(0,0,0,.35)}
.widget-shell iframe{display:block;background:#fff}
.store-help{text-align:center;padding:22px 15px 0;color:#bbb}.store-help a{color:var(--gold);font-weight:800}


/* RhinoFit embed: viewport-responsive container instead of a fixed 2000px page block.
   Cross-origin iframe security prevents automatic content-height measurement unless
   RhinoFit itself supplies a postMessage resize integration. */
.rhinofit-frame{
  width:100%;
  height:clamp(720px,78vh,980px);
  min-height:720px;
  border:0;
}
@media(max-width:700px){
  .widget-shell{margin-left:-7px;margin-right:-7px}
  .rhinofit-frame{height:82vh;min-height:680px}
}
@media(max-height:750px) and (min-width:701px){
  .rhinofit-frame{height:82vh;min-height:600px}
}

.class-schedule{margin-top:70px}.schedule-intro{max-width:760px;margin-bottom:28px}.schedule-intro h2{font-size:clamp(38px,5vw,60px);margin:7px 0 12px}.schedule-intro p:not(.eyebrow){color:#555;line-height:1.6}
.calendar-shell{background:#fff;border:1px solid #d8d8d3;border-radius:5px;overflow:hidden;box-shadow:0 18px 50px rgba(0,0,0,.12)}
.rhinofit-calendar{display:block;width:100%;height:900px;border:0;background:#fff}
.powered-by{text-align:center;padding:15px 0 0}.powered-by a{font-size:11px;color:#777;text-transform:uppercase;letter-spacing:1.2px;font-weight:800}
@media(max-width:900px){.rhinofit-calendar{height:850px}}
@media(max-width:600px){.class-schedule{margin-top:55px}.calendar-shell{margin-left:-7px;margin-right:-7px}.rhinofit-calendar{height:780px}}

.class-schedule{scroll-margin-top:95px}

/* Homepage real TKGym photography */
.home-experience{overflow:hidden}
.home-gallery{display:grid;grid-template-columns:1.6fr .8fr;gap:14px;margin-top:30px}
.home-gallery figure{margin:0;position:relative;overflow:hidden;background:#111;min-height:520px}
.home-gallery img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease}
.home-gallery figure:hover img{transform:scale(1.02)}
.gallery-wide img{object-position:center center}
.gallery-tall img{object-position:center 42%}
.home-gallery figure:after{content:"";position:absolute;inset:50% 0 0;background:linear-gradient(transparent,rgba(4,6,7,.9))}
.home-gallery figcaption{position:absolute;z-index:2;left:28px;right:28px;bottom:25px;color:#fff;display:flex;flex-direction:column;gap:5px}
.home-gallery figcaption strong{font-size:24px;text-transform:uppercase}
.home-gallery figcaption span{font-size:14px;color:#ddd}
.experience-actions{display:flex;align-items:end;justify-content:space-between;gap:30px;padding-top:32px}
.experience-actions h3{font-size:30px;text-transform:uppercase;margin:6px 0 0}
@media(max-width:800px){
 .home-gallery{grid-template-columns:1fr}
 .home-gallery figure{min-height:390px}
 .gallery-tall{max-height:620px}
 .experience-actions{align-items:flex-start;flex-direction:column}
}
@media(max-width:520px){
 .home-gallery figure{min-height:320px}
 .gallery-tall{min-height:500px}
 .home-gallery figcaption{left:20px;bottom:18px}
}

/* Eric personal training profile */
.trainer-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:70px;align-items:center}
.trainer-photo{height:720px;overflow:hidden;background:#111}
.trainer-photo img{width:100%;height:100%;object-fit:cover;object-position:center center;display:block}
.trainer-copy h2{margin-bottom:20px}.trainer-copy>p{color:#555;line-height:1.75}
.trainer-lead{font-size:21px!important;color:#222!important;font-weight:700}
.trainer-points{display:grid;grid-template-columns:1fr 1fr;gap:0 25px;margin:30px 0}
.trainer-points div{padding:16px 0;border-top:1px solid #ccc;display:flex;gap:14px;text-transform:uppercase;font-size:12px;font-weight:900}
.trainer-points b{color:var(--gold)}
.home-trainer{padding:0}
.trainer-feature{display:grid;grid-template-columns:1fr .8fr;min-height:590px;align-items:stretch}
.trainer-feature-copy{padding:90px 70px 90px 0;align-self:center}
.trainer-feature-copy h2{font-size:clamp(45px,6vw,76px);text-transform:uppercase;letter-spacing:-3px;margin:10px 0 18px}
.trainer-feature-copy p:not(.eyebrow){max-width:560px;color:#ccc;line-height:1.7;margin-bottom:28px}
.trainer-feature-photo{min-height:590px;overflow:hidden}
.trainer-feature-photo img{width:100%;height:100%;object-fit:cover;object-position:center 45%;display:block}
@media(max-width:850px){
 .trainer-grid,.trainer-feature{grid-template-columns:1fr}
 .trainer-photo{height:650px}
 .trainer-feature-copy{padding:70px 0 45px}
 .trainer-feature-photo{min-height:600px}
}
@media(max-width:520px){
 .trainer-photo{height:520px}
 .trainer-points{grid-template-columns:1fr}
 .trainer-feature-photo{min-height:520px}
}

/* Eric Stiller trainer profile */
.trainer-grid{display:grid;grid-template-columns:.82fr 1.18fr;gap:70px;align-items:center}
.trainer-photo{overflow:hidden;background:#111;min-height:690px}
.trainer-photo.portrait img{width:100%;height:100%;min-height:690px;object-fit:cover;object-position:center 35%;display:block}
.trainer-copy h2{font-size:clamp(48px,6vw,76px);text-transform:uppercase;letter-spacing:-2px;margin:8px 0 20px}
.trainer-copy>p{color:#555;line-height:1.75}
.trainer-copy .trainer-lead{font-size:20px;color:#222;font-weight:700}
.credentials{margin:30px 0;padding:25px 0;border-top:1px solid #ccc;border-bottom:1px solid #ccc}
.credentials ul{display:grid;grid-template-columns:1fr 1fr;gap:10px 25px;padding:0;margin:14px 0 0;list-style:none}
.credentials li{font-size:12px;font-weight:900;text-transform:uppercase;padding-left:17px;position:relative}
.credentials li:before{content:"";position:absolute;left:0;top:6px;width:6px;height:6px;background:var(--gold)}
.trainer-copy blockquote{margin:28px 0 30px;padding-left:22px;border-left:3px solid var(--gold);font-size:20px;font-weight:800;line-height:1.45}
@media(max-width:850px){
 .trainer-grid{grid-template-columns:1fr}
 .trainer-photo,.trainer-photo.portrait img{min-height:600px}
}
@media(max-width:520px){
 .trainer-photo,.trainer-photo.portrait img{min-height:500px}
 .credentials ul{grid-template-columns:1fr}
}

/* v10: requested three-photo homepage sequence */
.home-gallery.home-gallery-three{grid-template-columns:1.25fr .72fr .72fr}
.home-gallery.home-gallery-three figure{min-height:520px}
.home-gallery.home-gallery-three figure:nth-child(2) img,
.home-gallery.home-gallery-three figure:nth-child(3) img{object-position:center 40%}
@media(max-width:900px){
 .home-gallery.home-gallery-three{grid-template-columns:1fr 1fr}
 .home-gallery.home-gallery-three figure:first-child{grid-column:1/-1}
}
@media(max-width:600px){
 .home-gallery.home-gallery-three{grid-template-columns:1fr}
 .home-gallery.home-gallery-three figure:first-child{grid-column:auto}
 .home-gallery.home-gallery-three figure{min-height:390px}
 .home-gallery.home-gallery-three figure:nth-child(2),
 .home-gallery.home-gallery-three figure:nth-child(3){min-height:520px}
}


/* Publication QA hardening */
html{overflow-x:hidden}body{overflow-x:hidden;-webkit-text-size-adjust:100%}
img{max-width:100%}
a,button{touch-action:manipulation}
.menu{min-width:48px;min-height:48px;cursor:pointer}
nav a,.btn{min-height:44px;display:inline-flex;align-items:center;justify-content:center}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
@media(max-width:850px){
 .site-header.open{background:#070a0b}
 .site-header.open nav{max-height:calc(100vh - 68px);overflow:auto;border-top:1px solid #252a2c}
 .site-header.open nav a{justify-content:flex-start;min-height:48px}
}
@media(max-width:380px){
 .brand{min-width:125px}.brand span{font-size:25px}.brand small{letter-spacing:5px}
 .hero h1{font-size:45px}.benefits div{font-size:18px}.benefits span{font-size:9px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.home-gallery img{transition:none}}
