/* =====================================================================
   Núcleo Training Club · Prediseño de home
   Concepto "hormigón y cobalto": losas claras de hormigón alternadas con
   bloques oscuros de vídeo e imagen, y un azul cobalto eléctrico como
   único acento. Anton para titulares condensados, Space Grotesk para leer.
   El cuadrado cobalto del logotipo funciona como punto final de la marca.
   ===================================================================== */
:root{
  --hormigon:#E7E5E0; --hormigon-2:#DCD9D2; --hormigon-3:#C9C5BC;
  --tinta:#16181B; --tinta-2:#1F2226; --tinta-3:#2B2F34;
  --cobalto:#2F47FF; --cobalto-2:#1F35E0; --cobalto-l:#6577FF; --cobalto-t:#DFE3FF; --cobalto-d:#1A2BB0;
  --tiza:#FAFAF7; --acero:#6B6F76; --acero-d:#565A61;
  --line:rgba(22,24,27,.14); --line-l:rgba(250,250,247,.14);
  --display:'Anton', Impact, 'Haettenschweiler', 'Arial Narrow Bold', 'DejaVu Sans Condensed', sans-serif;
  --sans:'Space Grotesk', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --pad:clamp(20px,4vw,56px); --max:1320px;
  --sec:clamp(84px,9vw,136px);
  --hdr:114px;
  --ease:cubic-bezier(.2,.8,.2,1);
  --check:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='square'%3E%3Cpath d='m4.5 12.5 4.5 4.5L19.5 6.5'/%3E%3C/svg%3E");
  --star:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 16'%3E%3Cpath d='M8 .8l2.1 4.4 4.8.6-3.5 3.3.9 4.7L8 11.5l-4.3 2.3.9-4.7L1.1 5.8l4.8-.6z'/%3E%3C/svg%3E");
  --sr-accent:#6577FF; --sr-font:'Space Grotesk', system-ui, sans-serif;
  --sr-bg:rgba(22,24,27,.97); --sr-radius:6px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth; -webkit-text-size-adjust:100%}
body{margin:0; background:var(--tiza); color:var(--tinta); font-family:var(--sans); font-size:17px; line-height:1.6; -webkit-font-smoothing:antialiased; overflow-x:hidden}
img,svg,video{display:block; max-width:100%}
a{color:inherit; text-decoration:none}
h1,h2,h3,h4{margin:0; font-weight:400}
p,figure,blockquote{margin:0}
ul,ol{margin:0; padding:0; list-style:none}
button,input,select{font:inherit}
p,blockquote,li{text-wrap:pretty}
.wrap{width:100%; max-width:var(--max); margin:0 auto; padding:0 var(--pad)}
.vh{position:absolute !important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap}
.ico{width:18px; height:18px; flex:0 0 auto; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round}
.nc{text-transform:none}

/* Textura de hormigón: grano fino y nubes de cemento muy suaves */
.concrete{
  background-color:var(--hormigon);
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .09 0 0 0 0 .09 0 0 0 0 .1 0 0 0 .13 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"),
    radial-gradient(ellipse 60% 70% at 12% 8%, rgba(255,255,255,.42), transparent 70%),
    radial-gradient(ellipse 55% 60% at 92% 96%, rgba(120,112,98,.12), transparent 70%);
}

/* ---------- Botones ---------- */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:10px; white-space:nowrap; font:600 15px/1 var(--sans); letter-spacing:.005em; min-height:52px; padding:0 24px; border:0; border-radius:0; cursor:pointer; transition:background .25s, color .25s, box-shadow .25s}
.btn .ico{transition:transform .35s var(--ease)}
.btn:hover .ico{transform:translateX(4px)}
.btn-cob{background:var(--cobalto); color:#fff}
.btn-cob:hover{background:var(--cobalto-2)}
.btn-chalk{background:var(--tiza); color:var(--tinta)}
.btn-chalk:hover{background:var(--tinta); color:var(--tiza)}
.btn-ghost{color:var(--tiza); box-shadow:inset 0 0 0 1.5px rgba(250,250,247,.5)}
.btn-ghost:hover{background:var(--tiza); color:var(--tinta); box-shadow:inset 0 0 0 1.5px var(--tiza)}
.btn-lg{min-height:58px; padding:0 28px; font-size:16px}
.btn-full{width:100%}
.stars{display:block; width:86px; height:15px; background:currentColor; -webkit-mask:var(--star) left center/17.2px 15px repeat-x; mask:var(--star) left center/17.2px 15px repeat-x}

/* ---------- Marquesina de anuncios ---------- */
.ann{background:var(--cobalto); color:#fff; height:38px; overflow:hidden; font-size:13.5px; font-weight:500; letter-spacing:.01em}
.ann-track{display:flex; width:max-content; height:100%; animation:slide 56s linear infinite}
.ann:hover .ann-track{animation-play-state:paused}
.mq-js .ann-track,.mq-js .band-track{animation:none; will-change:transform}
.ann-list{display:flex; align-items:center; flex:0 0 auto}
.ann-list li{display:flex; align-items:center; gap:30px; padding-right:30px; white-space:nowrap}
.ann-list svg{width:20px; height:20px; fill:none; stroke:#fff; stroke-width:1.9; stroke-linecap:round; opacity:.8}
@keyframes slide{to{transform:translateX(-50%)}}

/* ---------- Cabecera ---------- */
.hd{position:sticky; top:0; z-index:90; background:var(--tinta); color:var(--tiza); border-bottom:1px solid rgba(250,250,247,.07); transition:box-shadow .3s}
.hd.is-scrolled{box-shadow:0 16px 34px -22px rgba(0,0,0,.7)}
.hd-in{display:flex; align-items:stretch; gap:24px; height:76px}
.hd .logo-sub{display:none}
.logo{display:flex; align-items:center; flex:0 0 auto; color:var(--tiza)}
.logo-word{font-family:var(--display); font-size:34px; line-height:1; text-transform:uppercase; letter-spacing:.012em; white-space:nowrap}
.logo-sq{display:inline-block; width:.25em; height:.25em; margin-left:.07em; background:var(--cobalto); vertical-align:baseline}
.logo-sub{margin-left:14px; padding-left:13px; border-left:1px solid rgba(250,250,247,.22); font-size:11.5px; font-weight:500; line-height:1.18; color:rgba(250,250,247,.62); letter-spacing:.02em}

.nav{margin-left:auto; display:flex}
.nav > ul{display:flex; align-items:stretch; gap:2px}
.nav > ul > li{display:flex}
.nav > ul > li > a{position:relative; display:flex; align-items:center; gap:6px; padding:0 12px; white-space:nowrap; font-size:15px; font-weight:500; color:rgba(250,250,247,.8); transition:color .2s}
.nav > ul > li > a::after{content:""; position:absolute; left:12px; right:12px; bottom:-1px; height:3px; background:var(--cobalto); transform:scaleX(0); transform-origin:left; transition:transform .35s var(--ease)}
.nav > ul > li:hover > a,.nav > ul > li > a:focus-visible{color:#fff}
.nav > ul > li:hover > a::after{transform:scaleX(1)}
.chev{flex:0 0 auto; width:14px; height:14px; fill:none; stroke:currentColor; stroke-width:2; transition:transform .3s}
.has-mega:hover .chev{transform:rotate(180deg)}

/* Megamenú */
.has-mega{position:static}
.mega{position:absolute; left:0; right:0; top:100%; background:var(--tiza); color:var(--tinta); box-shadow:0 50px 70px -40px rgba(0,0,0,.55); opacity:0; visibility:hidden; transform:translateY(-6px); transition:opacity .22s, transform .3s var(--ease), visibility 0s .3s}
.has-mega:hover .mega,.has-mega:has(:focus-visible) .mega{opacity:1; visibility:visible; transform:none; transition:opacity .22s, transform .3s var(--ease)}
.mega-in{display:grid; grid-template-columns:1.55fr 1fr; gap:clamp(32px,4vw,56px); padding-top:40px; padding-bottom:44px}
.mega-title{font-size:14px; font-weight:500; color:var(--acero-d); padding-bottom:14px; border-bottom:1px solid var(--line)}
.mega-grid{display:grid; grid-template-columns:1fr 1fr; column-gap:36px}
.mega-grid a{position:relative; display:block; padding:16px 0 16px 0; border-bottom:1px solid var(--line); transition:padding .35s var(--ease)}
.mega-grid a::before{content:""; position:absolute; left:0; top:24px; width:9px; height:9px; background:var(--cobalto); transform:scale(0); transition:transform .3s var(--ease)}
.mega-grid b{display:block; font-family:var(--display); font-weight:400; font-size:25px; line-height:1.05; text-transform:uppercase; letter-spacing:.01em}
.mega-grid span{display:block; margin-top:4px; font-size:14px; color:var(--acero-d)}
.mega-grid a:hover{padding-left:22px}
.mega-grid a:hover::before{transform:none}
.mega-links{display:flex; gap:28px; margin-top:22px}
.mega-links a{display:inline-flex; align-items:center; gap:9px; font-size:14.5px; font-weight:600; transition:color .2s}
.mega-links a .ico{color:var(--cobalto)}
.mega-links a:hover{color:var(--cobalto)}
.mega-feat{position:relative; display:flex; align-items:flex-end; min-height:340px; overflow:hidden; background:var(--tinta); color:var(--tiza); isolation:isolate}
.mega-feat img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; transition:transform 1s var(--ease)}
.mega-feat::before{content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(0deg, rgba(22,24,27,.92) 10%, rgba(22,24,27,.25) 70%)}
.mega-feat:hover img{transform:scale(1.04)}
.mega-feat-txt{display:block; padding:28px 30px}
.mega-feat-txt b{display:block; font-family:var(--display); font-weight:400; font-size:32px; line-height:1.06; text-wrap:balance; text-transform:uppercase}
.mega-feat-txt > span{display:block; margin-top:10px; font-size:15px; line-height:1.5; color:rgba(250,250,247,.78); max-width:38ch}
.mega-feat-txt .mega-feat-go{display:inline-flex; align-items:center; gap:8px; margin-top:16px; color:#fff; font-weight:600; font-size:14.5px; padding-bottom:4px; border-bottom:2px solid var(--cobalto)}

.hd-act{display:flex; align-items:center; gap:14px; flex:0 0 auto}
.hd-login{display:inline-flex; align-items:center; gap:9px; height:44px; font-size:14.5px; font-weight:500; color:rgba(250,250,247,.82); white-space:nowrap; transition:color .2s}
.hd-login:hover{color:#fff}
.hd-sr .sr-trigger{font-size:14px; font-weight:500; color:var(--tiza); --sr-dot-ring:var(--tinta); padding:.62em 1em .62em .85em}
.hd-cta{min-height:44px; padding:0 20px; font-size:14.5px}
.burger{display:none; width:46px; height:46px; border:1px solid rgba(250,250,247,.22); background:transparent; cursor:pointer; align-items:center; justify-content:center; flex:0 0 auto}
.burger span{position:relative; width:20px; height:2px; background:var(--tiza); transition:background .2s}
.burger span::before,.burger span::after{content:""; position:absolute; left:0; width:20px; height:2px; background:var(--tiza); transition:transform .35s var(--ease)}
.burger span::before{top:-6px} .burger span::after{top:6px}
.menu-open .burger span{background:transparent}
.menu-open .burger span::before{transform:translateY(6px) rotate(45deg)}
.menu-open .burger span::after{transform:translateY(-6px) rotate(-45deg)}

@media (max-width:1480px){
  .hd-login{width:44px; justify-content:center; border:1px solid rgba(250,250,247,.22); transition:color .2s, border-color .2s}
  .hd-login:hover{border-color:rgba(250,250,247,.5)}
  .hd-login span{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap}
}
@media (max-width:1380px){
  .hd-in{gap:20px}
  .nav > ul > li > a{padding:0 11px; font-size:14.5px}
  .nav > ul > li > a::after{left:11px; right:11px}
  .hd-act{gap:10px}
  .hd-cta{padding:0 18px}
}
@media (max-width:1240px){
  .nav,.hd-sr,.hd-login{display:none}
  .burger{display:inline-flex}
  .hd-act{margin-left:auto}
}
@media (max-width:760px){
  :root{--hdr:104px}
  .hd-in{height:66px}
  .logo-word{font-size:30px}
  .hd-cta{min-height:42px; padding:0 15px; font-size:14px}
  .burger{width:44px; height:44px}
}

/* ---------- Menú móvil ---------- */
.mm{position:fixed; inset:0; z-index:85; background:var(--tinta); color:var(--tiza); overflow:auto; padding-top:122px; clip-path:inset(0 0 100% 0); visibility:hidden; transition:clip-path .55s var(--ease), visibility 0s .55s}
.menu-open .mm{clip-path:inset(0); visibility:visible; transition:clip-path .55s var(--ease)}
.menu-open body{overflow:hidden}
.mm-in{padding:0 var(--pad) 56px; max-width:640px}
.mm-in > *{opacity:0; transform:translate3d(0,18px,0); transition:opacity .4s, transform .6s var(--ease)}
.menu-open .mm-in > *{opacity:1; transform:none}
.menu-open .mm-in > :nth-child(1){transition-delay:.18s} .menu-open .mm-in > :nth-child(2){transition-delay:.23s} .menu-open .mm-in > :nth-child(3){transition-delay:.28s}
.menu-open .mm-in > :nth-child(4){transition-delay:.33s} .menu-open .mm-in > :nth-child(5){transition-delay:.38s} .menu-open .mm-in > :nth-child(6){transition-delay:.43s}
.menu-open .mm-in > :nth-child(n+7){transition-delay:.48s}
.mm-acc{border-bottom:1px solid var(--line-l)}
.mm-acc button{all:unset; box-sizing:border-box; width:100%; display:flex; justify-content:space-between; align-items:center; padding:16px 0; font-family:var(--display); font-size:clamp(32px,8.6vw,42px); line-height:1.05; text-transform:uppercase; cursor:pointer}
.mm-acc i{position:relative; width:30px; height:30px; border:1.5px solid rgba(250,250,247,.4)}
.mm-acc i::before,.mm-acc i::after{content:""; position:absolute; left:50%; top:50%; width:12px; height:2px; background:var(--tiza); transform:translate(-50%,-50%); transition:transform .3s var(--ease)}
.mm-acc i::after{transform:translate(-50%,-50%) rotate(90deg)}
.mm-acc.is-open i{background:var(--cobalto); border-color:var(--cobalto)}
.mm-acc.is-open i::after{transform:translate(-50%,-50%) rotate(0)}
.mm-panel{max-height:0; overflow:hidden; transition:max-height .45s var(--ease)}
.mm-panel a{display:block; padding:10px 0 10px 18px; border-left:2px solid var(--cobalto); font-size:16.5px; color:rgba(250,250,247,.8)}
.mm-panel a:last-child{margin-bottom:18px}
.mm-link{display:block; padding:16px 0; font-family:var(--display); font-size:clamp(32px,8.6vw,42px); line-height:1.05; text-transform:uppercase; border-bottom:1px solid var(--line-l)}
.mm-login{display:inline-flex; align-items:center; gap:10px; margin-top:26px; font-weight:500; color:rgba(250,250,247,.85)}
.mm-cta{margin-top:20px}
.mm-info{margin-top:18px; font-size:14.5px; color:rgba(250,250,247,.62); text-align:center}
.mm-info a{color:var(--tiza); font-weight:600}
.mm .srm{--srm-line:rgba(250,250,247,.14)}

/* ---------- Hero ---------- */
.hero{position:relative; display:flex; flex-direction:column; min-height:max(580px, calc(100vh - var(--hdr))); min-height:max(580px, calc(100svh - var(--hdr))); background:var(--tinta); color:var(--tiza); overflow:hidden; isolation:isolate}
.hero-media{position:absolute; inset:0; z-index:-1}
.hero-par{position:absolute; left:0; right:0; top:-8%; bottom:-8%; will-change:transform}
.hero-par video{width:100%; height:100%; object-fit:cover; object-position:center 45%; animation:heroIn 2.4s var(--ease) both}
.hero-media::after{content:""; position:absolute; inset:0; background:linear-gradient(0deg, rgba(22,24,27,.94) 0%, rgba(22,24,27,.6) 34%, rgba(22,24,27,.18) 66%, rgba(22,24,27,.5) 100%), linear-gradient(90deg, rgba(22,24,27,.62) 0%, rgba(22,24,27,0) 62%)}
@keyframes heroIn{from{opacity:0; transform:scale(1.08)}to{opacity:1; transform:none}}
.hero-in{flex:1; display:flex; flex-direction:column; justify-content:flex-end; padding-top:clamp(48px,8vh,110px); padding-bottom:clamp(30px,5vh,56px)}
.hero-top{position:relative}
/* Próxima clase: tarjeta que entra a los 2,6 s, apoyada en la línea base de "el lunes" */
.hero-next{position:absolute; right:0; bottom:.4%; width:340px; padding:14px 18px 15px; background:rgba(22,24,27,.6); border:1px solid rgba(250,250,247,.16); -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px); color:var(--tiza)}
html.js .hero-next{opacity:0; transform:translate3d(28px,0,0); clip-path:inset(0 0 0 100%); transition:opacity .5s, transform 1s var(--ease), clip-path 1s var(--ease)}
html.js .hero-next.is-in{opacity:1; transform:none; clip-path:inset(0)}
.hn-line{display:flex; align-items:center; justify-content:space-between; gap:16px}
.hn-line p{font-size:13px; font-weight:500; line-height:1.3; color:rgba(250,250,247,.74); white-space:nowrap}
.hn-when{display:flex; align-items:center; gap:9px}
.hn-when i{width:8px; height:8px; background:var(--cobalto-l); animation:hnPulse 1.6s ease-in-out infinite}
@keyframes hnPulse{50%{opacity:.2}}
.hn-main{margin-top:10px; align-items:center}
.hn-main b{font-family:var(--display); font-weight:400; font-size:30px; line-height:1; text-transform:uppercase; letter-spacing:.01em; color:var(--tiza)}
.hn-main .hn-time{margin-left:6px; color:var(--cobalto-l)}
.hn-seats{color:var(--tiza) !important}
.hero-next.is-long .hn-main b{font-size:26px}
.hero-next.is-long .hn-sq{display:none}
.hn-sq{display:flex; gap:4px; flex:0 0 auto}
.hn-sq i{width:10px; height:10px; border:1.5px solid rgba(250,250,247,.45)}
.hn-sq i.on{background:var(--cobalto); border-color:var(--cobalto)}
html.js .hero-next .hn-sq i{transform:scale(0); transition:transform .4s var(--ease)}
html.js .hero-next.is-in .hn-sq i{transform:none}
.hero-next .hn-sq i:nth-child(2){transition-delay:.55s} .hero-next .hn-sq i:nth-child(3){transition-delay:.6s} .hero-next .hn-sq i:nth-child(4){transition-delay:.65s}
.hero-next .hn-sq i:nth-child(1){transition-delay:.5s} .hero-next .hn-sq i:nth-child(5){transition-delay:.7s} .hero-next .hn-sq i:nth-child(6){transition-delay:.75s}
.hero-next .hn-sq i:nth-child(7){transition-delay:.8s} .hero-next .hn-sq i:nth-child(8){transition-delay:.85s}
.hero-next.is-off{display:none}
@media (max-width:1299px), (max-height:719px){ .hero-next{display:none} }
.hero-h{font-family:var(--display); font-size:clamp(64px, min(10.4vw, 18.5vh), 178px); line-height:.9; text-transform:uppercase; letter-spacing:.004em; margin-left:-.035em}
.hero-h .ln{display:inline-block; vertical-align:top; overflow:hidden; padding-top:.06em; margin-top:-.06em}
.hero-h .ln > span{display:inline-block; animation:lnUp 1s var(--ease) both}
.hero-h .ln:nth-of-type(2) > span{animation-delay:.1s}
.hero-h .ln:nth-of-type(3) > span{animation-delay:.2s}
@keyframes lnUp{from{transform:translateY(104%)}to{transform:none}}
.sq{display:inline-block; width:.17em; height:.17em; margin-left:.05em; background:var(--cobalto); vertical-align:baseline; transform-origin:50% 100%; animation:sqDrop .75s cubic-bezier(.3,1.3,.5,1) 1s both}
@keyframes sqDrop{0%{opacity:0; transform:translateY(-1.1em)}55%{opacity:1; transform:translateY(0) scale(1.25,.7)}100%{transform:none}}
.hero-row{display:flex; align-items:flex-end; justify-content:space-between; gap:40px; margin-top:clamp(20px,3.4vh,38px)}
.hero-sub{max-width:52ch; font-size:clamp(16.5px,1.3vw,19px); line-height:1.55; color:rgba(250,250,247,.86); animation:fadeUp .9s var(--ease) .55s both}
.hero-cta{display:flex; gap:12px; flex:0 0 auto; animation:fadeUp .9s var(--ease) .7s both}
@keyframes fadeUp{from{opacity:0; transform:translateY(16px)}to{opacity:1; transform:none}}
.hero-stats{position:relative; border-top:1px solid rgba(250,250,247,.16); background:rgba(22,24,27,.5); -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px); animation:fadeUp .9s var(--ease) .85s both}
.hero-stats ul{display:grid; grid-template-columns:repeat(4,1fr)}
.hero-stats li{display:flex; flex-direction:column; align-items:flex-start; gap:8px; padding:22px 24px 20px; border-left:1px solid rgba(250,250,247,.12)}
.hero-stats li:first-child{border-left:0; padding-left:0}
.hero-stats b{font-family:var(--display); font-weight:400; font-size:clamp(30px,2.6vw,40px); line-height:1; white-space:nowrap; letter-spacing:.01em}
.hero-stats span{font-size:14px; line-height:1.35; color:rgba(250,250,247,.72)}
.hero-stats span{display:flex; align-items:center; gap:10px}
.hero-stats .stars{flex:0 0 auto; color:var(--tiza); width:74px; height:13px; -webkit-mask-size:14.8px 13px; mask-size:14.8px 13px}

@media (max-width:1100px){
  .hero-row{flex-direction:column; align-items:flex-start; gap:26px}
  .hero-stats ul{grid-template-columns:repeat(2,1fr)}
  .hero-stats li{padding:18px 20px}
  .hero-stats li:nth-child(odd){border-left:0; padding-left:0}
  .hero-stats li:nth-child(n+3){border-top:1px solid rgba(250,250,247,.12)}
}
@media (max-width:760px){
  .hero-h{font-size:clamp(60px,20vw,96px); line-height:.88}
  .hero-h .ln{display:block}
  .hero-br{display:none}
  .hero-cta{flex-direction:column; align-self:stretch}
  .hero-cta .btn{width:100%}
  .hero-stats li{gap:6px; padding:16px 14px}
  .hero-stats b{font-size:30px}
  .hero-stats span{font-size:13px; flex-wrap:wrap; gap:4px 8px}
}

/* ---------- Marquesina de disciplinas ---------- */
.band{overflow:hidden; padding:clamp(28px,3.4vw,46px) 0; border-bottom:1px solid var(--line)}
.band-track{display:flex; width:max-content; animation:slide 70s linear infinite}
.band ul{display:flex; align-items:center; flex:0 0 auto}
.band li{display:flex; align-items:center; font-family:var(--display); font-size:clamp(56px,8.4vw,128px); line-height:1.02; text-transform:uppercase; white-space:nowrap; color:var(--tinta); letter-spacing:.005em}
.band li::after{content:""; flex:0 0 auto; width:.19em; height:.19em; margin:0 .42em; background:var(--cobalto)}
.band li.o{color:transparent; -webkit-text-stroke:2px var(--tinta)}

/* ---------- Encabezados de sección ---------- */
.sh{display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr); gap:56px; align-items:end; margin-bottom:clamp(40px,5vw,72px)}
.sh h2,.method-copy h2,.faq-side h2,.final h2{font-family:var(--display); font-weight:400; font-size:clamp(46px,5.8vw,88px); line-height:1.02; text-transform:uppercase; letter-spacing:.006em; text-wrap:balance}
.sh h2{max-width:15ch}
.sh h2.acc{line-height:1.12}
.sh > p{font-size:17.5px; color:var(--acero-d); max-width:46ch; padding-bottom:6px}
.sh-light h2{color:var(--tiza)}
.sh-light > p{color:rgba(250,250,247,.72)}
@media (max-width:900px){ .sh{grid-template-columns:minmax(0,1fr); gap:20px} }
@media (max-width:400px){ .sh h2,.method-copy h2,.faq-side h2{font-size:42px} }

/* ---------- Programas ---------- */
/* Retícula regular 3 x 2: mismas proporciones, título arriba alineado por fila,
   duración y nivel abajo alineados por fila; la descripción aparece al pasar el ratón. */
.prog{padding:clamp(70px,8vw,116px) 0 var(--sec)}
.prog-grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px}
.pc{position:relative; display:flex; flex-direction:column; justify-content:space-between; gap:24px; aspect-ratio:4/5; padding:30px 30px 28px; overflow:hidden; background:var(--tinta); color:var(--tiza); isolation:isolate}
.pc img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; filter:grayscale(.5) contrast(1.06); transition:transform 1.1s var(--ease), filter .6s}
.pc::before{content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg, rgba(22,24,27,.84) 0%, rgba(22,24,27,.3) 30%, rgba(22,24,27,.22) 50%, rgba(22,24,27,.94) 100%)}
.pc::after{content:""; position:absolute; left:0; right:0; bottom:0; height:5px; background:var(--cobalto); transform:scaleX(0); transform-origin:left; transition:transform .6s var(--ease)}
.pc h3{font-family:var(--display); font-weight:400; font-size:clamp(34px,3vw,44px); line-height:1; text-transform:uppercase; letter-spacing:.008em; text-wrap:balance}
.pc-desc{padding-bottom:20px; font-size:16px; line-height:1.5; color:rgba(250,250,247,.9); max-width:40ch}
.pc-row{display:flex; align-items:center; justify-content:space-between; gap:12px}
.pc-meta{display:flex; flex-wrap:wrap; gap:8px}
.pc-meta span{font-size:13px; font-weight:500; line-height:1; padding:9px 11px; border:1px solid rgba(250,250,247,.36); background:rgba(22,24,27,.3); white-space:nowrap}
.pc-go{flex:0 0 auto; display:grid; place-items:center; width:46px; height:46px; border:1px solid rgba(250,250,247,.36); transition:background .3s, border-color .3s}
.pc-go .ico{width:20px; height:20px; transition:transform .35s var(--ease)}
.pc:hover .pc-go,.pc:focus-visible .pc-go{background:var(--cobalto); border-color:var(--cobalto)}
.pc:hover .pc-go .ico,.pc:focus-visible .pc-go .ico{transform:translateX(3px)}
html.js .prog-grid .pc[data-reveal] img{transition:transform 1.5s var(--ease), filter .6s}
@media (hover:hover){
  html.js .prog-grid .pc.is-in:hover img,html.js .prog-grid .pc.is-in:focus-visible img{transform:scale(1.06)}
  .pc-more{display:grid; grid-template-rows:0fr; transition:grid-template-rows .55s var(--ease)}
  .pc-more > div{overflow:hidden; opacity:0; transition:opacity .4s}
  .pc:hover .pc-more,.pc:focus-visible .pc-more{grid-template-rows:1fr}
  .pc:hover .pc-more > div,.pc:focus-visible .pc-more > div{opacity:1; transition-delay:.1s}
  .pc:hover img,.pc:focus-visible img{transform:scale(1.06); filter:grayscale(0) contrast(1.02)}
  .pc:hover::after,.pc:focus-visible::after{transform:scaleX(1)}
}
@media (hover:none){ .pc-desc{min-height:calc(4.5em + 20px)} }
@media (max-width:1100px){
  .prog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pc{aspect-ratio:5/4}
}
@media (max-width:480px){
  .btn{white-space:normal; text-align:center; line-height:1.2}
  .method-cta .btn,.faq-help .btn{width:100%}
}
@media (max-width:640px){
  .prog-grid{grid-template-columns:1fr; gap:12px}
  .pc{aspect-ratio:1/1; padding:24px 22px 22px}
  .pc-desc{font-size:15.5px}
}
@media (max-width:400px){ .pc-meta{gap:6px} .pc-meta span{font-size:12.5px; padding:8px 9px} .pc-go{width:42px; height:42px} }

/* ---------- Método y garantía ---------- */
.method{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); background:var(--tinta); color:var(--tiza)}
.method-media{position:relative; min-height:560px; overflow:hidden}
.method-par{position:absolute; left:0; right:0; top:-13%; bottom:-13%; will-change:transform}
.method-par img{width:100%; height:100%; object-fit:cover; filter:grayscale(.15) contrast(1.05)}
.method-stat{position:absolute; right:0; bottom:0; width:min(340px,78%); background:var(--cobalto); color:#fff; padding:28px 30px 30px}
html.js .method-stat{opacity:0; transform:translate3d(0,26px,0); transition:opacity .7s, transform 1s var(--ease)}
html.js .method-media.is-in .method-stat{opacity:1; transform:none; transition-delay:.75s}
.method-stat b{display:block; font-family:var(--display); font-weight:400; font-size:clamp(60px,6vw,84px); line-height:.9; letter-spacing:.01em}
.method-stat span{display:block; margin-top:12px; font-size:16px; line-height:1.45}
.method-copy{padding:var(--sec) max(var(--pad), calc((100vw - var(--max)) / 2 + var(--pad))) var(--sec) clamp(40px,6vw,96px)}
.method-copy h2{max-width:13ch}
.lead{margin-top:28px; font-size:18px; line-height:1.6; color:rgba(250,250,247,.78); max-width:52ch}
.steps{margin-top:40px}
.steps li{display:grid; grid-template-columns:48px 1fr; gap:22px; padding:22px 0; border-top:1px solid var(--line-l)}
.steps li:last-child{border-bottom:1px solid var(--line-l)}
.steps .n{display:grid; place-items:center; width:48px; height:48px; border:1.5px solid var(--cobalto-l); font-family:var(--display); font-size:24px; line-height:1; color:var(--tiza); transition:background .5s var(--ease), border-color .5s; transition-delay:calc(var(--reveal-delay,0ms) + .45s)}
html.js .steps li.is-in .n{background:var(--cobalto); border-color:var(--cobalto)}
.steps h3{font-size:20px; font-weight:600; line-height:1.3}
.steps p{margin-top:6px; font-size:16px; line-height:1.55; color:rgba(250,250,247,.7); max-width:50ch}
.method-cta{display:flex; flex-wrap:wrap; align-items:center; gap:16px 24px; margin-top:38px}
.method-cta small{font-size:13px; color:rgba(250,250,247,.55); max-width:30ch; line-height:1.45}
@media (max-width:1000px){
  .method{grid-template-columns:minmax(0,1fr)}
  .method-media{min-height:clamp(380px,72vw,600px)}
  .method-copy{padding:clamp(64px,10vw,96px) var(--pad)}
}

/* ---------- Transformaciones ---------- */
.stories{background:var(--tiza); padding:var(--sec) 0}
.sh-split{grid-template-columns:1fr auto}
.gscore{display:flex; align-items:center; gap:16px; padding-bottom:8px}
.gscore > b{font-family:var(--display); font-weight:400; font-size:76px; line-height:.9}
.gscore .stars{color:var(--cobalto); width:100px; height:18px; -webkit-mask-size:20px 18px; mask-size:20px 18px}
.gscore p{margin-top:6px; font-size:14px; color:var(--acero-d); max-width:18ch; line-height:1.35}
/* Subretícula: foto, resultado, cita y firma comparten filas, así todo queda alineado */
.st-grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); column-gap:clamp(18px,2.4vw,34px); row-gap:0}
.st{display:grid; grid-row:span 4; grid-template-rows:subgrid; row-gap:0}
.st-ph{position:relative; aspect-ratio:4/5; overflow:hidden; background:var(--hormigon)}
.st-ph img{width:100%; height:100%; object-fit:cover; object-position:center 25%}
.st-ph figcaption{position:absolute; left:0; top:0; display:inline-flex; align-items:center; gap:9px; background:var(--tinta); color:var(--tiza); font-size:13.5px; font-weight:500; line-height:1; padding:11px 14px}
.st-ph figcaption::before{content:""; width:8px; height:8px; background:var(--cobalto)}
.st-metric{position:absolute; left:0; right:0; bottom:0; padding:44px 20px 18px; background:linear-gradient(0deg, rgba(22,24,27,.92) 0%, rgba(22,24,27,.78) 55%, rgba(22,24,27,0) 100%); color:var(--tiza)}
.stm-lbl{font-size:13.5px; font-weight:500; color:rgba(250,250,247,.78)}
.stm-row{display:flex; align-items:stretch; gap:16px; margin-top:8px}
.stm-a,.stm-b{display:flex; flex-direction:column; justify-content:space-between}
.stm-a{min-width:78px}
.stm-row small{display:block; font-size:12px; font-weight:500; line-height:1; margin-bottom:6px; color:rgba(250,250,247,.6)}
.stm-row b{display:block; font-family:var(--display); font-weight:400; line-height:1; letter-spacing:.01em; white-space:nowrap; font-variant-numeric:tabular-nums}
.stm-a b{font-size:28px; color:rgba(250,250,247,.62)}
.stm-b b{font-size:40px; color:#fff}
.stm-row .ico{align-self:flex-end; width:22px; height:22px; margin-bottom:9px; color:var(--cobalto-l)}
.stm-b{position:relative; padding-left:14px; border-left:3px solid var(--cobalto)}
.st h3{margin-top:26px; font-family:var(--display); font-weight:400; font-size:clamp(32px,2.7vw,42px); line-height:1.04; text-transform:uppercase; letter-spacing:.008em; text-wrap:balance}
.st blockquote{margin-top:14px; font-size:16.5px; line-height:1.6; color:#34373C}
.st-who{margin-top:22px; padding-top:16px; border-top:1px solid var(--line); font-size:14.5px; line-height:1.45; color:var(--acero-d)}
.st-who b{display:block; color:var(--tinta); font-weight:600; font-size:15.5px}
.st-who span{display:block}
@supports not (grid-template-rows:subgrid){
  .st{display:flex; flex-direction:column}
  .st-who{margin-top:auto}
  .st blockquote{margin-bottom:22px}
}
@media (max-width:1000px){
  .sh-split{grid-template-columns:minmax(0,1fr)}
  .st-grid{grid-template-columns:1fr; row-gap:40px}
  .st{display:grid; grid-row:auto; grid-template-rows:auto auto 1fr; grid-template-columns:minmax(0,5fr) minmax(0,7fr); grid-template-areas:"ph h3" "ph q" "ph who"; column-gap:clamp(24px,4vw,44px); align-items:start}
  .st-ph{grid-area:ph; aspect-ratio:1/1}
  .st h3{grid-area:h3; margin-top:0}
  .st blockquote{grid-area:q; margin-bottom:0}
  .st-who{grid-area:who; align-self:end; margin-top:22px}
}
@media (max-width:560px){
  .st-grid{row-gap:48px}
  .st{grid-template-columns:1fr; grid-template-rows:none; grid-template-areas:"ph" "h3" "q" "who"}
  .st-ph{aspect-ratio:1/1}
  .st h3{margin-top:22px}
}

/* ---------- Horario ---------- */
.sched{padding:var(--sec) 0}
.sched-top{display:flex; justify-content:space-between; align-items:center; gap:20px; margin-bottom:18px}
.legend{display:flex; flex-wrap:wrap; gap:10px 22px}
.legend li{display:flex; align-items:center; gap:9px; font-size:14px; font-weight:500}
.legend i{width:16px; height:16px}
.legend .t-mv{background:var(--hormigon-3)}
.legend .t-fn{box-shadow:inset 0 0 0 1px rgba(26,43,176,.25)}
.days{display:none}
.tbl-wrap{background:var(--tiza); border:1px solid var(--line); overflow-x:auto; -webkit-overflow-scrolling:touch}
.tbl{width:100%; min-width:680px; border-collapse:collapse; table-layout:fixed}
.tbl th,.tbl td{border-bottom:1px solid var(--line); border-left:1px solid var(--line); text-align:left; vertical-align:top}
.tbl tr > :first-child{border-left:0}
.tbl tbody tr:last-child > *{border-bottom:0}
.tbl thead th{padding:16px 12px 14px; font-size:14.5px; font-weight:600; position:relative}
.tbl thead .tbl-h{width:96px; color:var(--acero-d); font-weight:500}
.tbl thead th.is-today::after{content:"Hoy"; margin-left:8px; padding:3px 7px; background:var(--cobalto); color:#fff; font-size:11.5px; font-weight:600; vertical-align:1px}
.tbl tbody th{padding:16px 14px; font-family:var(--display); font-weight:400; font-size:24px; line-height:1; letter-spacing:.01em}
.tbl td{padding:7px; height:1px}
.tbl td.is-today{background:rgba(47,71,255,.05)}
.tbl tbody th{transition:color .25s}
.tbl tbody tr:hover th{color:var(--cobalto)}
.tbl td.is-next .cl{position:relative; outline:2px solid var(--cobalto); outline-offset:2px}
.tbl td.is-next .cl::after{content:"Siguiente"; position:absolute; top:-11px; right:6px; padding:3px 6px; background:var(--cobalto); color:#fff; font-size:11px; font-weight:600; line-height:1.2}
.cl{display:block; box-sizing:border-box; height:100%; min-height:62px; padding:10px 12px}
.cl b{display:block; font-size:14.5px; font-weight:600; line-height:1.2}
.cl small{display:block; margin-top:4px; font-size:12.5px; line-height:1.2; opacity:.8}
.cl-off{display:block; padding:10px 12px; font-size:13px; line-height:1.35; color:var(--acero-d)}
.t-fz{background:var(--cobalto); color:#fff}
.t-hy{background:var(--tinta); color:var(--tiza)}
.t-fn{background:var(--cobalto-t); color:var(--cobalto-d)}
.t-bx{background:transparent; color:var(--tinta); box-shadow:inset 0 0 0 1.5px var(--tinta)}
.t-mv{background:var(--hormigon-2); color:var(--tinta)}
.sched-note{margin-top:20px; font-size:16px; color:var(--acero-d); max-width:80ch}
.sched-note a{color:var(--tinta); font-weight:600; border-bottom:2px solid var(--cobalto); white-space:nowrap}
@media (max-width:1000px){
  .tbl thead .tbl-h{width:70px}
  .tbl thead th{padding:14px 9px 12px; font-size:13.5px}
  .tbl thead th.is-today::after{display:block; width:max-content; margin:6px 0 0}
  .tbl tbody th{padding:14px 10px; font-size:20px}
  .tbl td{padding:5px}
  .cl{padding:9px 9px; min-height:58px}
  .cl b{font-size:13.5px}
  .cl small{font-size:11.5px}
  .cl-off{padding:9px; font-size:12px}
}
@media (max-width:760px){
  .sched-top{flex-direction:column; align-items:stretch; gap:18px}
  .legend{gap:10px 16px}
  .legend li{font-size:13px}
  .days{display:grid; grid-template-columns:repeat(6,1fr); border:1px solid var(--tinta)}
  .days button{all:unset; box-sizing:border-box; text-align:center; padding:12px 0; font-size:14px; font-weight:600; cursor:pointer; border-left:1px solid var(--line)}
  .days button:first-child{border-left:0}
  .days button.is-active{background:var(--tinta); color:var(--tiza)}
  .days button:focus-visible{outline:2px solid var(--cobalto); outline-offset:-4px}
  .tbl{min-width:0; table-layout:auto}
  .tbl thead{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0)}
  .tbl tbody th{width:76px; padding:18px 10px 18px 14px; font-size:22px}
  .tbl td{padding:8px}
  .cl{display:flex; justify-content:space-between; align-items:center; gap:12px; min-height:56px}
  .cl b{font-size:15px}
  .cl small{margin-top:0; font-size:12.5px; text-align:right}
  .cl-off{font-size:13px}
  .tbl td.is-today{background:transparent}
  .tbl[data-show="lun"] [data-d]:not([data-d="lun"]),
  .tbl[data-show="mar"] [data-d]:not([data-d="mar"]),
  .tbl[data-show="mie"] [data-d]:not([data-d="mie"]),
  .tbl[data-show="jue"] [data-d]:not([data-d="jue"]),
  .tbl[data-show="vie"] [data-d]:not([data-d="vie"]),
  .tbl[data-show="sab"] [data-d]:not([data-d="sab"]){display:none}
}

/* ---------- Tarifas ---------- */
/* Las tres tarjetas comparten filas (subgrid): nombre, descripción, precio, ventajas y botón alineados */
.pricing{position:relative; isolation:isolate; background:var(--tinta); color:var(--tiza); padding:var(--sec) 0}
.plans{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); column-gap:18px; row-gap:0}
.plan{position:relative; display:grid; grid-row:span 5; grid-template-rows:subgrid; row-gap:0; background:var(--tinta-2); border:1px solid var(--line-l); padding:40px 34px 34px}
.plan h3{font-family:var(--display); font-weight:400; font-size:38px; line-height:1; text-transform:uppercase; letter-spacing:.01em}
.plan-for{margin-top:12px; font-size:16px; line-height:1.5; color:rgba(250,250,247,.72)}
.price{display:flex; align-items:flex-start; gap:8px; margin-top:26px; padding-bottom:28px; border-bottom:1px solid var(--line-l)}
.price b{font-family:var(--display); font-weight:400; font-size:104px; line-height:.86; letter-spacing:.005em}
.price span{margin-top:6px; font-size:16px; font-weight:600}
.feat{display:grid; align-content:start; gap:13px; margin:26px 0 32px}
.feat li{display:flex; gap:12px; font-size:16px; line-height:1.45}
.feat li::before{content:""; flex:0 0 18px; height:18px; margin-top:2px; background:var(--cobalto-l); -webkit-mask:var(--check) center/contain no-repeat; mask:var(--check) center/contain no-repeat}
.plan .btn{align-self:end}
.plan-hi{background:var(--cobalto); border-color:var(--cobalto)}
/* El plan destacado respira: halo cobalto detrás de la tarjeta */
.plan-hi::before{content:""; position:absolute; inset:-12px; z-index:-1; background:var(--cobalto); filter:blur(34px); opacity:.2; animation:breathe 4.2s ease-in-out infinite; pointer-events:none}
@keyframes breathe{0%,100%{opacity:.14; transform:scale(.96)}50%{opacity:.5; transform:scale(1.03)}}
/* Foco de luz que sigue al ratón */
.plan::after{content:""; position:absolute; inset:0; pointer-events:none; background:radial-gradient(380px circle at var(--sx,50%) var(--sy,0px), rgba(250,250,247,.08), transparent 62%); opacity:0; transition:opacity .4s}
.plan-hi::after{background:radial-gradient(380px circle at var(--sx,50%) var(--sy,0px), rgba(255,255,255,.18), transparent 62%)}
.plan:hover::after{opacity:1}
.plan-hi .plan-for{color:rgba(255,255,255,.88)}
.plan-hi .price{border-color:rgba(255,255,255,.28)}
.plan-hi .feat li::before{background:#fff}
.plan-badge{position:absolute; top:0; right:0; background:var(--tiza); color:var(--cobalto-d); font-size:13px; font-weight:600; padding:9px 14px; line-height:1}
@supports not (grid-template-rows:subgrid){
  .plan{display:flex; flex-direction:column}
  .plan-for{min-height:4.5em}
  .feat{flex:1}
}
.pricing-foot{display:flex; justify-content:space-between; align-items:flex-end; gap:24px 48px; margin-top:64px; padding-top:38px; border-top:1px solid var(--line-l)}
.pricing-big span{display:block}
.pricing-big{font-family:var(--display); font-size:clamp(36px,4.2vw,60px); line-height:1.14; text-transform:uppercase; letter-spacing:.01em}
.pricing-foot p:last-child{max-width:46ch; font-size:16px; color:rgba(250,250,247,.66)}
@media (max-width:1100px){
  /* Tablet: tres tarjetas iguales en horizontal, Ilimitado primero */
  .plans{grid-template-columns:1fr; row-gap:16px}
  .plan{display:grid; grid-row:auto; grid-template-rows:auto 1fr auto; grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); grid-template-areas:"name feat" "for feat" "price btn"; column-gap:44px; padding:36px 34px 34px}
  .plan h3{grid-area:name}
  .plan-for{grid-area:for}
  .price{grid-area:price; align-self:end; border-bottom:0; padding-bottom:0}
  .feat{grid-area:feat; margin:0 0 28px}
  .plan .btn{grid-area:btn}
  .plan-hi{order:-1}
  .plan-badge{left:auto}
  .pricing-foot{flex-direction:column; align-items:flex-start}
}
@media (max-width:640px){
  .plan{grid-template-columns:1fr; grid-template-rows:none; grid-template-areas:"name" "for" "price" "feat" "btn"; padding:36px 24px 26px}
  .price{border-bottom:1px solid var(--line-l); padding-bottom:26px; margin-top:24px}
  .plan-hi .price{border-color:rgba(255,255,255,.28)}
  .feat{margin:24px 0 28px}
  .price b{font-size:92px}
}

/* ---------- Instalaciones ---------- */
.club{padding:var(--sec) 0}
.gal{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px}
.g{position:relative; aspect-ratio:16/10; overflow:hidden; background:var(--tinta)}
.g img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform 1.2s var(--ease)}
.g .g-b{opacity:0}
html.js .gal .g img{transition:transform 1.6s var(--ease), opacity 1.8s ease}
.g.is-alt .g-b{opacity:1}
html.js .gal .g.is-in:hover img{transform:scale(1.04)}
.g figcaption{z-index:1}
.g figcaption{position:absolute; left:16px; bottom:16px; display:inline-flex; align-items:center; gap:10px; background:var(--tinta); color:var(--tiza); font-size:14.5px; font-weight:600; line-height:1; padding:12px 15px}
.g figcaption::before{content:""; width:8px; height:8px; background:var(--cobalto)}
.amen{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; margin-top:44px; padding-top:34px; border-top:1px solid var(--line)}
.amen li{display:flex; align-items:center; gap:14px; font-size:16px; font-weight:500; line-height:1.35}
.amen .ico{width:30px; height:30px; color:var(--cobalto); stroke-width:1.5}
@media (max-width:900px){
  .g{aspect-ratio:4/3}
  .amen{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:560px){
  .gal{gap:10px}
  .g{aspect-ratio:1/1}
  .g figcaption{left:10px; bottom:10px; gap:8px; font-size:13px; padding:10px 11px}
  .amen{grid-template-columns:1fr; gap:18px}
}

/* ---------- Equipo ---------- */
.team{background:var(--tiza); padding:var(--sec) 0}
.team-grid{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:clamp(14px,2vw,26px)}
.coach{display:grid; grid-template-columns:minmax(0,1fr); align-content:start}
.coach-ph{grid-area:1 / 1; aspect-ratio:3/4; overflow:hidden; background:var(--hormigon)}
.coach-ph img{width:100%; height:100%; object-fit:cover; object-position:center 18%; filter:grayscale(1) contrast(1.06); transition:filter .6s, transform 1s var(--ease)}
.coach h3{grid-row:2; margin-top:20px; font-family:var(--display); font-weight:400; font-size:32px; line-height:1.04; text-transform:uppercase; letter-spacing:.01em}
.coach-role{grid-row:3; margin-top:6px; font-size:16px; font-weight:500; color:var(--tinta)}
/* La acreditación se superpone a la foto al pasar el ratón; en pantallas táctiles va debajo, como texto */
.coach-cred{grid-area:1 / 1; align-self:end; z-index:1; background:var(--cobalto); color:#fff; font-size:15px; line-height:1.45; padding:16px 18px; clip-path:inset(100% 0 0 0); transition:clip-path .5s var(--ease)}
.coach:hover .coach-cred{clip-path:inset(0)}
.coach:hover img{filter:grayscale(0) contrast(1.02); transform:scale(1.03)}
html.js .team-grid .coach-ph[data-reveal] img{transition:transform 1.6s var(--ease), filter .6s}
html.js .team-grid .coach:hover .coach-ph.is-in img{transform:scale(1.03)}
@media (hover:none){
  .coach-cred{grid-area:4 / 1; align-self:start; z-index:auto; clip-path:none; background:none; color:var(--acero-d); padding:6px 0 0; font-size:15px}
}
@media (max-width:960px){ .team-grid{grid-template-columns:repeat(2,minmax(0,1fr)); row-gap:40px} }
@media (max-width:430px){ .coach h3{font-size:26px} .coach-role{font-size:15px} .coach-cred{font-size:15px} }

/* ---------- En prensa ---------- */
.press{padding:clamp(60px,6vw,88px) 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line)}
.press-in{display:grid; grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr); gap:clamp(36px,6vw,88px); align-items:center}
.press-q p{font-size:clamp(23px,2.1vw,30px); font-weight:500; line-height:1.3; letter-spacing:-.012em; max-width:28ch}
.press-q cite{display:block; margin-top:16px; font-style:normal; font-size:14px; color:var(--acero-d)}
.press-lbl{font-size:14px; color:var(--acero-d); margin-bottom:18px}
.press-logos{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:1px solid var(--line); border-left:1px solid var(--line)}
.press-logos li{display:flex; align-items:center; justify-content:center; height:88px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); color:#4C5057; white-space:nowrap; transition:color .3s, background .3s}
.press-logos li:hover{color:var(--tinta); background:rgba(250,250,247,.5)}
.pl-mh,.pl-wh{font-family:var(--display); text-transform:uppercase; letter-spacing:-.01em; line-height:1}
.pl-mh{font-size:27px}
.pl-wh{font-size:23px}
.pl-mh span,.pl-wh span{margin-left:.06em}
.pl-marca{font:italic 700 30px/1 var(--sans); letter-spacing:-.05em; text-transform:uppercase}
.pl-vogue{font-family:'Didot','Bodoni 72','Bodoni MT','Playfair Display',Georgia,serif; font-size:32px; letter-spacing:.1em; text-transform:uppercase}
.pl-tm{font:700 24px/1 var(--sans); letter-spacing:-.04em}
.pl-pais{font-family:Georgia,'Times New Roman',serif; font-size:24px; letter-spacing:.03em; text-transform:uppercase}
@media (max-width:900px){ .press-in{grid-template-columns:minmax(0,1fr)} }
@media (max-width:520px){ .press-logos{grid-template-columns:repeat(2,minmax(0,1fr))} .press-logos li{height:76px} }
@media (max-width:400px){ .pl-mh{font-size:23px} .pl-wh{font-size:20px} .pl-marca{font-size:26px} .pl-vogue{font-size:27px} .pl-tm,.pl-pais{font-size:21px} }

/* ---------- Preguntas frecuentes ---------- */
.faq{background:var(--tiza); padding:var(--sec) 0}
.faq-in{display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:clamp(40px,6vw,100px); align-items:start}
.faq-side{position:sticky; top:110px}
.faq-side > p{margin-top:18px; color:var(--acero-d); max-width:34ch}
.faq-help{margin-top:34px; padding:28px; background:var(--tinta); color:var(--tiza)}
.faq-help p{font-family:var(--display); font-size:28px; line-height:1.04; text-wrap:balance; text-transform:uppercase}
.faq-help span{display:block; margin:10px 0 20px; font-size:16px; line-height:1.5; color:rgba(250,250,247,.72)}
.qa{border-bottom:1px solid var(--line)}
.qa:first-child{border-top:1px solid var(--line)}
.qa button{all:unset; box-sizing:border-box; width:100%; text-wrap:balance; display:flex; justify-content:space-between; align-items:center; gap:24px; padding:24px 0; font-size:clamp(18px,1.5vw,21px); font-weight:600; line-height:1.35; cursor:pointer; transition:color .2s}
.qa button:hover{color:var(--cobalto)}
.qa button:focus-visible{outline:2px solid var(--cobalto); outline-offset:4px}
.qa i{position:relative; flex:0 0 auto; width:36px; height:36px; border:1.5px solid var(--tinta); transition:background .3s, border-color .3s}
.qa i::before,.qa i::after{content:""; position:absolute; left:50%; top:50%; width:13px; height:2px; background:var(--tinta); transform:translate(-50%,-50%); transition:transform .3s var(--ease), background .3s}
.qa i::after{transform:translate(-50%,-50%) rotate(90deg)}
.qa.is-open i{background:var(--cobalto); border-color:var(--cobalto)}
.qa.is-open i::before,.qa.is-open i::after{background:#fff}
.qa.is-open i::after{transform:translate(-50%,-50%) rotate(0)}
.qa-a{max-height:0; overflow:hidden; transition:max-height .45s var(--ease)}
.qa-a p{padding:0 60px 26px 0; font-size:16.5px; line-height:1.65; color:var(--acero-d)}
@media (max-width:900px){ .faq-in{grid-template-columns:minmax(0,1fr)} .faq-side{position:static} .qa-a p{padding-right:0} }

/* ---------- Llamada final ---------- */
.final{position:relative; background:var(--cobalto); color:#fff; padding:var(--sec) 0; overflow:hidden; isolation:isolate}
.final-word{position:absolute; left:0; right:0; bottom:-.2em; z-index:-1; display:flex; justify-content:center; font-family:var(--display); font-size:clamp(150px,29vw,440px); line-height:1; text-transform:uppercase; letter-spacing:.01em; color:transparent; -webkit-text-stroke:1.5px rgba(255,255,255,.12); white-space:nowrap; pointer-events:none}
.final-word span{display:block; will-change:transform}
.final::before{content:""; position:absolute; inset:0; z-index:-1; opacity:.55; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .05 0 0 0 0 .07 0 0 0 0 .35 0 0 0 .22 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.final-in{display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:clamp(40px,6vw,96px); align-items:center}
.final h2{font-size:clamp(52px,6.6vw,104px); line-height:.96; max-width:12ch}
.final h2 span{display:block}
.final-copy > p{margin-top:28px; font-size:18.5px; line-height:1.55; max-width:44ch; color:rgba(255,255,255,.9)}
.final-checks{display:grid; gap:12px; margin-top:28px}
.final-checks li{display:flex; align-items:center; gap:12px; font-size:16px; font-weight:500}
.final-checks li::before{content:""; flex:0 0 22px; height:22px; background:#fff; -webkit-mask:var(--check) center/contain no-repeat; mask:var(--check) center/contain no-repeat}
.final-form{background:var(--tiza); color:var(--tinta); padding:clamp(28px,3vw,42px); box-shadow:0 60px 90px -50px rgba(8,14,70,.75)}
.final-form h3{font-family:var(--display); font-weight:400; font-size:clamp(30px,2.6vw,38px); line-height:1.04; text-wrap:balance; text-transform:uppercase; letter-spacing:.01em; margin-bottom:24px}
.field{display:flex; flex-direction:column; gap:7px; margin-bottom:16px}
.field label{font-size:13.5px; font-weight:600}
.field input,.field select{width:100%; height:54px; font-size:16px; line-height:1.2; color:var(--tinta); background:#fff; border:1.5px solid var(--hormigon-3); border-radius:0; padding:0 16px; transition:border-color .2s, box-shadow .2s; -webkit-appearance:none; appearance:none}
.field select{padding-right:44px; cursor:pointer; background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2316181B' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") right 14px center/18px no-repeat}
.field input::placeholder{color:#9A9DA2}
.field input:focus,.field select:focus{outline:none; border-color:var(--cobalto); box-shadow:0 0 0 3px rgba(47,71,255,.18)}
.check{display:flex; gap:10px; align-items:flex-start; margin:6px 0 20px; font-size:13.5px; line-height:1.45; color:var(--acero-d); cursor:pointer}
.check input{margin:2px 0 0; width:16px; height:16px; accent-color:var(--cobalto)}
.check a{color:var(--tinta); text-decoration:underline; text-underline-offset:2px}
.form-note{margin-top:14px; text-align:center; font-size:14px; color:var(--acero-d)}
.form-note a{color:var(--tinta); font-weight:600}
@media (max-width:980px){ .final-in{grid-template-columns:minmax(0,1fr)} }

/* ---------- Pie ---------- */
.ft{background:var(--tinta); color:rgba(250,250,247,.66); padding:clamp(64px,7vw,96px) 0 28px; font-size:15px}
.ft-top{display:grid; grid-template-columns:1.5fr 1fr 1fr 1.25fr; gap:44px; padding-bottom:52px; border-bottom:1px solid var(--line-l)}
.ft-brand p{margin-top:20px; max-width:36ch; font-size:15px; line-height:1.6}
.apps{display:flex; flex-wrap:wrap; gap:10px; margin-top:26px}
.app{display:inline-flex; align-items:center; gap:10px; padding:9px 16px 9px 12px; border:1px solid rgba(250,250,247,.25); color:var(--tiza); transition:background .25s, border-color .25s}
.app:hover{background:rgba(250,250,247,.06); border-color:rgba(250,250,247,.5)}
.app .ico{width:22px; height:22px}
.app small{display:block; font-size:11px; line-height:1.1; opacity:.68}
.app b{display:block; font-size:15px; font-weight:600; line-height:1.2}
.ft h4{margin-bottom:16px; font-family:var(--display); font-weight:400; font-size:22px; line-height:1; text-transform:uppercase; letter-spacing:.02em; color:var(--tiza)}
.ft ul{display:grid; gap:9px}
.ft a{transition:color .2s}
.ft a:hover{color:#fff}
.ft-contact p{margin-bottom:14px; line-height:1.6}
.ft-hours{font-size:14px; color:rgba(250,250,247,.52)}
.social{display:flex; gap:8px; margin-top:20px}
.social a{display:grid; place-items:center; width:42px; height:42px; border:1px solid rgba(250,250,247,.2); color:var(--tiza); transition:background .25s, border-color .25s}
.social a:hover{background:var(--cobalto); border-color:var(--cobalto)}
.social svg{width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round}
.ft-bot{display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:12px 30px; padding-top:26px; font-size:13px; color:rgba(250,250,247,.45)}
.ft-bot nav{display:flex; flex-wrap:wrap; gap:6px 20px}
@media (max-width:1100px){ .ft-top{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:560px){ .ft-top{grid-template-columns:repeat(2,minmax(0,1fr)); gap:40px 20px} .ft-brand,.ft-contact{grid-column:1 / -1} .ft-bot{flex-direction:column; align-items:flex-start} }


/* ---------- Cursor: cuadrado cobalto y marco de visor ---------- */
html.cursor-gimnasio{
  --cc:rgba(22,24,27,.72);
  --cur-dot:8px; --cur-dot-radius:0; --cur-dot-bg:var(--cobalto); --cur-link-dot:.55;
  --cur-ring:30px; --cur-ring-radius:0; --cur-ring-border:0 solid transparent;
  --cur-label-size:106px; --cur-label-bg:var(--cobalto); --cur-label-fg:#fff; --cur-label-font:'Space Grotesk', system-ui, sans-serif;
  --cur-lerp:.22;
  --cur-dark-dot:var(--cobalto); --cur-dark-ring:0 solid transparent;
  --cur-light-dot:var(--cobalto-l); --cur-light-ring:0 solid transparent;
}
html.has-cur.cursor-gimnasio.cur-light{--cc:rgba(250,250,247,.9)}
html.has-cur.cursor-gimnasio.cur-blue{--cc:#fff; --cur-dot-bg:#fff}
html.has-cur.cursor-gimnasio .cur-ring::before{
  border:0;
  background:
    linear-gradient(var(--cc),var(--cc)) 0 0/9px 1.5px no-repeat, linear-gradient(var(--cc),var(--cc)) 0 0/1.5px 9px no-repeat,
    linear-gradient(var(--cc),var(--cc)) 100% 0/9px 1.5px no-repeat, linear-gradient(var(--cc),var(--cc)) 100% 0/1.5px 9px no-repeat,
    linear-gradient(var(--cc),var(--cc)) 0 100%/9px 1.5px no-repeat, linear-gradient(var(--cc),var(--cc)) 0 100%/1.5px 9px no-repeat,
    linear-gradient(var(--cc),var(--cc)) 100% 100%/9px 1.5px no-repeat, linear-gradient(var(--cc),var(--cc)) 100% 100%/1.5px 9px no-repeat;
  transition:width .35s var(--ease), height .35s var(--ease), margin .35s var(--ease), background-color .3s, transform .3s var(--ease), opacity .3s;
}
html.has-cur.cursor-gimnasio.cur-link .cur-ring::before{transform:none; width:54px; height:54px; margin:-27px 0 0 -27px; background-color:rgba(47,71,255,.12)}
html.has-cur.cursor-gimnasio.cur-link.cur-light .cur-ring::before,html.has-cur.cursor-gimnasio.cur-link.cur-blue .cur-ring::before{background-color:rgba(250,250,247,.1)}
html.has-cur.cursor-gimnasio.cur-down .cur-ring::before{transform:scale(.8)}
html.has-cur.cursor-gimnasio .cur-dot::before{transition:transform .3s var(--ease), opacity .25s, background .3s}
html.has-cur.cursor-gimnasio.cur-link .cur-dot::before{transform:scale(.55) rotate(45deg)}
.cursor-gimnasio .cur-label{border-radius:0; font-size:13.5px; letter-spacing:.005em}

/* ---------- Titulares palabra a palabra: espacio para las tildes de Anton ---------- */
.is-split .sw{padding-top:.24em; margin-top:-.24em}

/* ---------- Accesibilidad ---------- */
:focus-visible{outline:2px solid var(--cobalto); outline-offset:3px}
.hd :focus-visible,.mm :focus-visible,.hero :focus-visible,.method :focus-visible,.pricing :focus-visible,.faq-help :focus-visible,.ft :focus-visible,.pc:focus-visible{outline-color:var(--cobalto-l)}
.mega :focus-visible{outline-color:var(--cobalto)}
.final :focus-visible{outline-color:#fff}
.final-form :focus-visible{outline-color:var(--cobalto)}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms !important; animation-delay:0s !important; animation-iteration-count:1 !important; transition-duration:.01ms !important}
  .ann-track,.band-track{animation:none !important}
}
