*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--blanco);color:var(--tinta);font-family:var(--fuente);font-size:var(--t-cuerpo);line-height:1.6;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:var(--coral);text-decoration:none}
a:hover{color:var(--coral-hover)}
h1,h2,h3,h4{margin:0;line-height:1.05;letter-spacing:-.025em;font-weight:800;text-wrap:balance}
p{margin:0}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}

.contenedor{width:100%;max-width:var(--ancho);margin-inline:auto;padding-inline:var(--e5)}
.seccion{padding-block:var(--e8)}
.oscuro{background:var(--negro);color:var(--tinta-clara)}
.oscuro h1,.oscuro h2,.oscuro h3{color:var(--blanco)}
.columna-texto{max-width:var(--ancho-texto)}
.prosa{font-size:17px;font-weight:400;line-height:1.75;color:var(--tinta-2)}
.oscuro .prosa{color:var(--tinta-clara-2)}
.prosa p+p{margin-top:var(--e4)}
.sobretitulo{font-size:15px;font-weight:600;color:var(--tinta-3);line-height:1.35}
.oscuro .sobretitulo{color:var(--tinta-clara-2)}
.grande{font-size:clamp(40px,9vw,84px);font-weight:800;letter-spacing:-.04em;line-height:.96}
.mediana{font-size:clamp(28px,5vw,46px);font-weight:800;letter-spacing:-.035em;line-height:1}
.titular-partido{display:flex;flex-direction:column;gap:var(--e2)}

.logo{display:inline-flex;align-items:center}
.logo img{height:30px;width:auto}
.logo--xl img{height:66px}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--e2);min-height:48px;padding:0 var(--e5);border-radius:var(--r-pill);font-size:16px;font-weight:700;letter-spacing:-.01em;transition:background .15s,color .15s,border-color .15s}
.btn--coral{background:var(--coral);color:var(--blanco)}
.btn--coral:hover{background:var(--coral-hover);color:var(--blanco)}
.btn--linea{border:1.5px solid var(--linea);color:var(--tinta)}
.btn--linea:hover{border-color:var(--tinta);color:var(--tinta)}
.oscuro .btn--linea{border-color:var(--linea-oscura);color:var(--tinta-clara)}
.oscuro .btn--linea:hover{border-color:var(--tinta-clara);color:var(--blanco)}
.btn--peq{min-height:40px;padding:0 var(--e4);font-size:15px}
.pill{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 var(--e3);border-radius:var(--r-pill);font-size:14px;font-weight:700;background:var(--crema);color:var(--tinta)}
.pill--gratis{background:var(--verde);color:var(--negro)}
.pill--linea{background:transparent;border:1.5px solid var(--linea);color:var(--tinta-2);font-weight:600}

.punto{width:10px;height:10px;border-radius:50%;flex:0 0 auto;display:inline-block}
.punto--directo{background:var(--coral)}
.punto--fiesta{background:var(--verde)}
.leyenda{display:flex;flex-wrap:wrap;gap:var(--e5);align-items:center;padding-block:var(--e4)}
.leyenda__item{display:flex;align-items:center;gap:var(--e2);font-size:15px;font-weight:600;color:var(--tinta-2)}

.barra{position:sticky;top:0;z-index:50;background:var(--negro);border-bottom:1px solid var(--linea-oscura)}
.barra__fila{display:flex;align-items:center;gap:var(--e4);min-height:68px}
.barra__nav{display:none;gap:var(--e5);margin-left:var(--e6)}
.barra__nav a{color:var(--tinta-clara-2);font-size:15px;font-weight:600}
.barra__nav a:hover{color:var(--blanco)}
.barra__acciones{margin-left:auto;display:flex;align-items:center;gap:var(--e3)}
.idioma{position:relative}
.idioma__btn{display:inline-flex;align-items:center;gap:var(--e2);min-height:40px;padding:0 var(--e3);border-radius:var(--r-pill);border:1.5px solid var(--linea-oscura);color:var(--tinta-clara);font-size:15px;font-weight:700}
.idioma__btn:hover{border-color:var(--tinta-clara-2)}
.idioma__lista{position:absolute;right:0;top:calc(100% + 8px);min-width:200px;background:var(--negro-2);border:1px solid var(--linea-oscura);border-radius:var(--r-card);padding:var(--e2);box-shadow:var(--sombra-alta);display:flex;flex-direction:column}
.idioma__op{display:flex;align-items:center;justify-content:space-between;gap:var(--e4);padding:10px var(--e3);border-radius:12px;font-size:15px;font-weight:600;color:var(--tinta-clara-2);text-align:left;width:100%}
.idioma__op:hover{background:var(--negro-3);color:var(--blanco)}
.idioma__op[aria-selected="true"]{color:var(--blanco)}
.idioma__op[aria-selected="true"]::after{content:"";width:8px;height:8px;border-radius:50%;background:var(--coral)}
@media(min-width:900px){.barra__nav{display:flex}}

.hero{padding-block:var(--e8) var(--e9);overflow:hidden}
.hero__rejilla{display:grid;gap:var(--e8);align-items:center}
.hero__texto{display:flex;flex-direction:column;gap:var(--e5);max-width:560px}
.hero__cta{display:flex;flex-wrap:wrap;gap:var(--e3)}
.hero__dato{display:flex;flex-wrap:wrap;gap:var(--e5);padding-top:var(--e3);font-size:15px;font-weight:600;color:var(--tinta-clara-2)}
.hero__dato b{color:var(--blanco);font-weight:800}
@media(min-width:900px){.hero__rejilla{grid-template-columns:1.05fr .95fr}}

.movil{position:relative;width:300px;max-width:100%;aspect-ratio:393/852;margin-inline:auto;border-radius:44px;background:var(--negro-2);box-shadow:0 0 0 9px var(--negro-3),0 0 0 10px var(--linea-oscura),var(--sombra-alta);overflow:hidden}
.movil__foto{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 900ms ease}
.movil__foto.es-visible{opacity:1}
.movil__velo{position:absolute;inset:0;background:linear-gradient(180deg,rgba(9,9,9,.5) 0%,rgba(9,9,9,.05) 30%,rgba(9,9,9,.5) 64%,rgba(9,9,9,.94) 100%)}
.movil__ui{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--e4);padding:var(--e5)}
.movil__lema{font-size:15px;font-weight:500;color:rgba(255,255,255,.9);text-align:center;line-height:1.45;max-width:24ch}
.movil__pie{position:absolute;left:var(--e4);right:var(--e4);bottom:var(--e5);display:flex;flex-direction:column;align-items:center;gap:var(--e3)}
.movil__btn{width:100%;min-height:50px;border-radius:var(--r-pill);background:var(--coral);color:var(--blanco);font-size:16px;font-weight:700;display:flex;align-items:center;justify-content:center}

/* el móvil del hero explica cómo funciona: fotos rotativas + pantallas reales */
.movil-caja{display:flex;flex-direction:column;align-items:center;gap:var(--e4)}
.movil__cara{position:absolute;inset:0;opacity:0;transition:opacity 700ms ease}
.movil__cara.es-visible{opacity:1}
.movil__velo--pantalla{position:absolute;inset:0;background:linear-gradient(180deg,rgba(9,9,9,.35) 0%,rgba(9,9,9,0) 24%,rgba(9,9,9,.86) 58%,rgba(9,9,9,.98) 100%)}
.movil__paso{position:absolute;left:var(--e4);right:var(--e4);bottom:var(--e5);display:flex;flex-direction:column;gap:6px}
.movil__n{font-size:13px;font-weight:800;color:var(--coral);letter-spacing:.1em}
.movil__titulo{font-size:26px;font-weight:800;color:var(--blanco);letter-spacing:-.03em;line-height:1.05}
.movil__txt{font-size:15px;font-weight:500;color:rgba(255,255,255,.9);line-height:1.45}
.movil__chips{display:flex;flex-wrap:wrap;gap:var(--e2);margin-top:var(--e2)}
.movil__chip{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 13px;border-radius:var(--r-pill);background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.32);color:var(--blanco);font-size:14px;font-weight:700}
.movil__puntos{display:flex;gap:7px}
.movil__punto{width:7px;height:7px;border-radius:50%;background:var(--blanco);opacity:.3;transition:opacity .4s}
.movil__punto.es-visible{opacity:1}

.hero__enlaces{display:flex;flex-wrap:wrap;align-items:center;gap:var(--e3);font-size:15px;font-weight:700}
.hero__enlaces a{color:var(--blanco)}
.hero__enlaces a:hover{color:var(--coral)}

/* slide de blog en la home */
.blog-slide{display:flex;gap:var(--e4);margin-top:var(--e6);overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:var(--e4)}
.blog-slide::-webkit-scrollbar{height:6px}
.blog-slide::-webkit-scrollbar-thumb{background:var(--linea);border-radius:var(--r-pill)}
.tarjeta-blog{flex:0 0 272px;scroll-snap-align:start;display:flex;flex-direction:column;gap:var(--e3)}
.tarjeta-blog__foto{border-radius:var(--r-card);overflow:hidden;aspect-ratio:4/3}
.tarjeta-blog__foto img{width:100%;height:100%;object-fit:cover;transition:transform .45s}
.tarjeta-blog:hover .tarjeta-blog__foto img{transform:scale(1.05)}
.tarjeta-blog h3{font-size:20px;line-height:1.2}
.tarjeta-blog h3 a{color:var(--tinta)}
.tarjeta-blog h3 a:hover{color:var(--coral)}
.tarjeta-blog p{font-size:15px;line-height:1.55;color:var(--tinta-2)}
@media(min-width:760px){.tarjeta-blog{flex-basis:330px}}

/* conmutador de estados de plantilla — prototipo */
.estados{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding-bottom:var(--e4)}
.estados__et{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--tinta-3);margin-right:var(--e2)}
.estados__b{min-height:34px;padding:0 13px;border-radius:var(--r-pill);border:1.5px solid var(--linea);color:var(--tinta-2);font-size:13px;font-weight:600}
.estados__b:hover{border-color:var(--tinta);color:var(--tinta)}
.estados__b.es-activo{background:var(--negro);border-color:var(--negro);color:var(--blanco)}

.ciudades{display:grid;gap:var(--e4);margin-top:var(--e6)}
.ciudad{position:relative;border-radius:var(--r-card);overflow:hidden;min-height:190px;display:flex;align-items:flex-end;isolation:isolate}
.ciudad img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.ciudad::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(9,9,9,.12),rgba(9,9,9,.85));z-index:-1}
.ciudad__txt{padding:var(--e5);display:flex;flex-direction:column;gap:2px;width:100%}
.ciudad__nombre{font-size:26px;font-weight:800;color:var(--blanco);letter-spacing:-.03em;line-height:1.1}
.ciudad__n{font-size:14px;font-weight:600;color:rgba(255,255,255,.85)}
.ciudad--principal{min-height:320px}
.ciudad--principal .ciudad__nombre{font-size:clamp(34px,6vw,54px)}
@media(min-width:700px){.ciudades{grid-template-columns:repeat(3,1fr)}.ciudad--principal{grid-column:span 3}}

.local-banda{display:grid;gap:var(--e6);align-items:center;padding:var(--e6);border-radius:var(--r-card);background:var(--crema)}
.local-banda__foto{border-radius:var(--r-media);overflow:hidden;aspect-ratio:4/3}
.local-banda__foto img{width:100%;height:100%;object-fit:cover}
@media(min-width:800px){.local-banda{grid-template-columns:1fr 1fr;padding:var(--e8)}}

.pie{background:var(--negro);color:var(--tinta-clara-2);padding-block:var(--e8) var(--e6)}
.pie__rejilla{display:grid;gap:var(--e6)}
.pie h4{font-size:13px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--tinta-clara)}
.pie ul{display:flex;flex-direction:column;gap:10px;margin:var(--e4) 0 0;padding:0;list-style:none}
.pie a{color:var(--tinta-clara-2);font-size:15px;font-weight:500}
.pie a:hover{color:var(--blanco)}
.pie__legal{margin-top:var(--e7);padding-top:var(--e5);border-top:1px solid var(--linea-oscura);display:flex;flex-wrap:wrap;gap:var(--e4);justify-content:space-between;font-size:14px}
@media(min-width:700px){.pie__rejilla{grid-template-columns:1.4fr 1fr 1fr 1fr}}

.miga{display:flex;flex-wrap:wrap;align-items:center;gap:var(--e2);font-size:14px;font-weight:600;color:var(--tinta-3);padding-block:var(--e5) var(--e4)}
.miga a{color:var(--tinta-3)}
.miga a:hover{color:var(--coral)}
.miga .actual{color:var(--tinta)}

.cab-ciudad{padding-bottom:var(--e6);border-bottom:1px solid var(--linea)}
.cab-ciudad__fecha{display:flex;flex-wrap:wrap;gap:var(--e3) var(--e4);align-items:center;margin-top:var(--e5);font-size:15px;font-weight:600;color:var(--tinta-2)}
.sello{display:inline-flex;align-items:center;gap:var(--e2);font-size:14px;font-weight:600;color:var(--tinta-3)}
.sello__punto{width:8px;height:8px;border-radius:50%;background:var(--verde)}

/* RAIL HORARIO */
.rail{position:relative;margin-top:var(--e6);padding-left:76px}
.rail::before{content:"";position:absolute;left:58px;top:16px;bottom:30px;width:2px;background:var(--linea)}
.rail__tramo{position:relative;padding-bottom:var(--e6)}
.hora{position:absolute;left:-76px;top:14px;width:58px;text-align:right;padding-right:var(--e4);font-size:16px;font-weight:800;color:var(--tinta);letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1.2}
.hora small{display:block;font-size:11.5px;font-weight:600;color:var(--tinta-3)}
.rail__planes{display:flex;flex-direction:column}
.plan{position:relative;display:flex;flex-direction:column;gap:var(--e2);padding-block:var(--e4)}
.plan::before{content:"";position:absolute;left:-23px;top:22px;width:14px;height:14px;border-radius:50%;background:var(--coral);box-shadow:0 0 0 4px var(--blanco)}
.plan--fiesta::before{background:var(--verde)}
.plan+.plan{border-top:1px solid var(--linea)}
.plan__titulo{font-size:clamp(19px,2.4vw,23px);font-weight:700;letter-spacing:-.02em;line-height:1.2}
.plan__titulo a{color:var(--tinta)}
.plan__titulo a:hover{color:var(--coral)}
.plan__meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--e2) var(--e3);font-size:15px;font-weight:600;color:var(--tinta-2)}
.plan__local{color:var(--tinta);font-weight:700}
.plan__hora{font-size:16px;font-weight:800;font-variant-numeric:tabular-nums;color:var(--tinta)}
.plan__sep{width:4px;height:4px;border-radius:50%;background:var(--linea);flex:0 0 auto}
.plan__fila{display:flex;flex-wrap:wrap;align-items:center;gap:var(--e3);margin-top:var(--e1)}
.fuente{font-size:13px;font-weight:600;color:var(--tinta-3)}
.fuente a{color:var(--tinta-3);text-decoration:underline;text-underline-offset:3px}
.fuente a:hover{color:var(--coral)}
@media(min-width:560px){.rail{padding-left:100px}.rail::before{left:78px}.hora{left:-100px;width:78px;font-size:18px}.plan::before{left:-27px}}

/* agrupado por día */
.dia{margin-top:var(--e7)}
.dia__cab{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--e3);padding-bottom:var(--e3);border-bottom:2px solid var(--negro)}
.dia__nombre{font-size:clamp(26px,4vw,38px);font-weight:800;letter-spacing:-.03em}
.dia__fecha{font-size:15px;font-weight:600;color:var(--tinta-3)}
.dia .plan::before,.com-ciudad .plan::before{display:none}

.cta-app{margin-top:var(--e8);border-radius:var(--r-card);background:var(--negro);color:var(--tinta-clara);padding:var(--e6);display:grid;gap:var(--e6);align-items:center}
.cta-app h2{font-size:clamp(30px,5vw,46px);color:var(--blanco);letter-spacing:-.035em}
.cta-app__lista{display:flex;flex-direction:column;gap:var(--e3);margin-top:var(--e4)}
.cta-app__item{display:flex;gap:var(--e3);align-items:flex-start;font-size:16px;font-weight:500;color:var(--tinta-clara-2);line-height:1.55}
.cta-app__item b{color:var(--blanco);font-weight:700}
.cta-app__marca{width:10px;height:10px;border-radius:50%;background:var(--coral);margin-top:9px;flex:0 0 auto}
.cta-app__botones{display:flex;flex-wrap:wrap;gap:var(--e3);margin-top:var(--e5)}
@media(min-width:860px){.cta-app{grid-template-columns:1.25fr .75fr;padding:var(--e8)}}

.enlaces{margin-top:var(--e8);padding-top:var(--e6);border-top:1px solid var(--linea)}
.enlaces__grupos{display:grid;gap:var(--e6);margin-top:var(--e5)}
.enlaces__grupo h4{font-size:13px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--tinta-3)}
.enlaces__nube{display:flex;flex-wrap:wrap;gap:var(--e2);margin-top:var(--e4)}
.enlaces__nube a{display:inline-flex;align-items:center;min-height:38px;padding:0 var(--e3);border-radius:var(--r-pill);border:1.5px solid var(--linea);color:var(--tinta);font-size:15px;font-weight:600}
.enlaces__nube a:hover{border-color:var(--coral);color:var(--coral)}
@media(min-width:760px){.enlaces__grupos{grid-template-columns:repeat(3,1fr)}}

.com-ciudad{padding-block:var(--e6);border-bottom:1px solid var(--linea)}
.com-ciudad__cab{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--e3);justify-content:space-between}
.com-ciudad__n{font-size:clamp(24px,3.4vw,32px);font-weight:800;letter-spacing:-.03em}
.com-ciudad__estado{font-size:14px;font-weight:600;color:var(--tinta-3)}
.com-ciudad__pie{display:flex;flex-wrap:wrap;gap:var(--e2);margin-top:var(--e4)}

.local-hero{position:relative;min-height:340px;display:flex;align-items:flex-end;border-radius:var(--r-card);overflow:hidden;isolation:isolate;margin-top:var(--e4)}
.local-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.local-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(9,9,9,.1),rgba(9,9,9,.88));z-index:-1}
.local-hero__txt{padding:var(--e6);display:flex;flex-direction:column;gap:var(--e3);width:100%}
.local-hero__nombre{font-size:clamp(34px,6vw,58px);font-weight:800;color:var(--blanco);letter-spacing:-.04em;line-height:1}
.local-hero__meta{display:flex;flex-wrap:wrap;gap:var(--e2)}
.contador-local{margin-top:var(--e6);border:2px solid var(--negro);border-radius:var(--r-card);padding:var(--e6);display:grid;gap:var(--e5);align-items:center}
.contador-local__cifra{font-size:clamp(60px,12vw,104px);font-weight:800;line-height:.82;letter-spacing:-.05em;color:var(--coral)}
.contador-local__txt{font-size:19px;font-weight:600;line-height:1.35;max-width:28ch}
.contador-local__pie{font-size:14px;font-weight:500;color:var(--tinta-3);margin-top:var(--e3)}
.contador-local__acc{display:flex;flex-direction:column;gap:var(--e2);align-items:flex-start}
@media(min-width:860px){.contador-local{grid-template-columns:auto 1fr auto;gap:var(--e7)}}
.historial .plan__titulo{font-size:18px}
.historial .plan__titulo a{color:var(--tinta-2)}
.historial .plan::before{background:var(--linea)}

.blog-lista{display:flex;flex-direction:column;margin-top:var(--e6)}
.articulo-fila{display:grid;gap:var(--e4);padding-block:var(--e5);border-bottom:1px solid var(--linea);align-items:center}
.articulo-fila__foto{border-radius:var(--r-media);overflow:hidden;aspect-ratio:16/10}
.articulo-fila__foto img{width:100%;height:100%;object-fit:cover}
.articulo-fila h3{font-size:clamp(21px,2.6vw,26px);line-height:1.15}
.articulo-fila h3 a{color:var(--tinta)}
.articulo-fila h3 a:hover{color:var(--coral)}
.articulo-fila p{font-size:16px;color:var(--tinta-2);margin-top:var(--e2);line-height:1.6}
@media(min-width:700px){.articulo-fila{grid-template-columns:260px 1fr}}
.articulo{max-width:var(--ancho-texto);margin-inline:auto}
.articulo__foto{border-radius:var(--r-card);overflow:hidden;margin-block:var(--e6);aspect-ratio:16/9}
.articulo__foto img{width:100%;height:100%;object-fit:cover}
.articulo__cuerpo h2{font-size:clamp(25px,3.6vw,32px);margin-top:var(--e7);margin-bottom:var(--e3)}
.articulo__cuerpo p{font-size:17px;line-height:1.78;color:var(--tinta-2)}
.articulo__cuerpo p+p{margin-top:var(--e4)}
.cita{margin-block:var(--e7);padding-left:var(--e5);border-left:3px solid var(--coral);font-size:21px;font-weight:600;line-height:1.45;color:var(--tinta)}

.aviso{display:flex;flex-direction:column;gap:var(--e3);padding:var(--e5);border-radius:var(--r-card);background:var(--crema);margin-top:var(--e5)}
.aviso h3{font-size:20px}
.aviso p{font-size:15.5px;color:var(--tinta-2);line-height:1.55}
.aviso__acciones{display:flex;flex-wrap:wrap;gap:var(--e2);margin-top:var(--e2)}

@keyframes brillo{0%{background-position:-460px 0}100%{background-position:460px 0}}
.hueso{display:block;border-radius:8px;background:linear-gradient(90deg,var(--crema) 8%,var(--crema-2) 20%,var(--crema) 34%);background-size:900px 100%;animation:brillo 1.5s linear infinite}
.hueso--titulo{height:26px;width:70%}
.hueso--linea{height:15px;width:60%}
.hueso--pill{height:32px;width:96px;border-radius:var(--r-pill)}
.hueso--hora{height:18px;width:52px;margin-left:auto}
.cargando .plan::before{background:var(--linea)}

.franja{position:fixed;left:0;right:0;bottom:0;z-index:60;background:var(--negro);border-top:1px solid var(--linea-oscura)}
.franja__fila{display:flex;align-items:center;gap:var(--e3);min-height:62px;padding-block:var(--e2)}
.franja__txt{font-size:15px;font-weight:600;color:var(--tinta-clara);line-height:1.3}
.franja__txt b{color:var(--blanco);font-weight:800}
.franja__cerrar{margin-left:auto;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--tinta-clara-2);font-size:18px;font-weight:700;flex:0 0 auto}
.franja__cerrar:hover{background:var(--negro-3);color:var(--blanco)}
.franja .btn{flex:0 0 auto}
.hay-franja{padding-bottom:84px}
/* Nota de la beta junto al botón de descarga (plan de cierre v1, bloque 4b) */
.apk-nota{margin-top:var(--e3);max-width:46ch;font-size:13px;font-weight:600;line-height:1.5;color:var(--tinta-clara-2)}
