/* Concepto: "trayectorias sobre el tapete". Bloques azules (aire) y crema (tapete) alternados; arcos de salto como motivo; conteo de 8 tiempos como ritmo. */
:root{
  --crema:#F3EEE3; --crema-2:#E7E1D3; --gris:#CDD1DA; --gris-tinta:#586174;
  --azul:#1E40C8; --azul-2:#3D63F0; --azul-prof:#0B1634; --azul-claro:#8EABFF;
  --tinta:#0F1830; --sobre-azul:#C3CFEF; --linea:rgba(15,24,48,.14);
  --f-display:"Big Shoulders Display","Arial Narrow",Impact,sans-serif;
  --f-texto:"Figtree",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-mono:"DM Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;
  --ease-out:cubic-bezier(.22,1,.36,1); --ease-io:cubic-bezier(.77,0,.175,1);
  --ancho:1180px;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth}
body{background:var(--crema);color:var(--tinta);font-family:var(--f-texto);font-size:17px;line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit}
:focus-visible{outline:3px solid var(--azul-2);outline-offset:3px;border-radius:4px}
.wrap{max-width:var(--ancho);margin-inline:auto;padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}
.saltar{position:absolute;left:-999px;top:8px;background:var(--azul);color:#fff;padding:8px 14px;border-radius:8px;z-index:99}
.saltar:focus{left:12px}
h1,h2,h3{font-family:var(--f-display);font-weight:900;line-height:1.02;letter-spacing:.005em;text-transform:uppercase;margin:0;text-wrap:balance}
h2{font-size:clamp(44px,7vw,92px)}
h3{font-size:clamp(28px,3.4vw,40px);font-weight:800}
p{margin:0}
.rotulo{font-family:var(--f-mono);font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;display:inline-flex;align-items:center;gap:10px}
.rotulo::before{content:"";width:22px;height:2px;background:currentColor}
.gesto{color:transparent;-webkit-text-stroke:2px currentColor}
.azul .gesto{-webkit-text-stroke-color:var(--azul-claro)}
.crema .gesto,.crema-2 .gesto{-webkit-text-stroke-color:var(--azul)}
section{position:relative}
.azul{background:var(--azul-prof);color:#fff}
.crema{background:var(--crema)}
.crema-2{background:var(--crema-2)}
.bloque{padding-block:clamp(72px,10vw,128px)}
.btn{display:inline-flex;align-items:center;gap:10px;font-weight:700;font-size:16px;text-decoration:none;padding:15px 24px;border-radius:999px;border:2px solid transparent;transition:transform .35s var(--ease-out),background .3s,color .3s;cursor:pointer;font-family:var(--f-texto)}
.btn--lleno{background:var(--azul-2);color:#fff}
.btn--lleno:hover{background:#fff;color:var(--azul)}
.btn--borde{border-color:currentColor}
.btn--borde:hover{background:currentColor}
.btn--borde:hover span{color:var(--azul-prof)}
.btn svg{width:18px;height:18px;flex:none}

/* ---------- Barra ---------- */
.barra{position:fixed;top:0;left:0;right:0;z-index:50;padding-top:env(safe-area-inset-top,0px);transition:transform .45s var(--ease-io),background .3s}
.barra.solida{background:rgba(11,22,52,.92);backdrop-filter:blur(10px)}
.barra.oculta{transform:translateY(-100%)}
body:not([data-vista="inicio"]) .barra{background:rgba(11,22,52,.94);backdrop-filter:blur(10px)}
.barra .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;height:68px;color:#fff}
.logo{white-space:nowrap;font-family:var(--f-display);font-weight:900;font-size:26px;letter-spacing:.02em;text-decoration:none;display:flex;align-items:center;gap:10px;text-transform:uppercase}
.logo i{width:30px;height:30px;border-radius:50%;border:2px solid var(--azul-claro);display:grid;place-items:center;font-style:normal;font-size:15px}
.menu{display:flex;gap:26px;list-style:none;margin:0;padding:0}
.menu a{text-decoration:none;font-weight:600;font-size:15px;position:relative}
.menu a::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:2px;background:var(--azul-claro);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease-out)}
.menu a:hover::after{transform:scaleX(1)}
.barra .btn{padding:10px 18px;font-size:14px}
.progreso{position:absolute;left:0;bottom:0;height:3px;width:100%;background:var(--azul-claro);transform-origin:left;transform:scaleX(0)}
@media (max-width:860px){.menu{display:none}}
@media (max-width:420px){.logo{font-size:21px}.barra .btn{padding:9px 14px}}

/* ---------- Hero ---------- */
.hero{padding-top:calc(110px + env(safe-area-inset-top,0px));padding-bottom:40px;overflow:hidden}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:40px;align-items:center}
.hero-grid>*{min-width:0}
.hero .rotulo{color:var(--azul-claro)}
.hero h1{font-size:clamp(50px,7.4vw,108px);margin-top:22px;line-height:1.04}
.palabra{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.06em;margin-bottom:-.06em}
.palabra>span{display:inline-block;animation:sube .95s var(--ease-out) both;animation-delay:calc(var(--i)*80ms + 120ms)}
@keyframes sube{from{transform:translateY(108%) rotate(5deg)}to{transform:none}}
.rotador{display:inline-grid;vertical-align:top;overflow:hidden;color:var(--azul-claro)}
.rotador>span{grid-area:1/1;white-space:nowrap;transition:transform .7s var(--ease-io),opacity .5s;transform:translateY(105%);opacity:0}
.rotador>span.activa{transform:none;opacity:1}
.rotador>span.sale{transform:translateY(-105%);opacity:0}
.hero .lead{margin-top:26px;max-width:46ch;color:var(--sobre-azul);font-size:19px}
.hero .acciones{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:34px;list-style:none;padding:0}
.chips li{font-family:var(--f-mono);font-size:12.5px;letter-spacing:.06em;padding:7px 12px;border:1px solid rgba(255,255,255,.22);border-radius:999px;color:var(--sobre-azul)}
.chips b{color:#fff;font-weight:500}

.escena{position:relative;aspect-ratio:6/5;max-width:100%}
.escena svg{width:100%;height:100%;overflow:visible}
.trayecto{fill:none;stroke:var(--azul-claro);stroke-width:2;stroke-dasharray:4 9;opacity:.55}
.trayecto-dibujo{fill:none;stroke:var(--azul-claro);stroke-width:2;stroke-linecap:round}
.tapete rect{fill:var(--azul)}
.tapete rect:nth-child(even){fill:var(--azul-2)}
.atleta .cuerpo{fill:#fff}
.atleta .linea{stroke:#fff;stroke-width:9;stroke-linecap:round;fill:none}
.sombra{fill:rgba(0,0,0,.35)}
.onda{fill:none;stroke:var(--azul-claro);stroke-width:2;opacity:0}
.conteo{display:flex;justify-content:space-between;gap:4px;margin-top:10px;padding-inline:6%;font-family:var(--f-mono);font-size:13px;color:rgba(255,255,255,.35)}
.conteo span{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;transition:background .2s,color .2s}
.conteo span.on{background:var(--azul-claro);color:var(--azul-prof)}
.escena .nota{position:absolute;top:4%;right:2%;font-family:var(--f-mono);font-size:11.5px;color:var(--sobre-azul);text-align:right;line-height:1.5;letter-spacing:.04em}
@media (max-width:900px){.hero-grid{grid-template-columns:minmax(0,1fr)}.escena{max-width:560px;width:100%;margin-inline:auto}}

/* ---------- Cifras ---------- */
.cifras{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:2px solid var(--tinta)}
.cifra{padding:30px 22px 6px 0;border-right:1px solid var(--linea)}
.cifra:last-child{border-right:0}
.cifra+.cifra{padding-left:22px}
.cifra b{display:block;font-family:var(--f-display);font-weight:900;font-size:clamp(64px,8vw,112px);line-height:.9;color:var(--azul);font-variant-numeric:tabular-nums}
.cifra span{display:block;margin-top:10px;font-weight:600;max-width:20ch}
@media (max-width:760px){.cifras{grid-template-columns:repeat(2,minmax(0,1fr))}.cifra:nth-child(2){border-right:0}.cifra:nth-child(3){padding-left:0}.cifra:nth-child(n+3){border-top:1px solid var(--linea)}}
.intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;align-items:end;margin-bottom:54px}
.intro p{color:var(--gris-tinta);max-width:52ch}
.crema .rotulo,.crema-2 .rotulo{color:var(--azul)}
.intro h2{margin-top:16px}
@media (max-width:860px){.intro{grid-template-columns:minmax(0,1fr);gap:20px}}

/* ---------- Clases ---------- */
.tipos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.tipo{position:relative;border-radius:22px;padding:34px 30px 30px;overflow:hidden;display:flex;flex-direction:column;gap:16px;min-height:330px;transition:transform .5s var(--ease-out)}
.tipo:hover{transform:translateY(-6px)}
.tipo--azul{background:var(--azul);color:#fff}
.tipo--claro{background:var(--crema);border:2px solid var(--tinta)}
.tipo .num{font-family:var(--f-mono);font-size:12.5px;letter-spacing:.12em;text-transform:uppercase;opacity:.75}
.tipo p{max-width:40ch}
.tipo--azul p{color:var(--sobre-azul)}
.tipo--claro p{color:var(--gris-tinta)}
.tipo ul{list-style:none;padding:0;margin:auto 0 0;display:flex;flex-wrap:wrap;gap:8px}
.tipo li{font-size:14px;font-weight:600;padding:6px 12px;border-radius:999px;background:rgba(255,255,255,.14)}
.tipo--claro li{background:var(--crema-2)}
.tipo .arco{position:absolute;right:-40px;top:-30px;width:220px;opacity:.25;pointer-events:none}
.tipo .arco path{fill:none;stroke:currentColor;stroke-width:2;stroke-dasharray:3 8}
@media (max-width:760px){.tipos{grid-template-columns:minmax(0,1fr)}}

/* ---------- Niveles (sección fija por scroll) ---------- */
.niveles .pista{height:360vh;position:relative}
.niveles .fijo{position:sticky;top:0;height:100vh;height:100svh;display:flex;align-items:center;overflow:hidden}
.niv-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:48px;align-items:center;width:100%}
.niv-grid h2{margin-top:16px}
.niv-grid .ayuda{margin-top:18px;color:var(--sobre-azul);max-width:40ch}
.escalera{display:flex;align-items:flex-end;gap:8px;height:150px;margin-top:36px}
.escalon{flex:1;border-radius:6px 6px 0 0;background:rgba(255,255,255,.1);transition:background .4s,transform .5s var(--ease-out);transform-origin:bottom;cursor:pointer;border:0;padding:0;position:relative;color:var(--sobre-azul);font-family:var(--f-mono);font-size:12px}
.escalon span{position:absolute;left:0;right:0;bottom:6px;text-align:center}
.escalon.on{background:var(--azul-2);color:#fff}
.escalon.hecho{background:rgba(142,171,255,.35)}
.paneles{position:relative;display:grid}
.panel{grid-area:1/1;transition:opacity .55s var(--ease-out),transform .55s var(--ease-out),filter .55s;opacity:0;transform:translateY(24px);filter:blur(6px);pointer-events:none}
.panel.on{opacity:1;transform:none;filter:none;pointer-events:auto}
.panel .grande{font-family:var(--f-display);font-weight:900;font-size:clamp(130px,19vw,260px);line-height:.8;color:var(--azul-claro);display:flex;align-items:baseline;gap:14px}
.panel .grande small{font-size:.22em;color:#fff;letter-spacing:.04em}
.panel h3{margin-top:18px}
.panel p{margin-top:12px;color:var(--sobre-azul);max-width:44ch}
.panel ul{list-style:none;padding:0;margin:18px 0 0;display:flex;flex-wrap:wrap;gap:8px}
.panel li{padding:7px 13px;border:1px solid rgba(255,255,255,.25);border-radius:999px;font-size:14.5px}
.niv-nota{margin-top:22px;font-family:var(--f-mono);font-size:11.5px;color:rgba(195,207,239,.7);letter-spacing:.04em}
@media (max-width:860px){
  .niv-grid{grid-template-columns:minmax(0,1fr);gap:28px}
  .panel .grande{font-size:120px}
  .escalera{height:90px;margin-top:24px}
}


/* ---------- Sedes y horarios ---------- */
.sedes-tabs{display:flex;gap:10px;flex-wrap:wrap;border-bottom:2px solid var(--tinta);padding-bottom:0}
.tab{font-family:var(--f-display);font-weight:800;text-transform:uppercase;font-size:clamp(26px,3.4vw,40px);background:none;border:0;padding:6px 18px 12px;color:var(--gris-tinta);cursor:pointer;position:relative;letter-spacing:.01em}
.tab::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:6px;background:var(--azul);transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease-out)}
.tab[aria-selected="true"]{color:var(--tinta)}
.tab[aria-selected="true"]::after{transform:scaleX(1)}
.horario{display:grid;grid-template-columns:minmax(0,320px) minmax(0,1fr);gap:28px;margin-top:30px}
.filtros{background:var(--crema);border-radius:20px;padding:24px;display:flex;flex-direction:column;gap:22px;align-self:start;position:sticky;top:calc(84px + env(safe-area-inset-top,0px))}
.filtros .etq{font-family:var(--f-mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--gris-tinta);margin-bottom:10px;display:block}
.seg{display:flex;flex-wrap:wrap;gap:6px}
.seg button{border:2px solid var(--tinta);background:none;border-radius:999px;padding:8px 14px;font-family:var(--f-texto);font-weight:600;font-size:14px;cursor:pointer;color:var(--tinta);transition:background .25s,color .25s}
.seg button[aria-pressed="true"]{background:var(--tinta);color:var(--crema)}
.niv-sel{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}
.niv-sel button{aspect-ratio:1;border-radius:10px;padding:0;font-size:15px}
.niv-sel button[data-v="0"]{grid-column:1/-1;aspect-ratio:auto;padding:8px;border-radius:999px}
.direccion{font-size:14.5px;color:var(--gris-tinta);border-top:1px solid var(--linea);padding-top:18px}
.direccion b{display:block;color:var(--tinta);font-size:16px}
.direccion .mapa{color:var(--azul);font-weight:700;text-decoration:none;border-bottom:2px solid currentColor}
.direccion .mapa:hover{color:var(--tinta)}
.aviso{display:flex;gap:10px;align-items:flex-start;font-size:14px;background:rgba(30,64,200,.08);color:var(--azul);padding:12px 14px;border-radius:12px;margin-bottom:14px}
.lista{display:flex;flex-direction:column;gap:10px}
.fila{display:grid;grid-template-columns:200px minmax(0,1fr) auto;gap:18px;align-items:center;background:var(--crema);border-radius:16px;padding:18px 20px;border:1px solid transparent;transition:border-color .3s,transform .45s var(--ease-out);animation:entra .55s var(--ease-out) both;animation-delay:calc(var(--i,0)*60ms)}
.fila:hover{border-color:var(--azul);transform:translateX(4px)}
@keyframes entra{from{opacity:0;transform:translateY(14px)}}
.fila .dia{font-family:var(--f-display);font-weight:800;font-size:22px;text-transform:uppercase;line-height:1}
.fila .dia small{display:block;font-family:var(--f-mono);font-weight:500;font-size:13px;margin-top:6px;color:var(--azul);text-transform:none}
.fila .det{min-width:0}
.fila .det b{display:block;font-size:16.5px}
.fila .det span{font-size:14px;color:var(--gris-tinta)}
.tag{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.1em;background:var(--gris);color:var(--tinta);padding:2px 7px;border-radius:5px;margin-left:6px;vertical-align:2px}
.fila a{font-weight:700;font-size:14px;text-decoration:none;padding:10px 16px;border-radius:999px;background:var(--azul);color:#fff;white-space:nowrap;transition:background .25s}
.fila a:hover{background:var(--tinta)}
.vacio{padding:30px;text-align:center;color:var(--gris-tinta);border:2px dashed var(--linea);border-radius:16px}
@media (max-width:860px){.horario{grid-template-columns:minmax(0,1fr)}.filtros{position:static}}
@media (max-width:520px){.fila{grid-template-columns:minmax(0,1fr);gap:10px}.fila a{justify-self:start}}

.semana{margin-top:56px;background:var(--crema);border-radius:22px;padding:28px}
.semana-cab{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:20px}
.semana-cab h3{font-size:clamp(26px,3vw,34px)}
.leyenda{display:flex;flex-wrap:wrap;gap:14px;font-size:13.5px;font-weight:600;color:var(--gris-tinta)}
.ley{display:inline-flex;align-items:center;gap:7px}
.ley::before{content:"";width:12px;height:12px;border-radius:3px}
.ley--g::before{background:var(--tinta)}.ley--n::before{background:var(--azul)}
.ley--s::before{background:none;border:2px dashed var(--gris-tinta)}
.semana-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.dia-col{display:flex;flex-direction:column;gap:6px;min-width:0}
.dia-col>b{font-family:var(--f-mono);font-weight:500;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--gris-tinta);padding-bottom:8px;border-bottom:2px solid var(--tinta)}
.bloque-cl{border-radius:10px;padding:10px;color:#fff;font-size:13px;line-height:1.3;min-width:0}
.bloque-cl strong{display:block;font-family:var(--f-display);font-weight:800;font-size:17px;text-transform:uppercase}
.bloque-cl.g{background:var(--tinta)}.bloque-cl.n{background:var(--azul)}
.bloque-cl.s{outline:2px dashed rgba(255,255,255,.55);outline-offset:-5px}
.dia-col .nada{font-size:13px;color:var(--gris-tinta);padding:10px 2px}
@media (max-width:760px){.semana-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.semana{padding:20px}}

/* ---------- Trayectoria ---------- */
.tray{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px}
.riel{position:relative;padding-left:34px}
.riel::before{content:"";position:absolute;left:8px;top:6px;bottom:6px;width:2px;background:var(--linea)}
.riel .lleno{position:absolute;left:8px;top:6px;bottom:6px;width:2px;background:var(--azul);transform-origin:top;transform:scaleY(var(--p,1))}
.hito{position:relative;padding-bottom:34px}
.hito:last-child{padding-bottom:0}
.hito::before{content:"";position:absolute;left:-32px;top:8px;width:14px;height:14px;border-radius:50%;background:var(--crema);border:2px solid var(--azul);transition:background .3s,transform .4s var(--ease-out)}
.hito.on::before{background:var(--azul);transform:scale(1.25)}
.hito b{font-family:var(--f-display);font-weight:800;font-size:clamp(28px,3.2vw,38px);text-transform:uppercase;line-height:1;display:block}
.hito span{color:var(--gris-tinta);display:block;margin-top:6px}
.medallas{display:flex;gap:10px;margin-top:14px}
.medalla{width:46px;height:46px;border-radius:50%;background:var(--azul);color:#fff;display:grid;place-items:center;font-family:var(--f-display);font-weight:900;font-size:20px;box-shadow:inset 0 0 0 4px var(--azul-2)}
.capas h3{font-size:clamp(26px,3vw,34px)}
.capas p{color:var(--gris-tinta);margin-top:10px}
.capas ul{list-style:none;padding:0;margin:22px 0 0;border-top:2px solid var(--tinta)}
.capas li{display:flex;justify-content:space-between;gap:16px;padding:15px 0;border-bottom:1px solid var(--linea);font-weight:600}
.capas li span{font-family:var(--f-mono);font-weight:500;font-size:13px;color:var(--azul);white-space:nowrap}
@media (max-width:860px){.tray{grid-template-columns:minmax(0,1fr)}}

/* ---------- Galería ---------- */
.galeria{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;align-items:start}
.foto{position:relative;border-radius:18px;overflow:hidden;background:var(--azul);aspect-ratio:4/5;max-width:100%;margin:0}
.foto:nth-child(even){margin-top:48px}
.foto img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease-out),filter .6s}
.foto:hover img{transform:scale(1.06)}
.foto::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 55%,rgba(11,22,52,.85));pointer-events:none}
.foto figcaption{position:absolute;z-index:1;left:16px;bottom:14px;right:16px;color:#fff;font-family:var(--f-mono);font-size:12px;letter-spacing:.06em;display:flex;justify-content:space-between;gap:8px}
.foto figcaption em{font-style:normal;opacity:.6}
@media (max-width:860px){.galeria{grid-template-columns:repeat(2,minmax(0,1fr))}.foto:nth-child(even){margin-top:32px}}
/* ---------- Cierre ---------- */
.cierre{overflow:hidden}
.cierre canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.cierre .wrap{position:relative;text-align:left}
.cierre h2{font-size:clamp(52px,8.4vw,128px);max-width:12ch;line-height:1.06;margin-top:22px}
.cierre p{margin-top:24px;color:var(--sobre-azul);max-width:48ch;font-size:19px}
.cierre .acciones{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}
.numero{font-family:var(--f-mono);font-size:14px;color:var(--sobre-azul);margin-top:18px;user-select:all}
.pie{background:var(--azul-prof);color:var(--sobre-azul);border-top:1px solid rgba(255,255,255,.1);padding-block:40px 30px}
.pie .gigante{font-family:var(--f-display);font-weight:900;display:flex;flex-wrap:wrap;column-gap:.22em;font-size:clamp(56px,8.6vw,132px);line-height:1;padding-block:.04em;margin-block:-.1em -.06em;text-transform:uppercase;color:transparent;-webkit-text-stroke:2px rgba(142,171,255,.45);background:linear-gradient(var(--azul-claro),var(--azul-claro)) left/0% 100% no-repeat;-webkit-background-clip:text;background-clip:text;transition:background-size .9s var(--ease-out);letter-spacing:-.01em;user-select:none}
.pie .gigante:hover{background-size:100% 100%}
.pie .gigante span{white-space:nowrap}
@media (max-width:700px){.pie .gigante .guion{display:none}.pie .gigante span{white-space:normal}.pie .gigante{font-size:clamp(44px,15vw,80px)}}
.pie .base{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:26px;font-size:14px}
.pie .base a{text-decoration:none;border-bottom:1px solid currentColor}


/* ---------- Vistas (páginas) ---------- */
.vista{animation:vista .6s var(--ease-out) both}
@keyframes vista{from{opacity:0;transform:translateY(14px)}}
.primera{padding-top:calc(150px + env(safe-area-inset-top,0px))}
.bloque--corto{padding-block:clamp(56px,7vw,90px)}
.niveles .pista{height:auto}
.niveles .fijo{position:static;height:auto;padding-block:clamp(72px,9vw,120px)}
.escalon:hover{background:rgba(142,171,255,.5)}
.accesos{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:56px}
.acceso{display:flex;flex-direction:column;gap:14px;min-height:190px;padding:24px;border-radius:20px;background:var(--crema-2);text-decoration:none;color:var(--tinta);transition:transform .45s var(--ease-out),background .3s,color .3s}
.acceso .rotulo{color:var(--azul)}
.acceso b{font-size:19px;line-height:1.25;font-weight:700;text-wrap:balance}
.acceso svg{width:26px;height:26px;margin-top:auto;transition:transform .45s var(--ease-out)}
.acceso:hover{transform:translateY(-5px);background:var(--azul);color:#fff}
.acceso:hover .rotulo{color:var(--azul-claro)}
.acceso:hover svg{transform:translateX(8px)}
.acceso--azul{background:var(--azul);color:#fff}
.acceso--azul .rotulo{color:var(--azul-claro)}
.acceso--azul:hover{background:var(--tinta)}
@media (max-width:960px){.accesos{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:480px){.acceso{min-height:150px;padding:20px}.acceso b{font-size:17px}}
.semana--inicio{background:var(--crema-2)}
.ver-mas{font-weight:700;color:var(--azul);text-decoration:none;font-size:15px;margin-left:14px;white-space:nowrap}
.ver-mas:hover{color:var(--tinta)}
.semana-cab h3{display:inline}
.siguiente a{display:flex;align-items:center;gap:18px;padding-block:44px;text-decoration:none;border-top:2px solid var(--tinta)}
.siguiente b{font-family:var(--f-display);font-weight:900;text-transform:uppercase;font-size:clamp(32px,5vw,60px);line-height:1}
.siguiente .rotulo{color:var(--azul)}
.siguiente svg{width:40px;height:40px;margin-left:auto;flex:none;transition:transform .45s var(--ease-out)}
.siguiente a:hover svg{transform:translateX(10px)}
.siguiente a:hover b{color:var(--azul)}
@media (max-width:600px){.siguiente a{flex-wrap:wrap;gap:8px}.siguiente .rotulo{width:100%}}
.menu a[aria-current="page"]{color:var(--azul-claro)}
.menu a[aria-current="page"]::after{transform:scaleX(1)}
.tabbar{display:none}
@media (max-width:860px){
  .tabbar{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));position:fixed;left:0;right:0;bottom:0;z-index:60;background:rgba(11,22,52,.96);backdrop-filter:blur(10px);padding:8px max(8px,env(safe-area-inset-right,0px)) calc(8px + env(safe-area-inset-bottom,0px)) max(8px,env(safe-area-inset-left,0px));border-top:1px solid rgba(255,255,255,.1)}
  .tabbar a{display:flex;flex-direction:column;align-items:center;gap:3px;text-decoration:none;color:var(--sobre-azul);font-size:11px;font-weight:600;padding:4px 0;border-radius:10px;min-width:0}
  .tabbar svg{width:22px;height:22px}
  .tabbar a[aria-current="page"]{color:#fff;background:rgba(61,99,240,.35)}
  body{padding-bottom:calc(72px + env(safe-area-inset-bottom,0px))}
  .primera{padding-top:calc(110px + env(safe-area-inset-top,0px))}
}

[tabindex="-1"]:focus{outline:none}
.rotulo--claro{color:var(--azul-claro)}
.aviso-ico{flex:none;margin-top:2px}
.pos-20{object-position:center 20%}.pos-25{object-position:center 25%}.pos-30{object-position:center 30%}
.atleta .linea{stroke-width:8;stroke-linejoin:round}
.club{display:flex;align-items:center;gap:14px;margin-top:30px;color:var(--sobre-azul);font-size:14px;line-height:1.3}
.club img{width:96px;height:auto}
.club b{color:#fff;font-size:15px}
.chips{margin-top:18px}
.btn--azul{background:var(--azul);color:#fff;align-self:flex-start}
.btn--azul:hover{background:var(--tinta)}
.coach{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1fr);gap:clamp(28px,5vw,72px);align-items:center;margin-bottom:clamp(56px,7vw,96px)}
.coach-foto{position:relative;margin:0;border-radius:24px;overflow:hidden;aspect-ratio:1/1;max-width:100%;background:var(--azul)}
.coach-foto img{width:100%;height:100%;object-fit:cover;display:block}
.coach-foto figcaption{position:absolute;left:16px;bottom:14px;color:#fff;font-family:var(--f-mono);font-size:12px;letter-spacing:.08em;background:rgba(11,22,52,.7);padding:6px 10px;border-radius:8px}
.coach-txt{display:flex;flex-direction:column;gap:18px}
.coach-txt h2{font-size:clamp(44px,6vw,80px)}
.coach-txt p{color:var(--gris-tinta);max-width:52ch}
@media (max-width:860px){.coach{grid-template-columns:minmax(0,1fr)}.coach-foto{max-width:520px}}
.hito-logo{display:block;width:120px;height:auto;margin-top:14px;opacity:.85}
.faq{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(28px,5vw,72px);align-items:start}
.faq>div:first-child{display:flex;flex-direction:column;gap:20px}
.preguntas{border-top:2px solid var(--tinta)}
.pregunta{border-bottom:1px solid var(--linea)}
.pregunta summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 0;font-weight:700;font-size:18px}
.pregunta summary::-webkit-details-marker{display:none}
.pregunta summary i{width:28px;height:28px;flex:none;border-radius:50%;border:2px solid var(--tinta);position:relative;transition:transform .4s var(--ease-out),background .3s}
.pregunta summary i::before,.pregunta summary i::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:2px;background:currentColor;translate:-50% -50%}
.pregunta summary i::after{rotate:90deg;transition:rotate .4s var(--ease-out)}
.pregunta[open] summary i{background:var(--tinta);color:var(--crema)}
.pregunta[open] summary i::after{rotate:0deg}
.pregunta p{padding:0 44px 22px 0;color:var(--gris-tinta);animation:abre .45s var(--ease-out)}
@keyframes abre{from{opacity:0;transform:translateY(-6px)}}
@media (max-width:860px){.faq{grid-template-columns:minmax(0,1fr)}}
.pie .base{align-items:center}
.base-marca{display:flex;align-items:center;gap:14px}
.base-marca img{width:72px;height:auto}
.redes{display:flex;flex-wrap:wrap;gap:10px 22px}
.pie .redes a{display:inline-flex;align-items:center;gap:8px;border:0;text-decoration:none;color:#fff;font-weight:600}
.pie .redes a:hover{color:var(--azul-claro)}
.redes svg{width:20px;height:20px}

/* ---------- Agenda ---------- */
:root{--peligro:#B42318;--exito:#146C43}
.demo-aviso{display:flex;gap:10px;align-items:flex-start;background:var(--azul-prof);color:var(--sobre-azul);border-radius:14px;padding:14px 16px;margin:0 0 26px;font-size:14.5px}
.demo-aviso b{color:#fff}
.agenda-main{min-width:0;display:flex;flex-direction:column;gap:16px}
.agenda-main .aviso{margin:0}
.dias{display:flex;gap:8px;overflow-x:auto;padding:4px 2px 12px;scroll-snap-type:x proximity;scrollbar-width:thin}
.dia-chip{flex:none;scroll-snap-align:start;display:grid;justify-items:center;gap:1px;min-width:76px;padding:10px 8px;border-radius:16px;border:2px solid var(--tinta);background:var(--crema);color:var(--tinta);cursor:pointer;font-family:var(--f-texto);transition:background .25s,color .25s,transform .35s var(--ease-out)}
.dia-chip small{font-family:var(--f-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase}
.dia-chip b{font-family:var(--f-display);font-weight:900;font-size:32px;line-height:1.05}
.dia-chip em{font-style:normal;font-size:11.5px;font-weight:700;color:var(--azul);margin-top:4px;white-space:nowrap}
.dia-chip.lleno em{color:var(--peligro)}
.dia-chip:hover{transform:translateY(-3px)}
.dia-chip.on{background:var(--tinta);color:var(--crema)}
.dia-chip.on em{color:var(--azul-claro)}
.dia-chip.pasado{opacity:.45}
.dia-titulo{font-size:clamp(26px,3vw,34px);margin-bottom:4px}
.lista{display:flex;flex-direction:column;gap:12px}
.clase-card{display:grid;grid-template-columns:150px minmax(0,1fr) auto;gap:20px;align-items:start;background:var(--crema);border-radius:18px;padding:20px 22px;border:1px solid transparent;transition:border-color .3s;animation:entra .5s var(--ease-out) both}
.clase-card:hover{border-color:var(--azul)}
.cc-hora b{font-family:var(--f-display);font-weight:800;font-size:28px;text-transform:uppercase;line-height:1.05;display:block}
.cc-hora small{font-family:var(--f-mono);font-size:12.5px;color:var(--azul);display:block;margin-top:6px}
.cc-info{min-width:0;display:flex;flex-direction:column;gap:10px}
.cc-tipo{font-weight:700;font-size:17px;display:flex;align-items:center;gap:6px}
.cupos{display:flex;gap:5px;flex-wrap:wrap}
.cupos i{width:24px;height:10px;border-radius:3px;background:var(--gris);transition:background .4s}
.cupos i.on{background:var(--azul)}
.llena .cupos i.on{background:var(--tinta)}
.cc-estado{font-size:14px;font-weight:600;color:var(--gris-tinta)}
.llena .cc-estado{color:var(--peligro)}
.personas{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.personas li{font-size:13.5px;font-weight:600;padding:5px 11px;border-radius:999px;background:var(--crema-2)}
.nadie{font-size:14px;color:var(--gris-tinta)}
.cc-accion{align-self:center}
.cc-cerrada{font-family:var(--f-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--gris-tinta)}
.clase-card.cerrada{opacity:.6}
.clase-card .btn{padding:12px 22px;font-size:15px}
.btn--borde-azul{border:2px solid var(--azul);color:var(--azul);background:none}
.btn--borde-azul:hover{background:var(--azul);color:#fff}
@media (max-width:620px){.clase-card{grid-template-columns:minmax(0,1fr);gap:12px;padding:18px}.cc-hora{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.cc-hora small{margin:0}.cc-accion{align-self:stretch}.cc-accion .btn{width:100%;justify-content:center}}
.enlace{background:none;border:0;padding:0;color:var(--azul);font-weight:700;text-decoration:underline;cursor:pointer;font:inherit;font-weight:700}
.cancelar-caja{border-top:1px solid var(--linea);padding-top:18px;display:flex;flex-direction:column;gap:12px}
.cancelar-caja label{font-weight:600;font-size:14.5px;display:block;margin-bottom:8px}
.fila-input{display:flex;gap:6px}
.fila-input input{flex:1;min-width:0;text-transform:uppercase;font-family:var(--f-mono);letter-spacing:.12em}
.fila-input button{border:0;border-radius:12px;background:var(--tinta);color:var(--crema);font-weight:700;padding:0 16px;cursor:pointer;font-family:var(--f-texto)}
.horario input,.dlg input:not([type=checkbox]){font:inherit;color:var(--tinta);background:#fff;border:2px solid var(--linea);border-radius:12px;padding:11px 12px;width:100%}
.horario input:focus,.dlg input:focus{border-color:var(--azul);outline:none;box-shadow:0 0 0 3px rgba(30,64,200,.18)}
.mis{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.mis:empty{display:none}
.mis li{background:#fff;border-radius:12px;padding:10px 12px;font-size:13.5px;display:flex;justify-content:space-between;gap:10px;align-items:center}
.mis li b{display:block;font-size:14.5px}
.res-cancel{background:#fff;border-radius:14px;padding:14px;font-size:14.5px;display:flex;flex-direction:column;gap:12px}
.res-acc{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.btn-peligro{background:var(--peligro);color:#fff;border:0;border-radius:999px;padding:10px 16px;font-weight:700;cursor:pointer;font-family:var(--f-texto)}
.btn-peligro:disabled{opacity:.6}
.ok-msg{color:var(--exito);font-weight:600;font-size:14.5px}
.err-msg{color:var(--peligro);font-weight:600;font-size:14.5px}
.dlg{border:0;padding:0;border-radius:24px;width:min(560px,calc(100vw - 24px));max-height:calc(100dvh - 24px);background:var(--crema);color:var(--tinta);box-shadow:0 30px 80px rgba(11,22,52,.4)}
.dlg::backdrop{background:rgba(11,22,52,.6);backdrop-filter:blur(4px)}
.dlg[open]{animation:dlg .45s var(--ease-out)}
@keyframes dlg{from{opacity:0;transform:translateY(24px) scale(.98)}}
.dlg form,.exito{padding:26px}
.dlg-cab{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:20px}
.dlg-cab .rotulo{color:var(--azul)}
.dlg-cab h3{margin-top:10px}
.dlg-clase{margin-top:8px;font-weight:600;color:var(--gris-tinta);font-size:15px}
.cerrar{width:40px;height:40px;flex:none;border-radius:50%;border:2px solid var(--tinta);background:none;cursor:pointer;color:var(--tinta);display:grid;place-items:center}
.cerrar svg{width:18px;height:18px}
.campos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.campo{min-width:0}
.campo label,.etq-c{display:block;font-weight:600;font-size:14px;margin-bottom:6px}
.campo--ancho{grid-column:1/-1}
.campo small{display:block;color:var(--gris-tinta);font-size:12.5px;margin-top:6px}
.niv-sel--form{grid-template-columns:repeat(7,minmax(0,1fr))}
.check{grid-column:1/-1;display:flex;gap:10px;align-items:flex-start;font-size:13.5px;color:var(--gris-tinta);cursor:pointer}
.check input{width:20px;height:20px;flex:none;margin-top:2px;accent-color:var(--azul)}
.nota-priv{grid-column:1/-1;font-size:12.5px;color:var(--gris-tinta);background:var(--crema-2);border-radius:10px;padding:10px 12px}
.trampa{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.form-error{color:var(--peligro);font-weight:600;font-size:14.5px;min-height:1.3em;margin-top:14px}
.dlg-pie .btn{width:100%;justify-content:center;margin-top:6px}
@media (max-width:480px){.campos{grid-template-columns:minmax(0,1fr)}.dlg form,.exito{padding:20px}}
.exito{text-align:center;display:flex;flex-direction:column;align-items:center;gap:14px}
.exito h3{font-size:clamp(32px,6vw,42px)}
.exito p{color:var(--gris-tinta);max-width:42ch}
.sello{width:76px;height:76px;border-radius:50%;background:var(--azul);color:#fff;display:grid;place-items:center;animation:sello .6s var(--ease-out) both}
@keyframes sello{from{transform:scale(.4);opacity:0}}
.sello path{stroke-dasharray:30;stroke-dashoffset:30;animation:traza .6s .25s var(--ease-out) forwards}
@keyframes traza{to{stroke-dashoffset:0}}
.codigo{display:flex;align-items:center;gap:12px;background:var(--tinta);color:#fff;border-radius:16px;padding:12px 12px 12px 20px}
.codigo b{font-family:var(--f-mono);font-weight:500;font-size:28px;letter-spacing:.2em;user-select:all}
.codigo button{border:0;border-radius:10px;background:var(--azul-2);color:#fff;font-weight:700;padding:9px 12px;cursor:pointer;font-family:var(--f-texto)}
.ex-nota{font-size:14px}
.acciones-ex{display:flex;flex-direction:column;gap:8px;width:100%}
.acciones-ex .btn{justify-content:center}

.dia-chip.sin-clase em{color:var(--gris-tinta)}
.dia-chip.sin-clase b{text-decoration:line-through;text-decoration-thickness:3px}
.clase-card.cancelada{background:transparent;border:2px dashed var(--gris)}
.clase-card.cancelada .cc-hora b{text-decoration:line-through;text-decoration-thickness:3px;color:var(--gris-tinta)}
.tag--cancelada{background:var(--peligro);color:#fff}
/* ---------- Aparición ---------- */
.rev{transition:opacity .9s var(--ease-out),translate .9s var(--ease-out),filter .9s var(--ease-out)}
.js .rev.espera{opacity:0;translate:0 18px;filter:blur(6px)}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .js .rev.espera{opacity:1;translate:none;filter:none}
}

.pagina-404{background:var(--azul-prof);min-height:100vh}
.lead-404{color:var(--sobre-azul);margin-block:20px 30px;max-width:46ch}
