@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&display=swap');
:root{--bg:#101211;--panel:#191c1a;--muted:#a6aca8;--line:#303631;--green:#37dc8a;--white:#f4f5f2}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--bg);color:var(--white);font-family:'DM Sans',Arial,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--green);outline-offset:6px}button{cursor:pointer}p{color:var(--muted);line-height:1.75;font-size:16px}h1,h2,h3,p{margin-top:0}h2{font-size:clamp(36px,4.2vw,62px);font-weight:500;line-height:1.1;letter-spacing:-2.8px;margin-bottom:28px}h2 span{color:var(--muted)}h3{font-size:25px;font-weight:500;letter-spacing:-.6px}em{font-style:normal;color:var(--green)}.nav{position:relative;z-index:5;margin:24px auto 0;max-width:1240px;width:calc(100% - 64px);display:flex;align-items:center;gap:26px;padding:15px 20px 15px 28px;border:1px solid #ffffff0b;border-radius:80px;background:#1a1d1b}.logo{font-size:25px;font-weight:700;letter-spacing:-1.2px;white-space:nowrap}.logo span{color:var(--green)}.nav-sub{font-size:12px;color:var(--muted);margin-right:auto}.nav nav{display:flex;gap:26px;font-size:13px;color:#d7dcd8}.nav nav a:hover{color:var(--green)}.button{display:inline-flex;align-items:center;justify-content:center;gap:20px;border:1px solid transparent;border-radius:40px;font-size:14px;font-weight:600;padding:17px 26px;transition:transform .2s,background .2s}.button:hover{transform:translateY(-3px)}.green{background:var(--green);color:#092217}.white{background:var(--white);color:#141714}.outline{border-color:#657168;background:transparent;color:var(--white)}.nav .button{font-size:12px;padding:13px 20px}.menu{display:none;background:transparent;border:0;color:white;font-size:25px}.hero{text-align:center;padding:78px 24px 50px}.eyebrow{font-size:10px;font-weight:550;letter-spacing:2.2px;color:#c1c8c2;display:flex;align-items:center;gap:10px;margin-bottom:30px}.eyebrow i{height:7px;width:7px;background:var(--green);border-radius:50%;display:inline-block}.hero .eyebrow{justify-content:center}.hero h1{font-size:clamp(52px,7.7vw,112px);letter-spacing:-6px;font-weight:600;line-height:1.01;margin-bottom:30px}.hero h1 span{color:#b7bdb9}.hero p{font-size:18px;line-height:1.6}.actions{display:flex;justify-content:center;align-items:center;gap:34px;margin-top:30px}.text-link{font-size:13px;color:#c0c7c1;text-decoration:underline;text-underline-offset:5px}.text-link span{margin-left:14px}.photo-strip{max-width:1520px;margin:10px auto 0;display:grid;grid-template-columns:1fr 1.25fr 1fr;gap:18px;padding:0 24px;overflow:hidden}.photo-strip figure{margin:18px 0;position:relative;height:355px;border-radius:18px;overflow:hidden;background:#262c27}.photo-strip img{width:100%;height:100%;object-fit:cover}.photo-strip .side:first-child{transform:rotate(3deg)}.photo-strip .side:last-child{transform:rotate(-3deg)}.photo-strip .side img{filter:grayscale(1) brightness(.75)}.photo-strip .center img{object-position:center 38%;background:#272c28}.photo-strip figcaption{position:absolute;bottom:0;padding:35px 22px 19px;font-size:9px;letter-spacing:1.6px;background:linear-gradient(transparent,#000b);width:100%}.section{max-width:1200px;margin:0 auto;padding:110px 0;border-bottom:1px solid var(--line)}.split{display:grid;grid-template-columns:1.3fr 1fr;gap:100px;align-items:center}.split>p{max-width:390px;margin:0 0 20px}.goals{display:grid;grid-template-columns:repeat(3,1fr);gap:55px;margin-top:48px}.number{font-size:11px;color:var(--green);display:block;margin-bottom:22px}.goals article{border-top:1px solid var(--line);padding-top:20px}.goals p{font-size:14px;max-width:300px}.service-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:36px}.service-card{padding:38px;border:1px solid var(--line);border-radius:24px;background:var(--panel)}.service-card.online{background:#151a16}.card-top{display:flex;justify-content:space-between;align-items:center;font-size:10px;letter-spacing:1.6px;margin-bottom:48px}.arrow{font-size:26px;color:var(--green)}.service-card h3{font-size:48px;line-height:1.08;letter-spacing:-2px;margin-bottom:24px}.service-card>p{min-height:85px;font-size:15px}.tags{display:flex;flex-wrap:wrap;gap:7px;margin:25px 0}.tags span,.credentials span{font-size:11px;padding:8px 12px;border:1px solid #3c443e;border-radius:40px;color:#c4ccc5}details{border-top:1px solid var(--line)}summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:20px;font-size:14px;padding:22px 0}summary::-webkit-details-marker{display:none}summary span{color:var(--green);font-size:20px;line-height:1;transition:transform .2s}details:not(.service-picker)[open]>summary>.disclosure-sign{transform:none}details p,details li{font-size:14px;color:var(--muted);line-height:1.7}details ul{padding-left:18px}.price{display:flex;justify-content:space-between;align-items:center;padding:20px 0 30px;font-size:13px;border-top:1px solid var(--line);color:var(--muted)}.placeholder{color:#c6d2c9;font-size:12px;font-weight:400;border:1px dashed #66716a;padding:5px 10px;border-radius:5px}.approach{display:grid;grid-template-columns:1fr 1fr;gap:90px}.principles article{display:flex;gap:24px;padding:30px 0;border-top:1px solid var(--line)}.principles article:first-child{padding-top:0;border:0}.principles article>span{font-size:11px;color:var(--green);padding-top:7px}.principles h3{margin-bottom:12px}.principles p{font-size:15px;margin:0}.about{display:grid;grid-template-columns:.85fr 1fr;gap:100px;align-items:center}.portrait{position:relative;height:580px;border-radius:20px;overflow:hidden;background:#252a26}.portrait img{width:100%;height:100%;object-fit:cover;filter:grayscale(1);object-position:center 30%}.portrait>span{position:absolute;bottom:0;padding:55px 26px 25px;background:linear-gradient(transparent,#000c);width:100%;font-size:10px;letter-spacing:2px}.about p{font-size:15px}.credentials{display:flex;gap:7px;flex-wrap:wrap;margin-top:26px}.review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-top:40px}.review-grid article{padding:26px;background:#171a18;border:1px solid var(--line);border-radius:18px}.quote{font-size:50px;color:var(--green);line-height:1}blockquote{margin:12px 0 25px;font-size:17px;line-height:1.6;min-height:170px}.person{display:flex;gap:13px;align-items:center;margin-bottom:25px}.person img{width:42px;height:42px;border-radius:50%;object-fit:cover;filter:grayscale(1)}.person span{font-size:14px}.person small{display:block;color:var(--muted);font-size:11px;margin-top:4px}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:60px;margin-top:50px}.steps b{display:block;font-size:52px;letter-spacing:-3px;color:#727e74;font-weight:400;margin-bottom:30px}.steps h3{font-size:23px}.steps p{font-size:14px}.faq{display:grid;grid-template-columns:1fr 1fr;gap:80px}.faq h2{font-size:44px}.faq details:last-child{border-bottom:1px solid var(--line)}.faq summary{font-size:16px;padding:24px 0}.contact{display:grid;grid-template-columns:1fr 1fr;gap:100px;border:0}.contact h2{font-size:65px}.contact-info{display:flex;flex-direction:column;gap:9px;margin-top:40px}.contact-info>span{font-size:9px;letter-spacing:2px;color:var(--muted);margin-top:16px}.contact-info small{color:var(--muted);font-size:13px}.draft-note{border:1px dashed #46594c;padding:15px 18px;border-radius:10px;color:#adbcb1;font-size:12px;line-height:1.6;margin-bottom:25px}.draft-note span{display:block;color:var(--green);font-size:9px;letter-spacing:1.5px;margin-bottom:5px}label{display:block;font-size:13px;margin:20px 0 9px}label small{color:var(--muted)}input,select,textarea{width:100%;background:#191e1a;border:1px solid #384239;border-radius:9px;color:var(--white);padding:15px;font-size:14px}input:focus,select:focus,textarea:focus{outline:1px solid var(--green);border-color:var(--green)}textarea{resize:vertical}form .button{margin-top:24px;width:100%}#form-result{font-size:13px;color:var(--green)}footer{border-top:1px solid var(--line);display:flex;align-items:center;gap:30px;max-width:1200px;margin:auto;padding:35px 0 45px}footer p{font-size:12px;margin:0 auto 0 0}footer>span,.footer-link{font-size:11px;color:var(--muted)}.footer-link{border:0;background:none;text-decoration:underline}dialog{background:var(--panel);color:white;border:1px solid var(--line);border-radius:20px;padding:35px;max-width:500px;width:calc(100% - 40px)}dialog::backdrop{background:#000b}.close{float:right;background:none;border:0;color:white;font-size:30px}.skip{position:absolute;top:-100px;background:white;color:black;padding:15px;z-index:10}.skip:focus{top:0}::selection{background:var(--green);color:black}@media(min-width:1600px){.hero{padding-top:100px}}@media(max-width:1300px){.section,footer{margin-left:50px;margin-right:50px}.nav-sub{display:none}.nav nav{margin-left:auto}.hero h1{letter-spacing:-4px}.photo-strip figure{height:300px}.about{gap:60px}}@media(max-width:900px){.nav{width:calc(100% - 32px);padding-left:22px;gap:15px}.nav nav{gap:15px;font-size:12px}.nav-cta{display:none!important}.nav-sub{display:none}.section{padding:75px 0;margin:0 28px}.hero{padding-top:65px}.hero h1{font-size:70px}.split,.approach,.about,.faq,.contact{gap:40px}.photo-strip figure{height:270px}.photo-strip{gap:12px}.goals{gap:25px}.service-card{padding:26px}.review-grid{gap:15px}.review-grid article{padding:20px}blockquote{font-size:15px;min-height:190px}.about{grid-template-columns:.8fr 1fr}.portrait{height:530px}.contact h2{font-size:48px}footer{margin:0 28px;flex-wrap:wrap}footer p{flex:1}.steps{gap:25px}.service-card h3{font-size:40px}}
@media(max-width:640px){html{scroll-padding-top:20px}.nav{margin-top:14px;padding:13px 20px}.logo{font-size:23px}.menu{display:block;margin-left:auto}.nav nav{display:none;position:absolute;top:68px;left:0;right:0;background:#202622;border:1px solid var(--line);border-radius:20px;padding:20px;box-shadow:0 15px 30px #0006}.nav nav.open{display:flex;flex-direction:column;gap:0}.nav nav a{padding:14px;font-size:16px}.hero{padding:55px 20px 30px}.eyebrow{font-size:9px;letter-spacing:1.4px;margin-bottom:24px}.hero h1{font-size:clamp(42px,10vw,63px);letter-spacing:-2.7px;line-height:1.08}.hero p{font-size:15px;max-width:330px;margin-left:auto;margin-right:auto}.hero p br{display:none}.actions{flex-direction:column;gap:23px;margin-top:25px}.button{font-size:13px;padding:16px 24px}.photo-strip{grid-template-columns:.5fr 1.1fr .5fr;gap:9px;padding:0 10px}.photo-strip figure{height:220px;border-radius:12px}.photo-strip .center img{object-position:center 30%}.photo-strip figcaption{font-size:7px;padding:35px 10px 13px;letter-spacing:.6px}.photo-strip .side figcaption{display:none}.section{margin:0 22px;padding:65px 0}h2{font-size:38px;letter-spacing:-1.8px}.split,.approach,.about,.faq,.contact{grid-template-columns:1fr;gap:25px}.split>p{font-size:14px;margin:0}.goals{grid-template-columns:1fr;gap:15px;margin-top:30px}.goals article{display:grid;grid-template-columns:30px 1fr;column-gap:14px;padding-top:20px}.number{grid-row:1/3;margin-top:6px}.goals h3{font-size:22px;margin-bottom:10px}.goals p{max-width:none}.service-grid{grid-template-columns:1fr;gap:18px;margin-top:30px}.service-card{padding:28px}.card-top{margin-bottom:30px}.service-card h3{font-size:43px}.service-card>p{min-height:0}.service-card .button{width:100%}.principles article:first-child{border-top:1px solid var(--line);padding-top:25px}.portrait{height:430px;max-width:430px;width:100%}.about>div:last-child{padding-top:15px}.review-grid{grid-template-columns:1fr;gap:16px}.review-grid article{padding:27px}blockquote{min-height:0;font-size:18px}.steps{grid-template-columns:1fr;gap:25px;margin-top:30px}.steps article{display:grid;grid-template-columns:50px 1fr;column-gap:20px;border-top:1px solid var(--line);padding-top:25px}.steps b{grid-row:1/3;font-size:38px;margin:0}.steps h3{margin-bottom:10px}.steps p{margin-bottom:0}.faq h2{font-size:38px}.faq summary{font-size:14px}.contact h2{font-size:46px}.contact-info{margin-top:20px}.contact form{margin-top:15px}footer{margin:0 22px;gap:20px;padding:30px 0}footer p{flex-basis:100%;order:2}footer>span{margin-left:auto}footer .footer-link{order:3}.contact-info{padding-bottom:20px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
.photo-strip .center img{object-position:center 12%}@media(max-width:640px){.photo-strip .center img{object-position:center 10%}}

.service-card>.enquiry-note{min-height:0;border-top:1px solid var(--line);padding:20px 0 0;margin:0 0 24px;font-size:13px;line-height:1.65}
/* Scroll entrances use translate independently of the photographs' rotation. */
.reveal{transition:opacity .75s ease,translate .85s cubic-bezier(.2,.7,.2,1);transition-delay:var(--reveal-delay,0ms)}
.reveal-pending{opacity:0;translate:0 46px}
.reveal-visible{opacity:1;translate:0 0}
@media(hover:hover) and (prefers-reduced-motion:no-preference){
 .service-card,.review-grid>article{transition:border-color .25s,box-shadow .25s,opacity .75s,translate .85s cubic-bezier(.2,.7,.2,1);transition-delay:0s,0s,var(--reveal-delay,0ms),var(--reveal-delay,0ms)}
 .service-card:hover,.review-grid>article:hover{border-color:#52685a;box-shadow:0 14px 40px #0002}
 .portrait img{transition:transform .8s cubic-bezier(.2,.7,.2,1)}
 .portrait:hover img{transform:scale(1.025)}
}
@media(max-width:640px){.reveal-pending{translate:0 28px}.reveal{transition-duration:.6s,.7s;transition-delay:0ms}}
@media(prefers-reduced-motion:reduce){.reveal,.reveal-pending,.reveal-visible{opacity:1;translate:none;transition:none!important}}
@media print{.reveal-pending{opacity:1;translate:none}}

.education{margin-top:30px;border-top:1px solid var(--line)}.education>div{padding:18px 0;border-bottom:1px solid var(--line)}.education span{display:block;color:var(--muted);font-size:9px;letter-spacing:1.5px;margin-bottom:9px}.education strong{font-size:15px;font-weight:500}.education p{font-size:13px;margin:5px 0 0}.contact-link{font-size:16px;overflow-wrap:anywhere;transition:color .2s}.contact-link:hover{color:var(--green)}

.review-disclosure{border:0}.review-disclosure>summary{display:block;position:relative;padding:0;list-style:none}.review-disclosure>summary>.quote{display:block;font-size:50px;line-height:1;color:var(--green);transform:none}.review-disclosure blockquote{font-size:17px;line-height:1.6;margin:12px 0 25px;min-height:170px}.review-disclosure .person{margin-bottom:0;padding-right:30px}.review-disclosure .person span{color:var(--white);font-size:14px;line-height:normal;transform:none}.review-disclosure .review-chevron{position:absolute;right:0;bottom:13px;font-size:25px;color:var(--green);transform:rotate(0);transition:transform .2s}.review-disclosure[open] .review-chevron{transform:rotate(180deg)}.review-continuation{margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}.review-continuation p{margin:0}.review-disclosure[open] .person span,.review-disclosure[open] .quote{transform:none}@media(max-width:900px){.review-disclosure blockquote{font-size:15px;min-height:190px}}@media(max-width:640px){.review-disclosure blockquote{min-height:0;font-size:18px}}
.footer-details{flex-basis:100%;width:100%;border-top:1px solid var(--line)}footer{flex-wrap:wrap}.footer-details>summary{font-size:12px;color:var(--muted);justify-content:flex-start;gap:18px}.footer-details>div{padding:10px 0 25px;max-width:680px}.footer-details h3{font-size:20px}.footer-details p{font-size:13px;margin:10px 0}.review-disclosure[open] .quote{transform:none}

.hero h1.hero-slogan{max-width:1240px;margin-left:auto;margin-right:auto;font-size:clamp(38px,5.5vw,79px);letter-spacing:-3.6px;line-height:1.12}.hero-slogan>span{display:block;margin-top:.08em}@media(max-width:900px){.hero h1.hero-slogan{font-size:clamp(38px,5.8vw,58px);letter-spacing:-2.3px}}@media(max-width:640px){.hero h1.hero-slogan{font-size:clamp(35px,8.5vw,48px);letter-spacing:-1.7px;line-height:1.15}.hero-slogan>span{margin-top:.24em}}

/* One large portrait blends into the opening section. */
.hero.hero-photo{position:relative;isolation:isolate;overflow:hidden;min-height:830px;max-width:1600px;margin:0 auto;padding:155px 70px 145px;text-align:left;display:flex;align-items:center}
.hero-background{position:absolute;inset:0;z-index:-2;pointer-events:none}.hero-background img{position:absolute;right:0;bottom:-70px;height:104%;width:61%;object-fit:contain;object-position:right bottom;opacity:.68;filter:saturate(.6) brightness(.86)}
.hero-photo::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(90deg,#101211 1%,#101211ed 24%,#1012119c 47%,#1012110d 78%),linear-gradient(0deg,#101211 0%,transparent 25%,transparent 85%,#10121166 100%)}
.hero-content{position:relative;width:100%;max-width:900px}.hero-photo .eyebrow{justify-content:flex-start}.hero-photo h1.hero-slogan{font-size:clamp(48px,5.1vw,76px);max-width:900px;margin-left:0;letter-spacing:-3.4px;line-height:1.1;text-wrap:balance}.hero-photo h1.hero-slogan>span{color:#c1c8c2;max-width:800px;margin-top:.14em}.hero-photo p{max-width:560px;color:#c0c8c2;font-size:17px;margin-left:0}.hero-photo .actions{justify-content:flex-start;margin-top:34px}.hero-photo+.intro{padding-top:65px}
@media(min-width:1600px){.hero.hero-photo{padding-left:150px;min-height:900px}.hero-background img{right:55px}}
@media(max-width:1000px){.hero.hero-photo{padding:120px 45px;min-height:780px}.hero-content{max-width:670px}.hero-photo h1.hero-slogan{font-size:60px;letter-spacing:-2.8px}.hero-background img{right:-90px;width:72%;opacity:.55}.hero-photo::after{background:linear-gradient(90deg,#101211 0%,#101211e6 24%,#10121185 55%,#10121133 100%),linear-gradient(0deg,#101211,transparent 30%)}}
@media(max-width:640px){.hero.hero-photo{min-height:870px;padding:65px 24px 320px;align-items:flex-start}.hero-content{max-width:none}.hero-photo h1.hero-slogan{font-size:clamp(36px,9.3vw,52px);letter-spacing:-1.8px;line-height:1.13;text-wrap:initial}.hero-photo h1.hero-slogan>span{margin-top:.22em}.hero-photo .eyebrow{font-size:8px;letter-spacing:1.1px}.hero-photo p{font-size:14px;max-width:310px;margin-top:25px}.hero-photo .actions{align-items:flex-start;gap:22px;margin-top:26px}.hero-background img{height:72%;width:100%;right:-32%;bottom:-20px;opacity:.5;object-position:right bottom}.hero-photo::after{background:linear-gradient(180deg,#101211 0%,#101211f0 25%,#10121180 47%,#10121105 68%,#101211 100%),linear-gradient(90deg,#10121166,transparent)}.hero-photo+.intro{padding-top:30px}}

/* Completed gym scene, softly shaded for readable foreground type. */
.hero-background img{inset:0;width:100%;height:100%;object-fit:cover;object-position:center center;opacity:1;filter:saturate(.78) brightness(.82)}
.hero-photo::after{background:linear-gradient(90deg,#101211ed 0%,#101211cc 28%,#10121178 52%,#10121112 80%),linear-gradient(0deg,#101211 0%,#10121100 28%,#10121100 78%,#10121155 100%)}
.hero.hero-photo{max-width:none;min-height:800px}.hero-content{max-width:800px}.hero-photo h1.hero-slogan{font-size:clamp(48px,5vw,72px);max-width:800px}
@media(min-width:1600px){.hero.hero-photo{padding-left:max(90px,calc((100vw - 1280px)/2));min-height:880px}.hero-background img{right:0}}
@media(max-width:1000px){.hero-background img{inset:0;width:100%;height:100%;object-position:62% center;opacity:1}.hero-photo::after{background:linear-gradient(90deg,#101211ed,#101211aa 50%,#10121133),linear-gradient(0deg,#101211,transparent 35%)}.hero-photo h1.hero-slogan{font-size:60px;max-width:650px}}
@media(max-width:640px){.hero.hero-photo{min-height:920px;padding-bottom:380px}.hero-photo h1.hero-slogan{font-size:clamp(36px,9.3vw,52px);max-width:none}.hero-background img{top:auto;bottom:0;left:0;right:0;width:100%;height:68%;object-fit:cover;object-position:72% center;opacity:1;filter:saturate(.7) brightness(.75)}.hero-photo::after{background:linear-gradient(180deg,#101211 0%,#101211 25%,#101211dd 38%,#10121144 64%,#10121111 80%,#101211 100%)}.hero-photo p{color:#cbd1cc}.hero-photo .actions{position:relative}}

/* Hero begins at the top edge, with navigation floating over the photograph. */
.nav{position:absolute;top:24px;left:50%;transform:translateX(-50%);margin:0;z-index:10;background:#191e1bea;backdrop-filter:blur(12px)}
.hero.hero-photo{min-height:910px;padding-top:210px;padding-bottom:130px}
.hero-background img{object-position:center center}
.hero-photo::after{background:linear-gradient(90deg,#101211ed 0%,#101211cc 28%,#10121178 52%,#10121112 80%),linear-gradient(0deg,#101211 0%,#10121100 30%,#10121100 74%,#101211cc 100%)}
.online>p strong{font-weight:600;color:#e5eee7}
@media(min-width:1600px){.hero.hero-photo{min-height:980px}}
@media(max-width:1000px){.hero.hero-photo{min-height:880px;padding-top:185px}.hero-background img{object-position:62% center}}
@media(max-width:640px){.nav{top:14px}.hero.hero-photo{min-height:1010px;padding-top:145px;padding-bottom:380px}.hero-background img{object-position:72% center}.hero-photo::after{background:linear-gradient(180deg,#101211 0%,#101211 25%,#101211dd 38%,#10121144 64%,#10121111 80%,#101211 100%)}}
/* Keep the full head below the floating navigation, with a soft top blend. */
@media(min-width:641px){.hero-background img{top:76px;bottom:auto;height:100%;mask-image:linear-gradient(to bottom,transparent 0,#000 90px);-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 90px)}}

/* Original portrait, toned with CSS only; face and proportions are untouched. */
.portrait{background:#303632}.portrait img{filter:grayscale(1) contrast(.88) brightness(.95);opacity:.94;object-position:center 24%}
@media(max-width:640px){.portrait img{object-position:center 22%}}

/* Muted natural colors match the charcoal and green palette. */
.portrait img{filter:saturate(.42) contrast(.95) brightness(.86);opacity:1}.about .portrait{align-self:start;position:sticky;top:35px}
.education-timeline{margin-top:35px;padding-top:25px;border-top:1px solid var(--line)}.education-timeline>h3{font-size:16px;font-weight:500;letter-spacing:-.2px;margin:0 0 25px}.timeline{list-style:none;margin:0;padding:0}.timeline>li{position:relative;display:grid;grid-template-columns:54px 1fr;gap:24px;padding:0 0 25px}.timeline>li:last-child{padding-bottom:5px}.timeline time{font-size:12px;color:var(--green);line-height:1.6;font-variant-numeric:tabular-nums}.timeline>li>div{position:relative;padding-left:23px}.timeline>li>div::before{content:"";position:absolute;left:0;top:5px;width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px #37dc8a0c}.timeline>li:not(:last-child)::after{content:"";position:absolute;left:81px;top:18px;bottom:-1px;width:1px;background:#34483b}.timeline strong{font-size:14px;font-weight:500;line-height:1.5}.timeline p{font-size:12px;margin:5px 0 0;color:var(--muted);line-height:1.5}.practice{display:flex;align-items:center;gap:20px;margin-top:26px;padding:21px 0 0;border-top:1px solid var(--line)}.practice>strong{font-size:58px;line-height:1;color:var(--green);font-weight:500;letter-spacing:-3px}.practice>div{font-size:15px}.practice small{display:block;font-size:11px;color:var(--muted);margin-top:7px;line-height:1.5}@media(max-width:640px){.about .portrait{position:relative;top:auto}.timeline>li{gap:13px;grid-template-columns:42px 1fr}.timeline>li:not(:last-child)::after{left:58px}.timeline strong{font-size:13px}.timeline>li>div{padding-left:20px}}

/* Natural skin color in the original portrait; only a restrained color treatment. */
.portrait img{filter:saturate(.7) contrast(.98) brightness(1);opacity:1}
/* A photographic setting for real client experiences. */
.reviews{position:relative;isolation:isolate;padding:90px 32px 90px;border:0}.reviews-backdrop{position:absolute;inset:0 -25px;z-index:-2;overflow:hidden;border-radius:24px}.reviews-backdrop img{width:100%;height:660px;object-fit:cover;object-position:64% center;filter:saturate(.8) brightness(.8)}.reviews-backdrop::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#101211ee 0%,#101211aa 42%,#10121122 75%),linear-gradient(0deg,#101211 12%,#101211aa 38%,transparent 80%,#10121155 100%)}.reviews>.eyebrow{position:relative}.reviews>h2{max-width:760px;margin-bottom:140px}.reviews .review-grid{position:relative}.reviews .review-grid>article{background:#171c19f5;border-color:#415047;backdrop-filter:blur(8px)}
@media(max-width:900px){.reviews{padding-left:16px;padding-right:16px}.reviews-backdrop{inset:0 -12px}.reviews>h2{max-width:590px;margin-bottom:130px}}
@media(max-width:640px){.reviews{padding:65px 0}.reviews-backdrop{inset:0 -22px;border-radius:0}.reviews-backdrop img{height:540px;object-position:73% center}.reviews-backdrop::after{background:linear-gradient(90deg,#101211cc,#10121155),linear-gradient(0deg,#101211 30%,#10121122 77%,#10121199)}.reviews>h2{max-width:340px;margin-bottom:150px}.reviews .review-grid{gap:16px}}

/* Smooth photo ending, static about portrait and an inline service picker. */
.hero-background::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(to bottom,transparent 86%,#10121155 94%,#101211 100%)}
.about .portrait{position:relative;top:auto;align-self:start}
.portrait img,.portrait:hover img{transform:none;transition:none}
.field-label{display:block;font-size:13px;margin:20px 0 9px}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.service-picker{border:1px solid #384239;border-radius:12px;background:#191e1a;overflow:hidden}
.service-picker summary{padding:16px;align-items:center;gap:16px;min-height:54px}
.service-picker summary>span{font-size:14px;line-height:1.5;color:var(--white);transform:none}
.service-picker summary i{width:8px;height:8px;border-right:1.5px solid var(--muted);border-bottom:1.5px solid var(--muted);transform:rotate(45deg);margin:-4px 4px 0;flex-shrink:0;transition:transform .2s}
.service-picker[open] summary{border-bottom:1px solid var(--line)}
.service-picker[open] summary i{transform:rotate(225deg);margin-top:4px}
.service-picker summary:focus-visible{outline-offset:-3px;border-radius:11px}
.service-picker fieldset{margin:0;padding:7px;border:0;display:grid;gap:3px}
.service-picker label{display:flex;align-items:center;gap:12px;padding:13px 12px;margin:0;border-radius:8px;cursor:pointer;transition:background .2s}
.service-picker label:hover{background:#ffffff07}
.service-picker label:has(input:checked){background:#37dc8a0c}
.service-picker input[type=radio]{appearance:none;-webkit-appearance:none;width:16px;height:16px;border:1px solid #657168;border-radius:50%;padding:0;margin:0;background:transparent;flex-shrink:0}
.service-picker input[type=radio]:checked{border-color:var(--green);background:var(--green);box-shadow:inset 0 0 0 4px #191e1a}
.service-picker label>span{font-size:14px;line-height:1.4}
.service-picker small{display:block;color:var(--muted);font-size:11px;line-height:1.5;margin-top:3px}

/* Only the edge fades; keep the leg visible above the blend. */
.hero-photo::after{background:linear-gradient(90deg,#101211ed 0%,#101211cc 28%,#10121178 52%,#10121112 80%),linear-gradient(180deg,#101211cc,transparent 26%)}
@media(max-width:640px){.hero-photo::after{background:linear-gradient(180deg,#101211 0%,#101211 25%,#101211dd 38%,#10121144 64%,#10121100 82%)}}
/* Disclosure labels stay level; only their small sign changes. */
.service-picker[open]>summary>span{transform:none}
.service-picker summary>.picker-toggle{display:block;width:16px;flex:0 0 16px;color:var(--muted);font-size:20px;text-align:center}
.picker-toggle::before{content:"+"}
.service-picker[open] .picker-toggle::before{content:"−"}
.review-disclosure .review-chevron,.review-disclosure[open] .review-chevron{transform:none;font-size:0}
.review-chevron::before{content:"+";font-size:20px;color:var(--muted)}
.review-disclosure[open] .review-chevron::before{content:"−"}

summary>.disclosure-sign,details[open]>summary>.disclosure-sign{transform:none;color:var(--muted)}
.disclosure-sign::before{content:"+"}
details[open]>summary>.disclosure-sign::before{content:"−"}

/* Blend at the image's own mobile edge, regardless of heading height. */
@media(max-width:640px){
 .hero-background img{mask-image:linear-gradient(to bottom,transparent 0%,#000 22%,#000 91%,transparent 100%);-webkit-mask-image:linear-gradient(to bottom,transparent 0%,#000 22%,#000 91%,transparent 100%)}
}

/* Two distinct green actions for the cooperation options. */
.service-card>.choose.green{background:var(--green);border-color:var(--green);color:#092217}
.service-card>.choose.green:hover{background:#66e8a6;border-color:#66e8a6}
.service-card>.choose.green-soft{background:#203d2d;border-color:#50ad77;color:#d8f7e4}
.service-card>.choose.green-soft:hover{background:#2c513c;border-color:#72cf99}

/* A continuous, touch-friendly view of the real gym. */
.gym-gallery{padding:95px 0 80px;overflow:hidden;border-bottom:1px solid var(--line)}
.gym-heading,.gym-caption{max-width:1200px;margin:auto;display:flex;align-items:end;justify-content:space-between;gap:30px}
.gym-heading h2{margin-bottom:22px}.gym-heading p{margin-bottom:0;max-width:600px}
.gym-motion{border:1px solid #49554c;background:transparent;color:#c7d1c9;border-radius:30px;padding:12px 18px;font-size:12px;white-space:nowrap;transition:background .2s}
.gym-motion:hover{background:#233029}.gym-filter{position:absolute;pointer-events:none}
.gym-viewport{overflow-x:auto;overflow-y:hidden;cursor:grab;scrollbar-width:none;overscroll-behavior-x:contain;padding:45px 0 35px;outline-offset:-5px}
.gym-viewport::-webkit-scrollbar{display:none}.gym-viewport.is-dragging{cursor:grabbing}.gym-viewport:focus-visible{outline:1px solid var(--green)}
.gym-track{display:flex;gap:24px;width:max-content;padding:0 24px;perspective:1500px}
.gym-frame{flex:0 0 auto;width:clamp(320px,45vw,620px);aspect-ratio:1.5;position:relative;margin:0;border-radius:30px;overflow:hidden;background:#242c26;transform-origin:center;will-change:transform;user-select:none}
.gym-frame img{display:block;width:100%;height:100%;object-fit:cover;transform:scale(1.045);filter:saturate(.72) brightness(.87);pointer-events:none}
.gym-frame::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#06130cc9,transparent 50%);pointer-events:none}
.gym-frame figcaption{position:absolute;z-index:1;bottom:27px;left:30px;right:25px;display:grid;gap:10px}
.gym-frame figcaption span{font-size:10px;text-transform:uppercase;letter-spacing:1.7px;color:#d1dbd4}.gym-frame figcaption strong{font-weight:500;font-size:24px;letter-spacing:-.6px;color:#f4f5f2}
.gym-caption{font-size:11px;color:var(--muted)}.gym-caption>span:first-child{color:#d3dbd5}
@media(max-width:1300px){.gym-heading,.gym-caption{margin:0 50px}}
@media(max-width:900px){.gym-heading,.gym-caption{margin:0 28px}.gym-heading{align-items:start}.gym-heading h2{font-size:46px}.gym-gallery{padding:75px 0 60px}}
@media(max-width:640px){.gym-heading,.gym-caption{margin:0 22px}.gym-heading{display:block}.gym-heading h2{font-size:38px}.gym-heading p{font-size:14px}.gym-heading p br{display:none}.gym-motion{margin-top:23px}.gym-gallery{padding:65px 0 50px}.gym-frame{width:84vw;border-radius:23px;aspect-ratio:1.22}.gym-track{gap:16px;padding:0 22px}.gym-viewport{padding:30px 0}.gym-frame figcaption{left:23px;bottom:23px}.gym-frame figcaption strong{font-size:21px}.gym-caption{display:block;line-height:1.8}.gym-caption span{display:block}}
@media(prefers-reduced-motion:reduce){.gym-frame{will-change:auto;transform:none!important}}

/* Centered, manually controlled gallery. */
.gym-gallery{--gym-card-width:clamp(320px,55vw,760px);--gym-edge:max(0px,calc((100vw - var(--gym-card-width))/2))}
.gym-slider{position:relative}.gym-viewport{scroll-snap-type:x mandatory;scroll-behavior:smooth}
.gym-track{position:relative;padding-inline:var(--gym-edge);perspective:none}
.gym-frame{width:var(--gym-card-width);scroll-snap-align:center;scroll-snap-stop:always}
.gym-viewport.is-dragging{scroll-snap-type:none;scroll-behavior:auto}
.gym-step{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:50px;height:50px;display:grid;place-items:center;padding:0;border:1px solid #6a7b6f;background:#17251eea;color:#edf5ef;border-radius:50%;box-shadow:0 5px 20px #0003;backdrop-filter:blur(8px);transition:background .2s,opacity .2s}
.gym-step:hover:not(:disabled){background:#31533d}.gym-step:disabled{opacity:.3;cursor:default}
.gym-step::before{content:"";display:block;width:10px;height:10px;border-top:1.5px solid currentColor;border-right:1.5px solid currentColor}
.gym-prev{left:max(20px,calc(var(--gym-edge) - 25px))}.gym-next{right:max(20px,calc(var(--gym-edge) - 25px))}
.gym-prev::before{transform:rotate(-135deg);margin-left:4px}.gym-next::before{transform:rotate(45deg);margin-right:4px}
.gym-count{font-variant-numeric:tabular-nums;color:#d3dbd5}
@media(max-width:640px){.gym-gallery{--gym-card-width:84vw}.gym-step{width:42px;height:42px}.gym-prev{left:9px}.gym-next{right:9px}.gym-caption .gym-count{display:inline}}
@media(prefers-reduced-motion:reduce){.gym-viewport{scroll-behavior:auto}}

/* Invisible repositioning keeps both directions of the carousel continuous. */
.gym-viewport.is-resetting{scroll-snap-type:none;scroll-behavior:auto}
/* Blend the real client photograph into the page at its own edges. */
.reviews-backdrop img{mask-image:linear-gradient(to bottom,#000 0%,#000 76%,transparent 100%);-webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 76%,transparent 100%)}
.reviews-backdrop::before{content:"";position:absolute;inset:0 auto 0 0;width:20%;background:linear-gradient(90deg,#101211,transparent);z-index:1;pointer-events:none}

/* Keep the selected original photo sharp, without permanent enlargement. */
.gym-frame img{transform:none;filter:saturate(.85) brightness(.94)}

.hybrid-note{margin:26px 0 0;padding:19px 0 0;border-top:1px solid var(--line);font-size:14px;line-height:1.7;max-width:850px}
.hybrid-note strong{color:var(--white);font-weight:500;margin-right:5px}
@media(max-width:640px){.hybrid-note{font-size:13px;margin-top:23px}}

.hero-facts{display:flex;flex-wrap:wrap;gap:8px 0;margin-top:23px;max-width:620px;color:#c3ccc5;font-size:11px;line-height:1.6}
.hero-facts span{white-space:nowrap}.hero-facts span+span::before{content:"·";color:#79887e;margin:0 13px}
.gym-directions{display:inline-block;font-size:13px;color:#e1e9e3;text-decoration:underline;text-underline-offset:5px;margin-top:15px;line-height:1.6}
.gym-directions:hover{color:var(--green)}.contact-info>.gym-directions{align-self:flex-start;margin:3px 0 5px}
@media(max-width:640px){.hero-facts{font-size:10px;max-width:320px;gap:6px 12px}.hero-facts span+span::before{content:none}}

.form-availability{font-size:13px;color:var(--muted);line-height:1.7;padding:0 0 20px;margin:0 0 5px;border-bottom:1px solid var(--line)}
.form-availability a{text-decoration:underline;text-underline-offset:3px;color:var(--white)}
#contact-form .button:disabled{opacity:.45;cursor:not-allowed;transform:none}

.privacy-note{font-size:11px;line-height:1.65;color:var(--muted);margin:20px 0 0}.privacy-note a,.privacy-footer{text-decoration:underline;text-underline-offset:3px}.privacy-footer{font-size:11px;color:var(--muted)}
.privacy-header{max-width:1000px;margin:auto;padding:30px 24px;display:flex;justify-content:space-between;align-items:center;gap:20px}.privacy-header>a:last-child{font-size:13px;color:var(--muted)}
.privacy-content{max-width:850px;margin:50px auto 90px;padding:0 24px}.privacy-content h1{font-size:clamp(34px,5vw,56px);line-height:1.12;letter-spacing:-2px;font-weight:500;margin:0 0 25px}.privacy-content h2{font-size:25px;letter-spacing:-.6px;line-height:1.3;margin-bottom:18px}.privacy-content section{border-top:1px solid var(--line);margin-top:32px;padding-top:30px}.privacy-content p{font-size:15px;line-height:1.8}.privacy-content a:not(.button){text-decoration:underline;text-underline-offset:3px}.privacy-content strong{color:#e1e8e3;font-weight:500}.privacy-date{font-size:11px!important;color:var(--muted)}.privacy-content>.button{margin-top:28px}
@media(max-width:640px){.privacy-content{margin-top:30px}.privacy-header .logo{font-size:22px}.privacy-content p{font-size:14px}.privacy-header>a:last-child{font-size:12px}}

.contact-trap{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}#form-result.is-error{color:#edb6a9}.form-availability[hidden]{display:none}

/* A more compact mobile opening, with the photograph reaching behind the copy. */
@media(max-width:640px){
 .hero.hero-photo{min-height:850px;padding-bottom:210px}
 .hero-background img{top:180px;bottom:0;height:calc(100% - 180px);object-position:72% center;filter:saturate(.7) brightness(.4);mask-image:linear-gradient(to bottom,transparent 0%,#000 12%,#000 91%,transparent 100%);-webkit-mask-image:linear-gradient(to bottom,transparent 0%,#000 12%,#000 91%,transparent 100%)}
 .hero-photo::after{background:linear-gradient(180deg,#101211 0%,#101211e6 18%,#101211a6 35%,#10121173 56%,#1012111f 78%)}
}
/* Fit the full training pose within the desktop opening. */
@media(min-width:1001px){
 .hero-background img{inset:105px 0 35px auto;width:auto;max-width:100%;height:calc(100% - 140px);object-fit:contain;object-position:right center;mask-image:linear-gradient(to right,transparent 0%,#000 16%,#000 96%,transparent 100%),linear-gradient(to bottom,transparent 0%,#000 6%,#000 96%,transparent 100%);-webkit-mask-image:linear-gradient(to right,transparent 0%,#000 16%,#000 96%,transparent 100%),linear-gradient(to bottom,transparent 0%,#000 6%,#000 96%,transparent 100%);mask-composite:intersect;-webkit-mask-composite:source-in}
}

/* One consistent brand accent at the end of every heading. */
h1 .heading-dot,h2 .heading-dot,h3 .heading-dot{color:var(--green);font:inherit;letter-spacing:inherit}
