:root {
  --ink:#102434;
  --paper:#f7f9fb;
  --acid:#e6ff38;
  --muted:#657786;
  --line:rgba(27,79,120,.17);
  --white:#fff;
  --pad:clamp(24px,7vw,120px);
  --rack-blue:#0d76b3;
  --rack-blue-deep:#075381;
  --rack-blue-soft:#dceef7
}

* {
  box-sizing:border-box
}

html {
  scroll-behavior:smooth
}

body {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:Arial,Helvetica,sans-serif;
  -webkit-font-smoothing:antialiased
}

body.menu-open {
  overflow:hidden
}

a {
  color:inherit;
  text-decoration:none
}

button {
  font:inherit
}

:where(a,button,input,select,textarea,[tabindex]):focus-visible {
  outline:3px solid var(--acid);
  outline-offset:4px;
  box-shadow:0 0 0 6px var(--ink)
}

.skip-link {
  position:fixed;
  left:20px;
  top:-80px;
  z-index:100;
  background:var(--acid);
  padding:14px 20px;
  font-weight:800
}

.skip-link:focus {
  top:15px
}

.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0
}

.site-header {
  position:fixed;
  inset:0 0 auto;
  z-index:50;
  height:84px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 clamp(22px,4vw,72px);
  background:rgba(8,8,7,.82);
  border-bottom:1px solid rgba(255,255,255,.13);
  backdrop-filter:blur(18px);
  transition:height .3s,background .3s
}

.site-header.compact {
  height:68px;
  background:rgba(8,8,7,.96)
}

.brand img {
  display:block;
  width:225px;
  height:auto
}

.nav {
  display:flex;
  align-items:center;
  gap:clamp(14px,1.7vw,28px)
}

.nav a {
  position:relative;
  color:#fff;
  font-size:16px;
  font-weight:900;
  letter-spacing:.1em;
  text-transform:uppercase;
  transition:color .25s
}

.nav a:not(.nav-cta)::after {
  content:"";
  position:absolute;
  left:0;
  right:100%;
  bottom:-7px;
  height:2px;
  background:var(--acid);
  transition:right .25s
}

.nav a:hover,.nav a.active {
  color:var(--acid)
}

.nav a:hover::after,.nav a.active::after {
  right:0
}

.nav .nav-cta {
  padding:13px 17px;
  color:var(--ink);
  background:var(--acid)
}

.menu-button {
  display:none;
  border:0;
  background:transparent;
  padding:8px
}

.menu-button>span {
  display:block;
  width:25px;
  height:2px;
  margin:5px;
  background:#fff;
  transition:transform .3s,opacity .3s
}

.hero {
  position:relative;
  min-height:100svh;
  display:flex;
  align-items:flex-end;
  padding:150px var(--pad) clamp(70px,10vh,110px);
  overflow:hidden;
  color:#fff;
  background:#111
}

.hero-media {
  position:absolute;
  inset:0;
  background:url('assets/hero.jpg') 52% 40%/cover no-repeat;
  transform:scale(1.025);
  animation:heroZoom 14s ease-out both
}

.hero-shade {
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(0,0,0,.84) 0%,rgba(0,0,0,.5) 47%,rgba(0,0,0,.08) 100%),linear-gradient(0deg,rgba(0,0,0,.74),transparent 55%)
}

.hero-content {
  position:relative;
  z-index:2;
  max-width:1050px
}

.eyebrow {
  margin:0 0 22px;
  color:var(--acid);
  font-size:22px;
  font-weight:900;
  letter-spacing:.2em;
  text-transform:uppercase
}

.eyebrow.dark {
  color:#55554e
}

.hero h1 em,.video-copy h2 em,.planning h2 em,.contact h2 em {
  color:var(--acid);
  font-style:normal
}

.hero h1,.section-top h2,.video-copy h2,.team h2,.planning h2,.review-head h2,.contact h2 {
  margin:0;
  font-size:clamp(62px,9.8vw,158px);
  line-height:.79;
  letter-spacing:-.075em;
  font-weight:950;
  text-transform:uppercase
}

.hero h1 {
  font-size:clamp(56px,8.8vw,142px)
}

.hero-disciplines {
  max-width:780px;
  margin:38px 0 28px;
  color:rgba(255,255,255,.82);
  font-size:clamp(11px,1vw,15px);
  font-weight:800;
  line-height:1.7;
  letter-spacing:.08em;
  text-transform:uppercase
}

.hero-actions,.planning-actions {
  display:flex;
  flex-wrap:wrap;
  gap:12px
}

.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:56px;
  padding:0 24px;
  border:1px solid rgba(255,255,255,.38);
  font-size:11px;
  font-weight:900;
  letter-spacing:.07em;
  text-transform:uppercase;
  transition:transform .25s,background .25s,color .25s
}

.button:hover {
  transform:translateY(-3px)
}

.button-primary {
  border-color:var(--acid);
  color:var(--ink);
  background:var(--acid)
}

.button span {
  margin-left:30px;
  font-size:17px
}

.button-ghost:hover {
  color:var(--ink);
  background:#fff
}

.button-dark {
  color:#fff;
  background:var(--ink);
  border-color:var(--ink)
}

.scroll-cue {
  position:absolute;
  right:clamp(24px,4vw,70px);
  bottom:45px;
  z-index:2;
  display:flex;
  align-items:center;
  gap:14px;
  font-size:9px;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
  writing-mode:vertical-rl
}

.scroll-cue i {
  width:1px;
  height:50px;
  background:var(--acid)
}

.section {
  padding:clamp(50px,6vw,90px) var(--pad)
}

.section-dark {
  position:relative;
  background:var(--ink);
  color:#fff
}

.section-index {
  color:#74736c;
  font-size:20px;
  font-weight:900;
  letter-spacing:.13em;
  text-transform:uppercase
}

.section-index.light {
  color:#9a9990
}

.intro {
  display:grid;
  grid-template-columns:.55fr 1.45fr 1fr;
  gap:clamp(28px,5vw,90px);
  align-items:start
}

.intro-heading h2 {
  margin:0;
  font-size:clamp(40px,5vw,78px);
  line-height:.98;
  letter-spacing:-.055em;
  text-transform:uppercase
}

.intro-heading h2 span,.section-top h2 span,.team h2 span,.review-head h2 span {
  color:#7c7b73
}

.intro-copy {
  padding-top:34px;
  font-size:15px;
  line-height:1.72
}

.intro-copy p {
  color:#595952
}

.intro-copy .lead {
  color:var(--ink);
  font-size:20px;
  font-weight:700;
  line-height:1.45
}

.text-link {
  display:inline-flex;
  gap:30px;
  margin-top:22px;
  padding-bottom:8px;
  border-bottom:2px solid var(--ink);
  font-size:11px;
  font-weight:900;
  letter-spacing:.09em;
  text-transform:uppercase
}

.text-link span {
  transition:transform .25s
}

.text-link:hover span {
  transform:translateX(6px)
}

.video-section {
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:clamp(40px,7vw,120px);
  align-items:center;
  padding:clamp(80px,10vw,150px) var(--pad)
}

.video-copy h2 {
  font-size:clamp(54px,7.2vw,114px);
  margin:35px 0;
  line-height:1
}

.video-copy>p:last-child {
  max-width:470px;
  color:#aaa99f;
  line-height:1.7
}

.video-frame {
  position:relative;
  aspect-ratio:16/10;
  background:#222;
  box-shadow:0 35px 80px rgba(0,0,0,.4)
}

.video-frame::before {
  content:"";
  position:absolute;
  inset:-14px 14px 14px -14px;
  border:1px solid rgba(216,255,49,.35);
  pointer-events:none
}

.video-frame iframe {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:0
}

.section-top {
  display:grid;
  grid-template-columns:1.4fr .6fr;
  gap:60px;
  align-items:end;
  margin-bottom:clamp(50px,7vw,95px)
}

.section-top h2 {
  font-size:clamp(50px,7.4vw,118px);
  margin-top:30px
}

.section-top>p {
  max-width:460px;
  color:#62615a;
  line-height:1.7;
  font-size:clamp(17px,1.5vw,21px)
}

.section-top.light>p {
  color:#aaa99f
}

.class-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px
}

.class-card {
  position:relative;
  min-height:430px;
  overflow:hidden;
  background:#222;
  color:#fff
}

.class-card.class-featured {
  grid-column:span 2
}

.class-card img {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  filter:saturate(.65) contrast(1.06);
  transition:transform .7s,filter .5s
}

.class-card:hover img {
  transform:scale(1.05);
  filter:saturate(1)
}

.card-overlay {
  position:absolute;
  inset:0;
  background:linear-gradient(0deg,rgba(0,0,0,.88),rgba(0,0,0,.08) 70%)
}

.card-copy {
  position:absolute;
  inset:auto 28px 28px
}

.card-copy small {
  color:var(--acid);
  font-weight:900
}

.card-copy h3 {
  margin:8px 0 12px;
  font-size:clamp(34px,4vw,62px);
  line-height:.9;
  letter-spacing:-.05em;
  text-transform:uppercase
}

.card-copy p {
  max-height:0;
  margin:0;
  overflow:hidden;
  opacity:0;
  max-width:520px;
  color:#dddcd5;
  font-size:13px;
  line-height:1.55;
  transition:max-height .45s,opacity .35s
}

.class-card:hover .card-copy p {
  max-height:130px;
  opacity:1
}

.team {
  overflow:hidden;
  padding:clamp(95px,12vw,170px) var(--pad)
}

.team-bg {
  position:absolute;
  inset:0;
  background:linear-gradient(rgba(9,9,8,.91),rgba(9,9,8,.97)),url('assets/team-bg.jpg') center/cover;
  opacity:.9
}

.team>*:not(.team-bg) {
  position:relative
}

.team-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px
}

.coach {
  background:#1c1c19
}

.coach>img {
  display:block;
  width:100%;
  aspect-ratio:4/5;
  object-fit:cover;
  filter:grayscale(1);
  transition:filter .4s
}

.coach:hover>img {
  filter:grayscale(0)
}

.coach>div {
  padding:25px
}

.coach>div>p {
  min-height:28px;
  margin:0;
  color:#8c8b84;
  font-size:9px;
  font-weight:800;
  letter-spacing:.09em;
  text-transform:uppercase
}

.coach h3 {
  margin:12px 0 22px;
  font-size:30px;
  line-height:.95;
  text-transform:uppercase
}

.coach h3 span {
  display:block;
  color:var(--acid)
}

.coach-more {
  width:100%;
  display:flex;
  justify-content:space-between;
  padding:13px 0;
  border:0;
  border-top:1px solid #3b3b36;
  color:#fff;
  background:transparent;
  font-size:10px;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
  cursor:pointer
}

.coach-more b {
  font-size:18px;
  transition:transform .3s
}

.coach-more[aria-expanded=true] b {
  transform:rotate(45deg)
}

.coach-details {
  display:grid;
  grid-template-rows:0fr;
  transition:grid-template-rows .4s
}

.coach-details p {
  min-height:0;
  margin:0;
  overflow:hidden;
  color:#aaa99f;
  font-size:13px;
  line-height:1.55
}

.coach-more[aria-expanded=true]+.coach-details {
  grid-template-rows:1fr
}

.coach-more[aria-expanded=true]+.coach-details p {
  padding-top:15px
}

.price-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px
}

.price-card {
  position:relative;
  padding:38px;
  border:1px solid var(--line);
  background:#eae8e0;
  transition:transform .3s,background .3s
}

.price-card:hover {
  transform:translateY(-7px);
  background:#fff
}

.price-card.featured {
  background:var(--ink);
  color:#fff
}

.tag {
  position:absolute;
  right:25px;
  top:25px;
  padding:7px 9px;
  color:var(--ink);
  background:var(--acid);
  font-size:8px;
  font-weight:900;
  letter-spacing:.1em;
  text-transform:uppercase
}

.price-name {
  font-size:11px;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase
}

.price {
  display:flex;
  align-items:flex-end;
  margin:35px 0 25px
}

.price strong {
  font-size:clamp(60px,6vw,96px);
  line-height:.75;
  letter-spacing:-.07em
}

.price span {
  margin-left:10px;
  color:#85847c;
  font-size:12px
}

.price-card p {
  min-height:72px;
  color:#64635c;
  font-size:13px;
  line-height:1.6
}

.price-card.featured p {
  color:#aaa99f
}

.price-card>a {
  display:flex;
  justify-content:space-between;
  margin-top:35px;
  padding-top:17px;
  border-top:1px solid currentColor;
  font-size:10px;
  font-weight:900;
  letter-spacing:.1em;
  text-transform:uppercase
}

.price-card.featured>a {
  color:var(--acid)
}

.other-prices {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  margin-top:12px;
  border:1px solid var(--line)
}

.other-prices>div {
  display:flex;
  flex-direction:column;
  gap:11px;
  padding:24px;
  border-right:1px solid var(--line)
}

.other-prices>div:last-child {
  border:0
}

.other-prices span {
  color:#77766e;
  font-size:9px;
  font-weight:800;
  text-transform:uppercase
}

.other-prices strong {
  font-size:16px
}

.price-note {
  color:#76756d;
  font-size:11px
}

.planning {
  display:grid;
  grid-template-columns:1.25fr .75fr;
  gap:clamp(50px,8vw,130px);
  padding:clamp(95px,12vw,170px) var(--pad)
}

.planning h2 {
  font-size:clamp(55px,8vw,128px);
  margin:35px 0
}

.planning-inner>p:not(.section-index) {
  max-width:630px;
  color:#aaa99f;
  line-height:1.7
}

.planning-actions {
  align-items:center;
  margin-top:34px
}

.planning-actions>span {
  color:#77766f;
  font-size:10px;
  font-weight:800;
  letter-spacing:.07em;
  text-transform:uppercase
}

.planning-steps {
  align-self:end;
  border-top:1px solid #383833
}

.planning-steps>div {
  display:grid;
  grid-template-columns:55px 1fr;
  gap:15px;
  padding:25px 0;
  border-bottom:1px solid #383833
}

.planning-steps b {
  color:var(--acid);
  font-size:12px
}

.planning-steps p {
  margin:0;
  color:#c1c0b8;
  font-size:14px;
  line-height:1.5
}

.reviews {
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:clamp(50px,9vw,150px)
}

.review-head h2 {
  font-size:clamp(55px,7.5vw,120px);
  margin-top:35px
}

.review-slider {
  position:relative;
  min-height:470px;
  padding:40px 0 80px;
  border-top:1px solid var(--line)
}

.review {
  position:absolute;
  inset:40px 0 80px;
  display:flex;
  flex-direction:column;
  opacity:0;
  transform:translateX(30px);
  pointer-events:none;
  transition:opacity .45s,transform .45s
}

.review.active {
  opacity:1;
  transform:none;
  pointer-events:auto
}

.stars {
  color:#688000;
  letter-spacing:.18em
}

.review blockquote {
  margin:40px 0 auto;
  font-size:clamp(25px,3vw,44px);
  font-weight:700;
  line-height:1.22;
  letter-spacing:-.035em
}

.reviewer {
  display:flex;
  align-items:center;
  gap:14px
}

.reviewer img {
  width:48px;
  height:48px;
  border-radius:50%;
  object-fit:cover
}

.reviewer strong,.reviewer span {
  display:block
}

.reviewer strong {
  font-size:12px;
  text-transform:uppercase
}

.reviewer span {
  margin-top:5px;
  color:#76756d;
  font-size:9px
}

.slider-controls {
  position:absolute;
  inset:auto 0 0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  border-top:1px solid var(--line);
  padding-top:20px
}

.slider-controls button {
  width:46px;
  height:46px;
  border:1px solid var(--line);
  border-radius:50%;
  background:transparent;
  cursor:pointer;
  transition:background .25s,color .25s
}

.slider-controls button:hover {
  color:var(--paper);
  background:var(--ink)
}

.slider-controls span {
  font-size:10px;
  color:#77766e
}

.slider-controls b {
  color:var(--ink)
}

.contact {
  display:grid;
  grid-template-columns:1.25fr .75fr;
  gap:clamp(50px,9vw,140px);
  padding:clamp(90px,11vw,160px) var(--pad);
  background:var(--acid)
}

.contact h2 {
  font-size:clamp(62px,9vw,145px)
}

.contact h2 em {
  color:var(--ink);
  -webkit-text-stroke:2px var(--ink);
  color:transparent
}

.contact-copy>p:not(.eyebrow) {
  max-width:580px;
  font-weight:700;
  line-height:1.6
}

.contact .eyebrow {
  color:#515f14
}

.contact-details {
  border-top:1px solid rgba(17,17,15,.35)
}

.contact-details>div:not(.socials) {
  display:grid;
  grid-template-columns:110px 1fr;
  padding:24px 0;
  border-bottom:1px solid rgba(17,17,15,.25)
}

.contact-details span {
  font-size:9px;
  font-weight:900;
  letter-spacing:.1em;
  text-transform:uppercase
}

.contact-details address,.contact-details a {
  font-size:16px;
  font-weight:700;
  font-style:normal;
  line-height:1.5
}

.socials {
  display:flex;
  gap:30px;
  margin-top:30px
}

.socials a {
  font-size:10px;
  font-weight:900;
  text-transform:uppercase
}

.partners {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:clamp(35px,8vw,120px);
  padding:60px var(--pad);
  background:#fff
}

.partners img {
  display:block;
  max-width:170px;
  max-height:65px;
  object-fit:contain;
  filter:grayscale(1);
  opacity:.65;
  transition:filter .3s,opacity .3s
}

.partners a:hover img {
  filter:none;
  opacity:1
}

footer {
  padding:70px var(--pad) 25px;
  color:#fff;
  background:#090908
}

.footer-logo img {
  width:220px
}

.footer-links {
  display:flex;
  flex-wrap:wrap;
  gap:25px 45px;
  margin:60px 0;
  padding:35px 0;
  border-top:1px solid #2b2b27;
  border-bottom:1px solid #2b2b27
}

.footer-links a {
  color:#aaa99f;
  font-size:11px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase
}

.footer-links a:hover {
  color:var(--acid)
}

.footer-bottom {
  display:flex;
  justify-content:space-between;
  color:#65645f;
  font-size:9px;
  text-transform:uppercase
}

.reveal {
  opacity:0;
  transform:translateY(28px);
  transition:opacity .75s ease,transform .75s ease
}

.reveal.is-visible {
  opacity:1;
  transform:none
}

@keyframes heroZoom {
  from {
    transform:scale(1.09)
  }

  to {
    transform:scale(1.025)
  }

}

@media(max-width:1050px) {
  .nav {
    gap:13px
  }

  .nav a {
    font-size:14px
  }

  .team-grid {
    grid-template-columns:repeat(2,1fr)
  }

  .intro {
    grid-template-columns:.4fr 1.4fr
  }

  .intro-copy {
    grid-column:2
  }

  .class-card.class-featured {
    grid-column:span 1
  }

  .class-grid {
    grid-template-columns:repeat(2,1fr)
  }

  .price-card {
    padding:28px
  }

}

@media(max-width:820px) {
  .menu-button {
    display:block;
    z-index:2;
    cursor:pointer
  }

  .menu-button[aria-expanded=true]>span:nth-child(1) {
    transform:translateY(7px) rotate(45deg)
  }

  .menu-button[aria-expanded=true]>span:nth-child(2) {
    opacity:0
  }

  .menu-button[aria-expanded=true]>span:nth-child(3) {
    transform:translateY(-7px) rotate(-45deg)
  }

  .nav {
    position:fixed;
    inset:0;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    justify-content:center;
    gap:0;
    padding:80px 25px;
    background:#10100e;
    transform:translateY(-110%);
    transition:transform .4s
  }

  .nav.open {
    transform:none
  }

  .nav a {
    width:100%;
    padding:11px 0;
    border-bottom:1px solid #2b2b27;
    font-size:18px
  }

  .nav .nav-cta {
    width:auto;
    margin-top:20px;
    padding:14px 20px
  }

  .intro,.video-section,.section-top,.planning,.reviews,.contact {
    grid-template-columns:1fr
  }

  .intro-copy {
    grid-column:auto;
    padding-top:0
  }

  .video-copy {
    order:2
  }

  .class-grid {
    grid-template-columns:1fr 1fr
  }

  .price-grid {
    grid-template-columns:1fr
  }

  .price-card p {
    min-height:0
  }

  .other-prices {
    grid-template-columns:1fr 1fr
  }

  .other-prices>div:nth-child(2) {
    border-right:0
  }

  .other-prices>div:nth-child(-n+2) {
    border-bottom:1px solid var(--line)
  }

  .planning-steps {
    margin-top:20px
  }

  .contact-details {
    margin-top:20px
  }

  .scroll-cue {
    display:none
  }

}

@media(max-width:560px) {
  .site-header {
    height:72px
  }

  .site-header.compact {
    height:62px
  }

  .hero {
    padding:130px 22px 60px
  }

  .hero h1 {
    font-size:clamp(28px,8vw,40px)
  }

  .button {
    width:100%
  }

  .section,.team,.planning,.reviews,.contact {
    padding-left:22px;
    padding-right:22px
  }

  .section-top {
    gap:25px
  }

  .class-grid,.team-grid {
    grid-template-columns:1fr
  }

  .class-card {
    min-height:400px
  }

  .class-card .card-copy p {
    max-height:130px;
    opacity:1
  }

  .price {
    margin-top:28px
  }

  .other-prices {
    grid-template-columns:1fr
  }

  .other-prices>div {
    border-right:0;
    border-bottom:1px solid var(--line)!important
  }

  .contact-details>div:not(.socials) {
    grid-template-columns:1fr;
    gap:10px
  }

  .partners {
    flex-direction:column
  }

  .footer-bottom {
    flex-direction:column;
    gap:12px
  }

}

@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }

  .hero-media {
    animation:none
  }

  .reveal {
    opacity:1;
    transform:none;
    transition:none
  }

  * {
    transition-duration:.01ms!important
  }

}

/* Visual review corrections */
.class-card:last-child {
  grid-column:span 2
}

.card-copy {
  max-width:calc(100% - 56px)
}

.card-copy h3 {
  overflow-wrap:anywhere
}

.review-slider {
  min-width:0
}

.reviews {
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(40px,6vw,95px)
}

.review-head {
  min-width:0
}

.review-head h2 {
  overflow-wrap:normal
}

.review {
  min-width:0
}

.review blockquote {
  max-width:760px
}

.contact {
  grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr)
}

.contact>* {
  min-width:0
}

.contact-details a,.contact-details address {
  overflow-wrap:anywhere
}

@media(max-width:1050px) {
  .class-card:last-child {
    grid-column:span 2
  }

}

@media(max-width:820px) {
  .nav {
    height:100svh;
    bottom:auto
  }

  .reviews,.contact {
    grid-template-columns:1fr
  }

}

@media(max-width:560px) {
  .hero-content {
    width:100%;
    min-width:0;
    max-width:100%
  }

  .class-card:last-child {
    grid-column:span 1
  }

}

/* Rack-inspired palette: subtle safety yellow + steel blue */
.section-index {
  display:flex;
  align-items:center;
  gap:10px
}

.section-index::before {
  content:"";
  display:inline-block;
  width:22px;
  height:4px;
  background:var(--rack-blue)
}

.section-index.light::before {
  background:var(--acid)
}

.class-card {
  border-bottom:4px solid var(--rack-blue);
  transition:border-color .3s
}

.class-card:hover {
  border-bottom-color:var(--acid)
}

.card-copy small {
  display:inline-block;
  padding:5px 7px;
  color:#fff;
  background:var(--rack-blue)
}

.coach {
  border-top:3px solid var(--rack-blue);
  transition:border-color .3s,transform .3s
}

.coach:hover {
  border-top-color:var(--acid);
  transform:translateY(-4px)
}

.slider-controls button:hover {
  background:var(--rack-blue);
  border-color:var(--rack-blue)
}

.button-dark {
  background:var(--rack-blue);
  border-color:var(--rack-blue)
}

.button-dark:hover {
  background:var(--rack-blue-deep);
  border-color:var(--rack-blue-deep)
}

/* Supplied round Electron emblem */
.brand {
  display:inline-flex;
  align-items:center;
  gap:11px;
  overflow:visible;
  line-height:0
}

.brand img {
  width:54px;
  height:54px;
  border-radius:50%;
  object-fit:cover;
  filter:none;
  mix-blend-mode:normal;
  box-shadow:0 0 0 1px rgba(255,255,255,.24)
}

.brand span {
  color:#fff;
  font-size:20px;
  font-weight:950;
  letter-spacing:.08em;
  text-transform:uppercase;
  white-space:nowrap
}

.footer-logo {
  display:inline-flex;
  align-items:center;
  gap:22px
}

.footer-logo img {
  width:92px;
  height:92px;
  border-radius:50%;
  object-fit:cover
}

.footer-logo span {
  font-size:clamp(24px,3vw,42px);
  font-weight:950;
  letter-spacing:-.04em;
  text-transform:uppercase
}

.reviewer img {
  background:var(--rack-blue)
}

@media(max-width:560px) {
  .brand {
    gap:8px
  }

  .brand img {
    width:38px;
    height:38px
  }

  .brand span {
    font-size:16px;
    letter-spacing:.05em
  }

  .footer-logo img {
    width:72px;
    height:72px
  }

  .footer-logo {
    gap:16px
  }

}

/* Flagship competitions */
.events {
  position:relative;
  overflow:hidden;
  color:#fff;
  background:linear-gradient(135deg,var(--rack-blue-deep),#0b1117 68%)
}

.events-mark {
  position:absolute;
  right:-9vw;
  top:-11vw;
  width:min(48vw,680px);
  opacity:.045;
  pointer-events:none
}

.events-mark img {
  display:block;
  width:100%;
  border-radius:50%
}

.events .section-top {
  position:relative
}

.events .section-top h2 {
  max-width:900px
}

.events .section-top>p {
  color:#aeb8be
}

.event-grid {
  position:relative;
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:12px
}

.event-card {
  grid-column:span 3;
  min-height:390px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  padding:28px;
  border:1px solid rgba(255,255,255,.15);
  background:rgba(255,255,255,.035);
  transition:transform .3s,border-color .3s,background .3s
}

.event-card.featured {
  grid-column:span 8;
  min-height:470px;
  background:linear-gradient(135deg,var(--rack-blue),#12324a)
}

.event-card.bfc {
  grid-column:span 4;
  min-height:470px;
  background:rgba(221,255,56,.94);
  color:var(--ink)
}

.event-card:hover {
  transform:translateY(-6px);
  border-color:var(--acid);
  background-color:rgba(27,79,120,.34)
}

.event-top {
  display:flex;
  align-items:center;
  justify-content:space-between;
  font-size:9px;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase
}

.event-top b {
  font-size:18px
}

.event-card small {
  color:var(--acid);
  font-size:9px;
  font-weight:900;
  letter-spacing:.13em;
  text-transform:uppercase
}

.event-card.bfc small {
  color:#385600
}

.event-card h3 {
  margin:12px 0 18px;
  font-size:clamp(34px,4vw,62px);
  line-height:.88;
  letter-spacing:-.055em;
  text-transform:uppercase
}

.event-card:not(.featured):not(.bfc) h3 {
  font-size:clamp(28px,2.8vw,43px)
}

.event-card p {
  max-width:620px;
  margin:0;
  color:#bec7cc;
  font-size:13px;
  line-height:1.55
}

.event-card.bfc p {
  color:#3d4630
}

.events-all {
  position:relative;
  display:flex;
  justify-content:space-between;
  margin-top:28px;
  padding:19px 0;
  border-top:1px solid rgba(255,255,255,.22);
  font-size:10px;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase
}

.events-all span {
  color:var(--acid);
  font-size:18px
}

@media(max-width:900px) {
  .event-card.featured,.event-card.bfc {
    grid-column:span 12
  }

  .event-card {
    grid-column:span 6
  }

  .events-mark {
    width:80vw
  }

}

@media(max-width:560px) {
  .event-card,.event-card.featured,.event-card.bfc {
    grid-column:span 12;
    min-height:330px
  }

  .event-card {
    padding:24px
  }

  .event-card h3,.event-card:not(.featured):not(.bfc) h3 {
    font-size:38px
  }

}

/* Clear visual direction — white, Electron blue and rack yellow */
body {
  background:var(--paper)
}

.site-header {
  background:rgba(255,255,255,.91);
  border-bottom-color:rgba(13,118,179,.16);
  box-shadow:0 8px 34px rgba(15,57,83,.06)
}

.site-header.compact {
  background:rgba(255,255,255,.97)
}

.brand img {
  box-shadow:0 0 0 1px rgba(13,118,179,.18)
}

.brand span,.nav a {
  color:var(--rack-blue-deep)
}

.nav a:hover,.nav a.active {
  color:var(--rack-blue)
}

.nav a:not(.nav-cta)::after {
  background:var(--acid);
  box-shadow:0 1px 0 var(--rack-blue)
}

.nav .nav-cta,.nav .nav-cta:hover,.nav .nav-cta.active {
  color:var(--rack-blue-deep);
  background:var(--acid);
  box-shadow:inset 0 0 0 1px rgba(7,83,129,.12)
}

.menu-button>span {
  background:var(--rack-blue-deep)
}

.hero {
  background:var(--rack-blue-deep)
}

.hero-shade {
  background:linear-gradient(90deg,rgba(4,44,69,.9) 0%,rgba(4,57,89,.65) 46%,rgba(4,57,89,.13) 100%),linear-gradient(0deg,rgba(3,41,64,.78),transparent 58%)
}

.hero h1 em {
  color:var(--acid)
}

.hero-disciplines {
  color:rgba(255,255,255,.9)
}

.section {
  background:#fff
}

.intro-heading h2 span,.section-top h2 span,.review-head h2 span {
  color:var(--rack-blue)
}

.intro-copy p,.section-top>p {
  color:#5f7280
}

.video-section {
  color:var(--ink);
  background:linear-gradient(125deg,#fff 0%,var(--rack-blue-soft) 100%)
}

.video-copy h2 em {
  color:var(--rack-blue)
}

.video-copy>p:last-child {
  color:#586f7e
}

.video-frame {
  background:var(--rack-blue-deep);
  box-shadow:0 28px 65px rgba(7,83,129,.18)
}

.video-frame::before {
  border-color:var(--rack-blue);
  border-top-color:var(--acid);
  border-left-color:var(--acid)
}

.classes {
  background:#fff
}

.class-card {
  border-bottom-color:var(--rack-blue);
  box-shadow:0 12px 32px rgba(12,63,94,.08)
}

.card-copy small {
  color:var(--rack-blue-deep);
  background:var(--acid)
}

.team {
  color:var(--ink);
  background:linear-gradient(145deg,#fff 0%,var(--rack-blue-soft) 140%)
}

.team-bg {
  background:linear-gradient(120deg,rgba(255,255,255,.96),rgba(232,243,249,.88)),url('assets/team-bg.jpg') center/cover;
  opacity:.96
}

.team h2 span {
  color:var(--rack-blue)
}

.coach {
  background:#fff;
  border-top-color:var(--rack-blue);
  box-shadow:0 15px 40px rgba(9,78,118,.08)
}

.coach>img {
  filter:grayscale(.8) saturate(.65)
}

.coach h3 {
  color:var(--ink)
}

.coach h3 span {
  color:var(--rack-blue)
}

.coach>div>p,.coach-details p {
  color:#657786
}

.coach-more {
  color:var(--rack-blue-deep);
  border-top-color:rgba(13,118,179,.18)
}

.events {
  color:var(--ink);
  background:linear-gradient(145deg,#fff 0%,#f2f8fb 100%)
}

.events-mark {
  opacity:.035
}

.events .section-top>p {
  color:#5f7280
}

.events .section-index.light {
  color:#657786
}

.events .section-index.light::before {
  background:var(--acid);
  box-shadow:0 0 0 1px rgba(7,83,129,.12)
}

.event-card {
  border-color:rgba(13,118,179,.18);
  background:#fff;
  box-shadow:0 14px 38px rgba(7,83,129,.07)
}

.event-card.featured {
  color:#fff;
  background:linear-gradient(135deg,var(--rack-blue),var(--rack-blue-deep));
  box-shadow:0 18px 46px rgba(7,83,129,.2)
}

.event-card.bfc {
  color:var(--rack-blue-deep);
  background:var(--acid)
}

.event-card:not(.featured):not(.bfc) small {
  color:var(--rack-blue)
}

.event-card:not(.featured):not(.bfc) p {
  color:#637786
}

.event-card:hover {
  border-color:var(--rack-blue);
  background-color:#f7fbfd;
  box-shadow:0 20px 50px rgba(7,83,129,.13)
}

.event-card.featured:hover {
  background:linear-gradient(135deg,#1288c9,var(--rack-blue-deep))
}

.event-card.bfc:hover {
  background:var(--acid)
}

.events-all {
  color:var(--rack-blue-deep);
  border-top-color:rgba(13,118,179,.18)
}

.events-all span {
  color:var(--rack-blue)
}

.price-card {
  background:#f2f7fa
}

.price-card:hover {
  background:#fff;
  box-shadow:0 18px 45px rgba(7,83,129,.09)
}

.price-card.featured {
  background:var(--rack-blue-deep)
}

.planning {
  color:var(--ink);
  background:linear-gradient(125deg,var(--rack-blue-soft),#fff 74%);
  border-block:1px solid rgba(13,118,179,.12)
}

.planning .section-index.light {
  color:#657786
}

.planning .section-index.light::before {
  background:var(--acid);
  box-shadow:0 0 0 1px rgba(7,83,129,.12)
}

.planning h2 em {
  color:var(--rack-blue)
}

.planning-inner>p:not(.section-index),.planning-actions>span {
  color:#617685
}

.planning-steps {
  border-top-color:rgba(13,118,179,.2)
}

.planning-steps>div {
  border-bottom-color:rgba(13,118,179,.2)
}

.planning-steps b {
  display:grid;
  place-items:center;
  width:31px;
  height:31px;
  color:var(--rack-blue-deep);
  background:var(--acid)
}

.planning-steps p {
  color:#405c6e
}

.contact {
  position:relative;
  background:#fff
}

.contact h2 em {
  color:transparent;
  -webkit-text-stroke:2px var(--rack-blue)
}

.contact .eyebrow {
  color:var(--rack-blue)
}

.contact-details {
  border-top-color:rgba(13,118,179,.25)
}

.contact-details>div:not(.socials) {
  border-bottom-color:rgba(13,118,179,.18)
}

.partners {
  border-top:1px solid rgba(13,118,179,.1);
  background:#f7fafc
}

footer {
  background:var(--rack-blue-deep)
}

@media(max-width:820px) {
  .nav {
    background:#fff
  }

  .nav a {
    border-bottom-color:rgba(13,118,179,.14)
  }

  .nav .nav-cta {
    color:var(--rack-blue-deep)
  }

}

/* Section labels */
.section-index {
  font-size:24px;
  letter-spacing:.15em
}

.section-index::before {
  width:26px;
  height:5px
}

@media(max-width:560px) {
  .section-index {
    font-size:22px
  }

}

/* Clearer alternating section backgrounds */
.intro,.classes,.events,.planning,.contact {
  background:#fff
}

.video-section,.pricing,.reviews,.partners {
  background:var(--rack-blue-soft)
}

.team {
  background:var(--rack-blue-soft)
}

.team-bg {
  background:linear-gradient(120deg,rgba(220,238,247,.96),rgba(232,245,251,.9)),url('assets/team-bg.jpg') center/cover
}

.video-section {
  background:linear-gradient(125deg,var(--rack-blue-soft),#edf7fb)
}

.pricing {
  background:linear-gradient(145deg,var(--rack-blue-soft),#edf7fb)
}

.reviews {
  background:linear-gradient(145deg,#edf7fb,var(--rack-blue-soft))
}

/* ===== La box : espaces ===== */
.box-spaces {
  padding:clamp(95px,12vw,170px) var(--pad);
  background:var(--ink);
  color:#fff
}

.box-spaces .section-top {
  padding:0 0 clamp(40px,6vw,70px)
}

.space-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px
}

.space-card {
  position:relative;
  min-height:430px;
  overflow:hidden;
  background:#222;
  color:#fff
}

.space-card img {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:contain;
  filter:saturate(.65) contrast(1.06)
}

.space-card:not(.space-light) img {
  object-fit:cover
}

.space-card.space-light {
  background:#1a1a17;
  display:flex;
  align-items:flex-end
}

.space-card.space-light img {
  position:relative;
  inset:auto;
  height:auto;
  width:min(180px,60%);
  object-fit:contain;
  padding:60px 30px 0;
  filter:none
}

.space-copy {
  position:absolute;
  inset:auto 28px 28px;
  color:#fff
}

.space-card.space-light .space-copy {
  position:static;
  padding:10px 28px 32px
}

.space-copy small {
  color:var(--acid);
  font-weight:900;
  font-size:20px;
  letter-spacing:.06em;
  text-transform:uppercase
}

.space-copy h3 {
  margin:8px 0 12px;
  font-size:clamp(28px,3.4vw,50px);
  line-height:.95;
  letter-spacing:-.04em;
  text-transform:uppercase
}

.space-copy p {
  max-width:520px;
  color:#c9c8c0;
  line-height:1.6;
  margin:0 0 14px
}

.space-copy ul {
  margin:0;
  padding-left:18px;
  columns:2;
  column-gap:26px;
  color:#b9b8b0;
  font-size:13px;
  line-height:1.8
}

.box-visit {
  display:grid;
  grid-template-columns:1fr 1.4fr;
  gap:clamp(30px,5vw,70px);
  align-items:center;
  margin-top:clamp(50px,7vw,90px);
  border-top:1px solid #383833;
  padding-top:clamp(40px,6vw,70px)
}

.box-address address {
  font-style:normal;
  font-size:clamp(28px,4vw,52px);
  font-weight:800;
  line-height:1.15;
  letter-spacing:-.03em
}

.box-address address strong {
  display:block;
  color:var(--acid);
  font-size:12px;
  font-weight:900;
  letter-spacing:.13em;
  text-transform:uppercase;
  margin-bottom:12px
}

.box-address .button {
  margin-top:28px
}

.box-map {
  width:100%;
  height:340px;
  border:0;
  filter:grayscale(.2) contrast(1.05)
}

@media(max-width:980px) {
  .space-grid {
    grid-template-columns:1fr
  }

  .space-card {
    min-height:360px
  }

  .box-visit {
    grid-template-columns:1fr
  }

  .box-map {
    height:300px
  }

}

/* ============ TYPOGRAPHIE UNIFORMISÉE ============ */

/* Titres de section (h2) — tous au même niveau */
.intro-heading h2,.section-top h2,.video-copy h2,.team h2,.planning h2,.review-head h2,.contact h2,.pricing h2,.classes h2,.events h2 {
  font-size:clamp(34px,5vw,64px);
  line-height:1;
  letter-spacing:-.03em;
  margin:20px 0 0;
}

/* Sous-titres de cartes (h3) — tous au même niveau */
.space-copy h3,.card-copy h3,.coach h3,.event-card h3,.price-card h3 {
  font-size:clamp(22px,2.4vw,30px);
  line-height:1.15;
  letter-spacing:-.02em;
  margin:10px 0 12px;
}

/* Paragraphes (corps) */
.space-copy p,.card-copy p,.coach p,.event-card p,.price-card p,.intro-copy p,.video-copy p,.planning-copy p,.contact-copy p,.review p {
  font-size:clamp(15px,1.4vw,17px);
  line-height:1.7;
}

/* Paragraphes long (leads) */
.lead,.intro-copy .lead,.section-top>p,.review blockquote {
  font-size:clamp(17px,1.7vw,20px);
  line-height:1.7;
}

/* Listes */
.space-copy li,.card-copy li {
  font-size:clamp(14px,1.3vw,15px);
  line-height:1.7
}

/* Étiquettes / small */
.space-copy small,.card-copy small,.event-card small {
  font-size:clamp(11px,1.1vw,13px);
  letter-spacing:.08em
}

/* Prix */
.price .price-amount strong,.price strong {
  font-size:clamp(30px,4vw,44px)
}

.price-name {
  font-size:clamp(15px,1.5vw,18px)
}

/* Disciplines héro */
.hero-disciplines {
  font-size:clamp(14px,1.4vw,17px)
}

/* Avis */
.review blockquote {
  font-size:clamp(18px,2vw,24px)
}

.review .reviewer {
  font-size:clamp(14px,1.4vw,16px)
}

/* Note de bas de page tarifs */
.price-foot {
  font-size:clamp(12px,1.2vw,13px)
}

/* Profil coach details */
.coach-details p {
  font-size:clamp(14px,1.3vw,15px)
}

/* Numéros / méta coach */
.coach .coach-meta {
  font-size:clamp(11px,1.1vw,12px)
}

/* Méta coach (certifications) */
.coach div>p:first-of-type:not(.coach-details p) {
  font-size:clamp(12px,1.2vw,13px);
  letter-spacing:.04em
}

/* Libellés événements (Depuis, Masters, WODxHER…) */
.event-top span {
  font-size:clamp(11px,1.1vw,13px);
  letter-spacing:.06em
}

/* Autres tarifs (Tarifs réduits, Kids, Drop-in…) */
.other-prices span {
  font-size:clamp(13px,1.3vw,15px)
}

/* Pas tarifs / réservation */
.price-foot {
  font-size:clamp(13px,1.3vw,14px);
  line-height:1.6;
}

/* Lien textuel Découvrir / arrow */
.scroll-cue span,.text-link,.nav a {
  font-size:clamp(14px,1.4vw,16px)
}

/* Alignement des h3 événements (sur-spécificité) */
.event-card:not(.featured):not(.bfc) h3 {
  font-size:clamp(22px,2.4vw,30px);
  line-height:1.15;
  letter-spacing:-.02em
}

.event-card.featured h3,.event-card.bfc h3 {
  font-size:clamp(22px,2.4vw,30px);
  line-height:1.15;
  letter-spacing:-.02em
}

/* Texte en blanc dans les vignettes de la box */
.space-copy p,.space-copy li,.space-copy ul,.space-copy small,.space-copy h3 {
  color:#fff !important
}

/* ===== Vignettes box : uniformisation taille + emplacement ===== */
.space-copy {
  position:absolute;
  inset:auto 28px 28px;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  text-align:left
}

.space-copy small {
  font-size:clamp(13px,1.3vw,15px);
  letter-spacing:.08em;
  text-transform:uppercase;
  font-weight:900
}

.space-copy h3 {
  font-size:clamp(24px,3vw,42px);
  line-height:1;
  letter-spacing:-.03em;
  text-transform:uppercase;
  margin:10px 0 12px;
  color:var(--acid) !important
}

.space-copy p {
  font-size:clamp(14px,1.4vw,16px);
  line-height:1.6;
  max-width:460px;
  margin:0 0 12px;
  color:#fff !important
}

.space-copy ul {
  font-size:clamp(12px,1.2vw,13px);
  line-height:1.7;
  columns:2;
  column-gap:24px;
  color:#fff !important
}

.space-copy li {
  color:#fff !important
}

/* Hauteur des vignettes box : laisser respirer le contenu */
.space-card {
  min-height:520px
}

/* ===== Vignettes box : texte en haut + voile au survol ===== */
.space-card {
  align-items:flex-start
}

.space-copy {
  position:absolute;
  inset:28px 28px auto;
  justify-content:flex-start
}

/* Voile semi-transparent en haut de la vignette (permanent) */
.space-card::before {
  content:"";
  position:absolute;
  inset:0;
  height:70%;
  pointer-events:none;
  background:linear-gradient(to bottom,rgba(0,0,0,.75),rgba(0,0,0,.45) 60%,transparent);
  z-index:1
}

.space-card .space-copy {
  position:relative;
  z-index:2
}

/* Cadrage photo : moins de zoom, recentrage sur le sujet */
.space-card img {
  object-fit:cover;
  object-position:center 25%;
  filter:saturate(.65) contrast(1.06)
}

@media(max-width:980px) {
  .space-card::before {
    height:85%
  }

}

/* Icônes sociales */
.socials a {
  display:inline-flex;
  align-items:center;
  gap:8px
}

.socials .sicon {
  flex:none;
  display:block
}

/* Carte Google Maps */
.box-visit {
  grid-template-columns:1fr;
  border-top:0;
  margin-top:-70px;
  padding-top:0
}

.box-map {
  width:100%
}

/* ===== Section contact-details : +25% ===== */
.contact-details span {
  font-size:11px
}

.contact-details address,.contact-details a:not(.socials a) {
  font-size:20px;
  line-height:1.5
}

.contact-details .socials a {
  font-size:12px;
  gap:10px
}

.contact-details .socials .sicon {
  width:25px;
  height:25px
}

.contact-details>div:not(.socials) {
  padding:28px 0
}

/* ===== Section reviews : hauteur réduite ===== */
.review {
  inset:24px 0 24px
}

.review blockquote {
  margin-top:18px
}

/* ===== Events : vignettes plus petites, texte aligné en haut ===== */
.event-card {
  justify-content:flex-start;
  min-height:330px
}

.event-card.featured,.event-card.bfc {
  min-height:330px
}

.event-card>.event-top,.event-card>div:last-child {
  width:100%
}

.event-card h3 {
  margin:12px 0 14px
}

/* ===== Pricing : tarif réduit ===== */
.price .price-reduced {
  margin-left:6px;
  font-style:normal;
  color:#85847c;
  font-size:clamp(11px,1.1vw,13px);
  font-weight:700;
  white-space:nowrap;
}

.price-card.featured .price .price-reduced {
  color:#aaa99f
}

/* ===== Pricing : Kids détail ===== */
.other-prices small {
  display:block;
  font-size:.75em;
  font-weight:600;
  opacity:.85;
  margin:0 0 4px
}

.other-prices>div small:last-child {
  margin-bottom:0
}

/* ===== Hero : bandeau d'annonce v2 ===== */
.hero-announce {
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:16px;
  padding:16px 22px;
  border-radius:16px;
  background:linear-gradient(120deg,var(--acid),#a6e600);
  color:var(--ink);
  position:relative;
  margin-bottom:28px;
  max-width:520px;
  box-shadow:0 14px 34px rgba(0,0,0,.35), inset 0 0 0 2px rgba(255,255,255,.45);
  border:1px solid rgba(0,0,0,.08);
  animation:ha-pop .7s cubic-bezier(.2,1.4,.4,1) both;
}

@keyframes ha-pop {
  from {
    transform:translateY(8px) scale(.97);
    opacity:0
  }

  to {
    transform:none;
    opacity:1
  }

}

.hero-announce .ha-badge {
  flex:none;
  display:flex;
  align-items:center;
  justify-content:center;
  width:46px;
  height:46px;
  border-radius:50%;
  font-size:24px;
  background:#d8ff31;
  box-shadow:inset 0 0 0 2px rgba(0,0,0,.12),0 4px 10px rgba(0,0,0,.18);
}

.hero-announce .ha-text {
  display:flex;
  flex-direction:column;
  gap:6px
}

.hero-announce .ha-title {
  margin:0;
  font-size:clamp(17px,1.9vw,23px);
  font-weight:900;
  letter-spacing:-.02em;
  text-transform:uppercase;
  line-height:1.1
}

.hero-announce .ha-sub {
  margin:0;
  font-size:clamp(12px,1.25vw,14px);
  font-weight:700;
  line-height:1.45;
  color:rgba(16,16,14,.85)
}

/* ===== Contact-details : alignement vertical label/valeur ===== */
.contact-details>div:not(.socials) {
  align-items:center
}

/* ===== Planning : note d'info + stores RESAWOD ===== */
.planning-steps>div.ps-note>p {
  margin:0;
  color:#405c6e
}

.planning-steps>div.ps-note strong {
  display:inline;
  color:#7f7e76
}

.planning-steps>div.ps-note {
  border-bottom-color:rgba(13,118,179,.2)
}

.planning-steps .ps-app p {
  margin:0;
  color:#405c6e
}

.planning-steps .ps-store {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:14px
}

.planning-steps .ps-store a {
  color:var(--rack-blue-deep,#075381);
  background:var(--acid,#e6ff38);
  text-decoration:none;
  font-size:12px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
  padding:12px 16px
}

.planning-steps .ps-store a:hover {
  opacity:.85
}

/* ===== Planning : correction grille héritée des numéros ===== */
.planning-steps>div.ps-note,.planning-steps>div.ps-app {
  display:block;
  padding-left:0;
  grid-template-columns:none;
  gap:0
}

.planning-steps>div.ps-note strong {
  display:inline;
  color:#7f7e76
}

.planning-steps>div.ps-app {
  margin-top:6px
}

/* ===== Planning : texte note/ressources un peu plus gros ===== */
.planning-steps>div.ps-note p,.planning-steps>div.ps-app p {
  font-size:16px;
  line-height:1.65
}

/* ===== Uniformisation : padding vertical de toutes les sections ===== */
.team,.box-spaces,.video-section,.planning,.contact,.reviews,.events,.pricing,.intro,.classes {
  padding-top:clamp(45px,6vw,80px);
  padding-bottom:clamp(45px,6vw,80px);
}

.team {
  padding-left:var(--pad);
  padding-right:var(--pad)
}

/* ===== Section avis : bloc et titre réduits ===== */
.review-head h2 {
  font-size:clamp(28px,3.4vw,44px);
  margin-top:18px
}

/* ===== Section avis : réduction du bloc et des commentaires ===== */
.review-head {
  max-width:460px
}

.review-slider {
  min-height:300px;
  padding:18px 0 18px;
  gap:24px
}

.review {
  font-size:14px;
  line-height:1.6
}

.reviewer {
  font-size:13px;
  margin-top:14px
}

.stars {
  font-size:13px
}

/* ===== Titre section La box : aligne sur les autres titres ===== */
.intro-heading h2 {
  font-weight:950
}

/* ===== Sous-titres de section : sous le titre, alignés à gauche ===== */
.section-top {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:clamp(18px,2.5vw,30px)
}

.section-top>div {
  max-width:900px
}

.section-top>p {
  max-width:660px;
  margin:0;
  text-align:left
}

/* ===== Menu : retrait de l'effet de surlignage ===== */
.nav a::after {
  display:none
}

.nav a:hover,.nav a.active {
  color:inherit
}

.nav a {
  transition:none
}

/* ===== Mentions légales : lien plus visible ===== */
.footer-bottom a {
  color:#fff;
  font-weight:800
}
