body.fitness{ padding-top:0; }

.fit-hero{
  position:relative; min-height:100vh; min-height:100dvh;
  display:flex; flex-direction:column; justify-content:center;
  padding:8rem clamp(1.4rem,4vw,3rem) 4rem;
  background:radial-gradient(120% 90% at 80% 10%, #1c1414 0%, #0a0a0c 55%);
  overflow:hidden;
}
@media (min-width:901px){
  .fit-hero{ min-height:112vh; }
}
.fit-hero .ph{ position:absolute; inset:0; opacity:.45; z-index:0; }
.fit-hero .photo{ position:absolute; inset:0; z-index:0; }
.fit-hero .photo img{ object-position:center top; }
.fit-hero .photo::after{
  content:''; position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(10,10,12,.5) 0%, rgba(10,10,12,.92) 100%),
    linear-gradient(90deg, rgba(10,10,12,.35) 0%, transparent 55%);
}
.fit-hero .inner{ position:relative; z-index:1; display:grid; grid-template-columns:1.4fr 1fr; gap:3rem; align-items:end; }
.fit-hero h1{ max-width:11em; }
.fit-hero .lede{ margin-top:1.6rem; }
.fit-hero .cta-row{ margin-top:2.2rem; display:flex; gap:1rem; flex-wrap:wrap; }

.pulse-line{
  display:flex; align-items:center; gap:.7rem;
  font-family:var(--f-black); font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; color:var(--white-dim);
  margin-bottom:1.6rem;
}
.pulse-dot{
  width:8px; height:8px; border-radius:50%; background:var(--cobalt);
  box-shadow:0 0 0 0 rgba(38,71,255,.7);
  animation:pulse 1.8s infinite;
}
@keyframes pulse{
  0%{ box-shadow:0 0 0 0 rgba(38,71,255,.55); }
  70%{ box-shadow:0 0 0 12px rgba(38,71,255,0); }
  100%{ box-shadow:0 0 0 0 rgba(38,71,255,0); }
}

.stat-panel{
  border:1px solid var(--line-strong);
  padding:2rem;
  display:flex; flex-direction:column; gap:1.6rem;
}
.stat-panel .stat{ display:flex; justify-content:space-between; align-items:baseline; border-bottom:1px solid var(--line); padding-bottom:1.2rem; }
.stat-panel .stat:last-child{ border-bottom:none; padding-bottom:0; }
.stat-panel .stat .n{ font-family:var(--f-display); font-weight:800; font-size:2rem; color:var(--cobalt); }
.stat-panel .stat .l{ font-family:var(--f-black); font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--white-dim); max-width:9em; text-align:right; }

/* process steps — a real sequence, so numbering is justified here */
.process{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line); counter-reset:step; }
.process-step{ background:var(--black); padding:2.2rem 1.8rem; position:relative; }
.process-step .step-num{
  font-family:var(--f-display); font-weight:800; font-size:2.6rem; color:var(--line-strong);
  -webkit-text-stroke:1px var(--line-strong);
}
.process-step h3{ margin-top:1rem; font-size:1.1rem; }
.process-step p{ margin-top:.7rem; font-size:.88rem; }
.process-step:hover .step-num{ color:var(--cobalt); -webkit-text-stroke:1px var(--cobalt); }

@media (max-width:900px){
  .fit-hero .inner{ grid-template-columns:1fr; }
  .process{ grid-template-columns:1fr 1fr; }
}
@media (max-width:560px){
  .process{ grid-template-columns:1fr; }
}

/* testimonial */
.testi{
  border-left:2px solid var(--cobalt);
  padding-left:1.8rem;
  max-width:38em;
}
.testi p{ font-family:var(--f-display); font-weight:700; font-size:clamp(1.2rem,2.4vw,1.7rem); color:var(--white); line-height:1.4; text-transform:none; letter-spacing:0; }
.testi cite{ display:block; margin-top:1.2rem; font-style:normal; font-family:var(--f-black); font-size:.75rem; letter-spacing:.1em; text-transform:uppercase; color:var(--white-dim); }
