
/* ── Se hai il file Halenoir, decommentare:
@font-face {
  font-family: 'Halenoir';
  src: url('Halenoir-Regular.woff2') format('woff2');
  font-weight: 400;
}
── */

/* Sezione testimonianze nascosta temporaneamente finché i video non sono pronti */
.is-hidden-temporary { display:none!important }

/* Home editorial flow */
.home-page #why {
  padding:clamp(6.25rem,7vw,8.125rem) var(--site-gutter);
  padding-bottom:calc(clamp(6.25rem,7vw,8.125rem) + 60px);
}
.home-page .why-home-head {
  display:grid; grid-template-columns:1fr;
  align-items:center; justify-items:center; gap:clamp(2.5rem,5vw,4.5rem);
}
.home-page .why-home-copy { min-width:0; max-width:880px; margin-inline:auto; text-align:center }
.home-page .why-home-copy > .stag { justify-content:center; margin:0 auto 28px }
.home-page .why-home-head h2 {
  max-width:11ch; margin-inline:auto; color:#111; text-align:center;
  font-size:clamp(4.25rem,6vw,7rem); line-height:.88;
}
.home-page .why-home-head h2 em {
  color:#111; font:inherit; font-style:normal; letter-spacing:inherit;
}
.home-page .why-home-copy > p {
  max-width:42.5rem; margin:clamp(1.75rem,2.5vw,2.25rem) auto 0; color:#4a4845; text-align:center;
  font:400 clamp(1.125rem,1.25vw,1.3125rem)/1.65 var(--body-font);
}
.home-page .why-home-side { min-width:0; width:min(100%,48rem); margin-inline:auto }
.home-page .why-phrase-wheel {
  position:relative;
  width:100%;
  max-width:48rem;
  height:clamp(32rem,38vw,36rem);
  min-height:520px;
  margin-bottom:clamp(1.5rem,2.4vw,2rem);
  overflow:hidden;
  perspective:1200px;
  mask-image:linear-gradient(to bottom,transparent 0%,#000 5%,#000 95%,transparent 100%);
  -webkit-mask-image:linear-gradient(to bottom,transparent 0%,#000 5%,#000 95%,transparent 100%);
}
.home-page .why-wheel-phrase {
  position:absolute;
  top:50%;
  left:0;
  width:100%;
  max-width:100%;
  color:#111;
  transform-origin:center center -210px;
  transition:opacity .82s cubic-bezier(.16,1,.3,1),transform .82s cubic-bezier(.16,1,.3,1),filter .82s cubic-bezier(.16,1,.3,1);
  font:700 clamp(4.25rem,5vw,5.15rem)/.94 var(--display-font);
  text-transform:uppercase;
  pointer-events:none;
}
.home-page .why-wheel-phrase.is-current {
  opacity:1;
  filter:blur(0);
  transform:translateY(-50%) rotateX(0deg) scale(1);
  z-index:3;
}
.home-page .why-wheel-phrase.is-prev {
  opacity:.3;
  filter:none;
  transform:translateY(calc(-50% - 13rem)) rotateX(-32deg) scale(.64);
  z-index:2;
}
.home-page .why-wheel-phrase.is-next {
  opacity:.3;
  filter:none;
  transform:translateY(calc(-50% + 13rem)) rotateX(32deg) scale(.64);
  z-index:2;
}
.home-page .why-wheel-phrase.is-back {
  opacity:0;
  visibility:hidden;
  filter:none;
  transform:translateY(calc(-50% + 17rem)) rotateX(58deg) scale(.5);
  z-index:1;
}
.home-page .why-wheel-phrase em { color:#111; font-style:normal }
@media (min-width:768px) {
  .home-page .why-home-copy {
    max-width:min(100%,1280px);
  }
  .home-page .why-home-head h2 {
    max-width:min(100%,1280px);
    white-space:nowrap;
    font-size:clamp(3.25rem,5.2vw,5.75rem);
  }
  .home-page .why-home-side {
    width:min(100%,1180px);
  }
  .home-page .why-phrase-wheel {
    max-width:min(100%,1180px);
    height:clamp(13rem,19vw,17rem);
    min-height:208px;
    margin-inline:auto;
    perspective:1400px;
    mask-image:linear-gradient(to right,transparent 0%,#000 9%,#000 91%,transparent 100%);
    -webkit-mask-image:linear-gradient(to right,transparent 0%,#000 9%,#000 91%,transparent 100%);
  }
  .home-page .why-wheel-phrase {
    top:50%;
    left:50%;
    width:max-content;
    max-width:min(68rem,90vw);
    text-align:center;
    font-size:clamp(2.75rem,3.8vw,4.45rem);
    line-height:.93;
    transform-origin:center center -260px;
  }
  .home-page .why-wheel-phrase.is-current {
    transform:translate(-50%,-50%) rotateY(0deg) scale(1);
  }
  .home-page .why-wheel-phrase.is-prev {
    opacity:.3;
    transform:translate(calc(-50% - clamp(20rem,34vw,38rem)),-50%) rotateY(26deg) scale(.56);
  }
  .home-page .why-wheel-phrase.is-next {
    opacity:.3;
    transform:translate(calc(-50% + clamp(20rem,34vw,38rem)),-50%) rotateY(-26deg) scale(.56);
  }
  .home-page .why-wheel-phrase.is-back {
    transform:translate(-50%,-50%) rotateY(60deg) scale(.48);
  }
}
.home-page .why-home-grid {
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(1.25rem,3vw,3rem); margin-top:clamp(3rem,6vw,5rem);
  border-top:1px solid rgba(17,17,17,.18);
}
.home-page .why-home-item { padding:clamp(1.5rem,2.8vw,2.5rem) 0 0 }
.home-page .why-home-item span,
.home-page .capability-item span {
  display:block; margin-bottom:1rem; color:rgba(17,17,17,.48);
  font:700 .68rem/1 var(--body-font); letter-spacing:.16em;
}
.home-page .why-home-item h3 {
  margin-bottom:.7rem; color:#111;
  font:700 clamp(1.25rem,1.8vw,1.7rem)/1 var(--body-font); letter-spacing:.04em;
}
.home-page .why-home-item p {
  max-width:31ch; color:#4a4845; font:400 .98rem/1.65 var(--body-font);
}
.home-wide-container {
  width:calc(100% - clamp(40px,8vw,160px)); max-width:1680px; margin-inline:auto;
}
.home-page #capabilities {
  position:relative; isolation:isolate; overflow:hidden;
  padding:clamp(3.75rem,5.5vw,5.75rem) 0; color:#fff;
  background:#080808;
  border-top:1px solid #181818; border-bottom:1px solid #181818;
}
.home-page #capabilities::before {
  content:""; position:absolute; inset:0; z-index:-1;
  background:radial-gradient(circle at 50% 0%,rgba(255,255,255,.035),transparent 38%);
}
.home-page .capabilities-head {
  display:block; max-width:880px; margin-inline:auto; text-align:center;
}
.home-page .capabilities-head .section-kicker { display:flex; justify-content:center; margin:0 auto 1.1rem; color:rgba(255,255,255,.62) }
.home-page .capabilities-head .section-kicker::before { background:rgba(255,255,255,.3) }
.home-page .capabilities-head h2 { max-width:11ch; margin-inline:auto; color:#fff; text-align:center }
.home-page .capabilities-head h2 em { color:#e8e5dc; font-style:normal }
@media (min-width:768px) {
  .home-page .capabilities-head {
    max-width:min(100%,1320px);
  }
  .home-page .capabilities-head h2 {
    max-width:min(100%,1320px);
    white-space:nowrap;
    font-size:clamp(2.45rem,4.15vw,4.85rem);
  }
  .home-page .capabilities-head h2 span,
  .home-page .capabilities-head h2 em {
    display:inline;
  }
}
.home-page .home-section-subtitle {
  max-width:42rem; margin:1.1rem auto 0; color:rgba(255,255,255,.78); text-align:center;
  font:400 clamp(1rem,1.2vw,1.15rem)/1.75 var(--body-font);
}
.home-page .capacity-gallery {
  position:relative;
  width:100%;
  margin-top:clamp(2.5rem,4vw,4rem);
}
.home-page .capacity-gallery__viewport {
  position:relative;
  width:100%;
  overflow:hidden;
  mask-image:linear-gradient(to right,transparent 0,#000 5%,#000 95%,transparent 100%);
  -webkit-mask-image:linear-gradient(to right,transparent 0,#000 5%,#000 95%,transparent 100%);
  cursor:grab;
  touch-action:pan-y;
  user-select:none;
}
.home-page .capacity-gallery__viewport.is-dragging { cursor:grabbing }
.home-page .capacity-gallery-controls {
  display:flex;
  align-items:center;
  gap:.75rem;
  margin-top:1.2rem;
}
.home-page .capacity-gallery-arrow {
  width:42px;
  height:42px;
  border:1px solid rgba(255,255,255,.28);
  border-radius:50%;
  color:#fff;
  background:transparent;
  font-size:1.1rem;
  cursor:pointer;
}
.home-page .capacity-gallery-arrow:hover { border-color:rgba(255,255,255,.55) }
.home-page .capacity-gallery-counter {
  min-width:4.75rem;
  color:rgba(255,255,255,.62);
  font:600 .7rem/1 var(--body-font);
  letter-spacing:.12em;
  text-align:center;
}
.home-page .capacity-gallery-all {
  margin-left:auto;
  color:#fff;
  font:700 .7rem/1 var(--body-font);
  letter-spacing:.12em;
  text-decoration:none;
}
.home-page .capacity-gallery-all:hover { color:#fff }
.capacity-lightbox {
  position:fixed;
  inset:0;
  z-index:10000;
  display:none;
  overflow-y:auto;
  padding:clamp(4rem,7vw,7rem) clamp(1.25rem,4vw,4rem);
  color:#fff;
  background:rgba(0,0,0,.96);
}
.capacity-lightbox.is-open { display:block }
.capacity-lightbox__close {
  position:fixed;
  top:1.25rem;
  right:1.25rem;
  z-index:2;
  width:46px;
  height:46px;
  border:1px solid rgba(255,255,255,.35);
  border-radius:50%;
  color:#fff;
  background:#111;
  font-size:1.4rem;
  cursor:pointer;
}
.capacity-lightbox__grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:clamp(.75rem,1.4vw,1.25rem);
  max-width:1600px;
  margin-inline:auto;
}
.capacity-lightbox__item {
  position:relative;
  aspect-ratio:1 / 1;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.15);
  border-radius:8px;
  background:#151515;
  cursor:pointer;
}
.capacity-lightbox__item img,
.capacity-lightbox__viewer img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}
.capacity-lightbox__viewer {
  position:fixed;
  inset:0;
  z-index:1;
  display:none;
  align-items:center;
  justify-content:center;
  padding:clamp(4rem,8vw,8rem);
  background:rgba(0,0,0,.94);
}
.capacity-lightbox__viewer.is-open { display:flex }
.capacity-lightbox__viewer-media {
  position:relative;
  width:min(920px,82vw,82vh);
  aspect-ratio:1 / 1;
  overflow:hidden;
  border-radius:8px;
  background:#151515;
}
.capacity-lightbox__viewer-arrow {
  position:fixed;
  top:50%;
  z-index:2;
  width:48px;
  height:48px;
  border:1px solid rgba(255,255,255,.35);
  border-radius:50%;
  color:#fff;
  background:#111;
  font-size:1.2rem;
  cursor:pointer;
}
.capacity-lightbox__viewer-arrow--prev { left:1.25rem }
.capacity-lightbox__viewer-arrow--next { right:1.25rem }
body.capacity-lightbox-open { overflow:hidden }
.home-page .capacity-gallery__track {
  display:flex;
  flex-wrap:nowrap;
  width:max-content;
  gap:16px;
  will-change:transform;
}
.home-page .capacity-gallery__group {
  display:flex;
  flex-wrap:nowrap;
  flex:0 0 auto;
  gap:16px;
}
.home-page .capacity-gallery__item {
  position:relative;
  flex:0 0 auto;
  width:clamp(340px,27vw,430px);
  aspect-ratio:1 / 1;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.12);
  border-radius:8px;
  background:#151515;
}
.home-page .capacity-gallery__item img {
  position:absolute;
  inset:0;
  z-index:1;
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}
.home-page .capabilities-grid {
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr));
  margin-top:clamp(3.125rem,4vw,4.375rem);
  border-top:1px solid rgba(255,255,255,.2);
  border-left:1px solid rgba(255,255,255,.14);
  background:rgba(8,8,8,.54); backdrop-filter:blur(3px);
}
.home-page .capability-item {
  min-height:165px; padding:clamp(1.25rem,2.2vw,2rem);
  border-right:1px solid rgba(255,255,255,.14); border-bottom:1px solid rgba(255,255,255,.14);
}
.home-page #capabilities .capability-item span { color:rgba(255,255,255,.44) }
.home-page .capability-item:nth-child(3n) { border-right:none }
.home-page .capability-item h3 {
  margin-bottom:.65rem; color:#fff; font-family:var(--display-font);
  font-size:clamp(2rem,3vw,3.5rem); line-height:.9;
}
.home-page .capability-item p {
  max-width:34ch; color:rgba(255,255,255,.72); font:400 .92rem/1.55 var(--body-font);
}
.home-page .home-paths {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  width:100%;
  padding:24px;
  background:#fff;
}
.home-page .home-path {
  position:relative; aspect-ratio:1 / 1; height:auto; min-height:0; overflow:hidden;
  color:#fff; text-decoration:none; isolation:isolate;
}
.home-page .home-path img {
  position:absolute; inset:0; z-index:-2; width:100%; height:100%; object-fit:cover;
  transition:transform .7s cubic-bezier(.16,1,.3,1);
}
.home-page .home-path--crossfit img { object-position:68% center }
.home-page .home-path--hyrox img { object-position:58% center }
.home-page .home-path-overlay {
  position:absolute; inset:0; z-index:-1;
  background:linear-gradient(to top,rgba(0,0,0,.82) 0%,rgba(0,0,0,.38) 32%,rgba(0,0,0,.06) 58%,transparent 75%);
}
.home-page .home-path-copy {
  position:absolute; left:clamp(1.5rem,3vw,3rem); right:clamp(1.5rem,3vw,3rem);
  bottom:clamp(2rem,4vw,3.5rem);
}
.home-page .home-path-kicker {
  display:inline-flex; align-items:center; width:fit-content; margin-bottom:.75rem; padding:7px 10px;
  border:1px solid rgba(255,255,255,.22); border-radius:999px; color:#fff;
  background:rgba(0,0,0,.58); backdrop-filter:blur(6px);
  font:800 .68rem/1 var(--body-font); letter-spacing:.12em; text-transform:uppercase;
}
.home-page .home-path--crossfit .home-path-kicker { color:#fff; border-color:rgba(188,22,47,.65) }
.home-page .home-path--hyrox .home-path-kicker { color:#fff; border-color:color-mix(in srgb,var(--color-lime) 65%,transparent) }
.home-page .home-path h2 {
  color:#fff; font-family:var(--display-font); font-size:clamp(4rem,6vw,6.75rem); line-height:.86;
}
.home-page .home-path p {
  max-width:38ch; margin:1rem 0 1.5rem; color:rgba(255,255,255,.9);
  font:400 clamp(.95rem,1vw,1.08rem)/1.55 var(--body-font);
}
.home-page .home-path-cta {
  display:inline-flex; align-items:center; min-height:48px; padding:.9rem 1.2rem;
  border:1px solid rgba(255,255,255,.42); border-radius:999px; color:#fff; background:rgba(255,255,255,.1);
  font:700 .7rem/1 var(--body-font); letter-spacing:.08em;
  transition:transform .25s,background .25s,color .25s;
}
.home-page .home-path--crossfit .home-path-cta { color:#fff; background:var(--red); border-color:var(--red) }
.home-page .home-path--hyrox .home-path-cta { color:#000; background:var(--color-lime) }
@media (hover:hover) {
  .home-page .home-path:hover img { transform:scale(1.035) }
  .home-page .home-path:hover .home-path-cta { transform:translateY(-3px) }
}
@media (max-width:1100px) {
  .home-page .capabilities-grid { grid-template-columns:repeat(2,minmax(0,1fr)) }
  .home-page .capability-item:nth-child(3n) { border-right:1px solid rgba(255,255,255,.12) }
  .home-page .capability-item:nth-child(2n) { border-right:none }
}
@media (max-width:767px) {
  body.home-page #why {
    height:auto;
    min-height:0;
    padding:72px 20px;
  }
  body.home-page .why-home-head {
    display:block;
    max-width:330px;
    margin-inline:auto;
    text-align:center;
  }
  body.home-page .why-home-copy {
    max-width:330px;
    margin-inline:auto;
  }
  body.home-page .why-home-copy > .stag {
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    margin:0 auto 20px;
    text-align:center;
  }
  body.home-page .why-home-side { display:none }
  body.home-page .why-home-head h2,
  body.home-page .why-home-copy > p {
    max-width:330px;
    margin-inline:auto;
    text-align:center;
  }
  body.home-page .capabilities-head {
    max-width:330px;
    margin-inline:auto;
    text-align:center;
  }
  body.home-page .capabilities-head h2 {
    max-width:100%;
    margin-inline:auto;
    text-align:center;
  }
  body.home-page .capabilities-head h2 span,
  body.home-page .capabilities-head h2 em {
    display:block;
  }
  body.home-page .why-home-copy > p { margin-top:1rem }
  body.home-page .why-home-grid {
    display:block;
    margin-top:48px;
    max-width:330px;
    margin-inline:auto;
  }
  body.home-page .why-home-item {
    width:100%;
    padding:24px 0 28px;
    border-top:1px solid rgba(17,17,17,.14);
    border-bottom:0;
  }
  body.home-page .why-home-item:last-child { padding-bottom:70px }
  .home-page .capabilities-head { grid-template-columns:1fr; align-items:start }
  .home-page .why-home-grid,
  .home-page .capabilities-grid { grid-template-columns:1fr }
  .home-page .home-paths { grid-template-columns:1fr; gap:12px; padding:12px }
  .home-page .why-home-grid { gap:0 }
  .home-page .why-home-head h2 { max-width:100%; font-size:clamp(2.75rem,13vw,3.8rem) }
  .home-page .why-phrase-wheel { height:22rem; min-height:350px; margin-bottom:1rem; perspective:900px }
  .home-page .why-wheel-phrase { max-width:100%; font-size:clamp(2.25rem,10.8vw,2.8rem); line-height:.94 }
  .home-page .why-wheel-phrase.is-prev { transform:translateY(calc(-50% - 9.5rem)) rotateX(-28deg) scale(.62) }
  .home-page .why-wheel-phrase.is-next { transform:translateY(calc(-50% + 9.5rem)) rotateX(28deg) scale(.62) }
  .home-page .why-wheel-phrase.is-back { transform:translateY(calc(-50% + 11rem)) rotateX(52deg) scale(.52) }
  .home-page .why-home-item { padding:1.5rem 0; border-bottom:1px solid rgba(17,17,17,.14) }
  .home-page .capability-item,
  .home-page .capability-item:nth-child(2n),
  .home-page .capability-item:nth-child(3n) {
    min-height:0; padding:1.35rem; border-right:none;
  }
  .home-page #capabilities { padding:3.25rem 0 }
  .home-page #capabilities::before {
    background:radial-gradient(circle at 50% 0%,rgba(255,255,255,.035),transparent 38%);
  }
  .home-page .capacity-gallery { margin-top:1.9rem }
  .home-page .capacity-gallery__viewport {
    overflow:hidden;
    mask-image:linear-gradient(to right,transparent 0,#000 7%,#000 93%,transparent 100%);
    -webkit-mask-image:linear-gradient(to right,transparent 0,#000 7%,#000 93%,transparent 100%);
  }
  .home-page .capacity-gallery__track,
  .home-page .capacity-gallery__group { gap:14px }
  .home-page .capacity-gallery__item {
    width:min(80vw,300px);
    aspect-ratio:1 / 1;
    min-height:0;
    max-height:none;
  }
  .home-page .capacity-gallery-all { font-size:.62rem }
  .capacity-lightbox__grid { grid-template-columns:repeat(2,minmax(0,1fr)) }
  .capacity-lightbox__viewer { padding:4rem 1rem }
  .capacity-lightbox__viewer-media { width:calc(100vw - 40px) }
  .capacity-lightbox__viewer-arrow { top:auto; bottom:1.25rem }
  .home-page .capabilities-grid {
    margin-top:2rem; border-left:1px solid rgba(255,255,255,.14);
  }
  .home-page .home-path {
    min-height:0;
    aspect-ratio:1 / 1;
    height:auto;
    max-height:none;
  }
  .home-page .home-path--crossfit img { object-position:68% center }
  .home-page .home-path--hyrox img { object-position:60% center }
  .home-page .home-path-copy { left:1rem; right:1rem; bottom:1.35rem }
  .home-page .home-path-kicker { max-width:100%; margin-bottom:.6rem; padding:6px 9px; font-size:.62rem; line-height:1.1 }
  .home-page .home-path h2 { font-size:clamp(3rem,15vw,4.6rem); line-height:.88 }
  .home-page .home-path p { max-width:30ch; font-size:.9rem; margin:.75rem 0 1rem }
  .home-page .home-path-cta { min-height:44px; padding:.78rem 1rem }
}
@media (max-width:430px) {
  .intro-hero-container { padding:6rem 0 6.7rem }
  .intro-hero-copy h1 { font-size:clamp(2.75rem,13vw,4rem) }
  .intro-hero-copy p { max-width:28ch; font-size:.95rem }
  .home-page .why-home-copy > p { margin-top:1rem }
  .home-page .why-phrase-wheel { height:20rem; min-height:320px }
  .home-page .why-wheel-phrase { font-size:clamp(2rem,10vw,2.45rem) }
  .home-page .home-path { aspect-ratio:1 / 1; height:auto; max-height:none }
  .home-page .home-path h2 { font-size:clamp(2.9rem,14.5vw,4.15rem) }
  .home-page .home-path p { max-width:28ch; font-size:.88rem }
}
@media (max-width:380px) {
  nav#nav .nav-logo-img,
  .cf-page nav#nav.cf-nav .nav-logo-img { max-width:min(180px,58vw) }
  nav#nav .nav-links,
  .hyrox-page nav#nav .nav-links,
  .cf-page nav#nav .nav-links { padding:.45rem 16px 1rem; max-height:calc(100svh - 5rem) }
  nav#nav .nav-links a,
  .hyrox-page nav#nav .nav-links a:not(.nav-cta),
  .cf-page nav#nav .nav-links a:not(.nav-cta),
  nav#nav.header--light .nav-links a,
  .cf-page nav#nav.cf-nav--light .nav-links a { font-size:.88rem }
  .intro-bottom-pill { max-width:calc(100vw - 1rem); min-height:52px }
  .intro-bottom-action { padding:.8rem 1rem; font-size:.64rem }
  .home-page .why-home-head h2 { font-size:clamp(2.65rem,12.5vw,3.45rem) }
}
@media (prefers-reduced-motion:reduce) {
  .home-page .capacity-gallery {
    overflow-x:auto;
    mask-image:none;
    -webkit-mask-image:none;
    scrollbar-width:thin;
  }
  .home-page .capacity-gallery__viewport {
    overflow-x:auto;
    mask-image:none;
    -webkit-mask-image:none;
    scrollbar-width:thin;
  }
  .home-page .capacity-gallery__track { transform:none!important }
  .home-page .capacity-gallery__group[aria-hidden="true"] { display:none }
  .home-page .why-phrase-wheel { height:auto; min-height:4.8rem; mask-image:none; -webkit-mask-image:none }
  .home-page .why-wheel-phrase { display:none; position:relative; top:auto; opacity:1; filter:none; transform:none; transition:none }
  .home-page .why-wheel-phrase:first-child { display:block }
}
:root {
  --red:#BC162F; --red2:#8a0f22;
  --color-lime:#C6FF00;
  --bg:#F5F3EE; --dark:#000;
  --line:#D8D5CE; --mid:#4A4845; --muted:#8A8880;
  --site-gutter:clamp(4rem, 5vw, 7rem);
  /* Cambia in 'Halenoir' quando hai il file */
  --display-font: "Bebas Neue", sans-serif;
  --body-font: "Barlow", sans-serif;
  --cta-radius: 999px;
}
*,*::before,*::after { margin:0; padding:0; box-sizing:border-box }
html { background:#000; color:#fff; font-family:var(--body-font); overflow-x:hidden; cursor:auto }
::selection { background:var(--red); color:#fff }
nav { position:fixed; top:0; left:0; right:0; z-index:300; display:flex; justify-content:space-between; align-items:center; padding:1.8rem 5vw; transition:background-color .28s ease, box-shadow .28s ease, border-color .28s ease, padding .4s ease }
nav.solid { background:rgba(0,0,0,.9); backdrop-filter:blur(16px); padding:1.1rem 5vw; border-bottom:1px solid #111 }
/* ── NAV LIGHT THEME (scrollY > 5 → bianca; scrollY ≤ 5 → nera) ── */
nav.header--light { background:#fff; box-shadow:0 1px 0 rgba(0,0,0,.09) }
nav.header--light.solid { background:#fff; backdrop-filter:none; border-bottom:1px solid rgba(0,0,0,.08); box-shadow:0 2px 16px rgba(0,0,0,.07) }
nav.header--light .nav-links a { color:rgba(0,0,0,.5) }
nav.header--light .nav-links a:hover { color:var(--red) }
nav.header--light .nav-cta { color:#fff!important }
nav.header--light .nav-logo-img { filter:brightness(0) }
.nav-logo { font-family:"Bebas Neue",sans-serif; font-size:1.15rem; letter-spacing:.22em; color:#fff; text-decoration:none }
.nav-logo em { color:var(--red); font-style:normal }
.nav-brand,
.logo,
.brand {
  display:inline-flex;
  align-items:center;
  line-height:0;
  flex-shrink:0;
}
.nav-logo-img {
  display:block;
  height:clamp(34px,2.55vw,46px);
  width:auto;
  max-width:260px;
  object-fit:contain;
  transition:filter .28s ease;
}
.nav-links { display:flex; gap:2.5rem; align-items:center }
.nav-links a { font:600 .6rem/1 var(--body-font); letter-spacing:.15em; text-transform:uppercase; color:rgba(255,255,255,.4); text-decoration:none; transition:color .2s }
.nav-links a:hover { color:var(--red) }
.nav-cta { background:var(--red)!important; color:#fff!important; padding:.6rem 1.4rem; border-radius:var(--cta-radius) }
.btn { display:inline-block; font:600 .72rem/1 var(--body-font); letter-spacing:.14em; text-transform:uppercase; text-decoration:none; padding:1.1rem 2.2rem; border-radius:var(--cta-radius); transition:all .25s; cursor:pointer }
.btn-red { background:var(--red); color:#fff }
.btn-red:hover { background:var(--red2); transform:translateY(-2px) }
.btn-outline-w { border:1px solid rgba(255,255,255,.3); color:#fff }
.btn-outline-w:hover { background:rgba(255,255,255,.07) }

/* INTRO */
#intro {
  position:relative;
  min-height:100svh;
  display:flex;
  align-items:flex-end;
  overflow:hidden;
  background:#000 url("../img/home-capacita-bg.JPG") center center / cover no-repeat;
}

/* BG video — autoplay, non scroll-driven */
#bg-video {
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  display:none;
  z-index:0;
}
#bg-overlay {
  position:absolute; inset:0; z-index:1;
  background:
    linear-gradient(90deg,rgba(0,0,0,.48),rgba(0,0,0,.38) 46%,rgba(0,0,0,.18)),
    linear-gradient(0deg,rgba(0,0,0,.58),rgba(0,0,0,.14) 55%,transparent);
}

.r { color:var(--red) }
.d { color:rgba(255,255,255,.28) }
.intro-hero-container {
  position:relative;
  z-index:2;
  width:calc(100% - clamp(40px,8vw,160px));
  max-width:1680px;
  margin-inline:auto;
  padding:clamp(8rem,16vh,12rem) 0 clamp(7rem,12vh,9rem);
  display:flex;
  justify-content:center;
}
.intro-hero-copy {
  max-width:min(1120px,100%);
  margin-inline:auto;
  text-align:center;
  opacity:0;
  transform:translateY(24px);
}
.intro-hero-copy h1 {
  max-width:min(100%,18ch);
  margin-inline:auto;
  color:#fff;
  text-align:center;
  font:400 clamp(3.625rem,7vw,7.375rem)/.88 var(--display-font);
  text-transform:uppercase;
}
.intro-hero-copy h1 .home-hero-line { display:block; color:#fff }
.intro-hero-copy h1 em { color:#fff; font-style:normal }
.intro-hero-copy p {
  max-width:55ch;
  margin:1.5rem auto 2rem;
  color:rgba(255,255,255,.76);
  text-align:center;
  font:400 clamp(1.0625rem,1.25vw,1.3rem)/1.55 var(--body-font);
}
.intro-hero-copy .btn { margin-inline:auto }
@media (min-width:768px) {
  .intro-hero-copy h1 .home-hero-line {
    white-space:nowrap;
  }
}
.intro-bottom-pill {
  position:fixed;
  left:50%;
  bottom:clamp(1.4rem, 3vh, 2.4rem);
  z-index:1200;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.85rem;
  max-width:calc(100vw - 2rem);
  min-height:64px;
  padding:.55rem .65rem .55rem .75rem;
  border-radius:999px;
  background:rgba(5,5,5,.82);
  border:1px solid rgba(255,255,255,.22);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  color:#fff;
  text-decoration:none;
  box-shadow:0 14px 44px rgba(0,0,0,.45);
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translateX(-50%);
  will-change:opacity,transform;
}
.home-page .intro-bottom-pill { display:none }
.intro-bottom-logo {
  width:44px;
  height:44px;
  object-fit:contain;
  display:block;
  flex-shrink:0;
  background:transparent;
}
.intro-bottom-action {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:46px;
  padding:1rem 1.45rem;
  border-radius:999px;
  background:var(--red);
  color:#fff;
  font:700 .8rem/1 var(--body-font);
  letter-spacing:.14em;
  text-transform:uppercase;
  white-space:nowrap;
  transition:background .2s ease;
}
.intro-bottom-pill:hover .intro-bottom-action { background:var(--red2) }

/* Loader */
#loader { position:fixed; inset:0; z-index:500; background:#000; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1.8rem; transition:opacity .9s }
#loader.done { opacity:0; pointer-events:none }
.lw2 { width:70px; opacity:.45; mix-blend-mode:lighten }
.lb-bg { width:180px; height:1px; background:#111 }
.lb { height:100%; background:var(--red); width:0%; transition:width .08s linear }
.ll { font:300 .58rem/1 var(--body-font); letter-spacing:.22em; color:#1a1a1a; text-transform:uppercase }

/* SITO */
#site { background:#000 }
#strip { display:flex; align-items:stretch; border-top:1px solid #111; border-bottom:1px solid #111 }
.si { flex:1; padding:1.5rem 2rem; border-right:1px solid #111 }
.si:last-child { border-right:none }
.sn { font-family:"Bebas Neue",sans-serif; font-size:2.2rem; color:var(--red); display:block; line-height:1 }
.sl2 { font:300 .65rem/1.5 var(--body-font); letter-spacing:.12em; text-transform:uppercase; color:#333; margin-top:.3rem }
#why {
  padding:clamp(5rem,8vw,9rem) var(--site-gutter);
  background:#F5F3EE;
  color:#111;
  overflow:hidden;
}
.stag { font:700 .68rem/1 var(--body-font); letter-spacing:.22em; text-transform:uppercase; color:var(--red); margin-bottom:1.4rem; display:flex; align-items:center; gap:.85rem }
.stag::before { content:""; display:block; width:34px; height:1px; background:var(--red) }
.wg { display:grid; grid-template-columns:minmax(0,1fr) minmax(360px,.86fr); gap:clamp(3rem,7vw,8rem); margin-top:3.4rem; align-items:start }
.why-copy { max-width:820px }
.wh { color:#111; max-width:8ch }
.wh em { color:var(--red); font-style:normal; display:block }
.why-lead { max-width:46rem; margin-top:2rem; font:300 clamp(1rem,1.25vw,1.18rem)/1.75 var(--body-font); color:#4A4845 }
.why-ticker {
  position:relative;
  height:clamp(460px,58vh,680px);
  min-height:0;
  align-self:center;
  overflow:hidden;
}
.why-ticker::before,
.why-ticker::after {
  content:"";
  position:absolute;
  left:0;
  right:0;
  height:26%;
  z-index:2;
  pointer-events:none;
}
.why-ticker::before {
  top:0;
  background:linear-gradient(to bottom,#F5F3EE 0%,rgba(245,243,238,.88) 26%,rgba(245,243,238,0) 100%);
}
.why-ticker::after {
  bottom:0;
  background:linear-gradient(to top,#F5F3EE 0%,rgba(245,243,238,.88) 26%,rgba(245,243,238,0) 100%);
}
.why-ticker-mask {
  height:100%;
  overflow:hidden;
  mask-image:linear-gradient(to bottom,transparent 0%,#000 12%,#000 88%,transparent 100%);
  -webkit-mask-image:linear-gradient(to bottom,transparent 0%,#000 12%,#000 88%,transparent 100%);
}
.why-ticker-track {
  display:flex;
  flex-direction:column;
  --why-loop-distance:50%;
  animation:whyTicker 6.8s linear infinite;
  will-change:transform;
}
.why-ticker-set {
  display:flex;
  flex-direction:column;
  gap:.85rem;
  padding:.6rem 0;
}
.why-pill {
  width:min(100%,680px);
  min-height:96px;
  padding:1rem 1.25rem;
  border:1px solid rgba(17,17,17,.12);
  border-radius:32px;
  background:rgba(255,255,255,.48);
  box-shadow:0 18px 44px rgba(0,0,0,.08);
  display:flex;
  flex-direction:column;
  justify-content:center;
  transform-origin:center center;
  will-change:transform,opacity;
}
.why-pill-problem {
  position:relative;
  padding-left:2rem;
  font:700 clamp(.82rem,.85vw,1rem)/1 var(--body-font);
  letter-spacing:.12em;
  text-transform:uppercase;
  color:rgba(17,17,17,.46);
  line-height:1;
}
.why-pill-accent {
  color:#111;
}
.why-pill-problem::before {
  content:"";
  position:absolute;
  left:0;
  top:50%;
  width:22px;
  height:2px;
  background:rgba(17,17,17,.28);
  transform:translateY(-50%);
}
.why-pill-solution {
  margin-top:.55rem;
  font-family:var(--body-font);
  font-size:clamp(1.55rem,2.4vw,2.8rem);
  line-height:1;
  color:#111;
  font-weight:700;
  letter-spacing:-.01em;
  text-transform:none;
  white-space:nowrap;
}
@keyframes whyTicker {
  from { transform:translateY(0) }
  to { transform:translateY(calc(-1 * var(--why-loop-distance))) }
}
@media (prefers-reduced-motion: reduce) {
  .why-ticker {
    height:auto;
    min-height:0;
    overflow:visible;
  }
  .why-ticker::before,
  .why-ticker::after {
    content:none;
  }
  .why-ticker-track {
    animation:none;
  }
  .why-ticker-set[aria-hidden="true"] {
    display:none;
  }
}
.wcs { display:flex; flex-direction:column; border-bottom:1px solid rgba(17,17,17,.14) }
.wc { padding:2.2rem 0; border-top:1px solid rgba(17,17,17,.14); display:grid; grid-template-columns:4rem 1fr; gap:1.4rem; transition:padding .3s,background .3s }
.wc:hover { padding-left:.8rem; background:rgba(255,255,255,.28) }
.wn { font:700 .72rem/1 var(--body-font); letter-spacing:.16em; color:var(--red); margin-top:.25rem }
.wc h4 { font:700 clamp(1.15rem,1.6vw,1.55rem)/1.12 var(--body-font); color:#171717; letter-spacing:.04em; text-transform:uppercase; margin-bottom:.7rem }
.wc p { font:300 clamp(.95rem,1.05vw,1.08rem)/1.75 var(--body-font); color:#4A4845; max-width:42rem }
.exercise-cards-section {
  width:100%;
  overflow-x:hidden;
  padding:6vw var(--site-gutter);
  background:linear-gradient(180deg,var(--bg) 0%,#000 100%);
}
.exercise-cards-shell {
  width:min(92vw,1600px);
  max-width:100%;
  margin-inline:auto;
  transform:none;
  box-sizing:border-box;
  min-height:76vh;
  border-radius:44px;
  padding:clamp(2rem,5vw,5.5rem);
  background:
    radial-gradient(circle at 84% 12%,color-mix(in srgb,var(--color-lime) 12%,transparent),transparent 28%),
    radial-gradient(circle at 10% 92%,rgba(188,22,47,.18),transparent 32%),
    linear-gradient(135deg,#0b0b0b 0%,#151515 54%,#070707 100%);
  border:1px solid rgba(255,255,255,.1);
  box-shadow:0 28px 90px rgba(0,0,0,.42);
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  gap:clamp(3rem,6vw,7rem);
  align-items:center;
  overflow:hidden;
}
.exercise-cards-copy {
  max-width:100%;
  min-width:0;
  box-sizing:border-box;
  margin-left:0;
  margin-right:0;
  transform:none;
}
.section-kicker {
  display:inline-flex;
  align-items:center;
  gap:.7rem;
  font:600 .68rem/1 var(--body-font);
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--red);
  margin-bottom:1.4rem;
}
.section-kicker::before {
  content:"";
  width:28px;
  height:1px;
  background:var(--red);
}
.exercise-cards-copy h2 {
  color:#fff;
  max-width:100%;
}
.exercise-cards-copy p {
  max-width:34rem;
  margin-top:2rem;
  font:300 clamp(.95rem,1.25vw,1.1rem)/1.75 var(--body-font);
  color:rgba(255,255,255,.56);
}
.exercise-card-stack {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1rem;
  align-items:stretch;
  justify-items:stretch;
  width:100%;
  max-width:100%;
  min-width:0;
  box-sizing:border-box;
  margin-left:0;
  margin-right:0;
  transform:none;
  overflow:visible;
  perspective:1200px;
}
.exercise-card {
  position:relative;
  box-sizing:border-box;
  justify-self:stretch;
  width:100%;
  max-width:100%;
  min-width:0;
  margin-left:0;
  margin-right:0;
  min-height:210px;
  padding:1.5rem;
  border-radius:28px;
  border:1px solid rgba(255,255,255,.12);
  background:linear-gradient(145deg,rgba(255,255,255,.09),rgba(255,255,255,.035));
  box-shadow:0 18px 44px rgba(0,0,0,.28);
  overflow:hidden;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  transform:translateZ(0);
  will-change:transform,opacity;
}
.exercise-card-lg,
.exercise-card-wide { grid-column:span 2 }
.exercise-card-lg { min-height:250px }
.exercise-card-lime {
  background:linear-gradient(145deg,color-mix(in srgb,var(--color-lime) 18%,transparent),rgba(255,255,255,.04));
  border-color:color-mix(in srgb,var(--color-lime) 28%,transparent);
}
.exercise-card-red {
  background:linear-gradient(145deg,rgba(188,22,47,.26),rgba(255,255,255,.04));
  border-color:rgba(188,22,47,.34);
}
.exercise-card-num {
  font:600 .62rem/1 var(--body-font);
  letter-spacing:.18em;
  color:rgba(255,255,255,.4);
}
.exercise-card h3 {
  position:relative;
  z-index:1;
  margin-bottom:.75rem;
  color:#fff;
}
.exercise-card p {
  position:relative;
  z-index:1;
  max-width:28rem;
  font:300 .95rem/1.55 var(--body-font);
  color:rgba(255,255,255,.62);
}
.exercise-card-mark {
  position:absolute;
  right:1rem;
  bottom:-.25rem;
  font-family:"Bebas Neue",sans-serif;
  font-size:8rem;
  line-height:.8;
  color:rgba(255,255,255,.055);
  pointer-events:none;
}
.equipment-stack-section {
  position:relative;
  background:
    linear-gradient(
      to bottom,
      #F5F3EE 0%,
      #F5F3EE 18%,
      #d8d5ce 34%,
      #111 58%,
      #000 100%
    );
  --equipment-card-width:calc(100vw - 10vw);
}
.equipment-master-stack {
  background:
    linear-gradient(
      to bottom,
      #F5F3EE 0%,
      #F5F3EE 18%,
      #d8d5ce 34%,
      #111 58%,
      #000 100%
    );
}
.equipment-stack-shell {
  position:sticky;
  top:0;
  width:100%;
  height:100svh;
  margin:0 auto;
  display:grid;
  place-items:center;
  overflow:hidden;
}
.eq-scene,
.exercise-main-card {
  position:absolute;
  left:0;
  right:0;
  width:var(--equipment-card-width);
  height:min(86svh,860px);
  min-height:620px;
  margin:0 auto;
  border-radius:40px;
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 28px 90px rgba(0,0,0,.5);
  overflow:hidden;
  background:#070707;
  transform-origin:center center;
  will-change:transform,opacity,filter;
}
.exercise-main-card.exercise-cards-section {
  padding:0;
  background:linear-gradient(135deg,var(--bg) 0%,#d9d6cf 24%,#121212 62%,#000 100%);
}
.exercise-main-card .exercise-cards-shell {
  width:100%;
  max-width:100%;
  min-width:0;
  height:100%;
  min-height:0;
  margin:0;
  box-sizing:border-box;
  border-radius:inherit;
  padding:clamp(1.7rem,3.6vw,4.2rem);
}
.exercise-main-card .exercise-card-stack {
  width:100%;
  max-width:100%;
  min-width:0;
  gap:.8rem;
}
.exercise-main-card .exercise-card {
  min-height:clamp(150px,17vh,190px);
  padding:1.25rem;
}
.exercise-main-card .exercise-card-lg {
  min-height:clamp(170px,19vh,210px);
}
.eq-scene + .eq-scene {
  margin-top:0;
}
.eq-scene.card-rower {
  background:
    radial-gradient(circle at 78% 28%,rgba(188,22,47,.24),transparent 34%),
    linear-gradient(145deg,#101010,#030303);
}
.eq-scene.card-skierg {
  background:
    radial-gradient(circle at 78% 26%,color-mix(in srgb,var(--color-lime) 16%,transparent),transparent 32%),
    linear-gradient(145deg,#101010,#030303);
}
.eq-pin { position:relative; height:100%; overflow:hidden; background:transparent }
canvas.eq-canvas { position:absolute; inset:0; width:100%; height:100% }
.eq-ov { position:absolute; inset:0; z-index:2; background:linear-gradient(90deg,rgba(0,0,0,.9) 0%,rgba(0,0,0,.52) 42%,rgba(0,0,0,.08) 72%,rgba(0,0,0,.32) 100%); pointer-events:none }
.eq-pa { position:absolute; z-index:3; bottom:clamp(2rem,6vh,4rem); left:clamp(1.4rem,4vw,4.5rem); will-change:opacity,transform; max-width:52rem }
.eq-nl { font:600 .65rem/1 var(--body-font); letter-spacing:.28em; text-transform:uppercase; color:var(--red); margin-bottom:1rem; display:block }
.eq-bt { font-family:"Bebas Neue",sans-serif; font-size:clamp(5rem,11vw,14rem); line-height:.82; color:#fff; text-shadow:0 4px 30px rgba(0,0,0,.9) }
.eq-bt em { color:var(--red); font-style:normal }
.eq-pb,.eq-pc { position:absolute; z-index:3; bottom:clamp(2rem,6vh,4rem); left:clamp(1.4rem,4vw,4.5rem); opacity:0; transform:translateY(24px); will-change:opacity,transform; max-width:min(620px,48vw) }
.pl { font:600 .62rem/1 var(--body-font); letter-spacing:.28em; text-transform:uppercase; color:var(--red); margin-bottom:1rem; display:block }
.ptt { font-family:"Bebas Neue",sans-serif; font-size:clamp(3rem,6vw,7rem); line-height:.84; color:#fff; margin-bottom:1.4rem; text-shadow:0 2px 20px rgba(0,0,0,.8) }
.mg { display:flex; gap:.8rem; flex-wrap:wrap; margin-top:.5rem }
.mi { display:flex; flex-direction:column; gap:.25rem; padding:.8rem 1.2rem; background:rgba(0,0,0,.55); border-left:2px solid var(--red) }
.mn { font:600 .85rem/1 var(--body-font); text-transform:uppercase; color:#fff; letter-spacing:.08em }
.mp { font:300 .7rem/1 var(--body-font); color:rgba(255,255,255,.6); margin-top:.2rem }
.bl { display:flex; flex-direction:column; gap:.6rem; margin-top:1rem }
.bi { display:flex; align-items:flex-start; gap:.9rem; font:300 .95rem/1.55 var(--body-font); color:rgba(255,255,255,.85); background:rgba(0,0,0,.5); padding:.7rem 1rem }
.bi::before { content:"→"; color:var(--red); font:600 .9rem/1.55 var(--body-font); flex-shrink:0 }
.bc { margin-top:2rem }
.eq-hint { position:absolute; bottom:2.5rem; right:5vw; z-index:4; display:flex; flex-direction:column; align-items:center; gap:.5rem }
.eq-hint-txt { font:300 .58rem/1 var(--body-font); letter-spacing:.22em; text-transform:uppercase; color:rgba(255,255,255,.35) }
.eq-hint-line { width:1px; height:40px; background:linear-gradient(to bottom,rgba(188,22,47,.7),transparent); animation:pulse 2s infinite }
.eq-progress { position:absolute; bottom:0; left:0; z-index:4; height:2px; background:var(--red); width:0% }
.eq-loader { position:absolute; inset:0; z-index:10; background:#000; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1.5rem; transition:opacity .8s }
.eq-loader.done { opacity:0; pointer-events:none }
.lbg { width:220px; height:2px; background:#111 }
.lbb { height:100%; background:var(--red); width:0%; transition:width .08s linear }
.lt { font:300 .65rem/1 var(--body-font); letter-spacing:.22em; text-transform:uppercase; color:#222 }
#hyrox {
  position:relative;
  min-height:100vh;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(320px,.78fr);
  gap:clamp(2.5rem,6vw,7rem);
  align-items:center;
  margin:0;
  padding:clamp(5rem,8vw,9rem) var(--site-gutter);
  border-top:none;
  outline:none;
  box-shadow:none;
  background:
    radial-gradient(circle at 78% 18%,color-mix(in srgb,var(--color-lime) 18%,transparent),transparent 26%),
    linear-gradient(
      to bottom,
      #000000 0%,
      #0a0a0a 18%,
      #3b3b3b 45%,
      #9b9b95 72%,
      #f2f1eb 100%
    );
  overflow:hidden;
}
#hyrox::before {
  content:none;
}
#hyrox::after {
  content:none;
}
.hl { position:relative; z-index:1; display:flex; flex-direction:column; justify-content:center; padding:0; max-width:780px }
#hyrox .hl .btn-red {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  align-self:flex-start;
  width:fit-content;
  min-width:0;
  padding:.95rem 1.55rem;
  border-radius:var(--cta-radius);
  border:none;
  background:var(--color-lime);
  color:#000;
  font-weight:700;
  letter-spacing:.12em;
  box-shadow:0 12px 34px rgba(0,0,0,.25);
}
#hyrox .hl .btn-red:hover {
  background:#ecff4d;
  color:#000;
  transform:translateY(-2px);
}
.hb { display:inline-flex; align-items:center; background:color-mix(in srgb,var(--color-lime) 13%,transparent); border:1px solid color-mix(in srgb,var(--color-lime) 48%,transparent); padding:.62rem 1.1rem; font:600 .62rem/1 var(--body-font); letter-spacing:.18em; text-transform:uppercase; color:var(--color-lime); margin-bottom:2rem; align-self:flex-start }
.hh { color:#fff; margin-bottom:2.2rem; text-shadow:0 18px 60px rgba(0,0,0,.5) }
.hyrox-word { white-space:nowrap }
.hyrox-word span,
.hh em { color:var(--color-lime); font-style:normal }
.hs { font:400 clamp(1rem,1.2vw,1.18rem)/1.8 var(--body-font); color:rgba(255,255,255,.88); max-width:46ch; margin-bottom:2.8rem }
.hr { position:relative; z-index:1; display:grid; grid-template-columns:1fr 1fr; gap:1rem; padding:0; border-left:none }
.hst {
  min-height:210px;
  padding:1.45rem;
  border:1px solid rgba(255,255,255,.14);
  border-radius:26px;
  background:linear-gradient(145deg,rgba(0,0,0,.78),rgba(0,0,0,.52));
  box-shadow:0 18px 44px rgba(0,0,0,.34);
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  will-change:transform,opacity;
  transition:transform .25s ease,border-color .25s ease,background .25s ease;
}
.hst:hover {
  transform:translateY(-4px);
  border-color:color-mix(in srgb,var(--color-lime) 48%,transparent);
  background:linear-gradient(145deg,rgba(0,0,0,.86),color-mix(in srgb,var(--color-lime) 8%,transparent));
}
.hsn { font-family:"Bebas Neue",sans-serif; font-size:clamp(3.8rem,5.5vw,6.8rem); color:var(--color-lime); line-height:.82; display:block }
.hsl { font:400 .9rem/1.55 var(--body-font); color:rgba(255,255,255,.85); margin-top:1.2rem }
/* ── HYROX SECTION UPGRADES ── */
.hs-1 { margin-bottom:1.2rem!important }
.h-cta-wrap { display:flex; flex-direction:column; align-items:flex-start; gap:.75rem; margin-bottom:1.6rem }
.h-microcopy {
  font:400 .68rem/1 var(--body-font);
  letter-spacing:.06em;
  text-transform:uppercase;
  color:rgba(255,255,255,.92);
  background:rgba(0,0,0,.52);
  border:1px solid rgba(255,255,255,.14);
  padding:.52rem 1rem;
  border-radius:999px;
  margin:0;
}
.hst--official { border-color:color-mix(in srgb,var(--color-lime) 55%,transparent)!important; background:linear-gradient(145deg,rgba(0,0,0,.82),color-mix(in srgb,var(--color-lime) 8%,transparent))!important }
.hst--official:hover { border-color:color-mix(in srgb,var(--color-lime) 80%,transparent)!important }
.h-tags { display:flex; flex-wrap:wrap; gap:.42rem; margin:0 }
.h-chip {
  display:inline-flex;
  align-items:center;
  font:600 .65rem/1 var(--body-font);
  letter-spacing:.07em;
  text-transform:uppercase;
  color:rgba(255,255,255,.9);
  background:rgba(0,0,0,.48);
  border:1px solid rgba(255,255,255,.18);
  padding:.42rem .85rem;
  border-radius:999px;
}
/* ── HYROX STATIONS INTRO PHRASE ── */
.h-stations-intro {
  font:400 .7rem/1.5 var(--body-font);
  letter-spacing:.06em;
  text-transform:uppercase;
  color:rgba(255,255,255,.72);
  margin:0 0 .65rem;
}
/* ── COME FUNZIONA HYROX SECTION ── */
#hyrox-stations {
  position:relative;
  z-index:1;
  /* margin-top:-2px chiude l'unico possibile gap subpixel.
     Il gradiente parte dal grigio-cream di #hyrox (corrispondenza colore esatta)
     e sfuma progressivamente a nero — nessuna riga di separazione. */
  margin-top:-2px;
  background:linear-gradient(
    180deg,
    #ededea 0%,
    #c8c8c0 10%,
    #9b9b94 22%,
    #5f5f5a 38%,
    #242424 58%,
    #000000 78%,
    #000000 100%
  );
  padding:clamp(4rem,8vw,10rem) var(--site-gutter) clamp(4rem,7vw,8rem);
  border-top:none;
}
.hws-head {
  position:relative;
  z-index:1;
  max-width:680px;
  margin-bottom:2.8rem;
}
.hws-title {
  font-family:"Bebas Neue",sans-serif;
  font-size:clamp(3.2rem,6.5vw,7.5rem);
  line-height:.86;
  color:#fff;
  margin:1rem 0 .85rem;
  text-shadow:0 2px 12px rgba(0,0,0,.85), 0 8px 32px rgba(0,0,0,.6);
}
#hyrox-stations .section-kicker {
  font-size:.75rem;
  font-weight:700;
  color:var(--red);
  letter-spacing:.18em;
}
#hyrox-stations .section-kicker::before {
  width:22px;
  background:var(--red);
}
.hws-claim {
  font:400 clamp(1.05rem,1.4vw,1.3rem)/1.55 var(--body-font);
  color:rgba(255,255,255,.72);
  margin:0 0 1.4rem;
}
.hws-intro {
  margin-top:0;
  font:400 clamp(1rem,1.15vw,1.1rem)/1.75 var(--body-font);
  color:rgba(255,255,255,.82);
}
.hws-grid {
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:1rem;
}
.hws-card {
  padding:1.6rem 1.4rem;
  background:linear-gradient(145deg,rgba(255,255,255,.045),rgba(255,255,255,.01));
  border:1px solid rgba(255,255,255,.1);
  border-radius:18px;
  transition:border-color .25s,background .25s,transform .25s;
}
.hws-card:hover {
  border-color:color-mix(in srgb,var(--color-lime) 45%,transparent);
  background:linear-gradient(145deg,color-mix(in srgb,var(--color-lime) 6%,transparent),rgba(0,0,0,.5));
  transform:translateY(-3px);
}
.hws-num {
  display:block;
  font:600 .6rem/1 var(--body-font);
  letter-spacing:.18em;
  color:color-mix(in srgb,var(--color-lime) 72%,transparent);
  margin-bottom:.85rem;
}
.hws-name {
  font-family:"Bebas Neue",sans-serif;
  font-size:clamp(1.6rem,2.2vw,2.4rem);
  line-height:.9;
  color:#fff;
  margin-bottom:.7rem;
}
.hws-desc {
  font:400 .88rem/1.55 var(--body-font);
  color:rgba(255,255,255,.75);
}
#process { padding:clamp(6.25rem,7vw,7.5rem) 0; background:var(--bg) }
.process-container {
  width:calc(100% - clamp(40px,8vw,160px));
  max-width:1680px;
  margin-inline:auto;
}
.process-head {
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:1.2rem;
  text-align:center;
  margin-bottom:clamp(2.5rem,4vw,4rem);
}
.process-head .shh { color:#111; margin-inline:auto; text-align:center }
@media (min-width:768px) {
  .home-page .process-head .shh {
    display:flex;
    align-items:baseline;
    justify-content:center;
    gap:.18em;
    white-space:nowrap;
    font-size:clamp(2.9rem,4.8vw,5.25rem);
  }
  .home-page .process-head .shh br {
    display:none;
  }
  .home-page .process-head .shh em {
    display:inline;
  }
}
.process-badge {
  display:inline-flex;
  align-items:center;
  min-height:38px;
  padding:.7rem 1rem;
  color:#111;
  border:1px solid rgba(17,17,17,.55);
  border-radius:999px;
  background:rgba(255,255,255,.5);
  font:600 .72rem/1 var(--body-font);
  letter-spacing:.08em;
  text-transform:uppercase;
  white-space:nowrap;
}
.sh { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:5rem }
.shh { color:inherit }
.shh em { color:var(--red); font-style:normal }
.shn { font:300 .9rem/1.65 var(--body-font); color:var(--muted); max-width:28ch; text-align:right }
#process .steps {
  position:relative;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(1rem,2vw,1.75rem);
}
#process .steps::before {
  content:"";
  position:absolute;
  z-index:0;
  top:3.9rem;
  left:8%;
  right:8%;
  height:2px;
  background:linear-gradient(90deg,transparent,rgba(17,17,17,.22) 12%,rgba(17,17,17,.22) 88%,transparent);
  opacity:1;
}
#process .step {
  position:relative;
  z-index:1;
  min-height:330px;
  padding:clamp(1.5rem,2.4vw,2.5rem);
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  border:1px solid #d6d2ca;
  border-radius:22px;
  background:rgba(255,255,255,.72);
  box-shadow:0 18px 40px rgba(20,18,14,.05);
}
#process .stn {
  display:inline-grid;
  place-items:center;
  min-width:74px;
  min-height:56px;
  margin-bottom:clamp(2rem,3vw,3rem);
  padding:.25rem .65rem;
  color:#111;
  background:var(--bg);
  border:1px solid rgba(17,17,17,.18);
  font-family:"Anton",sans-serif;
  font-size:clamp(2.75rem,4vw,4.25rem);
  line-height:1;
}
#process .sth { margin-bottom:1rem; color:#111 }
#process .stp {
  max-width:32ch;
  color:#4a4845;
  font:400 clamp(1rem,1.1vw,1.1rem)/1.65 var(--body-font);
}
#process .stl {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.6rem;
  min-height:48px;
  margin-top:auto;
  padding:.9rem 1.15rem;
  color:#fff;
  background:#111;
  border:1px solid #111;
  border-radius:999px;
  font:600 .72rem/1 var(--body-font);
  letter-spacing:.06em;
  text-transform:uppercase;
  text-decoration:none;
  transition:background .2s,transform .2s;
}
.stl .arr { transition:transform .2s }
#process .stl:hover { color:#111; background:transparent; transform:translateY(-2px) }
#process .stl:hover .arr { transform:translateX(4px) }
#testi { padding:8vw 5vw; background:#0a0a0a; border-top:1px solid #111 }
#testi .sh { display:block; margin:0 auto clamp(2rem,3vw,3rem); text-align:center }
#testi .shh { color:#fff; text-align:center }
#testi .shh em { color:#e8e5dc }
#testi .shh { white-space:nowrap; font-size:clamp(3rem,5vw,5.25rem) }
#testi .tw {
  color:#fff;
  font-size:clamp(.9rem,1vw,1.05rem);
  line-height:1.15;
  letter-spacing:.16em;
}
#testi .tr {
  max-width:44ch;
  margin:.8rem auto 0;
  color:#d0d0d0;
  font-size:clamp(.92rem,1vw,1.02rem);
  line-height:1.65;
  text-align:center;
}
/* ── VIDEO TESTIMONIALS ── */
.testi-video-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1.5rem;
  margin-top:4rem;
}
.testi-video-card {
  display:flex;
  flex-direction:column;
  gap:1rem;
  background:#111;
  border-radius:20px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.07);
  transition:border-color .25s;
}
.testi-video-card:hover { border-color:rgba(255,255,255,.18) }
.testi-video-wrap {
  position:relative;
  width:100%;
  aspect-ratio:16 / 9;
  background:#000;
  overflow:hidden;
}
.testi-video {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
}
.testi-video-overlay {
  position:absolute;
  inset:0;
  background:linear-gradient(to top,rgba(0,0,0,.55) 0%,transparent 40%);
  pointer-events:none;
}
.testi-video-info {
  padding:1.25rem 1.35rem 1.45rem;
  text-align:center;
}
.tw { font:600 .7rem/1 var(--body-font); letter-spacing:.14em; text-transform:uppercase; color:#fff }
.tr { font:300 .68rem/1.45 var(--body-font); color:var(--red); margin-top:.35rem }
.site-footer { position:relative; z-index:20; margin-bottom:0; padding:clamp(3.25rem,4.5vw,4.75rem) 5vw 1.4rem; color:#fff; background:#000; border-top:1px solid #242424; box-shadow:0 100vh 0 100vh #000 }
.site-footer__grid { display:grid; grid-template-columns:1.35fr .8fr 1fr 1.15fr; gap:clamp(56px,7vw,130px); align-items:center }
.site-footer h2 { margin-bottom:1.05rem; color:#fff; font:400 1.55rem/.95 var(--display-font); letter-spacing:.02em }
.site-footer p,.site-footer address { color:#a0a0a0; font:400 .95rem/1.65 var(--body-font); font-style:normal }
.site-footer a { color:#b5b5b5; text-decoration:none; transition:color .2s }
.site-footer a:hover { color:var(--red) }
.site-footer__brand,
.footer-brand { position:relative; min-height:360px; max-width:460px; overflow:visible; padding-top:0 }
.footer-brand::before { content:""; position:absolute; left:42px; top:-75px; width:750px; height:520px; background-image:url("../img/wolf-logo.png"); background-repeat:no-repeat; background-size:contain; background-position:left center; opacity:.28; z-index:0; pointer-events:none; transform:scale(1.4); transform-origin:center }
.site-footer__brand-content,
.footer-brand-content { position:relative; z-index:2; max-width:390px; padding-top:92px }
.site-footer__brand p,
.footer-brand-text { margin:0 0 14px; color:rgba(255,255,255,.96); font-size:18px; line-height:1.65 }
.site-footer__badges,
.footer-brand-meta { display:flex; flex-direction:column; align-items:flex-start; gap:.2rem; margin-top:0; color:rgba(255,255,255,.98); font:800 16px/1.7 var(--body-font); letter-spacing:.12em; text-transform:uppercase }
.site-footer__nav { position:static; display:flex; flex-direction:column; align-items:flex-start; gap:.65rem; padding:0; background:none; border:0 }
.site-footer__nav a,.site-footer__contacts a { font:600 .9rem/1.45 var(--body-font); letter-spacing:.08em; text-transform:uppercase }
.site-footer__contacts { display:flex; flex-direction:column; align-items:flex-start; gap:.75rem }
.site-footer__contacts address { margin-bottom:.35rem }
.site-footer__cta { max-width:23rem; justify-self:start }
.site-footer__cta p { max-width:34ch; margin-bottom:1rem; font-size:.95rem; line-height:1.65 }
.site-footer__cta .btn { width:auto; max-width:100%; padding-inline:1.5rem; color:#111; background:#fff; text-align:center; font-size:.82rem }
.site-footer__legal { display:flex; justify-content:space-between; align-items:center; gap:2rem; margin-top:clamp(1rem,1.8vw,1.8rem); padding-top:1rem; border-top:1px solid #303030; color:#8a8a8a; font:600 .72rem/1.4 var(--body-font); letter-spacing:.08em; text-transform:uppercase }
.site-footer__legal div { display:flex; gap:1.5rem }
.site-footer__legal a { color:#8a8a8a }
.intro-bottom-pill.is-footer-hidden { opacity:0; visibility:hidden; pointer-events:none }
.intro-bottom-pill.is-footer-hidden { transform:translateX(-50%) translateY(18px) }
.rUp { opacity:0; transform:translateY(28px); transition:opacity .85s cubic-bezier(.16,1,.3,1),transform .85s cubic-bezier(.16,1,.3,1) }
.rL  { opacity:0; transform:translateX(-36px); transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1) }
.rUp.on,.rL.on { opacity:1; transform:none }
.d1 { transition-delay:.1s!important } .d2 { transition-delay:.22s!important } .d3 { transition-delay:.36s!important } .d4 { transition-delay:.5s!important }
@keyframes up { from{opacity:0;transform:translateY(28px)} to{opacity:1;transform:none} }
@keyframes fadein { from{opacity:0} to{opacity:1} }
@keyframes pulse { 0%,100%{opacity:.4} 50%{opacity:1} }
::-webkit-scrollbar { width:3px }
::-webkit-scrollbar-track { background:#000 }
::-webkit-scrollbar-thumb { background:var(--red) }

@media (max-width: 767px) {
  html, body { max-width:100%; overflow-x:hidden; cursor:auto }
  body.home-page .rUp,
  body.home-page .rL {
    opacity:1;
    transform:none;
  }
  body.home-page #disciplines,
  body.home-page #why,
  body.home-page #capabilities,
  body.home-page #process,
  body.home-page #testi {
    height:auto;
    min-height:0;
    overflow:visible;
  }
  body.home-page .why-home-head,
  body.home-page .capabilities-head,
  body.home-page .process-head,
  body.home-page #testi .sh,
  body.home-page .intro-hero-copy {
    text-align:center;
    margin-inline:auto;
  }
  body.home-page .why-home-head,
  body.home-page .capabilities-head,
  body.home-page .process-head,
  body.home-page #testi .sh,
  body.home-page .intro-hero-copy {
    display:flex;
    flex-direction:column;
    align-items:center;
  }
  body.home-page .why-home-head h2,
  body.home-page .capabilities-head h2,
  body.home-page .process-head h2,
  body.home-page #testi .shh,
  body.home-page .intro-hero-copy h1,
  body.home-page .intro-hero-copy p {
    text-align:center;
    margin-inline:auto;
  }

  nav {
    align-items:flex-start;
    gap:1rem;
    padding:1rem 5vw;
  }
  nav.solid { padding:.85rem 5vw }
  .nav-logo {
    flex:0 0 auto;
    font-size:1rem;
    line-height:1.1;
  }
  .nav-logo-img {
    height:clamp(27px,6.4vw,37px);
    width:auto;
    max-width:180px;
  }
  .nav-links {
    flex:1;
    justify-content:flex-end;
    flex-wrap:wrap;
    gap:.55rem .8rem;
    min-width:0;
  }
  .nav-links a {
    font-size:.55rem;
    letter-spacing:.1em;
    white-space:nowrap;
  }
  .nav-cta { padding:.5rem .75rem }

  .btn {
    width:100%;
    max-width:320px;
    text-align:center;
    padding:1rem 1.2rem;
    cursor:auto;
  }

  #intro { min-height:clamp(620px,82svh,720px); height:auto; align-items:flex-start }
  #intro { background-position:center 36% }
  .intro-hero-container {
    position:absolute;
    left:20px;
    right:20px;
    bottom:48px;
    width:auto;
    padding:0;
    min-height:0;
    z-index:3;
  }
  .intro-hero-copy {
    max-width:100%;
    text-align:center;
    margin-inline:auto;
  }
  .intro-hero-copy h1 { font-size:clamp(2.7rem,11.8vw,3.9rem); line-height:.9; max-width:12ch; margin-bottom:0 }
  .intro-hero-copy h1 span { display:block }
  .intro-hero-copy h1 em { display:inline }
  .intro-hero-copy h1 span { color:#fff }
  .intro-hero-copy h1 em { color:#fff; font-style:normal }
  .intro-hero-copy p { max-width:30ch; margin:1.1rem auto 1.35rem }
  .intro-hero-copy .btn { width:auto; max-width:none; margin-inline:auto }
  .intro-bottom-pill { display:none }

  #strip {
    display:grid;
    grid-template-columns:1fr;
  }
  .si {
    padding:1.25rem 5vw;
    border-right:none;
    border-bottom:1px solid #111;
  }
  .si:last-child { border-bottom:none }

  #why, #process, #testi { padding:4.5rem 5vw }
  .wg,
  .exercise-cards-shell,
  #hyrox,
  .steps {
    grid-template-columns:1fr;
  }
  .testi-video-grid {
    display:flex;
    flex-wrap:nowrap;
    gap:16px;
    overflow-x:auto;
    overflow-y:hidden;
    scroll-snap-type:x mandatory;
    overscroll-behavior-inline:contain;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    padding-inline:20px;
    margin:2.5rem -5vw 0;
  }
  .testi-video-grid::-webkit-scrollbar { display:none }
  .testi-video-card {
    flex:0 0 min(86vw,380px);
    max-width:380px;
    scroll-snap-align:center;
    scroll-snap-stop:always;
  }
  .testi-video-info {
    padding:1.15rem 1rem 1.35rem;
  }
  #testi .tw {
    font-size:1rem;
  }
  #testi .tr {
    max-width:34ch;
    font-size:.95rem;
    line-height:1.7;
  }
  .testi-video-wrap { aspect-ratio:16 / 9 }
  .wg { gap:2.5rem; margin-top:2rem }
  .why-lead { margin-top:1.3rem; font-size:.95rem }
  .why-ticker {
    height:auto;
    min-height:0;
    width:100%;
    overflow:visible;
  }
  .why-ticker-track {
    animation:none;
  }
  .why-ticker-mask {
    height:auto;
    overflow:visible;
    mask-image:none;
    -webkit-mask-image:none;
  }
  .why-ticker::before,
  .why-ticker::after {
    content:none;
  }
  .why-ticker-set {
    gap:.7rem;
  }
  .why-ticker-set[aria-hidden="true"] { display:none }
  .why-pill {
    min-height:86px;
    border-radius:24px;
    padding:.85rem 1rem;
  }
  .why-pill-solution {
    font-size:clamp(1.35rem,7.4vw,2.25rem);
    white-space:normal;
  }
  .why-pill-problem {
    font-size:.62rem;
    letter-spacing:.14em;
  }
  .wc {
    grid-template-columns:2.2rem 1fr;
    gap:1rem;
  }
  .wc:hover { padding-left:0 }

  .exercise-cards-section {
    padding:3rem 12px;
    overflow-x:hidden;
  }
  .exercise-cards-shell {
    width:calc(100vw - 24px);
    max-width:none;
    margin-inline:auto;
    min-height:auto;
    border-radius:28px;
    padding:2rem 1rem;
    grid-template-columns:1fr;
    gap:2rem;
    overflow:hidden;
  }
  .exercise-cards-copy {
    width:100%;
    max-width:100%;
    min-width:0;
  }
  .exercise-cards-copy h2 {
    max-width:100%;
    overflow-wrap:normal;
  }
  .exercise-cards-copy p {
    margin-top:1.2rem;
    font-size:.92rem;
  }
  .exercise-card-stack {
    display:grid;
    width:100%;
    max-width:100%;
    min-width:0;
    grid-template-columns:1fr;
    gap:1rem;
    transform:none;
    margin-left:0;
    margin-right:0;
  }
  .exercise-card,
  .exercise-card-lg,
  .exercise-card-wide {
    width:100%;
    max-width:100%;
    min-width:0;
    grid-column:auto;
    transform:none;
    margin-left:0;
    margin-right:0;
    min-height:180px;
    border-radius:22px;
    padding:1.2rem;
  }
  .exercise-card p {
    font-size:.88rem;
  }
  .exercise-card-mark {
    font-size:6rem;
  }

  .equipment-stack-section {
    background:#000;
    --equipment-card-width:calc(100vw - 24px);
  }
  .equipment-stack-shell {
    height:100svh;
  }
  .eq-scene,
  .exercise-main-card {
    left:0;
    right:0;
    width:var(--equipment-card-width);
    max-width:none;
    height:82svh;
    min-height:560px;
    border-radius:24px;
  }
  .exercise-main-card.exercise-cards-section {
    padding:0;
  }
  .exercise-main-card .exercise-cards-shell {
    width:100%;
    height:100%;
    margin:0;
  }
  .eq-scene + .eq-scene {
    margin-top:0;
  }
  .eq-pin { height:100% }
  @supports (height: 100dvh) {
    .equipment-stack-shell { height:100dvh }
    .eq-scene { height:82dvh }
  }
  canvas.eq-canvas { width:100%; height:100%; display:block }
  .eq-ov {
    background:linear-gradient(to bottom,rgba(0,0,0,.25) 0%,rgba(0,0,0,.15) 34%,rgba(0,0,0,.9) 100%);
  }
  .eq-pa,
  .eq-pb,
  .eq-pc {
    left:5vw;
    right:5vw;
    bottom:6vh;
    max-width:none;
  }
  .eq-bt { font-size:clamp(4.3rem, 22vw, 7rem) }
  .ptt { font-size:clamp(2.75rem, 14vw, 4.8rem) }
  .mi { flex:1 1 calc(50% - .4rem); min-width:0 }
  .bi { font-size:.88rem; padding:.65rem .85rem }
  .eq-hint { right:5vw; bottom:1.6rem }

  #hyrox { min-height:auto }
  .hl, .hr {
    padding:0;
    border-left:none;
  }
  #hyrox {
    padding:4.5rem 5vw;
    gap:2.2rem;
    border-radius:0;
  }
  #hyrox::before {
    inset:.75rem;
    border-radius:28px;
  }
  .hr {
    padding-top:0;
    grid-template-columns:1fr;
    gap:.85rem;
  }
  .hst {
    min-height:150px;
    border-radius:22px;
    padding:1.2rem;
  }
  .hs { max-width:none }
  .h-chip { font-size:.6rem; padding:.38rem .72rem }
  .h-microcopy { font-size:.62rem }

  #hyrox-stations { margin-top:-2px; padding:clamp(3rem,10vw,5rem) 5vw clamp(3rem,6vw,5rem) }
  .hws-title { font-size:clamp(2.6rem,13vw,5rem); margin:.75rem 0 .7rem }
  .hws-claim { font-size:clamp(1rem,4.5vw,1.15rem) }
  .hws-grid { grid-template-columns:repeat(2,1fr); gap:.75rem }
  .hws-card { padding:1.2rem 1rem }
  .hws-name { font-size:clamp(1.4rem,8vw,2rem) }
  .hws-desc { font-size:.84rem }
  .hws-head { margin-bottom:2rem }

  .sh {
    display:block;
    margin-bottom:2.6rem;
  }
  .shn {
    max-width:none;
    margin-top:1rem;
    text-align:left;
  }
  .step {
    padding:2rem 0;
    border-right:none;
    border-bottom:1px solid var(--line);
  }
  .step:not(:first-child) { padding-left:0 }
  .step:last-child { border-bottom:none }


  .site-footer { padding:46px 20px 24px }
  .site-footer__grid { grid-template-columns:1fr; gap:30px }
  .site-footer__brand,
  .footer-brand { min-height:285px; max-width:100% }
  .footer-brand::before { left:20px; top:58px; width:360px; height:250px; opacity:.25 }
  .site-footer__brand-content,
  .footer-brand-content { min-height:auto; max-width:100%; padding-top:0 }
  .site-footer__brand p,
  .footer-brand-text { max-width:30ch; font-size:16px; line-height:1.56; margin-bottom:20px }
  .site-footer__badges,
  .footer-brand-meta { gap:.18rem; font-size:13.5px; line-height:1.45 }
  .site-footer h2 { margin-bottom:16px; font-size:22px; line-height:1 }
  .site-footer__nav { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 20px; padding:0 }
  .site-footer__nav h2 { grid-column:1 / -1; margin-bottom:6px }
  .site-footer__nav a,
  .site-footer__contacts a { font-size:14px; line-height:1.35 }
  .site-footer__contacts { gap:10px }
  .site-footer__contacts address { margin-bottom:2px; font-size:14.5px; line-height:1.55 }
  .site-footer__contacts a { overflow-wrap:anywhere; word-break:break-word }
  .site-footer__info,
  .site-footer__cta { width:100%; max-width:none }
  .site-footer__cta p { margin-bottom:18px; font-size:15px; line-height:1.5 }
  .site-footer__cta .btn { width:100%; min-height:48px; padding-inline:16px; font-size:12.5px; white-space:normal }
  .site-footer__legal { flex-direction:column; align-items:flex-start; gap:10px; margin-top:24px; padding-top:16px; font-size:10.5px; line-height:1.45 }
  .site-footer__legal div { flex-flow:row wrap; gap:10px 18px }
}

.gsap-scroll .eq-pin { position:relative }

/* ── ATTREZZATURE PAGE ── */
#att-hero {
  position:relative;
  height:100vh;
  background:
    radial-gradient(circle at 20% 80%,rgba(188,22,47,.18),transparent 38%),
    radial-gradient(circle at 80% 20%,rgba(188,22,47,.08),transparent 32%),
    #000;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}
.att-hero-inner {
  position:relative;
  z-index:1;
  text-align:center;
  padding:0 5vw;
}
.att-hero-h {
  font-family:"Bebas Neue",sans-serif;
  font-size:clamp(5rem,13vw,16rem);
  line-height:.82;
  color:#fff;
  letter-spacing:-.01em;
  margin-top:1.4rem;
}
.att-hero-h em { color:var(--red); font-style:normal }
.att-hero-p {
  margin-top:2rem;
  font:300 clamp(1rem,1.4vw,1.35rem)/1.65 var(--body-font);
  color:rgba(255,255,255,.48);
  letter-spacing:.04em;
}
.att-shint {
  position:absolute;
  bottom:2.5rem;
  left:50%;
  transform:translateX(-50%);
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:.5rem;
  z-index:5;
}
@media (max-width:767px) {
  #att-hero { height:100svh }
  .att-hero-h { font-size:clamp(3.5rem,18vw,6rem) }
  .att-hero-p { font-size:.95rem; margin-top:1.4rem }
}

/* ── DISCIPLINES SECTION (home) ── */
/* Shell resta sticky (posizione e altezza non toccate).
   Solo la card interna viene portata in flow (relative) per non essere
   clippata dall'overflow:hidden del contenitore.
   Le card discipline sono ridotte per stare nel viewport. */
#disciplines .equipment-stack-shell {
  overflow: visible;
}
#disciplines .exercise-main-card {
  position: relative !important; /* override GSAP position:absolute */
  height: auto !important;
  min-height: 0 !important;
  overflow: visible !important;
  left: auto !important;
  right: auto !important;
  width: var(--equipment-card-width);
  margin: 0 auto;
}
/* Riduci le card discipline per stare entro il viewport con la shell pinned */
#disciplines .exercise-main-card .exercise-card {
  min-height: clamp(95px, 11vh, 130px);
}
#disciplines .exercise-main-card .exercise-card-lg,
#disciplines .exercise-main-card .exercise-card-wide {
  min-height: clamp(110px, 13vh, 148px);
}
@media (max-width:767px) {
  #disciplines .exercise-main-card {
    border-radius: 24px;
  }
}

/* ── UI TYPOGRAPHY — Nike-inspired letter-spacing ── */
.nav-links a       { letter-spacing:.04em; font-size:.65rem }
.btn               { letter-spacing:.04em; font-size:.76rem }
.nav-cta           { letter-spacing:.04em }
.section-kicker    { letter-spacing:.07em }
.stag              { letter-spacing:.07em }
.eq-nl, .pl        { letter-spacing:.10em }
.ll                { letter-spacing:.08em }
.sl2               { letter-spacing:.05em }
.wn                { letter-spacing:.06em }
.wc h4             { letter-spacing:.02em }

/* ════════════════════════════════════════════
   BOOKING PAGE — prenota-prova.html
   ════════════════════════════════════════════ */
.booking-page { background:#f4f4f0; color:#111 }

/* Main wrapper */
.booking-main {
  max-width:1160px;
  margin:0 auto;
  padding:clamp(7rem,11vw,11rem) 5vw clamp(5rem,8vw,8rem);
}

/* Hero */
.booking-hero {
  text-align:center;
  max-width:860px;
  margin:0 auto clamp(3rem,6vw,6rem);
}
.booking-hero-title {
  font-family:var(--display-font);
  font-size:clamp(3.2rem,8vw,9.5rem);
  line-height:.82;
  color:#111;
  margin:1rem 0 1.6rem;
}
.booking-hero-title em { color:var(--red); font-style:normal }
.booking-hero-sub {
  font:400 clamp(1rem,1.3vw,1.18rem)/1.75 var(--body-font);
  color:rgba(0,0,0,.58);
  max-width:52ch;
  margin-inline:auto;
}

/* Choice cards */
.booking-cards {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:1.4rem;
  max-width:860px;
  margin:0 auto clamp(2.5rem,5vw,4rem);
}
/* Spacing between booking-form-section cards */
.booking-form-section + .booking-form-section { margin-top:clamp(2rem,4vw,3rem) }
.booking-card {
  display:block;
  box-sizing:border-box;
  width:100%;
  height:100%;
  min-width:0;
  text-align:left;
  font:inherit;
  color:#fff;
  background:#101010;
  border:2px solid #D7FF00;
  border-radius:24px;
  padding:clamp(2rem,4vw,3rem);
  cursor:pointer;
  opacity:1;
  filter:saturate(1);
  transition:border-color .22s,transform .22s,box-shadow .22s,opacity .22s,filter .22s;
  user-select:none;
}
.booking-card-inner {
  display:flex;
  flex-direction:column;
  height:100%;
  opacity:1;
  transition:opacity .22s;
}
.booking-card--dropin { border-color:var(--red) }
.booking-card:hover { transform:translateY(-3px) }
.booking-card:focus-visible {
  outline:3px solid #D7FF00;
  outline-offset:4px;
}
.booking-card.is-active {
  background:#101010;
  border:2px solid #D7FF00;
  opacity:1;
  filter:saturate(1);
  box-shadow:0 0 0 4px rgba(215,255,0,.08),0 24px 50px rgba(0,0,0,.16);
}
.booking-card--dropin.is-active {
  border-color:var(--red);
  box-shadow:0 0 0 4px rgba(188,22,47,.1),0 24px 50px rgba(0,0,0,.16);
}
.booking-card.is-inactive {
  background:#101010;
  border-color:rgba(255,255,255,.18);
  opacity:1;
  filter:saturate(.28);
  box-shadow:none;
}
.booking-card.is-inactive .booking-card-inner { opacity:.62 }
.booking-card.is-inactive:hover {
  border-color:rgba(255,255,255,.34);
  filter:saturate(.55);
}
.booking-card.is-inactive:hover .booking-card-inner { opacity:.76 }
.booking-card-tag {
  display:inline-flex;
  font:600 .6rem/1 var(--body-font);
  letter-spacing:.16em;
  text-transform:uppercase;
  color:#000;
  border:1px solid #D7FF00;
  background:#D7FF00;
  padding:.35rem .8rem;
  border-radius:999px;
  margin-bottom:1.4rem;
  align-self:flex-start;
}
.booking-card--dropin .booking-card-tag {
  color:#fff;
  border-color:var(--red);
  background:var(--red);
}
.booking-card.is-active .booking-card-tag {
  color:#000;
  border-color:#D7FF00;
  background:#D7FF00;
}
.booking-card--dropin.is-active .booking-card-tag {
  color:#fff;
  border-color:var(--red);
  background:var(--red);
}
.booking-card-title {
  font-family:var(--display-font);
  font-size:clamp(2.8rem,5vw,5.5rem);
  line-height:.84;
  color:#fff;
  margin-bottom:.85rem;
}
.booking-card-text {
  font:400 clamp(.9rem,1.05vw,1rem)/1.68 var(--body-font);
  color:rgba(255,255,255,.72);
  margin-bottom:1.6rem;
}
.booking-card-cta {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  align-self:flex-start;
  min-height:44px;
  margin-top:auto;
  padding:.75rem 1rem;
  border:1px solid #D7FF00;
  border-radius:var(--cta-radius);
  font:600 .68rem/1.2 var(--body-font);
  letter-spacing:.1em;
  text-transform:uppercase;
  color:#000;
  background:#D7FF00;
}
.booking-card--dropin .booking-card-cta {
  color:#fff;
  border-color:var(--red);
  background:var(--red);
}
.booking-card.is-active .booking-card-text { color:rgba(255,255,255,.8) }
.booking-card.is-active .booking-card-cta {
  color:#000;
  border-color:#D7FF00;
  background:#D7FF00;
}
.booking-card--dropin.is-active .booking-card-cta {
  color:#fff;
  border-color:var(--red);
  background:var(--red);
}
.booking-card.is-inactive .booking-card-tag,
.booking-card.is-inactive .booking-card-cta {
  opacity:.72;
}

/* Form section */
.booking-form-section {
  box-sizing:border-box;
  max-width:760px;
  margin:0 auto;
  scroll-margin-top:90px;
  /* card scura su sfondo chiaro */
  background:#0b0b0b;
  border-radius:28px;
  border:1px solid rgba(255,255,255,.06);
  padding:clamp(2.5rem,5vw,4.5rem);
  box-shadow:0 24px 80px rgba(0,0,0,.16),0 4px 20px rgba(0,0,0,.1);
}
.booking-form-header { margin-bottom:2.5rem }
.booking-form-title {
  font-family:var(--display-font);
  font-size:clamp(2.4rem,5vw,5rem);
  line-height:.86;
  color:#fff;
}
.booking-form-desc {
  margin-top:.75rem;
  font:400 .95rem/1.72 var(--body-font);
  color:rgba(255,255,255,.55);
}

/* Form layout */
.booking-form {
  --booking-accent:#D7FF00;
  --booking-accent-soft:rgba(215,255,0,.14);
  --booking-accent-filled:rgba(215,255,0,.38);
  --booking-accent-text:#000;
  display:flex;
  flex-direction:column;
  gap:1.8rem;
}
.booking-form--trial {
  --booking-accent:#D7FF00;
  --booking-accent-soft:rgba(215,255,0,.14);
  --booking-accent-filled:rgba(215,255,0,.38);
  --booking-accent-text:#000;
}
.booking-form--dropin {
  --booking-accent:#c91432;
  --booking-accent-soft:rgba(201,20,50,.16);
  --booking-accent-filled:rgba(201,20,50,.42);
  --booking-accent-text:#fff;
}
.booking-fields-row {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1.4rem;
}

/* Hint sotto campi orario */
.booking-orario-hint {
  font:400 .7rem/1.5 var(--body-font);
  color:rgba(255,255,255,.38);
  margin:.1rem 0 .2rem;
}

/* Labels & inputs */
.booking-field { display:flex; flex-direction:column; gap:.45rem }
.booking-label {
  font:600 .7rem/1 var(--body-font);
  letter-spacing:.1em;
  text-transform:uppercase;
  color:rgba(255,255,255,.82);
}
.booking-optional {
  font-weight:400;
  letter-spacing:0;
  text-transform:none;
  color:rgba(255,255,255,.38);
}
.req { color:var(--red) }
.booking-input,
.booking-textarea {
  background:#111;
  border:1px solid rgba(255,255,255,.18);
  border-radius:12px;
  padding:.88rem 1.1rem;
  color:#fff;
  font:400 1rem/1.2 var(--body-font);
  width:100%;
  outline:none;
  transition:border-color .18s,background .18s,box-shadow .18s;
  color-scheme:dark;
  font-weight:400;
}
.booking-form input,
.booking-form textarea,
.booking-form select { color:#fff }
.booking-form input::placeholder,
.booking-form textarea::placeholder {
  color:rgba(255,255,255,.42);
  opacity:1;
}
.booking-input:focus,
.booking-textarea:focus {
  border-color:var(--booking-accent);
  background:#161616;
  box-shadow:0 0 0 3px var(--booking-accent-soft);
}
/* Campo compilato — accento soft del percorso */
.booking-form .booking-input:not(:placeholder-shown),
.booking-form .booking-textarea:not(:placeholder-shown) {
  border-color:var(--booking-accent-filled);
  background:#141414;
}
/* Autofill Chrome/Safari — elimina il blu */
.booking-form input:-webkit-autofill,
.booking-form input:-webkit-autofill:hover,
.booking-form input:-webkit-autofill:focus,
.booking-form textarea:-webkit-autofill,
.booking-form textarea:-webkit-autofill:hover,
.booking-form textarea:-webkit-autofill:focus {
  -webkit-text-fill-color:#fff;
  -webkit-box-shadow:0 0 0 1000px #111111 inset;
  box-shadow:0 0 0 1000px #111111 inset;
  transition:background-color 9999s ease-in-out 0s;
}
.booking-textarea { resize:vertical; line-height:1.6; min-height:90px }

/* Radio / checkbox pill options */
.booking-radio-group { display:flex; flex-wrap:wrap; gap:.45rem; margin-top:.1rem }
.booking-radio-option { display:inline-flex }
.booking-radio-option input { position:absolute; opacity:0; width:0; height:0; pointer-events:none }
.booking-radio-option span {
  display:inline-flex;
  align-items:center;
  padding:.5rem 1rem;
  font:600 .68rem/1 var(--body-font);
  letter-spacing:.05em;
  text-transform:uppercase;
  color:rgba(255,255,255,.7);
  border:1px solid rgba(255,255,255,.2);
  border-radius:999px;
  cursor:pointer;
  transition:all .16s;
  white-space:nowrap;
}
.booking-radio-option span:hover {
  border-color:rgba(255,255,255,.48);
  color:#fff;
}
.booking-radio-option input:checked + span {
  background:var(--booking-accent);
  border-color:var(--booking-accent);
  color:var(--booking-accent-text);
}
.booking-radio-option input:focus-visible + span,
.booking-privacy input:focus-visible {
  outline:3px solid var(--booking-accent);
  outline-offset:3px;
}

/* Trial class picker */
.booking-class-picker {
  display:flex;
  align-items:center;
  gap:.85rem;
  width:100%;
  min-height:58px;
  padding:.8rem 1rem;
  color:#fff;
  text-align:left;
  background:#111;
  border:1px solid rgba(255,255,255,.2);
  border-radius:12px;
  cursor:pointer;
  transition:border-color .18s,background .18s,box-shadow .18s;
}
.booking-class-picker:hover { border-color:rgba(255,255,255,.42); background:#151515 }
.booking-class-picker:focus-visible {
  outline:none;
  border-color:var(--color-lime);
  box-shadow:0 0 0 3px rgba(214,255,0,.12);
}
.booking-class-picker.has-value { border-color:rgba(214,255,0,.42); background:#141414 }
.booking-class-picker-icon { color:var(--color-lime); font-size:1rem }
.booking-class-picker-copy { display:flex; flex:1; flex-direction:column; gap:.3rem; min-width:0 }
.booking-class-picker-copy strong {
  font:600 .72rem/1.2 var(--body-font);
  letter-spacing:.08em;
  text-transform:uppercase;
}
.booking-class-picker-copy small {
  color:var(--color-lime);
  font:600 .6rem/1 var(--body-font);
  letter-spacing:.1em;
  text-transform:uppercase;
}
.booking-class-picker-chevron { color:rgba(255,255,255,.56); font-size:1.2rem }
.booking-field.has-error .booking-class-picker { border-color:var(--red) }

/* Trial class dialog */
body.booking-dialog-open { overflow:hidden }
.booking-dialog-backdrop {
  position:fixed;
  inset:0;
  z-index:9500;
  display:grid;
  place-items:center;
  padding:1.25rem;
  background:rgba(0,0,0,.76);
  backdrop-filter:blur(5px);
}
.booking-dialog-backdrop[hidden] { display:none }
.booking-dialog {
  position:relative;
  width:min(100%,720px);
  max-height:min(82vh,760px);
  overflow-y:auto;
  padding:clamp(1.5rem,4vw,2.5rem);
  color:#fff;
  background:#101010;
  border:1px solid rgba(255,255,255,.16);
  border-radius:24px;
  box-shadow:0 30px 90px rgba(0,0,0,.55);
}
.booking-dialog-close {
  position:absolute;
  top:1rem;
  right:1rem;
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  color:#fff;
  background:#181818;
  border:1px solid rgba(255,255,255,.16);
  border-radius:50%;
  font-size:1.4rem;
  cursor:pointer;
}
.booking-dialog-close:hover { border-color:var(--color-lime); color:var(--color-lime) }
.booking-dialog-close:focus-visible,
.booking-dialog-day:focus-visible,
.booking-dialog-option:focus-visible {
  outline:3px solid var(--color-lime);
  outline-offset:3px;
}
.booking-dialog-title {
  max-width:85%;
  color:#fff;
  font-family:var(--display-font);
  font-size:clamp(2.3rem,5vw,4.4rem);
  line-height:.9;
  text-transform:uppercase;
}
.booking-dialog-desc {
  margin-top:.75rem;
  color:rgba(255,255,255,.62);
  font:400 .92rem/1.6 var(--body-font);
}
.booking-dialog-options { margin-top:2rem }
.booking-dialog-days,
.booking-dialog-slots {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.65rem;
}
.booking-dialog-slots { grid-template-columns:repeat(5,minmax(0,1fr)); margin-top:1.4rem }
.booking-dialog-slots--generic { grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:0 }
.booking-dialog-day,
.booking-dialog-option {
  min-height:48px;
  padding:.75rem .6rem;
  color:#fff;
  background:#171717;
  border:1px solid rgba(255,255,255,.2);
  border-radius:12px;
  font:600 .68rem/1.2 var(--body-font);
  letter-spacing:.05em;
  text-transform:uppercase;
  cursor:pointer;
  transition:background .16s,border-color .16s,color .16s,transform .16s;
}
.booking-dialog-day:hover,
.booking-dialog-option:hover { border-color:rgba(255,255,255,.48); transform:translateY(-1px) }
.booking-dialog-day.is-selected,
.booking-dialog-option.is-selected {
  color:#000;
  background:var(--color-lime);
  border-color:var(--color-lime);
}

/* Error states */
.booking-field-error {
  display:none;
  font:400 .66rem/1.4 var(--body-font);
  color:var(--red);
}
.booking-field.has-error .booking-field-error { display:block }
.booking-field.has-error .booking-input,
.booking-field.has-error .booking-textarea { border-color:var(--red) }
.booking-form-error {
  font:400 .78rem/1.5 var(--body-font);
  color:#fff;
  text-align:center;
  padding:.85rem 1rem;
  border:1px solid rgba(188,22,47,.35);
  border-radius:12px;
  background:rgba(188,22,47,.1);
}

/* Privacy */
.booking-field--privacy { flex-direction:column }
.booking-privacy { display:flex; align-items:flex-start; gap:.75rem; cursor:pointer }
.booking-privacy input[type="checkbox"] {
  width:18px; height:18px; flex-shrink:0;
  accent-color:var(--booking-accent);
  cursor:pointer;
  margin-top:.15rem;
}
.booking-privacy span {
  font:400 .78rem/1.65 var(--body-font);
  color:rgba(255,255,255,.52);
}

/* Submit button */
.booking-submit {
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  padding:1.1rem 2rem;
  background:var(--color-lime);
  color:#000;
  font:700 .78rem/1 var(--body-font);
  letter-spacing:.14em;
  text-transform:uppercase;
  border:none;
  border-radius:var(--cta-radius);
  cursor:pointer;
  transition:background .2s,transform .2s;
  margin-top:.5rem;
}
.booking-submit:hover { background:#ecff4d; transform:translateY(-2px) }
.booking-submit:focus-visible {
  outline:3px solid #fff;
  outline-offset:4px;
}
.booking-submit--dropin { background:var(--red); color:#fff }
.booking-submit--dropin:hover { background:var(--red2) }

/* ── Success state ── */
.booking-success {
  text-align:center;
  padding:clamp(3rem,7vw,5rem) 1.5rem;
}
.booking-success-check {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:64px; height:64px;
  border-radius:50%;
  background:color-mix(in srgb,var(--color-lime) 12%,transparent);
  border:2px solid var(--color-lime);
  font-size:1.6rem;
  color:var(--color-lime);
  margin-bottom:1.6rem;
}
.booking-success--dropin .booking-success-check {
  background:rgba(188,22,47,.12);
  border-color:var(--red);
  color:var(--red);
}
.booking-success-title {
  font-family:var(--display-font);
  font-size:clamp(2rem,4vw,3.8rem);
  line-height:.88;
  color:#fff;
  margin-bottom:.9rem;
}
.booking-success-text {
  font:400 1rem/1.75 var(--body-font);
  color:rgba(255,255,255,.7);
  max-width:44ch;
  margin:0 auto 1.4rem;
}
.booking-success-wa {
  display:inline-block;
  font:400 .78rem/1.55 var(--body-font);
  color:rgba(255,255,255,.42);
  border:1px solid rgba(255,255,255,.1);
  border-radius:12px;
  padding:.7rem 1.2rem;
  max-width:42ch;
}
.booking-success-wa-link {
  color:var(--color-lime);
  text-decoration:none;
  font-weight:600;
  margin-left:.3rem;
}
#form-dropin .booking-success-wa-link { color:var(--red) }
.booking-success-wa-link:hover { text-decoration:underline }

/* ── Booking mobile ── */
@media (max-width:767px) {
  .booking-main { padding-top:6rem }
  .booking-hero-title { font-size:clamp(2.8rem,15vw,5rem) }
  .booking-cards { grid-template-columns:1fr; gap:1rem }
  .booking-card { padding:1.6rem }
  .booking-card-title { font-size:clamp(2.4rem,14vw,4rem) }
  .booking-card-cta { width:100%; white-space:normal }
  .booking-fields-row { grid-template-columns:1fr }
  .booking-radio-option { max-width:100% }
  .booking-radio-option span { max-width:100%; white-space:normal; font-size:.62rem; line-height:1.25; padding:.6rem .85rem }
  .booking-form-section { width:100%; min-width:0; overflow:hidden; border-radius:20px; padding:1.8rem 1.4rem }
  .booking-dialog-backdrop { align-items:end; padding:0 }
  .booking-dialog {
    width:100%;
    max-height:84svh;
    padding:1.5rem 1.25rem calc(1.5rem + env(safe-area-inset-bottom));
    border-width:1px 0 0;
    border-radius:24px 24px 0 0;
  }
  .booking-dialog-days,
  .booking-dialog-slots,
  .booking-dialog-slots--generic { grid-template-columns:repeat(2,minmax(0,1fr)) }
  .booking-dialog-day,
  .booking-dialog-option { min-height:52px }
}

/* ════════════════════════════════════════════
   HYROX PAGE — hyrox.html
   ════════════════════════════════════════════ */

/* Homepage tweaks */
.h-btn-row { display:flex; flex-wrap:wrap; gap:1rem; align-items:center }
.hyrox-teaser {
  background:#080808;
  display:flex; align-items:center; justify-content:space-between; gap:2rem;
  padding:1.5rem var(--site-gutter);
  border-top:1px solid #161616;
  font:400 .9rem/1 var(--body-font);
  color:rgba(255,255,255,.42);
}
.hyrox-teaser-link {
  font:600 .68rem/1 var(--body-font); letter-spacing:.1em; text-transform:uppercase;
  color:var(--color-lime); text-decoration:none; white-space:nowrap; flex-shrink:0;
}
.hyrox-teaser-link:hover { text-decoration:underline }

/* Hero */
#hx-hero {
  position:relative;
  min-height:100vh;
  display:flex;
  align-items:center;
  padding:clamp(9rem,14vw,14rem) var(--site-gutter) clamp(6rem,9vw,10rem);
  background:
    radial-gradient(circle at 80% 20%,color-mix(in srgb,var(--color-lime) 14%,transparent),transparent 30%),
    linear-gradient(to bottom,#000 0%,#0d0d0d 25%,#1e1e1c 55%,#111 100%);
  overflow:hidden;
}
.hx-hero-inner { max-width:min(820px,62vw) }
.hx-hero-ctas { display:flex; gap:1rem; flex-wrap:wrap; margin-top:2.4rem }

/* Shared section base */
.hx-section {
  padding:clamp(5rem,8vw,9rem) var(--site-gutter);
  background:#000;
  border-top:1px solid #111;
}
.hx-section-kicker {
  display:inline-flex; align-items:center; gap:.7rem;
  font:600 .68rem/1 var(--body-font); letter-spacing:.18em; text-transform:uppercase;
  color:var(--red); margin-bottom:1.2rem;
}
.hx-section-kicker::before { content:""; width:26px; height:1px; background:var(--red) }
.hx-section-title {
  font-family:var(--display-font);
  font-size:clamp(3rem,6.5vw,7.5rem);
  line-height:.86; color:#fff; margin-bottom:1.4rem;
}
.hx-body {
  font:400 clamp(1rem,1.2vw,1.15rem)/1.8 var(--body-font);
  color:rgba(255,255,255,.72); max-width:54ch;
}

/* Cos'è HYROX */
#hx-what { background:linear-gradient(180deg,#0a0a0a,#000) }
.hx-what-inner {
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.9fr);
  gap:clamp(3rem,6vw,7rem); align-items:start;
}
.hx-what-stat {
  font-family:var(--display-font); font-size:clamp(6rem,14vw,16rem);
  line-height:.78; color:var(--color-lime); display:block; margin-bottom:.4rem;
}
.hx-what-stat-label {
  font:600 .68rem/1 var(--body-font); letter-spacing:.14em;
  text-transform:uppercase; color:rgba(255,255,255,.42);
}

/* Stations section on hyrox.html */
#hx-stations {
  background:#000;
  padding:clamp(5rem,8vw,9rem) var(--site-gutter);
  border-top:1px solid #111;
}

/* Come ti alleni */
#hx-training { background:#0a0a0a }
.hx-training-grid {
  display:grid; grid-template-columns:repeat(2,1fr);
  gap:1rem; margin-top:2.8rem;
}
.hx-training-item {
  padding:1.8rem 1.6rem;
  background:linear-gradient(145deg,rgba(255,255,255,.05),rgba(255,255,255,.015));
  border:1px solid rgba(255,255,255,.1); border-radius:18px;
  transition:border-color .22s;
}
.hx-training-item:hover { border-color:rgba(255,255,255,.25) }
.hx-training-item h4 {
  font:700 clamp(1rem,1.3vw,1.15rem)/1.3 var(--body-font);
  color:#fff; letter-spacing:.04em; text-transform:uppercase; margin-bottom:.65rem;
}
.hx-training-item p { font:400 .9rem/1.65 var(--body-font); color:rgba(255,255,255,.6) }

/* Per chi è */
#hx-for-whom { background:#000 }
.hx-who-grid {
  display:grid; grid-template-columns:repeat(2,1fr);
  gap:1rem; margin-top:2.8rem;
}
.hx-who-card {
  padding:1.8rem 1.6rem;
  background:linear-gradient(145deg,color-mix(in srgb,var(--color-lime) 7%,transparent),rgba(0,0,0,.4));
  border:1px solid color-mix(in srgb,var(--color-lime) 22%,transparent); border-radius:18px;
  transition:border-color .22s,background .22s;
}
.hx-who-card:hover {
  border-color:color-mix(in srgb,var(--color-lime) 50%,transparent);
  background:linear-gradient(145deg,color-mix(in srgb,var(--color-lime) 12%,transparent),rgba(0,0,0,.4));
}
.hx-who-card h4 {
  font-family:var(--display-font);
  font-size:clamp(2rem,3.2vw,3.6rem); line-height:.86;
  color:var(--color-lime); margin-bottom:.75rem;
}
.hx-who-card p { font:400 .9rem/1.62 var(--body-font); color:rgba(255,255,255,.68) }

/* CTA finale */
#hx-final-cta {
  background:#000;
  padding:clamp(6rem,10vw,12rem) var(--site-gutter);
  text-align:center;
  border-top:1px solid #111;
}
.hx-cta-title {
  font-family:var(--display-font);
  font-size:clamp(3rem,8vw,9.5rem); line-height:.82; color:#fff;
  margin-bottom:2.5rem;
}
.hx-cta-row { display:flex; gap:1rem; flex-wrap:wrap; justify-content:center }

/* ── Mobile — HYROX page ── */
@media (max-width:767px) {
  .h-btn-row { flex-direction:column; align-items:flex-start }
  .hyrox-teaser { flex-direction:column; align-items:flex-start; gap:1rem }
  .hx-hero-inner { max-width:100% }
  .hx-hero-ctas { flex-direction:column }
  #hx-hero { padding-top:6.5rem }
  .hx-section-title { font-size:clamp(2.4rem,14vw,4.5rem) }
  .hx-what-inner { grid-template-columns:1fr }
  .hx-training-grid, .hx-who-grid { grid-template-columns:1fr }
  .hx-cta-title { font-size:clamp(2.6rem,16vw,5.5rem) }
  .hx-cta-row { flex-direction:column; align-items:center }
}

/* ════════════════════════════════════════════
   HYROX PAGE v2 — sistema tipografico hxp-
   Scala: hero 64–118px · section 48–82px
          card 26–38px  · body 17–20px
   ════════════════════════════════════════════ */

/* Container */
.hxp-wrap {
  max-width:1680px; margin:0 auto;
  padding:0 clamp(1.5rem,5vw,5.5rem);
}
/* Section padding */
.hxp-section { padding:clamp(6.25rem,9vw,9.375rem) 0 }

/* ── Tipografia ── */
/* Hero title  64–118px */
.hxp-hero-h {
  font-family:var(--display-font);
  font-size:clamp(4rem,7vw,7.375rem);
  line-height:.88; color:#fff; margin-bottom:1.3rem;
}
.hxp-hero-h em { color:var(--color-lime); font-style:normal }
/* Section title  48–82px */
.hxp-h {
  font-family:var(--display-font);
  font-size:clamp(3rem,5vw,5.125rem);
  line-height:.88; color:#fff;
}
/* Editorial title  56–104px */
.hxp-h-xl {
  font-family:var(--display-font);
  font-size:clamp(3.5rem,6.5vw,6.5rem);
  line-height:.84; color:#fff;
}
/* Station / card name  26–38px */
.hxp-card-h {
  font-family:var(--display-font);
  font-size:clamp(1.625rem,2.2vw,2.375rem);
  line-height:.88; color:#fff; margin-bottom:.5rem;
}
/* CTA title  64–118px */
.hxp-cta-h {
  font-family:var(--display-font);
  font-size:clamp(4rem,7vw,7.375rem);
  line-height:.86; color:#fff; margin-bottom:2rem;
}
.hxp-cta-h em { color:var(--color-lime); font-style:normal }
/* Eyebrow 12px */
.hxp-eyebrow {
  display:inline-flex; align-items:center; gap:.55rem;
  font:600 .75rem/1 var(--body-font);
  letter-spacing:.16em; text-transform:uppercase;
  color:var(--color-lime); margin-bottom:1.1rem;
}
.hxp-eyebrow::before { content:''; width:20px; height:1px; background:var(--color-lime); flex-shrink:0 }
.hxp-eyebrow--red { color:var(--red) }
.hxp-eyebrow--red::before { background:var(--red) }
/* Micro 11px */
.hxp-micro {
  margin-top:1.2rem;
  font:300 .68rem/1 var(--body-font);
  letter-spacing:.16em; text-transform:uppercase;
  color:rgba(255,255,255,.28);
}

/* ── Layout helpers ── */
.hxp-split {
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  gap:clamp(3rem,6vw,8rem); align-items:start;
}
.hxp-split--wide {
  grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);
}
.hxp-center { text-align:center }
.hxp-cta-row { display:flex; gap:1rem; flex-wrap:wrap }
.hxp-cta-row--center { justify-content:center }

/* ── HERO ── */
#hx-hero {
  position:relative;
  min-height:82vh;
  display:flex; align-items:center;
  padding:clamp(7rem,10vw,10rem) 0 clamp(4rem,6vw,6rem);
  background:
    radial-gradient(circle at 80% 22%,color-mix(in srgb,var(--color-lime) 10%,transparent),transparent 30%),
    #000;
  overflow:hidden;
}
.hxp-hero-grid {
  display:grid;
  grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);
  gap:clamp(3rem,5vw,6rem); align-items:center; width:100%;
}
.hxp-hero-p {
  font:400 clamp(1rem,1.2vw,1.15rem)/1.78 var(--body-font);
  color:rgba(255,255,255,.65); max-width:44ch; margin-bottom:2rem;
}
.hxp-hero-panel {
  display:flex; flex-direction:column; gap:0;
  padding:1.8rem 2rem;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.1);
  border-radius:20px;
}
.hxp-stat { padding:1.2rem 0; border-bottom:1px solid rgba(255,255,255,.08) }
.hxp-stat:first-child { padding-top:0 }
.hxp-stat:last-child { border-bottom:none; padding-bottom:0 }
.hxp-stat-num {
  font-family:var(--display-font);
  font-size:clamp(2.5rem,4vw,4rem);
  line-height:.84; color:var(--color-lime); display:block;
}
.hxp-stat-label {
  font:600 .68rem/1 var(--body-font);
  letter-spacing:.12em; text-transform:uppercase;
  color:rgba(255,255,255,.42); margin-top:.3rem; display:block;
}

/* ── COS'È HYROX ── */
#hx-what {
  background:#0a0a0a;
  border-top:1px solid #1a1a1a;
}
#hx-what .hxp-h { margin-top:.5rem }
.hxp-what-text {
  font:400 clamp(1rem,1.2vw,1.15rem)/1.8 var(--body-font);
  color:rgba(255,255,255,.75); margin-bottom:2rem;
}
.hxp-data-row {
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:.85rem;
}
.hxp-data-item {
  padding:1rem 1.1rem;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.1);
  border-radius:14px;
}
.hxp-data-num {
  font-family:var(--display-font);
  font-size:clamp(1.8rem,2.8vw,2.8rem);
  color:var(--color-lime); line-height:.88; display:block;
}
.hxp-data-label {
  font:600 .62rem/1.3 var(--body-font);
  letter-spacing:.1em; text-transform:uppercase;
  color:rgba(255,255,255,.4); margin-top:.35rem;
}

/* ── COME FUNZIONA ── */
#hx-how {
  background:#000;
  border-top:1px solid #1a1a1a;
}
.hxp-how-head { margin-bottom:2.4rem }
.hxp-how-head .hxp-h { margin-bottom:.55rem }
.hxp-how-sub {
  font:400 clamp(.95rem,1.1vw,1.05rem)/1.6 var(--body-font);
  color:rgba(255,255,255,.45);
}
.hxp-stations {
  display:grid; grid-template-columns:repeat(4,1fr);
  gap:.85rem;
}
.hxp-station {
  padding:1.4rem 1.25rem;
  background:linear-gradient(145deg,rgba(255,255,255,.05),rgba(255,255,255,.015));
  border:1px solid rgba(255,255,255,.1);
  border-radius:16px;
  transition:border-color .2s,transform .2s;
}
.hxp-station:hover { border-color:color-mix(in srgb,var(--color-lime) 38%,transparent); transform:translateY(-3px) }
.hxp-station-num {
  font:600 .62rem/1 var(--body-font);
  letter-spacing:.18em; color:color-mix(in srgb,var(--color-lime) 65%,transparent);
  display:block; margin-bottom:.75rem;
}
.hxp-station-desc {
  font:400 .875rem/1.55 var(--body-font);
  color:rgba(255,255,255,.55); margin-top:.35rem;
}

/* ── ALLENAMENTO ── */
#hx-training {
  background:#0a0a0a;
  border-top:1px solid #1a1a1a;
}
.hxp-training-head { align-self:center }
.hxp-training-text {
  font:400 clamp(1rem,1.2vw,1.15rem)/1.8 var(--body-font);
  color:rgba(255,255,255,.72); margin-bottom:1.8rem;
}
.hxp-features {
  display:grid; grid-template-columns:1fr 1fr;
  gap:.75rem;
}
.hxp-feature {
  padding:1rem 1.2rem;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.1);
  border-radius:12px;
}
.hxp-feature-title {
  font:700 .72rem/1 var(--body-font);
  letter-spacing:.07em; text-transform:uppercase;
  color:#fff; margin-bottom:.4rem;
}
.hxp-feature-desc {
  font:400 .875rem/1.55 var(--body-font);
  color:rgba(255,255,255,.5);
}

/* ── PER CHI È ── */
#hx-who {
  background:#000;
  border-top:1px solid #1a1a1a;
}
#hx-who .hxp-h { margin-bottom:2.4rem }
.hxp-who-eyebrow { display:none }
.hxp-who {
  display:grid; grid-template-columns:repeat(2,1fr);
  gap:1rem;
}
.hxp-who-card {
  padding:1.8rem 1.6rem;
  background:color-mix(in srgb,var(--color-lime) 5%,transparent);
  border:1px solid color-mix(in srgb,var(--color-lime) 18%,transparent);
  border-radius:18px;
  transition:border-color .22s,background .22s;
}
.hxp-who-card:hover {
  border-color:color-mix(in srgb,var(--color-lime) 42%,transparent);
  background:color-mix(in srgb,var(--color-lime) 8%,transparent);
}
.hxp-who-card h4 {
  font-family:var(--display-font);
  font-size:clamp(1.8rem,2.5vw,2.75rem);
  line-height:.88; color:var(--color-lime); margin-bottom:.7rem;
}
.hxp-who-card p {
  font:400 .9rem/1.62 var(--body-font);
  color:rgba(255,255,255,.65);
}

/* ── CTA FINALE ── */
#hx-final {
  background:#000;
  border-top:1px solid #1a1a1a;
  padding:clamp(6.25rem,10vw,10rem) 0;
}

/* ── Mobile HYROX page ── */
@media (max-width:767px) {
  .hxp-hero-grid,.hxp-split { grid-template-columns:1fr }
  #hx-hero { min-height:auto; padding:6rem 0 3rem }
  .hxp-hero-panel {
    flex-direction:row; flex-wrap:wrap;
    padding:1rem; gap:0;
  }
  .hxp-stat {
    flex:1 1 calc(33% - .5rem); min-width:0;
    border-bottom:none; border-right:1px solid rgba(255,255,255,.08);
    padding:.75rem !important;
  }
  .hxp-stat:last-child { border-right:none }
  .hxp-stat-num { font-size:clamp(1.8rem,10vw,3rem) }
  .hxp-data-row { grid-template-columns:1fr }
  .hxp-stations { grid-template-columns:repeat(2,1fr) }
  .hxp-who { grid-template-columns:1fr }
  .hxp-features { grid-template-columns:1fr }
  .hxp-cta-row--center { flex-direction:column; align-items:center }
}

/* HYROX page redesign */
.hxp-wrap {
  width:100%;
  max-width:1440px;
  padding:0 clamp(1.5rem,4vw,4.5rem);
}
.hxp-section { padding:clamp(5.625rem,7vw,8.125rem) 0 }
.hxp-hero-h {
  font-size:clamp(4rem,6.5vw,6.875rem);
  line-height:.9;
  margin-bottom:1.4rem;
}
.hxp-h,
.hxp-h-xl,
.hxp-cta-h {
  font-size:clamp(2.875rem,4.5vw,4.75rem);
  line-height:.92;
}
.hxp-card-h { font-size:clamp(1.5625rem,2vw,2.375rem); line-height:.95; margin:0 }
.hxp-micro { font-size:.75rem; line-height:1.3 }

#hx-hero {
  min-height:84vh;
  padding:clamp(7rem,9vw,9rem) 0 clamp(4.5rem,6vw,6rem);
  width:100%;
  background:
    radial-gradient(circle at 83% 36%,color-mix(in srgb,var(--color-lime) 10%,transparent),transparent 27%),
    radial-gradient(circle at 54% 100%,rgba(255,255,255,.035),transparent 34%),
    #000;
}
#hx-hero::before {
  content:"";
  position:absolute;
  top:16%;
  right:clamp(4rem,7vw,9rem);
  width:min(34vw,650px);
  aspect-ratio:1;
  border:1px solid color-mix(in srgb,var(--color-lime) 11%,transparent);
  border-radius:50%;
  box-shadow:
    0 0 0 clamp(3rem,6vw,7rem) color-mix(in srgb,var(--color-lime) 1.8%,transparent),
    0 0 0 1px rgba(255,255,255,.025);
  pointer-events:none;
}
#hx-hero::after {
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  right:clamp(5rem,12vw,15rem);
  width:1px;
  background:linear-gradient(to bottom,transparent,color-mix(in srgb,var(--color-lime) 10%,transparent),transparent);
  pointer-events:none;
}
#hx-hero .hxp-wrap {
  position:relative;
  z-index:1;
  width:calc(100% - clamp(48px,8vw,160px));
  max-width:1760px;
  margin-inline:auto;
  padding-inline:0;
}
.hxp-hero-copy { max-width:960px }
.hxp-hero-h { max-width:950px }
#hx-hero .hxp-hero-p { max-width:60ch }
#hx-hero .hxp-cta-row { width:100% }
.hxp-hero-p,
.hxp-what-text,
.hxp-training-text {
  font-size:clamp(1.0625rem,1.15vw,1.25rem);
  line-height:1.7;
}
.hxp-hero-p { max-width:48ch }
.hxp-what-text { max-width:58ch }

.hxp-data-item { padding:1rem 1.1rem .9rem }
.hxp-data-num { font-size:clamp(2rem,2.8vw,2.75rem) }
.hxp-data-label { display:block; font-size:.75rem }

.hxp-how-head { margin-bottom:2rem }
.hxp-how-sub { font-size:clamp(1.0625rem,1.1vw,1.2rem) }
.hxp-station {
  min-height:132px;
  padding:1.25rem 1.2rem;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}
.hxp-station-num { font-size:.75rem }

.hxp-feature { padding:1.25rem }
.hxp-feature-title {
  font-family:var(--display-font);
  font-size:clamp(1.5625rem,2vw,2rem);
  line-height:.95;
  letter-spacing:0;
  text-transform:none;
  margin-bottom:.55rem;
}
.hxp-feature-desc,
.hxp-who-card p { font-size:1.0625rem }

.hxp-who { grid-template-columns:repeat(4,1fr) }
.hxp-who-card {
  padding:1.5rem 1.35rem;
  background:rgba(255,255,255,.035);
  border-color:rgba(255,255,255,.1);
  border-radius:14px;
}
.hxp-who-card:hover {
  border-color:color-mix(in srgb,var(--color-lime) 35%,transparent);
  background:rgba(255,255,255,.05);
}
.hxp-who-card h4 {
  font-size:clamp(1.5625rem,2vw,2.375rem);
  line-height:.95;
  color:#fff;
}
#hx-final { padding:clamp(5.625rem,7vw,8.125rem) 0 }

@media (max-width:1100px) {
  .hxp-stations,
  .hxp-who { grid-template-columns:repeat(2,1fr) }
}

@media (max-width:767px) {
  .hxp-section,
  #hx-final { padding:4.5rem 0 }
  .hxp-split { grid-template-columns:1fr; gap:2.25rem }
  #hx-hero { min-height:82svh; padding:6.5rem 0 3.5rem }
  #hx-hero::before,
  #hx-hero::after { display:none }
  .hxp-data-row { grid-template-columns:repeat(3,1fr); gap:.5rem }
  .hxp-data-item { padding:.85rem .7rem }
  .hxp-data-num { font-size:2rem }
  .hxp-data-label { font-size:.75rem }
  .hxp-station { min-height:112px; padding:1rem }
}

/* HYROX visual accents and editorial imagery */
.hyrox-page {
  --hyrox-lime:var(--color-lime);
  --hyrox-lime-soft:color-mix(in srgb,var(--color-lime) 14%,transparent);
}
.hyrox-page .nav-links a:not(.nav-cta):hover,
.hyrox-page footer a:hover { color:var(--hyrox-lime) }
.hxp-h em,
.hxp-h-xl em {
  color:var(--hyrox-lime);
  font-style:normal;
}
.hxp-section .hxp-h::before,
.hxp-section .hxp-h-xl::before {
  content:"";
  display:block;
  width:42px;
  height:2px;
  margin-bottom:.8rem;
  background:var(--hyrox-lime);
  box-shadow:0 0 16px color-mix(in srgb,var(--color-lime) 35%,transparent);
}
#hx-what .hxp-h::before { display:none }
#hx-what .hyrox-title-accent { color:var(--color-lime) }
#hx-how .hxp-how-head .hxp-h::before { display:none }
#hyrox-stations .hxp-how-head .hxp-h::before { display:none }
#hx-who .hxp-h::before { display:none }
.hxp-btn-lime {
  color:var(--hyrox-lime);
  border:1px solid color-mix(in srgb,var(--color-lime) 55%,transparent);
  background:color-mix(in srgb,var(--color-lime) 2.5%,transparent);
}
.hxp-btn-lime:hover {
  color:#000;
  background:var(--hyrox-lime);
  box-shadow:0 0 24px color-mix(in srgb,var(--color-lime) 18%,transparent);
  transform:translateY(-2px);
}
.hyrox-page .hxp-hero-primary-cta {
  color:#000;
  border-color:#d7ff00;
  background:#d7ff00;
}
.hyrox-page .hxp-hero-primary-cta:hover {
  color:#000;
  border-color:#e2ff38;
  background:#e2ff38;
  box-shadow:0 10px 30px rgba(215,255,0,.22);
}
.hyrox-page .hxp-hero-secondary-cta {
  color:#fff;
  border-color:rgba(255,255,255,.68);
  background:transparent;
  box-shadow:none;
}
.hyrox-page .hxp-hero-secondary-cta:hover {
  color:#d7ff00;
  border-color:#d7ff00;
  background:transparent;
  box-shadow:0 0 22px rgba(215,255,0,.12);
}
body.hyrox-page .nav-cta,
body.hyrox-page nav#nav .nav-cta,
body.hyrox-page .site-footer__cta .btn {
  color:#050505!important;
  border-color:#d7ff00!important;
  background:#d7ff00!important;
}
body.hyrox-page .nav-cta:hover,
body.hyrox-page nav#nav .nav-cta:hover,
body.hyrox-page .site-footer__cta .btn:hover {
  color:#050505!important;
  border-color:#e2ff38!important;
  background:#e2ff38!important;
}

#hx-hero {
  background:#000;
  background-image:none;
}
.hyrox-hero-video {
  position:absolute;
  inset:0;
  z-index:0;
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
  background:#000;
  filter:brightness(1.18) contrast(1.06) saturate(1.08);
}
.hyrox-hero-overlay {
  position:absolute;
  inset:0;
  z-index:1;
  background:
    linear-gradient(to bottom,rgba(0,0,0,.34) 0%,rgba(0,0,0,.24) 36%,rgba(0,0,0,.5) 100%),
    radial-gradient(circle at 50% 58%,color-mix(in srgb,var(--color-lime) 10%,transparent),rgba(0,0,0,.34) 72%);
  pointer-events:none;
}
#hx-hero::before,
#hx-hero::after { display:none }
#hx-hero .hxp-wrap {
  position:relative;
  z-index:2;
}
#hx-hero .hxp-hero-grid {
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(360px,.9fr);
  gap:clamp(3rem,6vw,8rem);
  align-items:center;
  width:100%;
}
.hxp-hero-copy { position:relative; z-index:2 }
.hxp-hero-media {
  display:none;
  position:relative;
  z-index:1;
  min-height:clamp(500px,60vh,680px);
  margin-right:clamp(-3rem,-3vw,-1rem);
  overflow:hidden;
  filter:drop-shadow(0 0 42px color-mix(in srgb,var(--color-lime) 8%,transparent));
  -webkit-mask-image:linear-gradient(to right,transparent 0%,#000 18%,#000 82%,transparent 100%);
  mask-image:linear-gradient(to right,transparent 0%,#000 18%,#000 82%,transparent 100%);
}
.hxp-hero-media::after,
.hxp-training-media::after,
.hxp-final-media::after {
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
}
.hxp-hero-media::after {
  background:
    linear-gradient(to right,#000 0%,transparent 32%),
    linear-gradient(to bottom,#000 0%,transparent 18%,transparent 75%,#000 100%);
}
.hxp-hero-media img,
.hxp-training-media img,
.hxp-final-media img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.hxp-hero-media img { position:absolute; inset:0; object-position:53% center }

@media (prefers-reduced-motion:reduce) {
  .hyrox-hero-video {
    display:none;
  }
}

@media (max-width:767px) {
  body.hyrox-page #hx-hero .hxp-hero-h,
  body.hyrox-page #hx-hero .hxp-hero-h * {
    font-size:clamp(2.65rem,11.2vw,3.8rem);
  }
  body.hyrox-page #hx-hero .hxp-hero-h {
    max-width:min(100%,340px);
    overflow-wrap:normal;
  }
}

#hx-what {
  background:
    radial-gradient(circle at 82% 25%,color-mix(in srgb,var(--color-lime) 3.5%,transparent),transparent 26%),
    #0a0a0a;
}
.hxp-data-item {
  position:relative;
  overflow:hidden;
  transition:border-color .22s,background .22s,transform .22s;
}
.hxp-data-item::before,
.hxp-feature::before,
.hxp-who-card::before {
  content:"";
  position:absolute;
  top:0;
  left:0;
  width:38%;
  height:1px;
  background:var(--hyrox-lime);
  opacity:.55;
}
.hxp-data-item:hover {
  border-color:color-mix(in srgb,var(--color-lime) 34%,transparent);
  background:color-mix(in srgb,var(--color-lime) 4.5%,transparent);
  transform:translateY(-2px);
}

#hx-how {
  background:linear-gradient(145deg,#000 20%,#090a07 100%);
}
.hxp-station {
  position:relative;
  overflow:hidden;
}
.hxp-station::before {
  content:"";
  position:absolute;
  top:0;
  left:0;
  width:34%;
  height:1px;
  background:var(--hyrox-lime);
  opacity:.55;
  transition:width .25s,opacity .25s;
}
.hxp-station:hover {
  border-color:color-mix(in srgb,var(--color-lime) 42%,transparent);
  background:linear-gradient(145deg,color-mix(in srgb,var(--color-lime) 6.5%,transparent),rgba(255,255,255,.018));
  box-shadow:0 12px 30px rgba(0,0,0,.35),0 0 24px color-mix(in srgb,var(--color-lime) 3.5%,transparent);
}
.hxp-station:hover::before { width:100%; opacity:1 }
.hxp-station-num { color:var(--hyrox-lime) }

#hx-training {
  background:
    radial-gradient(circle at 12% 55%,color-mix(in srgb,var(--color-lime) 4%,transparent),transparent 25%),
    #0c0c0b;
}
.hxp-training-layout { align-items:stretch }
.hxp-training-head { display:flex; flex-direction:column; gap:2rem }
.hxp-training-media {
  position:relative;
  min-height:310px;
  margin-top:auto;
  overflow:hidden;
  border-left:2px solid var(--hyrox-lime);
  border-radius:0 16px 16px 0;
  box-shadow:0 18px 40px rgba(0,0,0,.35);
}
.hxp-training-media::after {
  background:linear-gradient(to bottom,rgba(0,0,0,.05),rgba(0,0,0,.55));
}
.hxp-training-media img { position:absolute; inset:0; object-position:center 42% }
.hxp-feature {
  position:relative;
  overflow:hidden;
  transition:border-color .22s,background .22s,transform .22s;
}
.hxp-feature:hover {
  border-color:color-mix(in srgb,var(--color-lime) 32%,transparent);
  background:color-mix(in srgb,var(--color-lime) 4%,transparent);
  transform:translateY(-2px);
}

#hx-who {
  background:linear-gradient(180deg,#000,#070807);
}
.hxp-who-card { position:relative; overflow:hidden }
.hxp-who-card:hover h4 { color:var(--hyrox-lime) }

#hx-final {
  position:relative;
  overflow:hidden;
  background:
    url("../img/photo_2022-01-06_16-30-50.jpg") center / cover fixed;
}
#hx-final::before {
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  background:
    linear-gradient(180deg,rgba(0,0,0,.7) 0%,rgba(0,0,0,.78) 55%,rgba(0,0,0,.88) 100%),
    radial-gradient(circle at 50% 15%,color-mix(in srgb,var(--color-lime) 6%,transparent),transparent 34%);
  pointer-events:none;
}
#hx-final > * {
  position:relative;
  z-index:1;
}
.hxp-final-media {
  position:relative;
  height:clamp(260px,30vw,430px);
  margin:0 auto clamp(4rem,6vw,6rem);
  overflow:hidden;
  border-top:1px solid color-mix(in srgb,var(--color-lime) 50%,transparent);
  border-radius:18px;
  -webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 62%,transparent 100%);
  mask-image:linear-gradient(to bottom,#000 0%,#000 62%,transparent 100%);
}
.hxp-final-media::after {
  background:linear-gradient(to bottom,rgba(0,0,0,.05),#000 100%);
}
.hxp-final-media img { position:absolute; inset:0; object-position:center 52% }

@media (max-width:1100px) {
  #hx-hero .hxp-hero-grid {
    grid-template-columns:minmax(0,1fr) minmax(300px,.72fr);
    gap:2rem;
  }
  .hxp-hero-media { min-height:520px; margin-right:-2rem }
}

@media (max-width:767px) {
  #hx-hero { min-height:auto }
  #hx-hero .hxp-hero-grid { grid-template-columns:1fr; gap:2rem }
  .hxp-hero-media {
    min-height:250px;
    height:34vh;
    margin:0 -1.5rem -3.5rem;
    -webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 68%,transparent 100%);
    mask-image:linear-gradient(to bottom,#000 0%,#000 68%,transparent 100%);
  }
  .hxp-hero-media::after {
    background:linear-gradient(to bottom,rgba(0,0,0,.1),#000 100%);
  }
  .hxp-hero-media img { object-position:center 42% }
  .hxp-btn-lime { max-width:320px; text-align:center }
  .hxp-section .hxp-h::before,
  .hxp-section .hxp-h-xl::before { width:32px; margin-bottom:.65rem }
  .hxp-training-head { gap:1.4rem }
  .hxp-training-media { min-height:220px; margin-bottom:.75rem }
  .hxp-final-media {
    height:230px;
    margin-bottom:3rem;
    border-radius:12px;
  }
}

/* HYROX shared horizontal grid - final layout authority */
.hyrox-container,
#hx-hero .hyrox-container {
  width:calc(100% - clamp(40px,8vw,160px));
  max-width:1680px;
  margin-inline:auto;
  padding-inline:0;
}
#hx-what .hxp-split {
  grid-template-columns:minmax(280px,.75fr) minmax(0,1.25fr);
  gap:clamp(3.75rem,8vw,9.375rem);
}
.hxp-stations,
.hxp-who {
  grid-template-columns:repeat(4,minmax(0,1fr));
}
.hxp-features { grid-template-columns:repeat(2,minmax(0,1fr)) }
.hxp-hero-media { margin-right:0 }

@media (min-width:1024px) {
  .home-page .home-path--hyrox .home-path-copy {
    text-align:left;
  }
  .home-page .home-path--hyrox .home-path-kicker,
  .home-page .home-path--hyrox h2,
  .home-page .home-path--hyrox p,
  .home-page .home-path--hyrox .home-path-cta {
    margin-left:0;
    margin-right:0;
    text-align:left;
  }
  .hyrox-page .hxp-hero-copy,
  .hyrox-page .hxp-what-heading,
  .hyrox-page .hxp-how-head,
  .hyrox-page .hxp-training-head,
  .hyrox-page #hx-who > .hyrox-container > .hxp-eyebrow,
  .hyrox-page #hx-who > .hyrox-container > .hxp-h,
  .hyrox-page #hx-final .hxp-cta-h {
    max-width:min(100%,1300px);
    margin-left:auto;
    margin-right:auto;
    text-align:center;
  }
  .hyrox-page .hxp-hero-h,
  .hyrox-page .hxp-h,
  .hyrox-page .hxp-h-xl,
  .hyrox-page .hxp-cta-h {
    max-width:min(100%,1300px);
    margin-left:auto;
    margin-right:auto;
    text-align:center;
  }
  .hyrox-page .hxp-eyebrow {
    justify-content:center;
    margin-left:auto;
    margin-right:auto;
    text-align:center;
  }
  .hyrox-page #hx-what .hxp-h {
    width:min(1200px,92vw);
    max-width:none;
    white-space:nowrap;
  }
  .hyrox-page #hx-what .hxp-h br {
    display:none;
  }
  .hyrox-page .hxp-hero-p,
  .hyrox-page .hxp-how-sub,
  .hyrox-page .hxp-what-claim,
  .hyrox-page #hx-training .hxp-training-text,
  .hyrox-page #hx-final .hxp-micro {
    margin-left:auto;
    margin-right:auto;
    text-align:center;
  }
  .hyrox-page .hxp-cta-row,
  .hyrox-page .hxp-training-actions {
    justify-content:center;
  }
  .hyrox-page #hx-hero .hxp-hero-grid,
  .hyrox-page #hx-what .hxp-split,
  .hyrox-page #hx-training .hxp-training-layout {
    grid-template-columns:1fr;
    justify-items:center;
  }
  .hyrox-page #hx-hero .hxp-hero-copy,
  .hyrox-page #hx-what .hxp-what-heading,
  .hyrox-page #hx-what .hxp-what-content,
  .hyrox-page #hx-training .hxp-training-head,
  .hyrox-page #hx-training .hxp-training-content {
    grid-column:1 / -1;
    width:100%;
  }
  .hyrox-page #hx-what .hxp-what-heading::after {
    margin-left:auto;
    margin-right:auto;
    background:linear-gradient(to right,transparent,color-mix(in srgb,var(--color-lime) 55%,transparent),transparent);
  }
  .hyrox-page #hx-what .hxp-what-content,
  .hyrox-page #hx-training .hxp-training-content {
    max-width:min(100%,1200px);
    margin-left:auto;
    margin-right:auto;
  }
  .hyrox-page #hx-what .hxp-what-text {
    max-width:760px;
    margin-left:auto;
    margin-right:auto;
    text-align:center;
  }
  .hyrox-page #hx-training .hxp-training-media {
    width:min(100%,980px);
    margin-left:auto;
    margin-right:auto;
  }
}

@media (max-width:1100px) {
  #hx-what .hxp-split { gap:clamp(2.5rem,6vw,4.5rem) }
  .hxp-stations,
  .hxp-who { grid-template-columns:repeat(2,minmax(0,1fr)) }
  .hxp-hero-media { margin-right:0 }
}

@media (max-width:767px) {
  .hyrox-container,
  #hx-hero .hyrox-container {
    width:calc(100% - 40px);
    max-width:none;
  }
  #hx-what .hxp-split { grid-template-columns:1fr; gap:2.25rem }
  .hxp-stations,
  .hxp-who,
  .hxp-features { grid-template-columns:1fr }
  .hxp-hero-media { margin:0 0 -3.5rem }
}

/* HYROX station visual cards */
#hx-how .hxp-stations {
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:clamp(.8rem,1.2vw,1.25rem);
}
#hx-how .hxp-station {
    min-height:0;
    padding:0;
    display:block;
  background:#050505;
  border:1px solid rgba(255,255,255,.11);
  border-radius:14px;
    overflow:hidden;
    transform:none;
    transition:border-color .25s,box-shadow .25s,transform .25s;
  }
#hx-how .hxp-station::before { display:none }
#hx-how .hxp-station:hover {
  border-color:color-mix(in srgb,var(--color-lime) 55%,transparent);
  background:#050505;
  box-shadow:0 18px 38px rgba(0,0,0,.42),0 0 24px color-mix(in srgb,var(--color-lime) 5.5%,transparent);
  transform:translateY(-4px);
}
.hxp-station-media {
  position:relative;
  height:clamp(180px,15vw,260px);
  overflow:hidden;
  background:
    linear-gradient(135deg,color-mix(in srgb,var(--color-lime) 8%,transparent),transparent 36%),
    repeating-linear-gradient(135deg,transparent 0 28px,rgba(255,255,255,.025) 28px 29px),
    #10110e;
}
.hxp-station-media::after {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(to bottom,rgba(0,0,0,.06) 28%,rgba(0,0,0,.82) 100%);
  pointer-events:none;
}
.hxp-station-media img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  filter:saturate(.72) contrast(1.05);
  transition:transform .45s cubic-bezier(.16,1,.3,1),filter .3s;
}
#hx-how .hxp-station:hover .hxp-station-media img {
  transform:scale(1.045);
  filter:saturate(.9) contrast(1.08);
}
.hxp-station--placeholder .hxp-station-media {
  display:grid;
  place-items:center;
}
.hxp-station--placeholder .hxp-station-media::before {
  content:"";
  width:clamp(72px,7vw,110px);
  aspect-ratio:1;
  border:1px solid color-mix(in srgb,var(--color-lime) 25%,transparent);
  border-radius:50%;
  box-shadow:0 0 0 24px color-mix(in srgb,var(--color-lime) 1.8%,transparent),0 0 34px color-mix(in srgb,var(--color-lime) 4.5%,transparent);
}
.hxp-station--placeholder .hxp-station-media span {
    position:absolute;
    z-index:1;
    max-width:80%;
    font:400 clamp(1.3rem,1.8vw,2rem)/.95 var(--display-font);
    letter-spacing:.04em;
    text-align:center;
    text-transform:uppercase;
    color:rgba(255,255,255,.3);
  }
#hyrox-stations {
  background:linear-gradient(145deg,#000 20%,#090a07 100%);
}
.hyrox-stations-track { display:contents }
.hyrox-mobile-controls { display:none }
#hyrox-stations .hxp-station::before {
  display:none;
}
.hxp-station-copy {
    position:relative;
    min-height:130px;
  padding:1.15rem 1.15rem 1.3rem;
  border-top:1px solid color-mix(in srgb,var(--color-lime) 18%,transparent);
}
.hxp-station-meta {
  display:flex;
  align-items:center;
  gap:.65rem;
  margin-bottom:.85rem;
}
#hx-how .hxp-station-num {
  display:inline-grid;
  place-items:center;
  min-width:34px;
  height:26px;
  margin:0;
  padding:0 .45rem;
  color:#000;
  background:var(--hyrox-lime);
  font:700 .75rem/1 var(--body-font);
  letter-spacing:.08em;
}
.hxp-station-distance {
  font:600 .72rem/1 var(--body-font);
  letter-spacing:.14em;
  text-transform:uppercase;
  color:rgba(255,255,255,.52);
}
#hx-how .hxp-card-h {
  font-size:clamp(1.75rem,2.25vw,2.7rem);
  line-height:.9;
  text-transform:uppercase;
}

@media (max-width:1100px) {
  #hx-how .hxp-stations { grid-template-columns:repeat(2,minmax(0,1fr)) }
  .hxp-station-media { height:clamp(210px,28vw,300px) }
}

@media (max-width:767px) {
  #hx-how .hxp-stations { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.65rem }
  .hxp-station-media { height:150px }
  .hxp-station-copy { min-height:112px; padding:.85rem .8rem 1rem }
  .hxp-station-meta { gap:.45rem; margin-bottom:.7rem }
  #hx-how .hxp-station-num { min-width:30px; height:23px; font-size:.68rem }
  .hxp-station-distance { font-size:.62rem; letter-spacing:.08em }
  .hxp-station--placeholder .hxp-station-media span { font-size:1.2rem }
}

@media (max-width:420px) {
  #hx-how .hxp-stations { grid-template-columns:1fr }
  .hxp-station-media { height:210px }
  .hxp-station-copy { min-height:0 }
}

/* HYROX format editorial intro */
#hx-what {
  position:relative;
  overflow:hidden;
  padding:clamp(4.75rem,5vw,5.75rem) 0;
  background:
    radial-gradient(circle at 86% 48%,color-mix(in srgb,var(--color-lime) 7.5%,transparent),transparent 27%),
    linear-gradient(135deg,#0d0e0c 0%,#080808 52%,#030303 100%);
}
#hx-what::after {
  content:"";
  position:absolute;
  right:-10%;
  bottom:-82%;
  width:min(40vw,640px);
  aspect-ratio:1;
  border:1px solid color-mix(in srgb,var(--color-lime) 8%,transparent);
  border-radius:50%;
  box-shadow:0 0 0 70px color-mix(in srgb,var(--color-lime) 1.2%,transparent);
  pointer-events:none;
}
#hx-what .hyrox-container { position:relative; z-index:1 }
#hx-what .hxp-split {
  grid-template-columns:minmax(280px,.36fr) minmax(0,.64fr);
  gap:clamp(2.75rem,4vw,5rem);
  align-items:start;
}
#hx-what .hxp-split > *,
.hxp-what-content,
#hx-what .hxp-data-row { min-width:0 }
.hxp-what-heading {
  position:relative;
  padding-top:.15rem;
}
.hxp-what-claim {
  max-width:28ch;
  margin-top:clamp(1.5rem,2.2vw,2rem);
  color:rgba(255,255,255,.82);
  font:400 clamp(1.35rem,1.8vw,2rem)/1.02 var(--display-font);
  letter-spacing:.015em;
  text-transform:uppercase;
}
.hxp-what-claim strong {
  color:var(--hyrox-lime);
  font:inherit;
  white-space:nowrap;
}
.hxp-what-heading::after {
  content:"";
  display:block;
  width:min(100%,300px);
  height:1px;
  margin-top:1.5rem;
  background:linear-gradient(to right,color-mix(in srgb,var(--color-lime) 55%,transparent),transparent);
}
.hxp-what-content { max-width:none }
#hx-what .hxp-what-text {
  max-width:58ch;
  margin-bottom:clamp(1.75rem,2.5vw,2.25rem);
  color:rgba(255,255,255,.78);
  line-height:1.72;
}
#hx-what .hxp-what-text strong {
  color:var(--hyrox-lime);
  font-weight:600;
}
#hx-what .hxp-data-row {
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(.75rem,1vw,1rem);
}
#hx-what .hxp-data-item {
  position:relative;
  min-height:clamp(170px,14vw,220px);
  padding:clamp(1.75rem,3vw,2.75rem);
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  background:
    radial-gradient(circle at 82% 18%,color-mix(in srgb,var(--color-lime) 9%,transparent),transparent 34%),
    linear-gradient(145deg,rgba(255,255,255,.08),rgba(255,255,255,.025));
  border-color:rgba(255,255,255,.14);
  border-radius:12px;
  transition:border-color .25s,background .25s,box-shadow .25s,transform .25s;
}
#hx-what .hxp-data-item::before {
  content:"";
  position:absolute;
  top:-1px;
  left:1.35rem;
  width:42px;
  height:2px;
  background:var(--hyrox-lime);
  box-shadow:0 0 14px color-mix(in srgb,var(--color-lime) 24%,transparent);
}
#hx-what .hxp-data-item:hover {
  border-color:color-mix(in srgb,var(--color-lime) 42%,transparent);
  background:linear-gradient(145deg,color-mix(in srgb,var(--color-lime) 5.5%,transparent),rgba(255,255,255,.02));
  box-shadow:0 12px 30px color-mix(in srgb,var(--color-lime) 7%,transparent);
  transform:translateY(-2px);
}
#hx-what .hxp-data-num {
  font-size:clamp(4.5rem,6vw,7.4rem);
  line-height:.85;
  margin-bottom:1.1rem;
  letter-spacing:-.03em;
  text-shadow:0 0 24px color-mix(in srgb,var(--color-lime) 10%,transparent);
}
#hx-what .hxp-data-label {
  margin:0 0 .35rem;
  color:#fff;
  font-size:clamp(1rem,1.2vw,1.35rem);
  line-height:1;
}
#hx-what .hxp-data-sub {
  font:700 clamp(.78rem,.9vw,.95rem)/1.25 var(--body-font);
  letter-spacing:.12em;
  text-transform:uppercase;
  color:rgba(255,255,255,.58);
}
.hxp-what-link {
  display:inline-flex;
  align-items:center;
  gap:.65rem;
  min-height:48px;
  margin-top:clamp(1.5rem,2vw,2rem);
  padding:.85rem 1.25rem;
  color:var(--hyrox-lime);
  border:1px solid var(--hyrox-lime);
  border-radius:999px;
  background:transparent;
  font:700 .75rem/1 var(--body-font);
  letter-spacing:.1em;
  text-transform:uppercase;
  text-decoration:none;
  transition:color .2s,background .2s,box-shadow .2s,transform .2s;
}
.hxp-what-link span {
  color:var(--hyrox-lime);
  font-size:1rem;
}
.hxp-what-link:hover {
  color:#000;
  background:var(--hyrox-lime);
  box-shadow:0 10px 28px color-mix(in srgb,var(--color-lime) 16%,transparent);
  transform:translateY(-2px);
}
.hxp-what-link:hover span { color:#000 }

@media (max-width:1100px) {
  #hx-what .hxp-split {
    grid-template-columns:minmax(230px,.36fr) minmax(0,.64fr);
    gap:clamp(2rem,4vw,3.5rem);
  }
  #hx-what .hxp-data-item { padding:1rem }
}

@media (max-width:767px) {
  #hx-what { padding:3.75rem 0 }
  #hx-what .hxp-split { grid-template-columns:1fr; gap:1.8rem }
  .hxp-what-heading::after { width:120px; margin-top:1rem }
  .hxp-what-claim { margin-top:1.35rem; font-size:clamp(1.25rem,6vw,1.6rem) }
  #hx-what .hxp-what-text { margin-bottom:1.35rem }
  #hx-what .hxp-data-row { grid-template-columns:1fr; gap:.6rem }
  #hx-what .hxp-data-item { min-height:126px; padding:1.2rem 1.25rem }
  #hx-what .hxp-data-num { font-size:3.45rem; margin-bottom:.7rem }
  .hxp-what-link { width:100%; justify-content:center; margin-top:1.2rem }
}

/* HYROX training editorial section */
#hx-training.hyrox-race-prep-section {
  position:relative;
  isolation:isolate;
  overflow:hidden;
  background:#020302;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  /* sostituire con immagine reale: background-image:url('../images/nome-file.jpg'); */
}
#hx-training.hyrox-race-prep-section::before {
  content:"";
  position:absolute;
  inset:0;
  z-index:-2;
  background-image:inherit;
  background-size:cover;
  background-position:center;
}
#hx-training.hyrox-race-prep-section::after {
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:
    linear-gradient(180deg,rgba(0,0,0,.76) 0%,rgba(0,0,0,.68) 48%,rgba(0,0,0,.82) 100%),
    radial-gradient(circle at 50% 42%,color-mix(in srgb,var(--color-lime) 10%,transparent),transparent 42%);
}
#hx-training .hxp-training-layout {
  grid-template-columns:1fr;
  gap:clamp(2.25rem,4vw,3.5rem);
  align-items:center;
}
#hx-training .hxp-training-head {
  max-width:min(1180px,100%);
  margin-inline:auto;
  align-self:center;
  gap:0;
  text-align:center;
}
#hx-training .hxp-training-head .hxp-h-xl::before { display:none }
#hx-training .hxp-training-head .hxp-h-xl {
  max-width:min(1180px,100%);
  margin:.8rem auto 0;
  text-align:center;
}
#hx-training .hxp-training-media {
  display:none;
}
#hx-training .hxp-training-media::after {
  z-index:1;
  background:linear-gradient(180deg,rgba(0,0,0,.04) 45%,rgba(0,0,0,.5) 100%);
}
#hx-training .hxp-training-media img {
  object-position:center center;
  transition:transform .65s cubic-bezier(.16,1,.3,1);
}
#hx-training .hxp-training-media:hover img { transform:scale(1.025) }
.hxp-training-badge {
  position:absolute;
  top:1rem;
  left:1rem;
  z-index:2;
  padding:.55rem .7rem;
  color:var(--hyrox-lime);
  border:1px solid color-mix(in srgb,var(--color-lime) 32%,transparent);
  border-radius:999px;
  background:rgba(0,0,0,.64);
  backdrop-filter:blur(8px);
  font:700 .62rem/1 var(--body-font);
  letter-spacing:.09em;
  text-transform:uppercase;
}
.hxp-training-content {
  min-width:0;
  display:flex;
  flex-direction:column;
  max-width:min(1180px,100%);
  margin-inline:auto;
}
#hx-training .hxp-training-text {
  max-width:62ch;
  margin:0 auto clamp(1.8rem,2.8vw,2.6rem);
  color:rgba(255,255,255,.82);
  text-align:center;
  line-height:1.72;
}
#hx-training .hxp-features {
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(1.4rem,2vw,2.125rem);
  max-width:1120px;
  margin:clamp(2rem,3.5vw,3.5rem) auto 0;
}
#hx-training .hxp-feature {
  position:relative;
  min-height:clamp(210px,18vw,255px);
  padding:clamp(1.75rem,3vw,2.625rem);
  overflow:hidden;
  border:1px solid color-mix(in srgb,var(--color-lime) 22%,transparent);
  border-radius:22px;
  background:
    radial-gradient(circle at 85% 10%,color-mix(in srgb,var(--color-lime) 12%,transparent),transparent 32%),
    linear-gradient(135deg,rgba(255,255,255,.07),rgba(255,255,255,.02));
  box-shadow:0 24px 60px rgba(0,0,0,.28);
  transition:border-color .25s,box-shadow .25s,transform .25s,background .25s;
}
#hx-training .hxp-feature::before {
  width:44px;
  height:2px;
  opacity:1;
  background:var(--hyrox-lime);
  box-shadow:0 0 18px color-mix(in srgb,var(--color-lime) 34%,transparent);
}
#hx-training .hxp-feature::after {
  content:attr(data-number);
  position:absolute;
  right:18px;
  bottom:-14px;
  z-index:0;
  color:color-mix(in srgb,var(--color-lime) 8%,transparent);
  font-family:var(--display-font);
  font-size:clamp(5.125rem,7vw,8.75rem);
  line-height:1;
  pointer-events:none;
}
#hx-training .hxp-feature:hover {
  border-color:color-mix(in srgb,var(--color-lime) 55%,transparent);
  box-shadow:0 28px 80px color-mix(in srgb,var(--color-lime) 8%,rgba(0,0,0,.22));
  transform:translateY(-4px);
}
.hxp-feature-num {
  position:relative;
  z-index:1;
  display:block;
  margin-bottom:1rem;
  color:var(--hyrox-lime);
  font:700 .68rem/1 var(--body-font);
  letter-spacing:.14em;
}
#hx-training .hxp-feature-title {
  position:relative;
  z-index:1;
  margin-bottom:.65rem;
  color:#fff;
  font-size:clamp(1.5rem,1.8vw,2rem);
  line-height:.95;
}
#hx-training .hxp-feature-desc {
  position:relative;
  z-index:1;
  max-width:38ch;
  color:rgba(255,255,255,.58);
  font-size:clamp(.92rem,1vw,1.04rem);
  line-height:1.58;
}
.hxp-training-actions {
  justify-content:center;
  display:flex;
  flex-wrap:wrap;
  gap:.75rem;
  margin-top:auto;
  padding-top:clamp(1.75rem,2.5vw,2.5rem);
}
.hxp-training-cta-primary {
  color:#000;
  border-color:var(--hyrox-lime);
  background:var(--hyrox-lime);
}
.hxp-training-cta-primary:hover {
  color:#000;
  border-color:#e7ff54;
  background:#e7ff54;
  box-shadow:0 10px 30px color-mix(in srgb,var(--color-lime) 18%,transparent);
}
.hxp-training-cta-secondary {
  color:#fff;
  border-color:rgba(255,255,255,.42);
  background:transparent;
}
.hxp-training-cta-secondary:hover {
  color:#000;
  border-color:var(--hyrox-lime);
  background:var(--hyrox-lime);
}
#hx-final .hxp-final-primary-cta {
  min-height:54px;
  padding:1.05rem 1.8rem;
  color:#050505;
  border:1px solid #d7ff00;
  background:#d7ff00;
  box-shadow:0 12px 30px rgba(215,255,0,.16);
  font-weight:700;
}
#hx-final .hxp-final-primary-cta:hover {
  color:#050505;
  border-color:#e4ff3d;
  background:#e4ff3d;
  box-shadow:0 14px 36px rgba(215,255,0,.25);
  transform:translateY(-2px);
}
#hx-final .hxp-micro {
  max-width:100%;
  margin-top:18px;
  color:rgba(255,255,255,.68);
  font-size:.75rem;
  line-height:1.5;
  letter-spacing:.12em;
  text-align:center;
}

@media (max-width:1100px) {
  #hx-training .hxp-training-layout {
    grid-template-columns:1fr;
    gap:clamp(2.25rem,4vw,3.5rem);
  }
  #hx-training .hxp-features { gap:1.1rem 1.5rem }
  #hx-training .hxp-feature { min-height:190px }
}

@media (max-width:767px) {
  #hx-training .hxp-training-layout { grid-template-columns:1fr; gap:2rem }
  #hx-training .hxp-training-head .hxp-h-xl { margin-top:.75rem }
  #hx-training .hxp-training-media {
    min-height:0;
    height:clamp(250px,70vw,340px);
    margin:1.25rem 0 0;
  }
  .hxp-training-badge {
    top:.75rem;
    left:.75rem;
    max-width:calc(100% - 1.5rem);
    white-space:normal;
  }
  #hx-training .hxp-training-text { margin-bottom:1.35rem }
  #hx-training .hxp-features { grid-template-columns:1fr; gap:1rem; margin-top:1.5rem }
  #hx-training .hxp-feature { min-height:0; padding:1.35rem; border-radius:18px; transform:none!important }
  #hx-training .hxp-feature::after { font-size:4.75rem; right:12px; bottom:-10px }
  .hxp-training-actions { display:grid; grid-template-columns:1fr; padding-top:1.5rem }
  .hxp-training-actions .btn { width:100%; justify-content:center; text-align:center }
  #hx-final .hxp-micro { min-width:0; font-size:.6875rem; white-space:normal }
}

/* CROSSFit page */
.cf-page { --cf-red:#BC162F; --cf-ink:#090909; --cf-soft:#f3f3f1; background:#fff; color:var(--cf-ink); cursor:auto }
.cf-page * { cursor:auto }
.cf-container { width:calc(100% - clamp(40px,8vw,160px)); max-width:1680px; margin-inline:auto }
.cf-page .cf-nav--light { background:rgba(255,255,255,.9); border-bottom:1px solid rgba(0,0,0,.07) }
.cf-page .cf-nav--light:not(.solid) { background:transparent; border-bottom:0; box-shadow:none; backdrop-filter:none }
.cf-page .cf-nav--light .nav-logo-img { filter:none }
.cf-page .cf-nav--light .nav-links a { color:rgba(255,255,255,.82) }
.cf-page .cf-nav--light.solid { background:rgba(0,0,0,.92); border-bottom:1px solid rgba(255,255,255,.08); box-shadow:none }
.cf-page .cf-nav--dark { background:rgba(0,0,0,.88); border-bottom:1px solid rgba(255,255,255,.08) }
.cf-page .cf-nav--dark .nav-logo-img { filter:none }
.cf-page .cf-nav--dark .nav-links a { color:rgba(255,255,255,.58) }
.cf-page .nav-links a:hover { color:var(--cf-red) }
.cf-page .nav-cta { color:#fff!important }
.cf-page em { color:var(--cf-red); font-style:normal }
.cf-kicker { display:flex; align-items:center; gap:.65rem; margin-bottom:1rem; color:var(--cf-red); font:700 .75rem/1 var(--body-font); letter-spacing:.12em; text-transform:uppercase }
.cf-kicker::before { content:""; width:28px; height:2px; background:currentColor }
.cf-kicker--dark { color:#fff }
.cf-btn { display:inline-flex; align-items:center; justify-content:center; min-height:50px; padding:0 1.8rem; border-radius:999px; color:#111; border:1px solid #111; font:700 .75rem/1 var(--body-font); letter-spacing:.06em; text-transform:uppercase; text-decoration:none; transition:.25s }
.cf-btn:hover { transform:translateY(-2px) }
.cf-btn--red { color:#fff; background:var(--cf-red); border-color:var(--cf-red) }
.cf-btn--outline:hover { color:#fff; background:#111 }
.cf-btn--black { color:#fff; background:#000; border-color:#000 }
.cf-actions { display:flex; flex-wrap:wrap; gap:.8rem; margin-top:2rem }
.cf-section { padding:clamp(5.625rem,7vw,8.125rem) 0 }
.cf-section h2 { font:400 clamp(3rem,5vw,5.25rem)/.9 var(--display-font); text-transform:uppercase }
.cf-section-head { max-width:900px; margin-bottom:clamp(2.5rem,5vw,5rem) }
.cf-section-head p { max-width:62ch; margin-top:1.4rem; color:#555; font:400 clamp(1.0625rem,1.15vw,1.3rem)/1.7 var(--body-font) }

.cf-hero { position:relative; min-height:100svh; padding:clamp(7rem,10vw,10rem) 0 4rem; display:flex; align-items:center; overflow:hidden; color:#fff; background:#000 }
.crossfit-hero-video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; display:block; z-index:0; filter:brightness(.95) contrast(1.05) saturate(1.05) }
.crossfit-hero-overlay { position:absolute; inset:0; z-index:1; background:linear-gradient(to bottom,rgba(0,0,0,.2) 0%,rgba(0,0,0,.28) 45%,rgba(0,0,0,.45) 100%),radial-gradient(circle at 50% 56%,rgba(188,22,47,.07),rgba(0,0,0,.18) 70%) }
.crossfit-hero-content { position:relative; z-index:2; color:#fff }
.cf-hero-grid { display:block }
.cf-hero-copy { max-width:min(900px,68vw) }
.cf-hero .cf-kicker { color:#fff; text-shadow:0 2px 12px rgba(0,0,0,.45) }
.cf-hero .cf-kicker::before { color:var(--cf-red); background:var(--cf-red) }
.cf-hero h1 { max-width:900px; color:#fff; font:400 clamp(4rem,7vw,7.375rem)/.88 var(--display-font); text-transform:uppercase }
.cf-hero h1 em { color:var(--cf-red) }
.cf-hero-copy p { max-width:52ch; margin-top:1.5rem; color:rgba(255,255,255,.78); font:400 clamp(1.0625rem,1.2vw,1.3rem)/1.65 var(--body-font) }

.cf-photo-story { background:#000; color:#fff }
.cf-photo-sticky { position:relative; height:auto; overflow:hidden; display:flex; flex-direction:column; padding-top:6.5rem }
.cf-photo-intro { flex:0 0 auto; display:grid; grid-template-columns:1fr 1fr; gap:2rem; align-items:end; margin-bottom:1.5rem }
.cf-photo-intro h2 { font:400 clamp(3rem,5vw,5.25rem)/.9 var(--display-font) }
.cf-photo-intro p { max-width:50ch; color:rgba(255,255,255,.62); font:400 1.1rem/1.6 var(--body-font) }
.cf-photo-viewport { flex:1; overflow:visible }
.cf-photo-track { height:100%; display:flex; gap:1rem; padding-left:max(calc((100vw - 1680px)/2),4vw); padding-right:8vw; will-change:transform }
.cf-photo-panel { position:relative; flex:0 0 min(72vw,1180px); height:100%; overflow:hidden; background:#171717 }
.cf-photo-panel::after { content:""; position:absolute; inset:0; background:linear-gradient(to top,rgba(0,0,0,.85),transparent 58%) }
.cf-photo-panel img { width:100%; height:100%; object-fit:cover; transition:transform .8s cubic-bezier(.16,1,.3,1) }
.cf-photo-panel:hover img { transform:scale(1.035) }
.cf-panel-copy { position:absolute; z-index:2; left:clamp(1.5rem,4vw,4rem); bottom:clamp(1.5rem,4vw,4rem) }
.cf-panel-copy span { color:var(--cf-red); font:700 .75rem/1 var(--body-font); letter-spacing:.12em }
.cf-panel-copy h3 { margin-top:.5rem; font:400 clamp(4rem,9vw,9rem)/.82 var(--display-font) }
.cf-panel-copy p { color:rgba(255,255,255,.68); font:400 1rem/1.5 var(--body-font) }
.cf-video-placeholder { display:grid; place-items:center; width:100%; height:100%; padding:2rem; color:rgba(255,255,255,.3); background:radial-gradient(circle,rgba(188,22,47,.12),transparent 45%),repeating-linear-gradient(135deg,#121212 0 32px,#151515 32px 33px); font:600 .75rem/1.4 var(--body-font); letter-spacing:.12em; text-align:center; text-transform:uppercase }
.cf-photo-hint { position:absolute; right:4vw; bottom:1rem; color:rgba(255,255,255,.48); font:600 .68rem/1 var(--body-font); letter-spacing:.1em; text-transform:uppercase }
.cf-photo-hint span { color:var(--cf-red) }

.cf-timeline span,.cf-profile-grid span { color:var(--cf-red); font:700 .8rem/1 var(--body-font); letter-spacing:.1em }
.cf-timeline h3,.cf-profile-grid h3 { font:400 clamp(1.75rem,2.5vw,2.75rem)/.95 var(--display-font); text-transform:uppercase }
.cf-timeline p,.cf-profile-grid p { color:#666; font:400 1rem/1.6 var(--body-font) }

.cf-class,.cf-coaching { background:var(--cf-soft) }
.cf-timeline { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid #ccc }
.cf-timeline article { position:relative; padding:2rem 1.3rem 0 0; border-top:3px solid transparent }
.cf-timeline article::before { content:""; position:absolute; width:10px; height:10px; top:-6px; left:0; border-radius:50%; background:var(--cf-red) }
.cf-timeline h3 { margin:.8rem 0 }

.cf-start { background:#000; color:#fff }
.cf-start .cf-section-head p { color:rgba(255,255,255,.62) }
.cf-profile-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin-bottom:2rem }
.cf-profile-grid article { padding:1.5rem; border:1px solid rgba(255,255,255,.12); background:rgba(255,255,255,.035) }
.cf-profile-grid h3 { margin:1rem 0; color:#fff }
.cf-profile-grid p { color:rgba(255,255,255,.55) }

.cf-coaching-grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(3rem,7vw,8rem); align-items:center }
.cf-coach-photo {
  min-height:560px;
  height:100%;
  overflow:hidden;
  border-radius:18px;
}
.cf-coach-photo img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
  filter:contrast(1.03);
}
.cf-coaching h2 { font:400 clamp(3rem,5vw,5.25rem)/.9 var(--display-font) }
.cf-coaching p { margin-top:1.5rem; color:#555; font:400 1.15rem/1.7 var(--body-font) }
.cf-coach-points { display:grid; grid-template-columns:1fr 1fr; gap:.6rem; margin-top:2rem }
.cf-coach-points span { padding:1rem; border:1px solid #d5d5d2; color:#222; font:600 .75rem/1 var(--body-font); letter-spacing:.06em; text-transform:uppercase }

.cf-community { background:#fff; overflow:hidden }
.cf-testimonial-shell { overflow:hidden }
.cf-testimonial-track { display:flex; transition:transform .45s cubic-bezier(.16,1,.3,1) }
.cf-testimonial { flex:0 0 100%; display:grid; grid-template-columns:1.25fr .75fr; gap:2rem; align-items:end }
.cf-video-placeholder { min-height:520px; color:#777; background:repeating-linear-gradient(135deg,#ededeb 0 32px,#e8e8e5 32px 33px) }
.cf-testimonial h3 { font:400 clamp(2rem,4vw,4rem)/.9 var(--display-font) }
.cf-testimonial p { color:#666; font:400 1rem/1.6 var(--body-font) }
.cf-testimonial-controls { display:flex; align-items:center; justify-content:flex-end; gap:1rem; margin-top:1rem }
.cf-testimonial-controls button { width:46px; height:46px; border:1px solid #111; border-radius:50%; background:#fff; font-size:1.1rem }
.cf-testimonial-controls span { font:600 .75rem/1 var(--body-font); letter-spacing:.1em }

.cf-final { padding:clamp(5rem,9vw,9rem) 0; background:var(--cf-red); color:#fff; text-align:center }
.cf-final h2 { font:400 clamp(3.5rem,7vw,7rem)/.86 var(--display-font) }
.cf-final p { margin:1.5rem 0 2rem; font:400 1.15rem/1.5 var(--body-font) }
.cf-page footer { color:#fff }

@media (max-width:1100px) {
  .cf-photo-story { height:auto }
  .cf-timeline { grid-template-columns:repeat(2,1fr); gap:2rem 1rem }
  .cf-profile-grid { grid-template-columns:1fr }
}
@media (max-width:767px) {
  .cf-container { width:calc(100% - 40px) }
  .cf-page .nav-links a:not(.nav-cta) { display:none }
  .cf-page .cf-section-head,
  .cf-page .cf-photo-intro,
  .cf-page .cf-hero-copy,
  .cf-page .cf-final .cf-container {
    text-align:center;
    margin-inline:auto;
  }
  .cf-page .cf-kicker { justify-content:center; margin-inline:auto; width:100% }
  .cf-hero {
    min-height:clamp(580px,82svh,700px);
    height:auto;
    padding:5.75rem 0 2.5rem;
    align-items:flex-end;
  }
  .crossfit-hero-overlay { background:linear-gradient(to bottom,rgba(0,0,0,.22) 0%,rgba(0,0,0,.32) 42%,rgba(0,0,0,.5) 100%),radial-gradient(circle at 50% 55%,rgba(188,22,47,.06),rgba(0,0,0,.22) 72%) }
  .crossfit-hero-content { width:100% }
  .cf-hero-grid { display:block }
  .cf-hero-copy {
    max-width:100%;
    margin-inline:auto;
  }
  .cf-hero h1 {
    max-width:11ch;
    margin-inline:auto;
    font-size:clamp(3rem,14vw,5rem);
  }
  .cf-hero-copy p {
    max-width:32ch;
    margin:1rem auto 1.35rem;
    font-size:1rem;
  }
  .cf-actions {
    justify-content:center;
    margin-top:1.5rem;
  }
  .cf-coaching-grid { grid-template-columns:1fr; gap:2rem }
  .cf-coach-photo { min-height:0; height:auto; aspect-ratio:4/3 }
  .cf-hero-copy,.cf-actions { min-width:0 }
  .cf-hero-copy { max-width:100% }
  .cf-hero-copy p { overflow-wrap:anywhere }
  .cf-actions { flex-direction:column; align-items:center }
  .cf-hero .cf-btn,
  .cf-start .cf-btn,
  .cf-final .cf-btn {
    width:auto;
    max-width:100%;
    align-self:center;
  }
  .cf-start .cf-btn { min-width:min(100%,320px) }
  .cf-section { padding:4.25rem 0 }
  .cf-photo-story { min-height:0; height:auto; padding:4rem 0 3.5rem; overflow:hidden }
  .cf-photo-sticky { position:relative; height:auto; padding:0 }
  .cf-photo-intro {
    display:block;
    max-width:330px;
    margin-inline:auto;
    margin-bottom:1.4rem;
    text-align:center;
  }
  .cf-photo-intro .cf-kicker {
    justify-content:center;
    margin-bottom:.7rem;
  }
  .cf-photo-intro h2 {
    width:100%;
    max-width:100%;
    text-align:center;
    font-size:clamp(2.8rem,12.4vw,4.05rem);
    line-height:.84;
  }
  .cf-photo-intro p {
    max-width:330px;
    margin:1rem auto 0;
    text-align:center;
    font-size:1rem;
  }
  .cf-photo-viewport { overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none }
  .cf-photo-track {
    display:flex;
    flex-wrap:nowrap;
    gap:16px;
    padding:0 20px 16px;
    width:max-content;
    overflow:visible;
    touch-action:pan-x;
  }
  .cf-photo-panel {
    flex:0 0 88vw;
    width:88vw;
    max-width:360px;
    height:clamp(390px,54svh,500px);
    min-height:0;
    scroll-snap-align:center;
  }
  .cf-photo-hint { position:relative; right:auto; bottom:auto; margin:1rem 20px 0; text-align:center }
  .cf-panel-copy {
    left:1rem;
    right:1rem;
    bottom:1rem;
    max-width:none;
  }
  .cf-panel-copy h3 { font-size:clamp(1.95rem,9.6vw,3rem) }
  .cf-panel-copy p { margin-top:.6rem; font-size:.9rem }
  .cf-timeline { grid-template-columns:1fr; border-left:1px solid #ccc; border-top:0; margin-left:5px }
  .cf-timeline article { padding:0 0 1.5rem 1.25rem }
  .cf-timeline article::before { top:0; left:-6px }
  .cf-coaching { padding:4rem 0 4.5rem }
  .cf-coaching-grid { gap:1rem }
  .cf-coach-photo {
    width:100%;
    aspect-ratio:4 / 3;
    min-height:0;
    border-radius:16px;
  }
  .cf-coach-photo img { object-position:center 35% }
  .cf-coaching h2 {
    max-width:12ch;
    margin-inline:auto;
    font-size:clamp(2.45rem,11.5vw,4rem);
    line-height:.9;
    text-align:center;
  }
  .cf-coaching p { max-width:34ch; margin:1rem auto 0; font-size:1rem; text-align:center }
  .cf-coach-points { grid-template-columns:1fr; gap:.55rem; margin-top:1.2rem }
  .cf-coach-points span { min-height:52px; padding:.9rem 1rem }
  .cf-coach-photo { min-height:0; height:auto }
  .cf-community { padding:4.25rem 0 4rem }
  .cf-testimonial-shell { overflow:hidden }
  .cf-testimonial { grid-template-columns:1fr; gap:1rem }
  .cf-video-placeholder { min-height:360px }
  .cf-testimonial h3 { font-size:clamp(1.9rem,10vw,3rem) }
  .cf-testimonial p { font-size:.95rem }
  .cf-testimonial-controls {
    justify-content:space-between;
    gap:.75rem;
    margin-top:.85rem;
  }
  .cf-testimonial-controls button {
    width:52px;
    height:52px;
  }
  .cf-testimonial-controls span { min-width:4.5rem }
  .cf-final { padding:4rem 0 4.25rem }
  .cf-final h2 { font-size:clamp(3rem,14vw,5rem) }
  .cf-final p { margin:1rem auto 1.4rem; max-width:32ch; font-size:1rem }
}
@media (prefers-reduced-motion:reduce) {
  .cf-page * { scroll-behavior:auto!important; transition-duration:.01ms!important; animation-duration:.01ms!important }
  .cf-photo-story { height:auto }
  .cf-photo-sticky { position:relative; height:auto; padding:6rem 0 }
  .cf-photo-viewport { overflow-x:auto }
}

/* Campaign heading scale - final typography authority */
.home-page .home-hero-title,
.home-page .home-hero-title * {
  font-family:"Anton",sans-serif;
  font-size:clamp(4rem,7vw,7.375rem);
  line-height:.9;
  font-weight:400;
  font-style:normal;
  font-stretch:normal;
  letter-spacing:0;
  text-transform:uppercase;
}
.home-page .home-section-title,
.home-page .home-section-title *,
.home-page #hyrox .home-section-title,
.home-page #hyrox .home-section-title * {
  font-family:"Anton",sans-serif;
  font-size:clamp(3rem,5vw,5.25rem);
  line-height:.92;
  font-weight:400;
  font-style:normal;
  font-stretch:normal;
  letter-spacing:0;
  text-transform:uppercase;
}
.home-page .home-card-title,
.home-page .home-card-title *,
.home-page .exercise-main-card .exercise-card .home-card-title {
  font-family:"Anton",sans-serif;
  font-size:clamp(1.75rem,3vw,2.875rem);
  line-height:.95;
  font-weight:400;
  font-style:normal;
  font-stretch:normal;
  letter-spacing:0;
  text-transform:uppercase;
}

.hyrox-page .hxp-hero-h,
.hyrox-page .hxp-hero-h * {
  font-family:"Anton",sans-serif;
  font-size:clamp(4rem,7vw,7.375rem);
  line-height:.9;
  font-weight:400;
  font-style:normal;
  font-stretch:normal;
  letter-spacing:0;
  text-transform:uppercase;
}
.hyrox-page .hxp-h,
.hyrox-page .hxp-h *,
.hyrox-page .hxp-h-xl,
.hyrox-page .hxp-h-xl *,
.hyrox-page .hxp-cta-h,
.hyrox-page .hxp-cta-h * {
  font-family:"Anton",sans-serif;
  font-size:clamp(3rem,5vw,5.25rem);
  line-height:.92;
  font-weight:400;
  font-style:normal;
  font-stretch:normal;
  letter-spacing:0;
  text-transform:uppercase;
}
.hyrox-page .hxp-card-h,
.hyrox-page #hx-how .hxp-card-h,
.hyrox-page .hxp-who-card h4 {
  font-family:"Anton",sans-serif;
  font-size:clamp(1.75rem,3vw,2.875rem);
  line-height:.95;
  font-weight:400;
  font-style:normal;
  font-stretch:normal;
  letter-spacing:0;
  text-transform:uppercase;
}

.cf-page .cf-hero h1,
.cf-page .cf-hero h1 * {
  font-family:"Anton",sans-serif;
  font-size:clamp(4rem,7vw,7.375rem);
  line-height:.9;
  font-weight:400;
  font-style:normal;
  font-stretch:normal;
  letter-spacing:0;
  text-transform:uppercase;
}
.cf-page .cf-section h2,
.cf-page .cf-section h2 *,
.cf-page .cf-photo-intro h2,
.cf-page .cf-photo-intro h2 *,
.cf-page .cf-final h2,
.cf-page .cf-final h2 * {
  font-family:"Anton",sans-serif;
  font-size:clamp(3rem,5vw,5.25rem);
  line-height:.92;
  font-weight:400;
  font-style:normal;
  font-stretch:normal;
  letter-spacing:0;
  text-transform:uppercase;
}

/* CrossFit program story */
.cf-page .cf-photo-story {
  min-height:100svh;
  overflow:hidden;
  background:
    radial-gradient(circle at 50% 8%,rgba(188,22,47,.12),transparent 25%),
    #050505;
}
.cf-page .cf-photo-sticky {
  --cf-program-nav-height:88px;
  position:relative;
  display:grid;
  grid-template-columns:minmax(280px,30vw) minmax(0,1fr);
  grid-template-rows:minmax(0,1fr);
  column-gap:clamp(2rem,4vw,5rem);
  align-items:center;
  min-height:100svh;
  padding:var(--cf-program-nav-height) max(calc((100vw - 1680px)/2),4vw) clamp(2rem,4vh,3.5rem);
  overflow:visible;
}
.cf-page .cf-photo-intro {
  grid-column:1;
  grid-row:1;
  display:block;
  align-self:center;
  margin:0;
  text-align:left;
}
.cf-page .cf-photo-intro .cf-kicker {
  justify-content:flex-start;
  margin-bottom:.85rem;
}
.cf-page .cf-photo-intro h2 {
  width:100%;
  max-width:100%;
  color:#fff;
  text-align:left;
  font-size:clamp(3.75rem,min(6.2vw,9.5svh),7.5rem);
  line-height:.82;
}
.cf-page .cf-photo-intro h2 span,
.cf-page .cf-photo-intro h2 em {
  display:block;
  font:inherit;
}
.cf-page .cf-photo-intro h2 em {
  white-space:nowrap;
  font-size:min(.64em,9vw);
}
.cf-page .cf-photo-intro p {
  max-width:30rem;
  margin:clamp(1rem,2vh,1.5rem) 0 0;
  color:rgba(255,255,255,.68);
  font:400 clamp(.95rem,1vw,1.1rem)/1.55 var(--body-font);
}
.cf-page .cf-photo-viewport {
  position:relative;
  grid-column:2;
  grid-row:1;
  align-self:center;
  min-width:0;
  overflow:hidden;
  mask-image:linear-gradient(to right,transparent 0%,rgba(0,0,0,.35) 3%,#000 9%,#000 100%);
  -webkit-mask-image:linear-gradient(to right,transparent 0%,rgba(0,0,0,.35) 3%,#000 9%,#000 100%);
}
.cf-page .cf-photo-track {
  display:flex;
  align-items:flex-start;
  gap:clamp(1.25rem,2vw,2rem);
  height:auto;
  width:max-content;
  padding:0;
  will-change:transform;
  transform:translate3d(0,0,0);
}
.cf-page .cf-photo-panel {
  --overlay-bottom:.88;
  --overlay-mid:.43;
  --vignette-opacity:.2;
  position:relative;
  flex:0 0 auto;
  height:clamp(480px,66svh,690px);
  aspect-ratio:4 / 5;
  width:auto;
  min-width:0;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.1);
  border-radius:12px;
  background:#111;
}
.cf-page .cf-photo-panel::after {
  content:"";
  display:block;
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:
    radial-gradient(ellipse at center,transparent 42%,rgba(0,0,0,var(--vignette-opacity)) 100%),
    linear-gradient(to top,rgba(0,0,0,var(--overlay-bottom)) 0%,rgba(0,0,0,var(--overlay-mid)) 35%,rgba(0,0,0,0) 70%);
}
.cf-page .cf-panel-copy {
  position:absolute;
  z-index:2;
  left:clamp(1.25rem,2.3vw,2rem);
  right:clamp(1.25rem,2.3vw,2rem);
  bottom:clamp(1.25rem,2.3vw,2rem);
  max-width:30rem;
}
.cf-page .cf-panel-copy span {
  display:block;
  margin-bottom:.65rem;
  color:var(--cf-red);
  font:700 .75rem/1 var(--body-font);
  letter-spacing:.16em;
}
.cf-page .cf-panel-copy h3 {
  margin:0;
  color:#fff;
  font-size:clamp(2.35rem,3.35vw,4rem);
  line-height:.88;
  letter-spacing:-.02em;
}
.cf-page .cf-panel-copy p {
  max-width:36ch;
  margin-top:.75rem;
  color:rgba(255,255,255,.72);
  font:400 clamp(.9rem,.95vw,1rem)/1.5 var(--body-font);
}
.cf-page .cf-panel-media {
  position:absolute;
  inset:0;
  margin:0;
}
.cf-page .cf-photo-panel img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  image-rendering:auto;
  filter:none;
  opacity:1;
  transform:none;
  transition:none;
}
.cf-page .card-programmazione {
  --overlay-bottom:.82;
  --overlay-mid:.34;
  --vignette-opacity:.16;
}
.cf-page .card-tecnica {
  --overlay-bottom:.87;
  --overlay-mid:.4;
  --vignette-opacity:.2;
}
.cf-page .card-conditioning {
  --overlay-bottom:.92;
  --overlay-mid:.52;
  --vignette-opacity:.32;
}
.cf-page .card-coaching {
  --overlay-bottom:.87;
  --overlay-mid:.4;
  --vignette-opacity:.2;
}
.cf-page .cf-photo-panel:nth-child(6n + 1) img { object-position:50% 48% }
.cf-page .cf-photo-panel:nth-child(6n + 2) img { object-position:34% 50% }
.cf-page .cf-photo-panel:nth-child(6n + 3) img { object-position:50% 42% }
.cf-page .cf-photo-panel:nth-child(6n + 4) img { object-position:38% 50% }
.cf-page .cf-photo-panel:nth-child(6n + 5) img { object-position:50% 30% }
.cf-page .cf-photo-panel:nth-child(6n + 6) img { object-position:50% 52% }
@media (hover:hover) {
  .cf-page .cf-photo-panel:hover img { transform:none }
}
@media (max-width:1023px) {
  .cf-page .cf-photo-story {
    height:auto;
    padding:4.75rem 0 4rem;
    overflow:hidden;
  }
  .cf-page .cf-photo-sticky {
    position:relative;
    display:block;
    min-height:0;
    height:auto;
    padding:0;
  }
  .cf-page .cf-photo-intro {
    margin-bottom:2rem;
    text-align:left;
  }
  .cf-page .cf-photo-intro .cf-kicker { justify-content:flex-start }
  .cf-page .cf-photo-intro h2 {
    width:auto;
    text-align:left;
    font-size:clamp(3.75rem,18vw,5.4rem);
  }
  .cf-page .cf-photo-intro p {
    margin:1rem 0 0;
    font-size:1rem;
  }
  .cf-page .cf-photo-intro p br { display:none }
  .cf-page .cf-photo-viewport {
    mask-image:none;
    -webkit-mask-image:none;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    scrollbar-width:none;
    overscroll-behavior-inline:contain;
  }
  .cf-page .cf-photo-viewport::-webkit-scrollbar { display:none }
  .cf-page .cf-photo-track {
    gap:1rem;
    padding:0 20px;
  }
  .cf-page .cf-photo-panel,
  .cf-page .cf-photo-panel--reverse {
    display:block;
    flex:0 0 88vw;
    width:auto;
    height:auto;
    aspect-ratio:4 / 5;
    border:1px solid rgba(255,255,255,.1);
    scroll-snap-align:center;
  }
  .cf-page .cf-panel-copy {
    left:1.15rem;
    right:1.15rem;
    bottom:1.15rem;
    max-width:none;
  }
  .cf-page .cf-panel-copy h3 { font-size:clamp(2.15rem,10.5vw,3.15rem) }
  .cf-page .cf-panel-copy p { margin-top:.65rem; font-size:.9rem }
  .cf-page .cf-photo-panel img {
    width:100%;
    height:100%;
  }
}
@media (max-width:767px) {
  .cf-page #programma-crossfit .cf-photo-story {
    min-height:0;
    height:auto;
    padding:3.5rem 0 3rem;
    overflow:hidden;
  }
  .cf-page #programma-crossfit .cf-photo-sticky {
    position:relative;
    display:block;
    min-height:0;
    height:auto;
    padding:0;
  }
  .cf-page #programma-crossfit .cf-photo-intro {
    display:block;
    max-width:330px;
    margin:0 auto 1rem;
    text-align:center;
  }
  .cf-page #programma-crossfit .cf-photo-intro .cf-kicker {
    justify-content:center;
    margin-bottom:.7rem;
  }
  .cf-page #programma-crossfit .cf-photo-intro h2 {
    width:100%;
    max-width:100%;
    text-align:center;
    font-size:clamp(2.8rem,12vw,4.05rem);
    line-height:.84;
  }
  .cf-page #programma-crossfit .cf-photo-intro h2 em {
    font-size:min(.58em,8vw);
    white-space:nowrap;
  }
  .cf-page #programma-crossfit .cf-photo-intro p {
    max-width:330px;
    margin:1rem auto 0;
    text-align:center;
    font-size:1rem;
  }
  .cf-page #programma-crossfit .cf-photo-viewport {
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    scrollbar-width:none;
    overscroll-behavior-inline:contain;
    touch-action:pan-x;
    -webkit-overflow-scrolling:touch;
  }
  .cf-page #programma-crossfit .cf-photo-viewport::-webkit-scrollbar { display:none }
  .cf-page #programma-crossfit .cf-photo-track {
    display:flex;
    flex-wrap:nowrap;
    gap:16px;
    padding:0 20px 16px;
    width:max-content;
    overflow:visible;
    touch-action:pan-x;
  }
  .cf-page #programma-crossfit .cf-photo-panel,
  .cf-page #programma-crossfit .cf-photo-panel--reverse {
    display:block;
    flex:0 0 84vw;
    width:84vw;
    max-width:360px;
    height:clamp(390px,54svh,500px);
    min-height:0;
    aspect-ratio:auto;
    border:1px solid rgba(255,255,255,.1);
    scroll-snap-align:center;
    scroll-snap-stop:always;
  }
  .cf-page #programma-crossfit .cf-panel-copy {
    left:1rem;
    right:1rem;
    bottom:1rem;
    max-width:none;
  }
  .cf-page #programma-crossfit .cf-panel-copy h3 { font-size:clamp(1.95rem,9.6vw,3rem) }
  .cf-page #programma-crossfit .cf-panel-copy p { margin-top:.6rem; font-size:.9rem }
  .cf-page #programma-crossfit .cf-photo-panel img {
    width:100%;
    height:100%;
    object-fit:cover;
  }
}
@media (prefers-reduced-motion:reduce) {
  .cf-page .cf-photo-story { min-height:0; height:auto; padding:5rem 0 }
  .cf-page .cf-photo-sticky { min-height:0; height:auto; padding:0 }
  .cf-page .cf-photo-viewport {
    mask-image:none;
    -webkit-mask-image:none;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    scrollbar-width:none;
  }
  .cf-page .cf-photo-track { transform:none!important }
  .cf-page .cf-photo-panel { scroll-snap-align:center }
}
.cf-page .cf-timeline h3,
.cf-page .cf-profile-grid h3,
.cf-page .cf-testimonial h3 {
  font-family:"Anton",sans-serif;
  font-size:clamp(1.75rem,3vw,2.875rem);
  line-height:.95;
  font-weight:400;
  font-style:normal;
  font-stretch:normal;
  letter-spacing:0;
  text-transform:uppercase;
}

@media (min-width:1024px) {
  .cf-page {
    overflow-x:hidden;
  }
  .cf-page .cf-hero {
    align-items:center;
    padding-top:clamp(7rem,9vw,10rem);
    padding-bottom:clamp(4rem,7vw,7rem);
  }
  .cf-page .crossfit-hero-content {
    position:absolute;
    left:50%;
    bottom:clamp(70px,10vh,130px);
    width:min(1500px,92vw);
    max-width:min(1500px,92vw);
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    transform:translateX(-50%);
  }
  .cf-page .cf-hero-copy {
    max-width:100%;
    margin-inline:auto;
    text-align:center;
    transform:none;
  }
  .cf-page .cf-hero-copy .cf-kicker {
    justify-content:center;
    margin-inline:auto;
    margin-bottom:1.25rem;
  }
  .cf-page .cf-hero h1 {
    width:100%;
    max-width:none;
    margin-inline:auto;
    text-align:center;
    line-height:.86;
  }
  .cf-page .crossfit-hero-title__line {
    display:block;
  }
  .cf-page .crossfit-hero-title__line--two {
    white-space:nowrap;
  }
  .cf-page .crossfit-hero-title__line--two em {
    display:inline;
  }
  .cf-page .cf-hero-copy p {
    max-width:620px;
    margin-inline:auto;
    margin-top:1.8rem;
    text-align:center;
  }
  .cf-page .cf-hero-copy .cf-actions {
    justify-content:center;
    margin-top:2.25rem;
  }
  .cf-page .cf-hero .cf-btn {
    margin-inline:auto;
  }
  .cf-page .cf-section-head,
  .cf-page .cf-photo-intro,
  .cf-page .cf-final .cf-container {
    max-width:min(100%,1360px);
    margin-inline:auto;
    text-align:center;
  }
  .cf-page .cf-section-head .cf-kicker,
  .cf-page .cf-photo-intro .cf-kicker,
  .cf-page .cf-coaching .cf-kicker {
    justify-content:center;
    margin-inline:auto;
  }
  .cf-page .cf-section-head h2,
  .cf-page .cf-photo-intro h2,
  .cf-page .cf-coaching h2,
  .cf-page .cf-final h2 {
    max-width:min(100%,1360px);
    margin-inline:auto;
    text-align:center;
    font-size:clamp(3rem,4.4vw,5.7rem);
    line-height:.9;
  }
  .cf-page .cf-section-head h2 br,
  .cf-page .cf-coaching h2 br,
  .cf-page .cf-final h2 br {
    display:none;
  }
  .cf-page .cf-section-head p,
  .cf-page .cf-photo-intro p,
  .cf-page .cf-coaching p,
  .cf-page .cf-final p {
    margin-inline:auto;
    text-align:center;
  }
  .cf-page .cf-photo-sticky {
    grid-template-columns:1fr;
    grid-template-rows:auto minmax(0,1fr);
    row-gap:clamp(2rem,4vw,4rem);
    align-items:start;
  }
  .cf-page .cf-photo-intro {
    grid-column:1;
    grid-row:1;
  }
  .cf-page .cf-photo-intro h2 span,
  .cf-page .cf-photo-intro h2 em {
    display:inline;
  }
  .cf-page .cf-photo-intro h2 em {
    font-size:inherit;
    white-space:normal;
  }
  .cf-page .cf-photo-viewport {
    grid-column:1;
    grid-row:2;
    width:100%;
    mask-image:linear-gradient(to right,transparent 0%,#000 5%,#000 95%,transparent 100%);
    -webkit-mask-image:linear-gradient(to right,transparent 0%,#000 5%,#000 95%,transparent 100%);
  }
  .cf-page .cf-photo-track {
    padding-inline:0;
  }
  .cf-page .cf-coaching-grid {
    grid-template-columns:minmax(360px,.7fr) minmax(0,1.3fr);
    gap:clamp(3rem,5vw,6rem);
  }
  .cf-page .cf-coaching-grid > div:last-child {
    max-width:min(100%,980px);
    margin-inline:auto;
    text-align:center;
  }
  .cf-page .cf-coach-points {
    max-width:760px;
    margin-inline:auto;
  }
}

@media (max-width:767px) {
  .cf-page .crossfit-hero-title__line {
    display:block;
  }
  .cf-page .crossfit-hero-title__line--two {
    white-space:normal;
  }
  .cf-page .crossfit-hero-title__line--two em {
    display:block;
  }
  .cf-page .cf-hero h1,
  .cf-page .cf-hero h1 * {
    font-size:clamp(2.75rem,11vw,3.6rem);
  }
  .cf-page .cf-hero h1 {
    max-width:330px;
  }
}

/* Shared primary navigation */
nav#nav {
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:2rem;
  padding:1.25rem clamp(1.5rem,4vw,4.5rem);
}
nav#nav.solid { padding:1rem clamp(1.5rem,4vw,4.5rem) }
nav#nav .nav-brand { justify-self:start; min-width:0 }
nav#nav .nav-logo-img {
  height:clamp(42px,3.3vw,50px);
  width:auto;
  max-width:min(280px,100%);
}
nav#nav .nav-links {
  grid-column:2;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:clamp(2.125rem,2.8vw,2.625rem);
}
nav#nav .nav-links a {
  color:rgba(255,255,255,.92);
  font-family:var(--body-font,"Helvetica Neue",Helvetica,Arial,sans-serif);
  font-size:clamp(.875rem,1vw,.9375rem);
  font-weight:600;
  line-height:1;
  letter-spacing:.015em;
  text-transform:uppercase;
  text-decoration:none;
  transition:opacity .2s ease,color .2s ease;
}
nav#nav .nav-links a:hover { color:inherit; opacity:.62 }
nav#nav .nav-actions {
  grid-column:3;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:1rem;
}
nav#nav .nav-cta {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:.75rem 1.35rem;
  color:#fff!important;
  font:600 .75rem/1 var(--body-font,"Helvetica Neue",Helvetica,Arial,sans-serif);
  letter-spacing:.04em;
  text-transform:uppercase;
  text-decoration:none;
  white-space:nowrap;
}
nav#nav .nav-toggle { display:none }
nav#nav .nav-cta--mobile { display:none }
nav#nav.header--light .nav-links a,
.cf-page nav#nav.cf-nav--light .nav-links a { color:rgba(0,0,0,.72) }
nav#nav.header--light .nav-toggle span,
.cf-page nav#nav.cf-nav--light .nav-toggle span { background:#111 }
.cf-page nav#nav.cf-nav.cf-nav--light:not(.solid) {
  background:transparent;
  border-bottom:0;
  box-shadow:none;
  backdrop-filter:none;
}
.cf-page nav#nav.cf-nav.cf-nav--light:not(.solid) .nav-logo-img,
.cf-page nav#nav.cf-nav.cf-nav--light.solid .nav-logo-img {
  filter:none;
}
.cf-page nav#nav.cf-nav.cf-nav--light:not(.solid) .nav-links a,
.cf-page nav#nav.cf-nav.cf-nav--light.solid .nav-links a {
  color:rgba(255,255,255,.9);
}
.cf-page nav#nav.cf-nav.cf-nav--light:not(.solid) .nav-toggle span,
.cf-page nav#nav.cf-nav.cf-nav--light.solid .nav-toggle span {
  background:#fff;
}
.cf-page nav#nav.cf-nav.cf-nav--light.solid {
  background:rgba(0,0,0,.92);
  border-bottom:1px solid rgba(255,255,255,.08);
  box-shadow:none;
}

@media (max-width:899px) {
  nav#nav,
  nav#nav.solid,
  .cf-page nav#nav.cf-nav,
  .cf-page nav#nav.cf-nav.solid {
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:1rem;
    padding:1rem 20px;
  }
  nav#nav .nav-logo-img,
  .cf-page nav#nav.cf-nav .nav-logo-img {
    height:clamp(34px,8.5vw,42px);
    max-width:min(200px,62vw);
  }
  nav#nav .nav-actions {
    grid-column:2;
    display:flex!important;
    justify-content:flex-end;
    width:44px;
    height:44px;
    position:static;
    justify-self:end;
    align-self:center;
    z-index:5;
    visibility:visible!important;
    opacity:1!important;
    transform:none;
  }
  .cf-page nav#nav.cf-nav .nav-actions {
    position:fixed;
    top:16px;
    right:20px;
  }
  nav#nav .nav-actions .nav-cta { display:none }
  nav#nav .nav-toggle {
    position:relative;
    z-index:6;
    display:flex!important;
    width:44px;
    height:44px;
    padding:0;
    border:0;
    background:transparent;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:5px;
    cursor:pointer;
    visibility:visible!important;
    opacity:1!important;
  }
  nav#nav .nav-toggle span {
    display:block;
    width:23px;
    height:2px;
    background:#fff;
    transition:transform .22s ease,opacity .22s ease;
  }
  .cf-page nav#nav.cf-nav.cf-nav--light:not(.solid) .nav-toggle {
    background:rgba(0,0,0,.22);
    border-radius:999px;
  }
  .cf-page nav#nav.cf-nav.cf-nav--light:not(.solid) .nav-toggle span {
    background:#fff;
  }
  nav#nav.nav-open .nav-toggle span:nth-child(1) { transform:translateY(7px) rotate(45deg) }
  nav#nav.nav-open .nav-toggle span:nth-child(2) { opacity:0 }
  nav#nav.nav-open .nav-toggle span:nth-child(3) { transform:translateY(-7px) rotate(-45deg) }
  nav#nav .nav-links,
  .hyrox-page nav#nav .nav-links,
  .cf-page nav#nav .nav-links {
    position:absolute;
    top:100%;
    left:0;
    right:0;
    display:flex;
    grid-column:auto;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    padding:.5rem 20px 1.25rem;
    background:rgba(0,0,0,.96);
    border-top:1px solid rgba(255,255,255,.1);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translateY(-8px);
    transition:opacity .2s ease,visibility .2s ease,transform .2s ease;
    max-height:calc(100svh - 5.25rem);
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior:contain;
  }
  nav#nav.nav-open .nav-links {
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:none;
  }
  nav#nav .nav-links a,
  .hyrox-page nav#nav .nav-links a:not(.nav-cta),
  .cf-page nav#nav .nav-links a:not(.nav-cta),
  nav#nav.header--light .nav-links a,
  .cf-page nav#nav.cf-nav--light .nav-links a {
    display:block;
    padding:.95rem 0;
    color:#fff;
    font-size:.92rem;
    border-bottom:1px solid rgba(255,255,255,.1);
  }
  nav#nav .nav-links .nav-cta--mobile,
  .hyrox-page nav#nav .nav-links .nav-cta--mobile,
  .cf-page nav#nav .nav-links .nav-cta--mobile,
  nav#nav.header--light .nav-links .nav-cta--mobile,
  .cf-page nav#nav.cf-nav--light .nav-links .nav-cta--mobile {
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:48px;
    padding:.9rem 1.2rem;
    margin-top:1rem;
    color:#fff;
    background:var(--red);
    border:0;
    border-radius:var(--cta-radius);
    font:600 .75rem/1 var(--body-font,"Helvetica Neue",Helvetica,Arial,sans-serif);
    letter-spacing:.04em;
  }
}

/* Schedule page */
.schedule-page { color:#111; background:#f5f3ee; font-family:var(--body-font); cursor:auto }
.schedule-page a,
.schedule-page button { cursor:pointer }
.schedule-page main { position:relative; overflow:hidden; pointer-events:auto }
.schedule-page main::before,
.schedule-page main::after,
.schedule-hero::before,
.schedule-hero::after,
.schedule-section::before,
.schedule-section::after,
.schedule-cta::before,
.schedule-cta::after { pointer-events:none }
.schedule-wrap { position:relative; z-index:2; width:calc(100% - clamp(40px,8vw,120px)); max-width:1800px; margin-inline:auto; pointer-events:auto }
.schedule-hero { padding:clamp(10rem,15vw,14rem) 0 clamp(4rem,7vw,7rem); border-bottom:1px solid #d8d5ce; background:#f5f3ee }
.schedule-hero .schedule-wrap { display:flex; flex-direction:column; align-items:center; text-align:center }
.schedule-eyebrow { display:block; margin-bottom:1.4rem; color:var(--red); font:700 .72rem/1 var(--body-font); letter-spacing:.16em; text-transform:uppercase }
.schedule-hero h1 {
  color:#111;
  font-family:"Anton",sans-serif;
  font-size:clamp(4.5rem,9vw,9rem);
  line-height:.9;
  font-weight:400;
  font-style:normal;
  font-stretch:normal;
  letter-spacing:0;
  text-transform:uppercase;
}
.schedule-hero h1 em { color:var(--red); font-style:normal }
.schedule-hero h1 .title-neutral-highlight,
.pricing-hero h1 .title-neutral-highlight {
  color:#8A8175;
}
.schedule-hero p { max-width:42rem; margin-top:1.8rem; color:#56534e; font:400 clamp(1.05rem,1.3vw,1.3rem)/1.6 var(--body-font); text-align:center }
.schedule-legend { display:flex; flex-wrap:wrap; gap:1rem 2rem; margin-top:2.5rem; font:700 .7rem/1 var(--body-font); letter-spacing:.1em; text-transform:uppercase }
.schedule-legend span { display:flex; align-items:center; gap:.55rem }
.schedule-dot { width:12px; height:12px; border:1px solid #c9c6bf; background:#fff }
.schedule-dot--crossfit { border-color:var(--red); background:var(--red) }
.schedule-dot--hyrox { border-color:var(--color-lime); background:var(--color-lime) }
.schedule-section { padding:clamp(3rem,5vw,5rem) 0 clamp(4rem,7vw,7rem); background:#ebe9e3 }
.schedule-section h2 { margin-bottom:2rem; color:#111; font:400 clamp(3.5rem,6vw,6.5rem)/.85 var(--display-font) }
.schedule-grid { position:relative; z-index:2; display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:clamp(.65rem,1vw,1rem); align-items:start; pointer-events:auto }
.schedule-day { position:relative; z-index:2; min-width:0; border:1px solid #d4d1ca; background:#f7f5f0; pointer-events:auto }
.schedule-day h3 { padding:1.15rem .9rem; color:#fff; background:#080808; font:400 clamp(1.5rem,2vw,2.25rem)/.9 var(--display-font); text-align:center }
.schedule-lessons { display:grid; gap:.55rem; padding:.65rem }
.schedule-class { position:relative; z-index:2; min-height:72px; padding:.75rem; border:1px solid transparent; display:flex; flex-direction:column; justify-content:center; pointer-events:auto; user-select:text }
.schedule-class time { display:block; margin-bottom:.4rem; font:700 .68rem/1 var(--body-font); letter-spacing:.12em }
.schedule-class strong { font:400 clamp(1.25rem,1.55vw,1.8rem)/.92 var(--display-font); text-transform:uppercase }
.schedule-class--crossfit { color:#fff; background:var(--red) }
.schedule-class--hyrox { color:#080808; background:var(--color-lime) }
.schedule-class--open { color:#111; border-color:#c9c6bf; background:#fff }
.schedule-note { max-width:58rem; margin-top:2rem; color:#696660; font:400 .9rem/1.6 var(--body-font) }
.schedule-cta { padding:clamp(4.5rem,8vw,8rem) 0; color:#fff; background:#050505; border-top:1px solid #1e1e1e }
.schedule-cta .schedule-wrap { display:flex; align-items:end; justify-content:space-between; gap:3rem }
.schedule-cta h2 { color:#fff; font:400 clamp(4rem,8vw,9rem)/.82 var(--display-font) }
.schedule-cta .btn { flex:0 0 auto }

@media (max-width:899px) {
  .schedule-wrap { width:calc(100% - 40px) }
  .schedule-hero { padding:8.5rem 0 3.5rem }
  .schedule-hero h1 { font-size:clamp(4rem,17vw,7rem); line-height:.9 }
  .schedule-legend { display:grid; grid-template-columns:1fr; gap:.8rem }
  .schedule-section { padding:2.5rem 0 3.5rem }
  .schedule-grid { grid-template-columns:1fr; gap:1rem }
  .schedule-day h3 { text-align:left; padding:1rem 1.1rem }
  .schedule-lessons { gap:.45rem; padding:.55rem }
  .schedule-class { min-height:0; padding:.75rem 1rem; display:grid; grid-template-columns:4.5rem minmax(0,1fr); align-items:center; gap:.75rem }
  .schedule-class time { margin:0 }
  .schedule-class strong { font-size:1.45rem }
  .schedule-cta .schedule-wrap { display:block }
  .schedule-cta h2 { margin-bottom:2rem; font-size:clamp(4rem,20vw,6rem) }
  .schedule-cta .btn { width:100%; text-align:center }
}

/* Pricing page */
.pricing-page { color:#111; background:#f5f3ee; font-family:var(--body-font); cursor:auto }
.pricing-page a,
.pricing-page button,
.pricing-page summary { cursor:pointer }
.pricing-wrap { width:calc(100% - clamp(40px,8vw,120px)); max-width:1680px; margin-inline:auto }
.pricing-hero { padding:clamp(10rem,15vw,14rem) 0 clamp(4.5rem,7vw,7rem); border-bottom:1px solid #d8d5ce; background:#f5f3ee }
.pricing-hero .pricing-wrap { display:flex; flex-direction:column; align-items:center; text-align:center }
.pricing-eyebrow { display:block; margin-bottom:1.25rem; color:var(--red); font:700 .72rem/1 var(--body-font); letter-spacing:.16em; text-transform:uppercase }
.pricing-hero h1 {
  color:#111;
  font-family:"Anton",sans-serif;
  font-size:clamp(4.5rem,9vw,9rem);
  line-height:.9;
  font-weight:400;
  font-style:normal;
  font-stretch:normal;
  letter-spacing:0;
  text-transform:uppercase;
}
.pricing-hero h1 em { color:var(--red); font-style:normal }
.pricing-hero p { max-width:48rem; margin-top:1.8rem; color:#56534e; font:400 clamp(1.05rem,1.3vw,1.3rem)/1.6 var(--body-font) }
.pricing-plans { padding:clamp(4rem,7vw,7rem) 0; background:#ebe9e3 }
.pricing-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(1rem,1.5vw,1.5rem); align-items:stretch }
.pricing-card { min-width:0; min-height:650px; border:1px solid #a6a6a6; background:#fff; display:flex; flex-direction:column; overflow:hidden }
.pricing-card:nth-child(2) { border-color:#111 }
.pricing-card:nth-child(3) { border-color:var(--red) }
.pricing-card__header { min-height:150px; padding:clamp(1.25rem,2vw,2rem); display:flex; align-items:center; gap:1.2rem; background:#A6A6A6 }
.pricing-card:nth-child(2) .pricing-card__header { background:#111 }
.pricing-card:nth-child(3) .pricing-card__header { background:var(--red) }
.pricing-card__header img { width:clamp(62px,6vw,82px); height:auto; filter:brightness(0) invert(1) }
.pricing-card h2 { color:#fff; font:400 clamp(2.8rem,4vw,4.5rem)/.86 var(--display-font) }
.pricing-card__body { flex:1; padding:clamp(1.5rem,2.4vw,2.5rem); display:flex; flex-direction:column; justify-content:space-between; gap:2.5rem; background:#fff }
.pricing-price { display:flex; align-items:baseline; gap:.55rem; margin:0 0 2rem; color:#111 }
.pricing-price strong { font:400 clamp(4.5rem,6vw,7rem)/.8 var(--display-font) }
.pricing-price span { color:#65615b; font:600 .95rem/1 var(--body-font) }
.pricing-card ul { list-style:none; border-top:1px solid #d8d4cc }
.pricing-card li { position:relative; padding:.8rem 0 .8rem 1.15rem; color:#47443f; border-bottom:1px solid #dedad2; font:400 .98rem/1.4 var(--body-font) }
.pricing-card li::before { content:""; position:absolute; top:1.2rem; left:0; width:5px; height:5px; background:var(--red) }
.pricing-card .btn { align-self:flex-start; color:#fff; background:#A6A6A6 }
.pricing-card:nth-child(2) .btn { background:#111 }
.pricing-card:nth-child(3) .btn { background:var(--red) }
.pricing-card .btn:hover { filter:brightness(.9); transform:translateY(-2px) }
.pricing-membership { margin-top:1.5rem; color:#625f59; font:400 .95rem/1.6 var(--body-font) }
.pricing-nutrition { margin-top:clamp(3rem,5vw,5rem); padding:clamp(1.5rem,2.5vw,2.5rem); border:1px solid #cbc7bf; background:#f7f5f0; display:grid; grid-template-columns:.75fr 1.25fr; gap:clamp(2rem,5vw,6rem); align-items:start }
.pricing-nutrition h2 { color:#111; font:400 clamp(2.8rem,4.5vw,5rem)/.86 var(--display-font) }
.pricing-nutrition ul { list-style:none }
.pricing-nutrition li { display:flex; justify-content:space-between; gap:2rem; padding:1.15rem 0; color:#4d4944; border-bottom:1px solid #d6d2ca; font:400 1rem/1.4 var(--body-font) }
.pricing-nutrition li:first-child { padding-top:0 }
.pricing-nutrition strong { color:#111; white-space:nowrap }
.pricing-faq { padding:clamp(4.5rem,8vw,8rem) 0; background:#f5f3ee }
.pricing-faq__grid { display:grid; grid-template-columns:.55fr 1.45fr; gap:clamp(3rem,8vw,9rem); align-items:start }
.pricing-faq h2 { color:#111; font:400 clamp(4rem,8vw,9rem)/.82 var(--display-font) }
.pricing-faq__list { border-top:1px solid #cfcac1 }
.pricing-faq details { border-bottom:1px solid #cfcac1 }
.pricing-faq summary { position:relative; padding:1.4rem 3rem 1.4rem 0; color:#111; list-style:none; font:600 clamp(1rem,1.25vw,1.2rem)/1.35 var(--body-font) }
.pricing-faq summary::-webkit-details-marker { display:none }
.pricing-faq summary::after { content:"+"; position:absolute; top:1.2rem; right:.25rem; color:var(--red); font:400 2rem/1 var(--display-font) }
.pricing-faq details[open] summary::after { content:"−" }
.pricing-faq details p { max-width:58rem; padding:0 3rem 1.4rem 0; color:#625f59; font:400 .98rem/1.6 var(--body-font) }
.pricing-cta { padding:clamp(4.5rem,8vw,8rem) 0; color:#fff; background:#050505; border-top:1px solid #1e1e1e }
.pricing-cta .pricing-wrap { display:flex; align-items:end; justify-content:space-between; gap:3rem }
.pricing-cta h2 { color:#fff; font:400 clamp(4rem,8vw,9rem)/.82 var(--display-font) }
.pricing-cta p { max-width:38rem; margin-top:1.3rem; color:rgba(255,255,255,.68); font:400 1rem/1.6 var(--body-font) }
.pricing-cta .btn { flex:0 0 auto }

@media (max-width:899px) {
  .pricing-wrap { width:calc(100% - 40px) }
  .pricing-hero { padding:8.5rem 0 3.5rem }
  .pricing-hero h1 { font-size:clamp(4rem,17vw,7rem); line-height:.9 }
  .pricing-grid { grid-template-columns:1fr }
  .pricing-card { min-height:0 }
  .pricing-card__header { min-height:125px; padding:1.25rem }
  .pricing-card__body { padding:1.5rem }
  .pricing-card .btn { width:100%; text-align:center }
  .pricing-nutrition,
  .pricing-faq__grid { grid-template-columns:1fr; gap:2rem }
  .pricing-nutrition li { display:block }
  .pricing-nutrition strong { display:block; margin-top:.4rem }
  .pricing-cta .pricing-wrap { display:block }
  .pricing-cta h2 { font-size:clamp(4rem,20vw,6rem) }
  .pricing-cta .btn { width:100%; margin-top:2rem; text-align:center }
}

@media (max-width:767px) {
  #testi .shh { white-space:normal }
  .home-page #process { padding:clamp(4.375rem,18vw,5.3125rem) 0 }
  .home-page .process-container { width:calc(100% - 40px) }
  .home-page .process-head {
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:1.25rem;
    margin-bottom:2rem;
    text-align:center;
  }
  .home-page .process-badge {
    min-height:36px;
    padding:.65rem .8rem;
    font-size:.66rem;
    white-space:normal;
    text-align:center;
  }
  .home-page #process .steps { grid-template-columns:1fr; gap:1rem }
  .home-page #process .steps::before { display:none }
  .home-page #process .step,
  .home-page #process .step:not(:first-child),
  .home-page #process .step:last-child {
    min-height:0;
    padding:1.4rem;
    border:1px solid #d6d2ca;
  }
  .home-page #process .stn {
    min-width:66px;
    min-height:50px;
    margin-bottom:1.5rem;
    font-size:2.8rem;
  }
  .home-page #process .stp { max-width:none }
  .home-page #process .stl {
    width:100%;
    min-height:52px;
    margin-top:1.5rem;
  }
}

@media (max-width:767px) {
  body.hyrox-page .rUp,
  body.hyrox-page .rL {
    opacity:1;
    visibility:visible;
    transform:none;
  }

  body.hyrox-page .hxp-section .hxp-eyebrow {
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    margin:0 auto 16px;
    text-align:center;
  }
  body.hyrox-page .hxp-section .hxp-h,
  body.hyrox-page .hxp-section .hxp-h-xl,
  body.hyrox-page #hx-final .hxp-cta-h {
    margin-inline:auto;
    text-align:center;
  }
  body.hyrox-page .hxp-section .hxp-h::before,
  body.hyrox-page .hxp-section .hxp-h-xl::before {
    display:none;
  }
  body.hyrox-page #hx-what .hxp-h,
  body.hyrox-page #hx-training .hxp-training-head .hxp-h-xl {
    margin-top:0;
  }
  body.hyrox-page #hx-what .hxp-what-claim,
  body.hyrox-page #hx-how .hxp-how-sub {
    margin-top:16px;
    margin-inline:auto;
    text-align:center;
  }
  body.hyrox-page #hx-how .hxp-how-head .hxp-h {
    margin-bottom:0;
  }

  body.hyrox-page .hxp-wrap,
  body.hyrox-page .hyrox-container,
  body.hyrox-page #hx-hero .hyrox-container {
    width:calc(100% - 40px);
    max-width:none;
    padding-inline:0;
  }

  body.hyrox-page #hx-hero,
  body.hyrox-page #hx-what,
  body.hyrox-page #hx-how,
  body.hyrox-page #hx-training,
  body.hyrox-page #hx-who,
  body.hyrox-page #hx-final {
    height:auto;
    min-height:0;
  }

  body.hyrox-page .hxp-section {
    padding:64px 0;
  }

  body.hyrox-page #hx-hero {
    min-height:clamp(620px,82svh,720px);
    padding:6.25rem 0 2.25rem;
    display:flex;
    align-items:flex-end;
  }
  body.hyrox-page #hx-hero .hxp-hero-grid {
    display:grid;
    grid-template-columns:1fr;
    gap:1.35rem;
  }
  body.hyrox-page #hx-hero .hxp-hero-copy {
    max-width:330px;
    margin-inline:auto;
    text-align:center;
  }
  body.hyrox-page #hx-hero .hxp-eyebrow,
  body.hyrox-page #hx-what .hxp-eyebrow,
  body.hyrox-page #hx-how .hxp-eyebrow,
  body.hyrox-page #hx-training .hxp-eyebrow,
  body.hyrox-page #hx-who .hxp-h,
  body.hyrox-page #hx-final .hxp-cta-h,
  body.hyrox-page #hx-what .hxp-what-claim,
  body.hyrox-page #hx-what .hxp-what-link,
  body.hyrox-page #hx-how .hxp-how-head,
  body.hyrox-page #hx-training .hxp-training-head,
  body.hyrox-page #hx-training .hxp-training-text,
  body.hyrox-page #hx-who .hxp-h,
  body.hyrox-page #hx-final .hxp-micro {
    text-align:center;
    margin-inline:auto;
  }
  body.hyrox-page #hx-hero .hxp-hero-h,
  body.hyrox-page #hx-what .hxp-h,
  body.hyrox-page #hx-how .hxp-h,
  body.hyrox-page #hx-training .hxp-h-xl,
  body.hyrox-page #hx-who .hxp-h,
  body.hyrox-page #hx-final .hxp-cta-h {
    max-width:330px;
    margin-inline:auto;
  }
  body.hyrox-page #hx-hero .hxp-hero-h {
    font-size:clamp(3.2rem,14vw,4.7rem);
    line-height:.88;
    margin-bottom:1rem;
  }
  body.hyrox-page #hx-hero .hxp-hero-p {
    max-width:330px;
    margin:0 auto 1.15rem;
    font-size:1rem;
    line-height:1.6;
  }
  body.hyrox-page #hx-hero .hxp-cta-row {
    justify-content:center;
    gap:.75rem;
  }
  body.hyrox-page #hx-hero .hxp-hero-media {
    min-height:0;
    height:clamp(250px,42svw,320px);
    margin:0;
    border-radius:18px;
  }
  body.hyrox-page #hx-hero .hxp-hero-media img {
    object-position:center 44%;
  }

  body.hyrox-page #hx-what {
    padding:64px 0 56px;
  }
  body.hyrox-page #hx-what .hxp-split {
    grid-template-columns:1fr;
    gap:1.5rem;
  }
  body.hyrox-page #hx-what .hxp-what-heading {
    position:relative;
    padding-top:0;
    text-align:center;
  }
  body.hyrox-page #hx-what .hxp-what-heading::after {
    margin-inline:auto;
  }
  body.hyrox-page #hx-what .hxp-h {
    text-align:center;
  }
  body.hyrox-page #hx-what .hxp-what-claim {
    max-width:330px;
    margin-top:1rem;
    font-size:clamp(1.15rem,5.8vw,1.55rem);
  }
  body.hyrox-page #hx-what .hxp-what-text {
    max-width:330px;
    margin-bottom:1.2rem;
    font-size:1rem;
    line-height:1.68;
  }
  body.hyrox-page #hx-what .hxp-data-row {
    grid-template-columns:1fr;
    gap:.65rem;
  }
  body.hyrox-page #hx-what .hxp-data-item {
    min-height:98px;
    padding:.95rem 1rem;
  }
  body.hyrox-page #hx-what .hxp-data-num {
    font-size:2.55rem;
  }
  body.hyrox-page #hx-what .hxp-what-link {
    width:100%;
    justify-content:center;
    margin-top:1rem;
  }

  body.hyrox-page #hx-how {
    padding:64px 0 56px;
  }
  body.hyrox-page #hx-how .hxp-how-head {
    max-width:330px;
    display:block;
    margin-bottom:1.4rem;
  }
  body.hyrox-page #hx-how .hxp-how-sub {
    max-width:330px;
    margin:16px auto 0;
    font-size:1rem;
    line-height:1.55;
  }
  body.hyrox-page .hyrox-stations-viewport {
    display:block;
    width:100%;
    overflow-x:auto;
    scroll-behavior:smooth;
    scroll-snap-type:x mandatory;
    overscroll-behavior-inline:contain;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    touch-action:pan-x;
    padding:0 20px 16px;
  }
  body.hyrox-page .hyrox-stations-viewport::-webkit-scrollbar {
    display:none;
  }
  body.hyrox-page .hyrox-stations-track {
    display:flex;
    flex-wrap:nowrap;
    gap:16px;
    width:max-content;
  }
  body.hyrox-page .hyrox-station-card {
    flex:0 0 min(84vw,360px);
    scroll-snap-align:start;
    border-radius:16px;
  }
  body.hyrox-page .hyrox-mobile-controls {
    display:flex;
    align-items:center;
    justify-content:center;
    gap:14px;
    margin-top:28px;
  }
  body.hyrox-page .hyrox-mobile-controls button {
    display:grid;
    place-items:center;
    width:48px;
    height:48px;
    position:relative;
    z-index:20;
    pointer-events:auto;
    touch-action:manipulation;
    border:1px solid #d7ff00;
    border-radius:50%;
    color:rgb(215,255,0);
    background:transparent;
    cursor:pointer;
    transition:transform .2s ease,border-color .2s ease,opacity .2s ease,background .2s ease;
    -webkit-tap-highlight-color:transparent;
  }
  body.hyrox-page .hyrox-mobile-controls button:hover {
    border-color:rgb(215,255,0);
    background:rgba(0,0,0,.8);
    transform:translateY(-1px);
  }
  body.hyrox-page .hyrox-mobile-controls button:active {
    transform:translateY(0);
  }
  body.hyrox-page .hyrox-mobile-controls button:disabled {
    opacity:.42;
  }
  body.hyrox-page .hyrox-mobile-controls svg {
    width:22px;
    height:22px;
    fill:none;
    stroke:currentColor;
    stroke-width:2.5;
    stroke-linecap:round;
    stroke-linejoin:round;
    pointer-events:none;
  }
  body.hyrox-page #hx-how .hxp-station-media {
    height:clamp(190px,48vw,230px);
  }
  body.hyrox-page #hx-how .hxp-station-copy {
    min-height:0;
    padding:1rem 1rem 1.05rem;
  }
  body.hyrox-page #hx-how .hxp-card-h {
    font-size:clamp(1.55rem,7vw,2.15rem);
  }

  body.hyrox-page #hx-training {
    padding:64px 0 58px;
  }
  body.hyrox-page #hx-training .hxp-training-layout {
    grid-template-columns:1fr;
    gap:1.5rem;
  }
  body.hyrox-page #hx-training .hxp-training-head {
    gap:0;
  }
  body.hyrox-page #hx-training .hxp-training-media {
    min-height:0;
    aspect-ratio:4 / 3;
    height:auto;
    margin:1rem 0 0;
    border-radius:16px;
  }
  body.hyrox-page #hx-training .hxp-training-media img {
    object-position:center 46%;
  }
  body.hyrox-page #hx-training .hxp-training-text {
    max-width:330px;
    margin-bottom:1.1rem;
    font-size:1rem;
    line-height:1.65;
  }
  body.hyrox-page #hx-training .hxp-features {
    grid-template-columns:1fr;
    gap:0;
  }
  body.hyrox-page #hx-training .hxp-feature {
    min-height:0;
    padding:1rem 0 1.1rem;
  }
  body.hyrox-page #hx-training .hxp-feature-title {
    font-size:1.45rem;
  }
  body.hyrox-page #hx-training .hxp-feature-desc {
    max-width:100%;
    font-size:.98rem;
  }
  body.hyrox-page #hx-training .hxp-training-actions {
    display:grid;
    grid-template-columns:1fr;
    gap:.65rem;
    padding-top:1.35rem;
  }
  body.hyrox-page #hx-training .hxp-training-actions .btn {
    width:100%;
    justify-content:center;
    text-align:center;
  }

  body.hyrox-page #hx-who {
    padding:64px 0 58px;
  }
  body.hyrox-page #hx-who .hxp-who-eyebrow {
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    max-width:330px;
    margin:0 auto 16px;
    text-align:center;
  }
  body.hyrox-page #hx-who .hxp-h {
    max-width:330px;
    margin-bottom:1.4rem;
    font-size:clamp(2.6rem,11vw,4rem);
    line-height:.9;
  }
  body.hyrox-page .hxp-who {
    grid-template-columns:1fr;
    gap:.85rem;
  }
  body.hyrox-page .hxp-who-card {
    padding:1.2rem 1.1rem;
    border-radius:16px;
  }
  body.hyrox-page .hxp-who-card h4 {
    font-size:clamp(1.45rem,7vw,2rem);
    margin-bottom:.55rem;
  }
  body.hyrox-page .hxp-who-card p {
    font-size:1rem;
    line-height:1.6;
  }

  body.hyrox-page #hx-final {
    padding:64px 0 72px;
    background-attachment:scroll;
    background-position:center;
  }
  body.hyrox-page #hx-final .hxp-center {
    text-align:center;
  }
  body.hyrox-page #hx-final .hxp-final-media {
    height:clamp(220px,54vw,280px);
    margin:0 auto 1.6rem;
    border-radius:16px;
  }
  body.hyrox-page #hx-final .hxp-cta-h {
    font-size:clamp(2.5rem,11vw,4rem);
    line-height:.9;
    margin-bottom:1.15rem;
  }
  body.hyrox-page #hx-final .hxp-cta-row--center {
    justify-content:center;
  }
  body.hyrox-page #hx-final .hxp-micro {
    margin-top:1rem;
    font-size:.7rem;
    line-height:1.45;
  }
}

@media (min-width:390px) and (max-width:767px) {
  body.hyrox-page #hx-what .hxp-data-row {
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:.55rem;
  }
  body.hyrox-page #hx-what .hxp-data-item {
    min-height:118px;
    padding:1rem .85rem;
  }
  body.hyrox-page #hx-what .hxp-data-num {
    font-size:2.45rem;
    margin-bottom:.55rem;
  }
}

html,
body {
  cursor:auto;
}

body :is(a, button, [role="button"], .btn, .cta, .nav-link) {
  cursor:pointer;
}

body :is(input, textarea, select) {
  cursor:auto;
}

body.hyrox-page .hyrox-parallax-block {
  position:relative;
  isolation:isolate;
  overflow:hidden;
  background:
    linear-gradient(180deg,rgba(0,0,0,.72) 0%,rgba(0,0,0,.78) 45%,rgba(0,0,0,.84) 100%),
    radial-gradient(circle at 50% 38%,color-mix(in srgb,var(--color-lime) 5%,transparent),transparent 48%),
    url("../img/photo_2022-01-06_16-30-50.jpg") center 38% / cover fixed;
}

body.hyrox-page .hyrox-parallax-block > #hx-what,
body.hyrox-page .hyrox-parallax-block > #hx-training {
  background:transparent;
}

body.hyrox-page .hyrox-parallax-block > #hx-who {
  background:
    radial-gradient(circle at 50% 0%,color-mix(in srgb,var(--color-lime) 6%,transparent),transparent 32%),
    linear-gradient(180deg,#171717 0%,#101010 100%);
  background-image:
    radial-gradient(circle at 50% 0%,color-mix(in srgb,var(--color-lime) 6%,transparent),transparent 32%),
    linear-gradient(180deg,#171717 0%,#101010 100%);
}

body.hyrox-page .hyrox-parallax-block > #hx-who::before,
body.hyrox-page .hyrox-parallax-block > #hx-who::after {
  background-image:none;
}

body.hyrox-page .hyrox-parallax-block > #hx-training.hyrox-race-prep-section::before,
body.hyrox-page .hyrox-parallax-block > #hx-training.hyrox-race-prep-section::after {
  display:none;
}

body.hyrox-page .hyrox-parallax-block > #hyrox-stations {
  position:relative;
  z-index:1;
  background:#050505;
}

body.hyrox-page .hyrox-parallax-block > #hx-what,
body.hyrox-page .hyrox-parallax-block > #hx-training,
body.hyrox-page .hyrox-parallax-block > #hx-who,
body.hyrox-page .hyrox-parallax-block > #hx-what .hyrox-container,
body.hyrox-page .hyrox-parallax-block > #hx-training .hyrox-container,
body.hyrox-page .hyrox-parallax-block > #hx-who .hyrox-container {
  position:relative;
  z-index:1;
}

@media (max-width:767px) {
  body.hyrox-page .hyrox-parallax-block {
    background-attachment:scroll;
    background-position:center 38%;
  }
}

body.hyrox-page .hyrox-parallax-block {
  position:relative;
  isolation:isolate;
  overflow:visible;
  background:#000;
}

body.hyrox-page .hyrox-sticky-bg {
  position:sticky;
  top:0;
  height:100vh;
  z-index:0;
  margin-bottom:-100vh;
  overflow:hidden;
  background:#000;
  pointer-events:none;
}

body.hyrox-page .hyrox-sticky-bg .hyrox-hero-video {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
  z-index:0;
}

body.hyrox-page .hyrox-sticky-bg .hyrox-hero-overlay {
  position:absolute;
  inset:0;
  z-index:1;
  background:
    linear-gradient(180deg,rgba(0,0,0,.62) 0%,rgba(0,0,0,.52) 42%,rgba(0,0,0,.76) 100%),
    radial-gradient(circle at 50% 48%,color-mix(in srgb,var(--color-lime) 9%,transparent),rgba(0,0,0,.42) 70%);
}

body.hyrox-page .hyrox-parallax-block > #hx-hero,
body.hyrox-page .hyrox-parallax-block > #hx-what {
  position:relative;
  z-index:1;
  background:transparent;
}

body.hyrox-page .hyrox-parallax-block > #hx-hero .hyrox-container,
body.hyrox-page .hyrox-parallax-block > #hx-what .hyrox-container {
  position:relative;
  z-index:1;
}

body.hyrox-page .hyrox-parallax-block > #hx-what::after {
  opacity:.55;
}

body.hyrox-page #hyrox-stations {
  position:relative;
  z-index:2;
  background:#050505;
}

body.hyrox-page #hx-training {
  position:relative;
  z-index:2;
  background:#f3f0e8;
}

body.hyrox-page #hx-who {
  position:relative;
  z-index:2;
  background:#101010;
}

body.hyrox-page #hx-final {
  position:relative;
  z-index:2;
  background:#050505;
}

@media (max-width:767px) {
  body.hyrox-page .hyrox-sticky-bg {
    height:100svh;
    margin-bottom:-100svh;
  }

  body.hyrox-page .hyrox-sticky-bg .hyrox-hero-video {
    object-position:center center;
  }
}

@media (min-width:1024px) {
  .cf-page #programma-crossfit.cf-photo-story {
    min-height:0;
    height:auto;
    padding:clamp(5.5rem,7vw,7rem) 0;
    overflow:hidden;
  }

  .cf-page #programma-crossfit .cf-photo-sticky {
    min-height:0;
    height:auto;
    padding:0 max(calc((100vw - 1680px)/2),4vw);
  }

  .cf-page #programma-crossfit .cf-photo-viewport {
    overflow:hidden;
  }
}

/* Unified site header */
nav#nav.site-header,
nav#nav.site-header.solid,
.hyrox-page nav#nav.site-header,
.hyrox-page nav#nav.site-header.solid,
.cf-page nav#nav.site-header.cf-nav,
.cf-page nav#nav.site-header.cf-nav.solid {
  display:block;
  padding:0;
}

nav#nav.site-header .nav-container {
  position:relative;
  width:calc(100% - clamp(40px,8vw,160px));
  max-width:1680px;
  min-height:clamp(78px,6.5vw,96px);
  margin-inline:auto;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:2rem;
  transition:min-height .4s ease;
}

nav#nav.site-header.solid .nav-container {
  min-height:clamp(64px,5vw,78px);
}

nav#nav.site-header .nav-brand {
  grid-column:1;
  justify-self:start;
}

nav#nav.site-header .nav-links {
  grid-column:2;
  justify-self:center;
}

nav#nav.site-header .nav-actions {
  grid-column:3;
  justify-self:end;
}

@media (max-width:899px) {
  nav#nav.site-header,
  nav#nav.site-header.solid,
  .hyrox-page nav#nav.site-header,
  .hyrox-page nav#nav.site-header.solid,
  .cf-page nav#nav.site-header.cf-nav,
  .cf-page nav#nav.site-header.cf-nav.solid {
    display:block;
    padding:0;
  }

  nav#nav.site-header .nav-container {
    width:calc(100% - 40px);
    max-width:none;
    min-height:72px;
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:1rem;
  }

  nav#nav.site-header.solid .nav-container {
    min-height:64px;
  }

  nav#nav.site-header .nav-actions,
  .cf-page nav#nav.site-header.cf-nav .nav-actions {
    grid-column:2;
    position:fixed;
    top:14px;
    right:20px;
    transform:none;
    justify-self:end;
    z-index:1002;
  }

  nav#nav.site-header .nav-toggle {
    display:flex!important;
    visibility:visible!important;
    opacity:1!important;
  }

  nav#nav.site-header .nav-links,
  .hyrox-page nav#nav.site-header .nav-links,
  .cf-page nav#nav.site-header .nav-links {
    left:50%;
    right:auto;
    width:min(calc(100vw - 40px),1680px);
    transform:translateX(-50%) translateY(-10px);
  }

  nav#nav.site-header.nav-open .nav-links {
    transform:translateX(-50%);
  }
}

/* Home neutral brand palette */
.home-page nav#nav .nav-links a:hover {
  color:inherit;
  opacity:.68;
}

.home-page nav#nav .nav-cta,
.home-page nav#nav .nav-links .nav-cta--mobile {
  color:#050505!important;
  background:#fff!important;
  border:1px solid rgba(255,255,255,.88);
}

.home-page nav#nav.header--light .nav-cta,
.home-page nav#nav.header--light .nav-links .nav-cta--mobile {
  color:#fff!important;
  background:#050505!important;
  border-color:#050505!important;
}

.home-page nav#nav .nav-cta:hover,
.home-page nav#nav .nav-links .nav-cta--mobile:hover {
  color:#fff!important;
  background:rgba(255,255,255,.08)!important;
  border-color:rgba(255,255,255,.58);
}

.home-page nav#nav.header--light .nav-cta:hover,
.home-page nav#nav.header--light .nav-links .nav-cta--mobile:hover {
  color:#050505!important;
  background:#fff!important;
  border-color:rgba(5,5,5,.38)!important;
}

.home-page .intro-hero-copy h1 em,
.home-page .home-hero-title em {
  color:#f1eadc;
  font-style:normal;
  text-decoration:none;
}

.home-page .home-section-title em,
.home-page .process-head .shh em,
.home-page #testi .shh em {
  color:#f1eadc;
  font-style:normal;
  text-decoration:none;
}

[data-site-footer],
.site-footer {
  background:#000!important;
}

.site-footer {
  margin-bottom:0!important;
  box-shadow:0 100vh 0 100vh #000!important;
}

.home-page #capabilities .home-section-title em,
.home-page #testi .shh em {
  color:#e8dfcf;
}

.home-page .btn-red,
.home-page #intro .btn,
.home-page #process .stl {
  color:#050505;
  background:#fff;
  border:1px solid rgba(255,255,255,.86);
}

.home-page .btn-red:hover,
.home-page #intro .btn:hover,
.home-page #process .stl:hover {
  color:#fff;
  background:rgba(255,255,255,.08);
  border-color:rgba(255,255,255,.58);
  transform:translateY(-2px);
}

.home-page #process .stl {
  background:#111;
  color:#fff;
  border-color:#111;
}

.home-page #process .stl:hover {
  color:#111;
  background:transparent;
  border-color:#111;
}

.home-page .home-path-cta {
  color:#fff;
  background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.42);
}

.home-page .home-path--crossfit .home-path-kicker {
  border-color:rgba(188,22,47,.65);
}

.home-page .home-path--crossfit .home-path-cta {
  color:#fff;
  background:var(--red);
  border-color:var(--red);
}

.home-page .home-path--hyrox .home-path-kicker {
  border-color:color-mix(in srgb,var(--color-lime) 65%,transparent);
}

.home-page .home-path--hyrox .home-path-cta {
  color:#050505;
  background:var(--color-lime);
  border-color:var(--color-lime);
}

/* Home process section background */
.home-page #process {
  position:relative;
  isolation:isolate;
  overflow:hidden;
  color:#fff;
  background:#050505;
}

.home-page #process::before {
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  background:url("../img/photo_2022-01-06_16-30-50.jpg") center 70% / cover no-repeat;
  filter:brightness(.96) contrast(1.08);
  pointer-events:none;
}

.home-page #process::after {
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  background:
    rgba(0,0,0,.54),
    radial-gradient(ellipse at 50% 18%,rgba(0,0,0,.68) 0%,rgba(0,0,0,.48) 26%,rgba(0,0,0,.18) 48%,rgba(0,0,0,0) 68%),
    linear-gradient(180deg,rgba(0,0,0,.74) 0%,rgba(0,0,0,.46) 30%,rgba(0,0,0,.64) 100%),
    linear-gradient(0deg,rgba(0,0,0,.56) 0%,rgba(0,0,0,.24) 44%,rgba(0,0,0,0) 70%),
    radial-gradient(circle at 50% 24%,rgba(255,255,255,.18),rgba(0,0,0,0) 46%);
  pointer-events:none;
}

.home-page #process .process-container,
.home-page #process .process-head,
.home-page #process .steps,
.home-page #process .step {
  position:relative;
  z-index:1;
}

.home-page #process .process-head {
  isolation:isolate;
}

.home-page #process .process-head::before {
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  z-index:0;
  width:min(920px,120vw);
  height:clamp(170px,18vw,260px);
  transform:translate(-50%,-54%);
  background:
    radial-gradient(ellipse at center,rgba(0,0,0,.76) 0%,rgba(0,0,0,.56) 34%,rgba(0,0,0,.2) 62%,rgba(0,0,0,0) 78%);
  filter:blur(2px);
  pointer-events:none;
}

.home-page #process .process-head > * {
  position:relative;
  z-index:1;
}

.home-page #process .process-head .shh,
.home-page #process .process-head .shh em,
.home-page #process .sth,
.home-page #process .stn,
.home-page #process .stp {
  color:#fff;
}

.home-page #process .process-badge {
  color:rgba(255,255,255,.84);
  background:rgba(255,255,255,.08);
  border-color:rgba(255,255,255,.28);
  backdrop-filter:blur(10px);
}

.home-page #process .steps::before {
  background:rgba(255,255,255,.18);
}

.home-page #process .step,
.home-page #process .step:not(:first-child),
.home-page #process .step:last-child {
  color:#fff;
  background:rgba(0,0,0,.62);
  border:1px solid rgba(255,255,255,.22);
  box-shadow:0 24px 70px rgba(0,0,0,.28);
  backdrop-filter:blur(7px);
}

.home-page #process .stn {
  color:#fff;
  background:rgba(255,255,255,.08);
  border-color:rgba(255,255,255,.22);
}

.home-page #process .stp {
  color:rgba(255,255,255,.78);
}

.home-page #process .stl {
  color:#050505;
  background:#fff;
  border-color:rgba(255,255,255,.86);
}

.home-page #process .stl:hover {
  color:#fff;
  background:rgba(255,255,255,.08);
  border-color:rgba(255,255,255,.54);
}

@media (min-width:768px) {
  .home-page #process {
    background:#050505 url("../img/photo_2022-01-06_16-30-50.jpg") center 70% / cover fixed no-repeat;
  }

  .home-page #process::before {
    background:none;
    filter:none;
  }
}

/* Home why section fixed background */
.home-page #why {
  position:relative;
  isolation:isolate;
  overflow:hidden;
  color:#fff;
  background:
    linear-gradient(180deg,rgba(0,0,0,.56) 0%,rgba(0,0,0,.42) 42%,rgba(0,0,0,.64) 100%),
    radial-gradient(ellipse at 50% 22%,rgba(0,0,0,.42) 0%,rgba(0,0,0,.12) 52%,rgba(0,0,0,0) 74%),
    url("../img/photo_2022-01-06_16-30-50.jpg") center 70% / cover fixed no-repeat;
}

.home-page #why::before {
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  background:linear-gradient(0deg,rgba(0,0,0,.36),rgba(0,0,0,.04) 48%,rgba(0,0,0,.24));
  pointer-events:none;
}

.home-page #why .why-home-head,
.home-page #why .why-home-grid {
  position:relative;
  z-index:1;
}

.home-page #why .stag,
.home-page #why .why-home-head h2,
.home-page #why .why-home-head h2 em,
.home-page #why .why-wheel-phrase,
.home-page #why .why-wheel-phrase em,
.home-page #why .why-home-item h3 {
  color:#fff;
}

.home-page #why .why-home-copy > p,
.home-page #why .why-home-item p {
  color:rgba(255,255,255,.86);
}

.home-page #why .why-home-item span {
  color:rgba(255,255,255,.68);
}

.home-page #why .why-home-grid {
  border-top-color:rgba(255,255,255,.32);
}

.home-page #why .why-home-item h3 {
  color:rgba(255,255,255,.96);
}

@media (max-width:767px) {
  .home-page #why {
    background:
      linear-gradient(180deg,rgba(0,0,0,.58) 0%,rgba(0,0,0,.44) 42%,rgba(0,0,0,.66) 100%),
      url("../img/photo_2022-01-06_16-30-50.jpg") center 70% / cover no-repeat;
  }

  .home-page #why .why-home-item {
    border-top-color:rgba(255,255,255,.26);
    border-bottom-color:rgba(255,255,255,.22);
  }
}

/* Shared fixed photo treatment for home editorial sections */
.home-page .home-fixed-photo-bg {
  position:relative;
  isolation:isolate;
  overflow:hidden;
  color:#fff;
  background:#050505!important;
}

.home-page #why.home-fixed-photo-bg,
.home-page #process.home-fixed-photo-bg {
  position:relative;
  isolation:isolate;
  overflow:hidden;
  color:#fff;
  background:#050505!important;
}

.home-page .home-fixed-photo-bg::before {
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  background-image:url("../img/photo_2022-01-06_16-30-50.jpg")!important;
  background-position:center 18%!important;
  background-size:cover!important;
  background-attachment:fixed!important;
  background-repeat:no-repeat!important;
  filter:brightness(.9) contrast(1.08);
  pointer-events:none;
}

.home-page #why.home-fixed-photo-bg::before,
.home-page #process.home-fixed-photo-bg::before {
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  background-image:url("../img/photo_2022-01-06_16-30-50.jpg")!important;
  background-position:center 18%!important;
  background-size:cover!important;
  background-attachment:fixed!important;
  background-repeat:no-repeat!important;
  filter:brightness(.9) contrast(1.08);
  pointer-events:none;
}

.home-page .home-fixed-photo-bg::after {
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  background:
    linear-gradient(180deg,rgba(0,0,0,.58) 0%,rgba(0,0,0,.44) 42%,rgba(0,0,0,.66) 100%),
    radial-gradient(ellipse at 50% 22%,rgba(0,0,0,.52) 0%,rgba(0,0,0,.25) 44%,rgba(0,0,0,0) 72%),
    linear-gradient(0deg,rgba(0,0,0,.36),rgba(0,0,0,.08) 48%,rgba(0,0,0,.28));
  pointer-events:none;
}

.home-page #why.home-fixed-photo-bg::after,
.home-page #process.home-fixed-photo-bg::after {
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  background:
    linear-gradient(180deg,rgba(0,0,0,.52) 0%,rgba(0,0,0,.38) 42%,rgba(0,0,0,.6) 100%),
    radial-gradient(ellipse at 50% 22%,rgba(0,0,0,.46) 0%,rgba(0,0,0,.2) 44%,rgba(0,0,0,0) 72%),
    linear-gradient(0deg,rgba(0,0,0,.3),rgba(0,0,0,.06) 48%,rgba(0,0,0,.24));
  pointer-events:none;
}

.home-page .home-fixed-photo-bg > * {
  position:relative;
  z-index:1;
}

.home-page .home-fixed-photo-bg .why-home-head,
.home-page .home-fixed-photo-bg .process-head {
  position:relative;
  isolation:isolate;
}

.home-page .home-fixed-photo-bg .why-home-head::before,
.home-page .home-fixed-photo-bg .process-head::before {
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  z-index:0;
  width:min(920px,120vw);
  height:clamp(170px,18vw,260px);
  transform:translate(-50%,-54%);
  background:radial-gradient(ellipse at center,rgba(0,0,0,.7) 0%,rgba(0,0,0,.5) 34%,rgba(0,0,0,.18) 62%,rgba(0,0,0,0) 78%);
  filter:blur(2px);
  pointer-events:none;
}

.home-page #why.home-fixed-photo-bg .why-home-head::before,
.home-page #process.home-fixed-photo-bg .process-head::before {
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  z-index:0;
  width:min(920px,120vw);
  height:clamp(170px,18vw,260px);
  transform:translate(-50%,-54%);
  background:radial-gradient(ellipse at center,rgba(0,0,0,.7) 0%,rgba(0,0,0,.5) 34%,rgba(0,0,0,.18) 62%,rgba(0,0,0,0) 78%);
  filter:blur(2px);
  pointer-events:none;
}

.home-page .home-fixed-photo-bg .why-home-head > *,
.home-page .home-fixed-photo-bg .process-head > * {
  position:relative;
  z-index:1;
}

@media (max-width:767px) {
  .home-page .home-fixed-photo-bg::before {
    background-image:url("../img/photo_2022-01-06_16-30-50.jpg")!important;
    background-position:center 18%!important;
    background-size:cover!important;
    background-attachment:scroll!important;
    background-repeat:no-repeat!important;
  }

  .home-page #why.home-fixed-photo-bg::before,
  .home-page #process.home-fixed-photo-bg::before {
    background-image:url("../img/photo_2022-01-06_16-30-50.jpg")!important;
    background-position:center 18%!important;
    background-size:cover!important;
    background-attachment:scroll!important;
    background-repeat:no-repeat!important;
  }
}

/* Home why phrase glass carousel */
.home-page #why .why-home-side {
  display:block;
  width:min(100%,1320px);
  overflow:visible;
}

.home-page #why .why-phrase-wheel {
  width:min(100%,1320px);
  max-width:none;
  height:clamp(16.5rem,21vw,19rem);
  min-height:260px;
  margin-inline:auto;
  overflow:visible;
  perspective:1200px;
  mask-image:none;
  -webkit-mask-image:none;
}

.home-page #why .why-wheel-phrase {
  display:grid;
  place-content:center;
  justify-items:center;
  width:min(37rem,60vw);
  max-width:none;
  min-height:clamp(10.5rem,13vw,13rem);
  padding:clamp(1.7rem,2.4vw,2.35rem) clamp(1.35rem,2.3vw,2.25rem);
  color:#fff;
  text-align:center;
  background:rgba(0,0,0,.6);
  border:1px solid rgba(255,255,255,.22);
  border-radius:8px;
  backdrop-filter:blur(8px);
  box-shadow:0 24px 70px rgba(0,0,0,.26);
  font:700 clamp(2.65rem,3.8vw,4.85rem)/.88 var(--display-font);
  opacity:0;
  visibility:hidden;
  transform:translate(-50%,-50%) scale(.82);
  transition:
    opacity .56s cubic-bezier(.16,1,.3,1),
    visibility .56s cubic-bezier(.16,1,.3,1),
    transform .56s cubic-bezier(.16,1,.3,1),
    filter .56s cubic-bezier(.16,1,.3,1);
  will-change:opacity,transform;
}

.home-page #why .why-wheel-phrase em {
  color:#e8dfcf;
  font-style:normal;
}

.home-page #why .why-wheel-phrase.is-current {
  opacity:1;
  visibility:visible;
  z-index:4;
  filter:none;
  transform:translate(-50%,-50%) rotateY(0deg) scale(1);
}

.home-page #why .why-wheel-phrase.is-prev,
.home-page #why .why-wheel-phrase.is-next {
  opacity:.42;
  visibility:visible;
  z-index:2;
  filter:blur(.2px);
  pointer-events:none;
}

.home-page #why .why-wheel-phrase.is-prev {
  transform:translate(calc(-50% - clamp(15rem,24vw,27rem)),-50%) rotateY(9deg) scale(.68);
}

.home-page #why .why-wheel-phrase.is-next {
  transform:translate(calc(-50% + clamp(15rem,24vw,27rem)),-50%) rotateY(-9deg) scale(.68);
}

.home-page #why .why-wheel-phrase.is-back {
  opacity:0;
  visibility:hidden;
  z-index:1;
  transform:translate(-50%,-50%) scale(.78);
}

@media (max-width:767px) {
  body.home-page #why .why-home-side {
    display:block;
    width:100%;
    max-width:100%;
    margin-top:2rem;
  }

  body.home-page #why .why-phrase-wheel {
    width:min(100%,calc(100vw - 40px));
    height:clamp(12.75rem,52vw,15rem);
    min-height:0;
    margin:0 auto 1rem;
    overflow:hidden;
    perspective:none;
  }

  body.home-page #why .why-wheel-phrase {
    left:50%;
    top:50%;
    width:100%;
    max-width:100%;
    min-height:clamp(10.75rem,44vw,13rem);
    padding:1.45rem 1.05rem;
    font-size:clamp(2.2rem,11vw,3.35rem);
    line-height:.9;
    transform-origin:center;
  }

  body.home-page #why .why-wheel-phrase.is-current {
    opacity:1;
    visibility:visible;
    transform:translate(-50%,-50%) scale(1);
  }

  body.home-page #why .why-wheel-phrase.is-prev,
  body.home-page #why .why-wheel-phrase.is-next,
  body.home-page #why .why-wheel-phrase.is-back {
    opacity:0;
    visibility:hidden;
    transform:translate(-50%,-50%) scale(.96);
  }
}

/* HYROX mobile readability pass */
@media (max-width:767px) {
  body.hyrox-page .hyrox-container,
  body.hyrox-page .hxp-wrap {
    width:calc(100% - 40px);
    max-width:430px;
  }

  body.hyrox-page .hxp-section,
  body.hyrox-page #hx-what,
  body.hyrox-page #hyrox-stations,
  body.hyrox-page #hx-training,
  body.hyrox-page #hx-who {
    padding-top:clamp(4.75rem,16vw,6rem);
    padding-bottom:clamp(4.75rem,16vw,6rem);
  }

  body.hyrox-page .hxp-h,
  body.hyrox-page .hxp-h-xl,
  body.hyrox-page .hxp-cta-h {
    font-size:clamp(2.45rem,11vw,4rem);
    line-height:.93;
  }

  body.hyrox-page #hx-hero {
    min-height:92svh;
    display:flex;
    align-items:center;
    padding:clamp(5.75rem,15vw,7rem) 0 clamp(3.75rem,12vw,5rem);
  }

  body.hyrox-page #hx-hero .hxp-hero-grid {
    display:block;
    min-height:0;
  }

  body.hyrox-page #hx-hero .hxp-hero-copy {
    max-width:100%;
    margin-inline:auto;
    text-align:center;
  }

  body.hyrox-page #hx-hero .hxp-eyebrow {
    justify-content:center;
    margin-bottom:1rem;
  }

  body.hyrox-page #hx-hero .hxp-hero-h {
    max-width:10.5ch;
    margin-inline:auto;
    font-size:clamp(3.05rem,14vw,4.85rem);
    line-height:.92;
  }

  body.hyrox-page #hx-hero .hxp-hero-p {
    max-width:31ch;
    margin:1.25rem auto 0;
    font-size:clamp(1rem,4.3vw,1.12rem);
    line-height:1.62;
  }

  body.hyrox-page #hx-hero .hxp-cta-row {
    display:grid;
    grid-template-columns:1fr;
    gap:.85rem;
    width:min(100%,340px);
    margin:1.75rem auto 0;
  }

  body.hyrox-page #hx-hero .hxp-cta-row .btn {
    width:100%;
    min-height:52px;
    justify-content:center;
  }

  body.hyrox-page #hx-what .hxp-split {
    grid-template-columns:1fr;
    gap:2rem;
  }

  body.hyrox-page #hx-what .hxp-what-heading,
  body.hyrox-page #hx-what .hxp-what-content {
    max-width:100%;
  }

  body.hyrox-page #hx-what .hxp-what-claim,
  body.hyrox-page #hx-what .hxp-what-text {
    max-width:100%;
  }

  body.hyrox-page #hx-what .hxp-data-row {
    grid-template-columns:1fr!important;
    gap:.75rem;
  }

  body.hyrox-page #hx-what .hxp-data-item {
    width:100%;
    min-height:0;
    padding:1.15rem 1.25rem;
    text-align:left;
  }

  body.hyrox-page #hx-what .hxp-data-num {
    font-size:clamp(2.55rem,11vw,3.4rem);
    margin-bottom:.45rem;
  }

  body.hyrox-page #hx-what .hxp-data-label,
  body.hyrox-page #hx-what .hxp-data-sub {
    display:block;
    text-align:left;
  }

  body.hyrox-page #hx-what .hxp-what-link {
    width:min(100%,340px);
    min-height:52px;
    justify-content:center;
    margin:1.15rem auto 0;
  }

  body.hyrox-page #hyrox-stations .hxp-how-head {
    max-width:100%;
    margin-bottom:1.75rem;
    text-align:center;
  }

  body.hyrox-page #hyrox-stations .hxp-how-sub {
    max-width:32ch;
    margin:1rem auto 0;
    line-height:1.65;
  }

  body.hyrox-page .hyrox-stations-viewport {
    margin-inline:-20px;
    padding:0 20px 8px;
    scroll-padding-inline:20px;
  }

  body.hyrox-page .hyrox-stations-track {
    gap:18px;
  }

  body.hyrox-page .hyrox-station-card {
    flex:0 0 min(86vw,350px);
    min-height:0;
    border-radius:18px;
    overflow:hidden;
  }

  body.hyrox-page #hyrox-stations .hxp-station-media {
    height:clamp(220px,58vw,270px);
  }

  body.hyrox-page #hyrox-stations .hxp-station-copy {
    min-height:0;
    padding:1.15rem 1.15rem 1.25rem;
  }

  body.hyrox-page #hyrox-stations .hxp-card-h {
    font-size:clamp(1.85rem,8vw,2.55rem);
    line-height:.95;
  }

  body.hyrox-page .hyrox-mobile-controls {
    gap:1rem;
    margin-top:1.15rem;
  }

  body.hyrox-page .hyrox-mobile-controls button {
    width:42px;
    height:42px;
  }

  body.hyrox-page .hyrox-mobile-controls svg {
    width:19px;
    height:19px;
  }

  body.hyrox-page #hx-training {
    padding-top:clamp(5rem,17vw,6.5rem);
    padding-bottom:clamp(5rem,17vw,6.5rem);
    color:#fff;
    background:#020302;
  }

  body.hyrox-page #hx-training .hxp-training-layout {
    grid-template-columns:1fr;
    gap:2rem;
  }

  body.hyrox-page #hx-training .hxp-h-xl {
    font-size:clamp(2.35rem,10.5vw,3.85rem);
    line-height:.94;
  }

  body.hyrox-page #hx-training .hxp-training-text {
    max-width:100%;
    line-height:1.65;
  }

  body.hyrox-page #hx-training .hxp-features {
    grid-template-columns:1fr;
    gap:.9rem;
  }

  body.hyrox-page #hx-training .hxp-feature {
    min-height:0;
    padding:1.2rem 1.1rem;
    border:1px solid rgba(255,255,255,.11);
    border-radius:16px;
    background:rgba(255,255,255,.045);
  }

  body.hyrox-page #hx-training .hxp-feature::after {
    right:1rem;
    bottom:-.45rem;
    font-size:4.25rem;
  }

  body.hyrox-page #hx-training .hxp-feature-title {
    font-size:clamp(1.35rem,6.4vw,1.85rem);
    line-height:1;
  }

  body.hyrox-page #hx-training .hxp-feature-desc {
    line-height:1.62;
  }

  body.hyrox-page #hx-who .hxp-who-eyebrow {
    justify-content:center;
    text-align:center;
  }

  body.hyrox-page #hx-who .hxp-h {
    max-width:100%;
    margin-bottom:1.8rem;
    font-size:clamp(2.4rem,10.5vw,3.85rem);
    line-height:.94;
  }

  body.hyrox-page .hxp-who {
    grid-template-columns:1fr;
    gap:1rem;
  }

  body.hyrox-page .hxp-who-card {
    min-height:0;
    padding:1.35rem 1.2rem;
    border-radius:16px;
  }

  body.hyrox-page .hxp-who-card h4 {
    font-size:clamp(1.65rem,7.5vw,2.25rem);
    line-height:.98;
  }

  body.hyrox-page .hxp-who-card p {
    font-size:1rem;
    line-height:1.66;
  }

  body.hyrox-page #hx-final {
    padding-top:clamp(4.25rem,14vw,5.25rem);
    padding-bottom:clamp(4.75rem,16vw,6rem);
  }
}
