:root{
  --dg-ink:#1c1c1c;
  --dg-soft:#f5f5f2;
  --dg-line:#dcded9;
  --dg-accent:#4bb9b6;
  --dg-radius:28px;
}

body{
  background:#fff;
  color:var(--dg-ink);
  font-family:Manrope,Arial,sans-serif;
}

main{display:flex;flex-direction:column}
.hero{order:1}.trust-strip{display:none}.programs{order:2}.team-section{order:3}.client-gallery{order:4}.partners{order:5}.pricing{order:6}.testimonials{order:7}.process{order:8}.faq{order:9}.signup{order:10}.location{order:11}

.site-header{
  top:30px;
  left:3.2vw;
  width:93.6vw;
  height:68px;
  padding:0 20px;
  border:0;
  z-index:20;
  color:#fff;
}
.brand{font-family:Manrope,sans-serif;font-weight:800}
.brand img{width:48px;height:48px}
.brand-mark{
  position:relative;
  display:block;
  width:48px;
  height:48px;
  flex:0 0 48px;
  overflow:hidden;
}
.brand-mark img{
  position:absolute;
  width:165px!important;
  height:165px!important;
  max-width:none;
  left:-51px;
  top:-49px;
  filter:none!important;
  mix-blend-mode:screen;
}
#main-nav{
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  margin:0;
  padding:7px;
  gap:2px;
  background:#ffffffd9;
  color:var(--dg-ink);
  border-radius:999px;
  backdrop-filter:blur(12px);
}
#main-nav a{
  padding:10px 16px;
  border-radius:999px;
  font-size:13px;
  font-weight:650;
  white-space:nowrap;
}
#main-nav a:hover{background:#fff}
.header-cta{
  margin-left:auto;
  border-radius:999px;
  padding:13px 20px;
  background:var(--dg-accent);
  gap:0;
}

.hero{
  min-height:calc(100vh - 32px);
  margin:16px;
  border-radius:var(--dg-radius);
  overflow:hidden;
  align-items:center;
  justify-content:center;
  text-align:center;
}
.hero-photo{opacity:.82;background-position:center 52%}
.hero-shade{
  background:linear-gradient(180deg,#0007 0%,#0002 30%,#0008 100%);
}
.hero-content{
  max-width:860px;
  padding:150px 24px 90px;
  display:flex;
  flex-direction:column;
  align-items:center;
}
.eyebrow{
  font-size:11px;
  letter-spacing:.13em;
}
.hero .eyebrow span{display:none}
.hero h1{
  max-width:760px;
  font-family:Manrope,sans-serif;
  font-size:clamp(58px,7vw,104px);
  font-weight:600;
  line-height:.98;
  letter-spacing:-.06em;
  text-transform:none;
}
.hero h1 em{color:inherit}
.hero-copy{
  max-width:650px;
  margin:26px auto 0;
  font-size:17px;
  line-height:1.6;
  color:#f5f5f5;
}
.hero-actions{justify-content:center;gap:12px;margin-top:32px}
.button{
  border-radius:999px;
  padding:15px 22px;
  font-weight:750;
}
.text-link{
  border:1px solid #ffffff7a;
  border-radius:999px;
  padding:14px 20px;
  font-weight:650;
}
.hero-proof{display:none}

.section{padding:105px 6vw}
.section-heading{
  align-items:start;
  margin-bottom:54px;
}
.section-heading h2,.process h2,.signup h2,.location h2{
  max-width:720px;
  font-family:Manrope,sans-serif;
  font-size:clamp(44px,5.3vw,78px);
  font-weight:600;
  line-height:1;
  letter-spacing:-.055em;
  text-transform:none;
}
.section-heading h2 em,.location h2 em{
  color:inherit;
  -webkit-text-stroke:0;
}
.section-heading>p{
  max-width:500px;
  margin-top:36px;
  color:#5d625f;
}
.eyebrow.dark span{background:var(--dg-accent)}

.programs{background:var(--dg-soft)}
.program-grid{
  grid-template-columns:1fr 1fr;
  max-width:none;
  gap:18px;
}
.program-card{
  border-radius:20px;
  overflow:hidden;
  background:#fff;
}
.program-image,.featured .program-image{
  height:340px;
  filter:none;
  background-size:cover;
  background-repeat:no-repeat;
}
.program-image.image-one{
  background-image:linear-gradient(0deg,rgba(11,18,18,.12),rgba(11,18,18,.12)),url("assets/photos/program-individual.jpg?v=3");
  background-position:center 32%;
}
.program-image.image-two{
  background-image:linear-gradient(0deg,rgba(11,18,18,.08),rgba(11,18,18,.08)),url("assets/photos/program-group-training.jpg");
  background-position:center 42%;
}
.program-content{padding:28px 30px 32px}
.program-content h3{
  font-family:Manrope,sans-serif;
  font-size:34px;
  font-weight:650;
  line-height:1.05;
  letter-spacing:-.04em;
}
.program-content a{border-color:#e2e4df}

.team-section{
  margin:24px;
  padding:80px 5vw;
  border-radius:24px;
  background:var(--dg-ink);
  color:#fff;
}
.team-section .eyebrow,.team-section .section-heading>p{color:#bfc2bf}
.team-section .eyebrow span{background:var(--dg-accent)}
.trainer-grid{max-width:none;gap:14px}
.trainer-grid figure{border-radius:18px}
.trainer-grid img{filter:none}
.trainer-booking-link{display:block;height:100%;color:inherit}
.trainer-grid figcaption{
  padding:55px 18px 18px;
  background:linear-gradient(transparent,#111d);
}
.trainer-grid figcaption .trainer-booking-cta{
  display:inline-flex;
  width:max-content;
  margin-top:12px;
  padding:7px 10px;
  border:1px solid #4bb9b688;
  border-radius:999px;
  color:var(--dg-accent);
  font-size:9px;
  letter-spacing:.06em;
  transition:background .2s,color .2s;
}
.trainer-booking-link:hover .trainer-booking-cta{background:var(--dg-accent);color:#071010}

.client-gallery{background:#fff;overflow:hidden}
.gallery-rail{
  display:flex;
  gap:14px;
  overflow-x:auto;
  padding:0 0 16px;
  scroll-snap-type:x mandatory;
  scrollbar-width:thin;
  scrollbar-color:var(--dg-accent) #e7e9e5;
}
.gallery-rail figure{
  flex:0 0 clamp(240px,24vw,360px);
  margin:0;
  border-radius:20px;
  overflow:hidden;
  scroll-snap-align:start;
  background:var(--dg-soft);
}
.gallery-rail img{
  display:block;
  width:100%;
  aspect-ratio:3/4;
  object-fit:cover;
  transition:transform .4s ease;
}
.gallery-rail figure:hover img{transform:scale(1.025)}
.gallery-hint{margin:14px 0 0;text-align:right;color:#676d69;font-size:12px;font-weight:700}
.gallery-hint span{color:var(--dg-accent);font-size:18px}

.partners{
  padding:90px 6vw;
  display:block;
  background:#fff;
  color:var(--dg-ink);
}
.partners>.eyebrow{margin-bottom:36px}
.partner-list{
  grid-template-columns:repeat(4,1fr);
  border:1px solid var(--dg-line);
  border-radius:20px;
  overflow:hidden;
}
.partner-list div{
  min-height:145px;
  padding:28px 22px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  border-right:1px solid var(--dg-line);
  border-bottom:1px solid var(--dg-line);
}
.partner-list strong{font-family:Manrope,sans-serif;color:var(--dg-ink);font-size:21px}
.partner-list small{color:#727773}

.pricing{background:var(--dg-soft)}
.price-grid{gap:16px;grid-template-columns:repeat(4,minmax(0,1fr))}
.price-card{
  min-height:440px;
  border:1px solid var(--dg-line);
  border-top:1px solid var(--dg-line);
  border-radius:20px;
}
.featured-price{
  background:var(--dg-ink);
  border-color:var(--dg-ink);
}
.price-card h3{
  font-family:Manrope,sans-serif;
  font-weight:650;
  font-size:32px;
  letter-spacing:-.04em;
}
.price strong{font-family:Manrope,sans-serif;font-weight:650}
.price strong.price-on-request{font-size:30px;line-height:1.1}
.price-badge{border-radius:999px}

.testimonials{background:#fff}
.review-card{border:1px solid var(--dg-line);border-radius:20px}
.review-card.lime{background:#ddf5f3}
.review-card blockquote{font-family:Manrope,sans-serif;font-size:20px}
.slider-controls button{border-radius:50%}

.process{
  margin:24px;
  padding:90px 6vw;
  border-radius:24px;
  background:#e9f3f2;
  color:var(--dg-ink);
}
.process .eyebrow,.process-intro>p:last-child,.steps p{color:#626966}
.steps li{border-color:#cbd7d5}
.steps h3{font-family:Manrope,sans-serif;font-size:25px}

.faq{background:#fff}
.faq-list{max-width:900px;margin-left:auto}
.faq-list details{border-top:1px solid var(--dg-line)}
.faq-list details:last-child{border-bottom:1px solid var(--dg-line)}
.faq-list summary{
  list-style:none;
  cursor:pointer;
  padding:25px 0;
  display:flex;
  justify-content:space-between;
  font-size:19px;
  font-weight:700;
}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary span{font-size:25px;font-weight:400}
.faq-list details[open] summary span{transform:rotate(45deg)}
.faq-list details p{max-width:720px;margin:0 0 26px;color:#606562;line-height:1.7}

.signup{
  margin:0 24px 24px;
  padding:80px 6vw;
  border-radius:24px;
  background:var(--dg-ink);
  gap:7vw;
}
.signup-copy{position:static}
.signup h2{font-size:clamp(46px,5vw,74px)}
form{border-radius:20px;padding:38px}
.choice-grid label span{border-radius:12px}
.submit-button{justify-content:center}

.location{
  margin:0 24px 24px;
  padding:80px 6vw;
  border-radius:24px;
  background:#ddf5f3;
}
.dark-button{border-radius:999px}

footer{padding:75px 6vw 35px;border-radius:24px 24px 0 0}
.footer-logo{width:min(360px,100%);height:145px;overflow:hidden}
.footer-logo img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center;
  mix-blend-mode:screen;
}

@media(max-width:1050px){
  #main-nav a{padding:9px 11px}
  .partner-list{grid-template-columns:repeat(3,1fr)}
  .price-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:900px){
  .site-header{top:24px;height:58px}
  #main-nav{display:none}
  .header-cta{display:inline-flex!important;margin-left:auto;margin-right:12px;padding:11px 15px;font-size:11px}
  .menu-toggle{display:block}
  .site-header.open #main-nav{
    display:flex;
    transform:none;
    top:68px;
    left:0;
    width:100%;
    border-radius:18px;
    padding:18px;
    background:#fff;
  }
  .program-grid{grid-template-columns:1fr}
  .partner-list{grid-template-columns:repeat(2,1fr)}
  .price-card:last-child{grid-column:auto}
  .process,.signup{grid-template-columns:1fr}
}

@media(max-width:620px){
  .hero{min-height:760px;margin:8px;border-radius:22px}
  .site-header{left:20px;width:calc(100% - 40px)}
  .brand span{display:none}
  .hero-content{padding:130px 24px 60px;align-items:flex-start;text-align:left}
  .hero h1{font-size:57px}
  .hero-copy{text-align:left;font-size:15px}
  .hero-actions{align-items:stretch;width:100%}
  .hero-actions .button,.hero-actions .text-link{justify-content:center;width:100%}
  .section{padding:75px 20px}
  .section-heading{display:block;margin-bottom:38px}
  .section-heading h2,.process h2,.signup h2,.location h2{font-size:44px}
  .section-heading>p{margin-top:22px}
  .program-image,.featured .program-image{height:250px}
  .team-section,.process,.signup,.location{margin:8px;padding:65px 20px;border-radius:22px}
  .trainer-grid{grid-template-columns:1fr 1fr}
  .gallery-rail{margin-right:-20px}
  .gallery-rail figure{flex-basis:76vw}
  .partner-list{grid-template-columns:1fr}
  .partner-list div{min-height:110px}
  .price-grid{grid-template-columns:1fr}
  .price-card:last-child{grid-column:auto}
  .faq-list{margin:0}
  .faq-list summary{font-size:16px}
  form{padding:25px 20px}
  footer{border-radius:22px 22px 0 0}
}
