/* ============================================================================
   CIF — Copa Internacional de Fermentados · sitio 2026
   Identidad propia: papel claro, tinta casi negra y el dorado de la corona del logo.
   Serif elegante para títulos; tipografía técnica (Plex Mono) para fechas y datos.
   Motor de movimiento heredado de Cat's Beer (transición, menú, escalonado, máscaras,
   parallax), con cara de CIF. Solo transform/opacity/clip-path.
   ============================================================================ */

/* ---------------------------------------------------------------------------
   COLORES Y TIPOS
   --------------------------------------------------------------------------- */
:root {
    --papel: #F4F1EA;  --papel-2: #E9E3D6;  --papel-3: #FAF8F3;
    --tinta: #15171B;  --tinta-2: #474C55;  --tinta-3: #6A6F78;
    --oro: #B8892B;    --oro-claro: #D9B45A; --oro-texto: #7A5A12;     /* oro-texto: dorado legible en texto chico */
    --oscuro: #111317; --oscuro-2: #1A1D22;
    --sobre-oscuro: #F1EDE4; --sobre-oscuro-2: #A9ADB4;
    --linea: rgba(21,23,27,.16); --linea-oscura: rgba(241,237,228,.14);

    --f-titulo: 'Saira Extra Condensed', 'Arial Narrow', sans-serif;   /* la más parecida a las letras del logo */
    --f-cuerpo: 'IBM Plex Sans', system-ui, sans-serif;
    --f-dato: 'IBM Plex Mono', ui-monospace, monospace;
    --ease: cubic-bezier(.22, 1, .36, 1);
    --ease-io: cubic-bezier(.65, 0, .35, 1);
    --barra-h: 70px;
    --ancho: 1760px;
}

/* ---------------------------------------------------------------------------
   BASE
   --------------------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
    background: var(--papel); color: var(--tinta);
    font-family: var(--f-cuerpo); font-size: 17px; line-height: 1.65; font-weight: 400;
    -webkit-font-smoothing: antialiased; overflow-x: hidden;
}
img, video { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: 0; cursor: pointer; }

h1, h2, h3, h4 { font-family: var(--f-titulo); font-weight: 600; line-height: 1.04; text-align: center; letter-spacing: .005em; }
p { text-align: justify; text-align-last: center; -moz-text-align-last: center; hyphens: auto; -webkit-hyphens: auto; }
.centrado { text-align: center; text-align-last: center; }

.contenedor { width: 94%; max-width: var(--ancho); margin: 0 auto; }
.seccion { position: relative; padding: clamp(26px, 2.2vw, 40px) 0; }   /* menos aire en todo el sitio (Carlos 2026-10-06), igual que Pagos e Inscripciones */
.seccion-alterna { background: var(--papel-2); }
.seccion-suave { background: var(--papel-3); }
.seccion-oscura { background: var(--oscuro); color: var(--sobre-oscuro); }

/* Dato técnico (fechas, códigos, rótulos): mono, espaciado, sin recuadro */
.dato { font-family: var(--f-dato); font-size: 13px; letter-spacing: .14em; text-transform: uppercase; }
.antetitulo { display: block; text-align: center; color: var(--oro-texto); margin-bottom: 14px; }
.seccion-oscura .antetitulo { color: var(--oro-claro); }

.cabecera { text-align: center; margin: 0 auto clamp(14px, 1.4vw, 24px); max-width: 1180px; }
.cabecera h2 { font-size: clamp(38px, 4.6vw, 84px); margin-bottom: 8px; }
.cabecera .bajada { font-size: clamp(16px, 1.2vw, 20px); color: var(--tinta-2); max-width: 980px; margin: 0 auto; }
.seccion-oscura .cabecera .bajada { color: var(--sobre-oscuro-2); }
.cabecera .bajada + .bajada { margin-top: 14px; }
.cabecera h2 em { font-style: normal; color: var(--oro-texto); }
.seccion-oscura .cabecera h2 em { color: var(--oro-claro); }

/* elementos con la tipografía de títulos fuera de h1-h4 */
.barra-marca .nombre, .menu-lista a, .hero-edicion .sede, .hito .dia, .industrias-pista span, .pie-marca .nombre { font-weight: 600; }

/* ---------------------------------------------------------------------------
   BOTONES — uno real por bloque; el de inscripción es propio de CIF
   --------------------------------------------------------------------------- */
.btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 12px;
    font-family: var(--f-dato); font-size: 13px; font-weight: 500; letter-spacing: .16em; text-transform: uppercase;
    padding: 17px 32px; border: 1px solid currentColor; color: var(--tinta);
    position: relative; overflow: hidden; isolation: isolate;
    transition: color .45s var(--ease), border-color .45s var(--ease);
}
/* relleno que sube desde abajo al pasar el mouse */
.btn::before { content: ''; position: absolute; inset: 0; z-index: -1; background: var(--tinta); transform: scaleY(0); transform-origin: 50% 100%; transition: transform .55s var(--ease); }
.btn:hover::before { transform: scaleY(1); }
.btn:hover { color: var(--papel); }
.btn .flecha { transition: transform .5s var(--ease); }
.btn:hover .flecha { transform: translateX(5px); }
.btn.sobre-oscuro { color: var(--sobre-oscuro); }
.btn.sobre-oscuro::before { background: var(--sobre-oscuro); }
.btn.sobre-oscuro:hover { color: var(--tinta); }
.btn.oro { background: var(--oro); border-color: var(--oro); color: #fff; }
.btn.oro::before { background: var(--tinta); }
.btn.oro:hover { color: #fff; border-color: var(--tinta); }

/* Botón INSCRIPCIONES de la barra: dorado, con un brillo que recorre su borde */
.btn-inscribir {
    display: inline-flex; align-items: center; gap: 10px; justify-self: end;
    font-family: var(--f-dato); font-size: 12.5px; font-weight: 500; letter-spacing: .18em; text-transform: uppercase;
    padding: 12px 22px; color: var(--tinta); background: var(--oro-claro);
    position: relative; overflow: hidden; transition: background-color .4s ease, color .4s ease;
}
.btn-inscribir::after {
    content: ''; position: absolute; top: 0; bottom: 0; left: -70%; width: 45%;
    background: linear-gradient(100deg, transparent, rgba(255,255,255,.55), transparent);
    transform: skewX(-20deg); animation: brillo 5s var(--ease-io) infinite;
}
.btn-inscribir:hover { background: var(--sobre-oscuro); }
.btn-inscribir .punto { width: 7px; height: 7px; border-radius: 50%; background: var(--tinta); animation: latido 1.8s ease-in-out infinite; }
@keyframes brillo { 0%, 60% { left: -70%; } 90%, 100% { left: 130%; } }
@keyframes latido { 0%, 100% { transform: scale(1); opacity: 1; } 50% { transform: scale(.55); opacity: .5; } }

.enlace-linea {
    display: inline-flex; align-items: center; gap: 10px; font-weight: 500; color: var(--oro-texto);
    background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat; padding-bottom: 3px;
    transition: background-size .5s var(--ease);
}
.enlace-linea::after { content: '→'; transition: transform .5s var(--ease); }
.enlace-linea:hover { background-size: 100% 1px; }
.enlace-linea:hover::after { transform: translateX(6px); }

/* ---------------------------------------------------------------------------
   TRANSICIÓN ENTRE PÁGINAS — fundido a tinta, la copa aparece y suben burbujas
   --------------------------------------------------------------------------- */
.transicion {
    position: fixed; inset: 0; z-index: 9000; background: var(--oscuro);
    display: flex; align-items: center; justify-content: center;
    opacity: 0; pointer-events: none; transition: opacity .45s ease-in-out;
}
.transicion.activa { opacity: 1; pointer-events: all; animation: seguroTransicion 0s 4s forwards; }
@keyframes seguroTransicion { to { opacity: 0; visibility: hidden; pointer-events: none; } }
.copa { position: relative; width: min(440px, 62vw, 56vh); opacity: 0; transform: scale(.96); transition: opacity .4s ease-in-out, transform 1.2s var(--ease); }
.transicion.con-copa .copa { opacity: 1; transform: scale(1); }
.copa img { width: 100%; height: auto; }
/* burbujas dentro de la copa (zona medida sobre el logo) */
.burbujas { position: absolute; left: 37%; width: 26%; top: 44%; height: 34%; overflow: hidden; pointer-events: none; }
.burbujas span {
    position: absolute; bottom: -12px; width: var(--t, 9px); height: var(--t, 9px); border-radius: 50%;
    border: 1.5px solid rgba(217,180,90,.95); background: rgba(217,180,90,.18);
    left: var(--x, 50%); opacity: 0;
}
.transicion.con-copa .burbujas span { animation: subir 1.25s var(--d, 0s) var(--ease) forwards; }
@keyframes subir { 0% { transform: translateY(0) scale(.6); opacity: 0; } 18% { opacity: 1; } 100% { transform: translateY(-260px) scale(1.05); opacity: 0; } }

/* ---------------------------------------------------------------------------
   BARRA SUPERIOR — transparente sobre la portada; papel al bajar
   --------------------------------------------------------------------------- */
.barra {
    position: fixed; top: 0; left: 0; right: 0; z-index: 1000; height: var(--barra-h);
    display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; padding: 0 max(3%, 16px);
    color: var(--tinta); transition: background-color .45s ease, color .45s ease, box-shadow .45s ease;
}
.barra.sobre-video { color: var(--sobre-oscuro); }
.barra.compacto { background: rgba(244,241,234,.92); color: var(--tinta); box-shadow: 0 1px 0 var(--linea); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
body.menu-abierto .barra { background: var(--oscuro); color: var(--sobre-oscuro); box-shadow: none; }

.menu-boton { justify-self: start; display: flex; align-items: center; gap: 12px; height: 46px; }
.menu-boton .lineas { position: relative; width: 34px; height: 46px; flex-shrink: 0; }
.menu-boton .lineas span { position: absolute; left: 3px; width: 28px; height: 1.5px; background: currentColor; transition: transform .5s var(--ease), top .5s var(--ease), width .5s var(--ease); }
.menu-boton .lineas span:first-child { top: 19px; }
.menu-boton .lineas span:last-child { top: 27px; width: 18px; }
.menu-boton:hover .lineas span:last-child { width: 28px; }
.menu-boton.abierto .lineas span:first-child { top: 23px; transform: rotate(45deg); }
.menu-boton.abierto .lineas span:last-child { top: 23px; width: 28px; transform: rotate(-45deg); }
.menu-boton .rotulo { font-family: var(--f-dato); font-size: 12px; letter-spacing: .2em; text-transform: uppercase; }

.barra-marca { display: flex; align-items: center; gap: 12px; }
.barra-marca img { width: 44px; height: 44px; transition: transform .8s var(--ease); }
.barra-marca:hover img { transform: rotate(-8deg) scale(1.05); }
/* logo claro sobre el video y con el menú abierto; logo oscuro sobre papel */
.barra-marca .logo-claro { display: none; }
.barra.sobre-video .logo-claro, body.menu-abierto .barra .logo-claro { display: block; }
.barra.sobre-video .logo-oscuro, body.menu-abierto .barra .logo-oscuro { display: none; }
.barra-marca .nombre { font-family: var(--f-titulo); font-size: 23px; line-height: 1; white-space: nowrap; text-transform: uppercase; letter-spacing: .02em; }
.barra-der { justify-self: end; display: flex; align-items: center; gap: clamp(10px, 1.6vw, 26px); }

.idiomas { display: flex; gap: 2px; font-family: var(--f-dato); font-size: 12px; letter-spacing: .14em; }
.idiomas button { padding: 6px 7px; opacity: .55; transition: opacity .3s ease; position: relative; }
.idiomas button::after { content: ''; position: absolute; left: 7px; right: 7px; bottom: 2px; height: 1px; background: currentColor; transform: scaleX(0); transition: transform .4s var(--ease); }
.idiomas button:hover { opacity: 1; }
.idiomas button.activo { opacity: 1; }
.idiomas button.activo::after { transform: scaleX(1); }

/* ---------------------------------------------------------------------------
   MENÚ — en PC se abre solo el panel de la lista (entra hacia la derecha). Al pasar
   el mouse por un ítem, éste se RESALTA y recién ahí sale a su lado el segundo
   panel con sus secciones (después llevará foto). La página queda velada detrás.
   --------------------------------------------------------------------------- */
.menu {
    position: fixed; left: 0; top: var(--barra-h); bottom: 0; z-index: 999;
    width: clamp(340px, 30vw, 520px);
    background: var(--oscuro); color: var(--sobre-oscuro);
    transform: translateX(-100%); visibility: hidden;
    transition: transform .85s var(--ease), visibility 0s linear .85s;
}
.menu.abierto { transform: none; visibility: visible; transition: transform .85s var(--ease), visibility 0s; }
body.menu-abierto { overflow: hidden; }
.menu-velo { position: fixed; inset: var(--barra-h) 0 0 0; z-index: 998; background: rgba(17,19,23,.5); opacity: 0; pointer-events: none; transition: opacity .6s ease; }
body.menu-abierto .menu-velo { opacity: 1; pointer-events: auto; }

.menu-lista { position: relative; z-index: 1; background: var(--oscuro); height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: clamp(2px, .8vh, 10px); padding: 30px 20px 70px; }
.menu-lista a {
    display: flex; align-items: center; gap: 16px; color: var(--sobre-oscuro-2);
    font-family: var(--f-titulo); font-size: clamp(30px, 3vw, 56px); line-height: 1.12;
    opacity: 0; transform: translateX(-60px);
    transition: opacity .6s var(--ease), transform .8s var(--ease), color .35s ease;
}
.menu.abierto .menu-lista a { opacity: 1; transform: none; transition-delay: calc(.2s + var(--i, 0) * 60ms), calc(.2s + var(--i, 0) * 60ms), 0s; }
.menu-lista .raya { display: block; height: 1px; width: 0; background: var(--oro-claro); transition: width .6s var(--ease); }
/* resaltado al pasar el mouse: se corre a la derecha, se ilumina y aparece la línea dorada */
.menu.abierto .menu-lista a.activo { color: var(--sobre-oscuro); transform: translateX(18px); transition-delay: 0s; }
.menu-lista a.activo .raya { width: clamp(40px, 4vw, 80px); }
.menu-lista a.actual .txt { color: var(--oro-claro); }

/* segundo panel: escondido detrás de la lista; sale hacia la derecha al señalar un ítem con secciones */
.menu-subs {
    position: absolute; top: 0; bottom: 0; left: 100%; z-index: -1; width: clamp(380px, 32vw, 600px);
    display: flex; align-items: center; justify-content: center;
    background: var(--oscuro-2); border-left: 1px solid var(--linea-oscura);
    transform: translateX(-100%); visibility: hidden;
    transition: transform .7s var(--ease), visibility 0s linear .7s;
}
.menu.con-subs .menu-subs { transform: none; visibility: visible; transition: transform .7s var(--ease), visibility 0s; }
/* foto de fondo de cada sección: aparece con un fundido y se acerca lentamente; velada para leer el texto */
.menu-fotos { position: absolute; inset: 0; overflow: hidden; }
.menu-fotos img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transform: scale(1.1); transition: opacity .7s ease, transform 7s linear; }
.menu-fotos img.activa { opacity: 1; transform: scale(1); }
.menu-fotos::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(17,19,23,.62) 0%, rgba(17,19,23,.78) 45%, rgba(17,19,23,.88) 100%); }
.menu-subs ul { position: absolute; z-index: 1; list-style: none; text-align: center; display: flex; flex-direction: column; align-items: center; gap: clamp(2px, .7vh, 8px); pointer-events: none; padding: 0 24px; }
.menu-subs ul.activa { pointer-events: auto; }
.menu-subs li { opacity: 0; transform: translateX(-30px); transition: opacity .4s ease, transform .75s var(--ease); }
.menu-subs ul.activa li { opacity: 1; transform: none; transition-delay: calc(.12s + var(--i, 0) * 45ms); }
.menu-subs a { position: relative; display: inline-block; padding: 5px 34px; font-size: clamp(17px, 1.3vw, 22px); color: var(--sobre-oscuro); transition: color .3s ease; }
/* recuadro fino que se ilumina al pasar el mouse (sin recargar) */
.menu-subs a::before { content: ''; position: absolute; inset: 0 -6px; border: 1px solid rgba(217,180,90,.75); border-radius: 14px; background: rgba(217,180,90,.08); box-shadow: inset 0 0 16px rgba(217,180,90,.1); opacity: 0; transform: scaleX(.9); transition: opacity .35s ease, transform .45s var(--ease); pointer-events: none;
    /* el borde se difumina hacia las esquinas */
    -webkit-mask-image: linear-gradient(90deg, rgba(0,0,0,.08) 0%, #000 32%, #000 68%, rgba(0,0,0,.08) 100%); mask-image: linear-gradient(90deg, rgba(0,0,0,.08) 0%, #000 32%, #000 68%, rgba(0,0,0,.08) 100%); }
.menu-subs a:hover, .menu-subs a:focus-visible { color: var(--oro-claro); outline: none; }
.menu-subs a:hover::before, .menu-subs a:focus-visible::before { opacity: 1; transform: none; }
.menu-subs .grupo { display: block; margin: 10px 0 2px; color: var(--sobre-oscuro-2); }
.menu-pie { position: absolute; left: 0; right: 0; bottom: 22px; display: flex; justify-content: center; gap: 26px; color: var(--sobre-oscuro-2); }
.menu-pie a:hover { color: var(--oro-claro); }

/* ---------------------------------------------------------------------------
   PORTADA — video real de CIF, logo, edición destacada y botones
   --------------------------------------------------------------------------- */
.hero { position: relative; min-height: 100vh; min-height: 100svh; display: flex; align-items: center; justify-content: center; overflow: hidden; color: var(--sobre-oscuro); background: var(--oscuro); }
.hero-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transform: scale(1.06); animation: acercar 22s ease-out forwards; }
@keyframes acercar { to { transform: scale(1); } }
.hero::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(17,19,23,.62) 0%, rgba(17,19,23,.42) 38%, rgba(17,19,23,.72) 100%); }
.hero-contenido { position: relative; z-index: 2; width: 92%; max-width: 1200px; text-align: center; padding: calc(var(--barra-h) + 18px) 0 70px; display: flex; flex-direction: column; align-items: center; }
.hero-logo { width: clamp(96px, min(11vw, 15vh), 176px); margin-bottom: clamp(14px, 2vh, 24px); filter: drop-shadow(0 10px 30px rgba(0,0,0,.45)); }
.hero h1 { font-size: clamp(46px, min(6.2vw, 10.4vh), 112px); margin-bottom: 14px; }
.hero h1 em { font-style: normal; color: var(--oro-claro); }
.hero .presentacion { font-size: clamp(16px, 1.3vw, 21px); color: rgba(241,237,228,.9); max-width: 820px; margin: 0 auto clamp(20px, 3vh, 34px); }
.hero-edicion { display: flex; flex-direction: column; align-items: center; gap: 6px; margin-bottom: clamp(22px, 3.4vh, 38px); }
.hero-edicion .sede { font-family: var(--f-titulo); font-size: clamp(32px, min(3.4vw, 5.6vh), 60px); line-height: 1; }
.hero-edicion .fecha { color: var(--oro-claro); font-size: clamp(12px, .9vw, 15px); }
.hero-edicion .regla { width: 0; height: 1px; background: var(--oro-claro); margin: 4px 0; transition: width 1.2s var(--ease) .9s; }
.hero.lista .hero-edicion .regla { width: clamp(80px, 9vw, 150px); }
.hero-botones { display: flex; gap: 14px; flex-wrap: wrap; justify-content: center; }
.hero-baja { position: absolute; z-index: 2; bottom: 22px; left: 50%; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; gap: 8px; color: rgba(241,237,228,.75); }
.hero-baja .linea { width: 1px; height: 34px; background: rgba(241,237,228,.35); position: relative; overflow: hidden; }
.hero-baja .linea::after { content: ''; position: absolute; left: 0; top: -40%; width: 1px; height: 40%; background: var(--oro-claro); animation: bajar 2.2s var(--ease-io) infinite; }
@keyframes bajar { to { top: 100%; } }
/* pantallas de PC bajas (notebooks con barra del navegador): el aviso "Descubre" se va para no tocar los botones */
@media (min-width: 761px) and (max-height: 780px) { .hero-baja { display: none; } .hero-contenido { padding-bottom: 40px; } }

/* entrada de la portada: el título sube por líneas y el resto en cascada */
.titulo-mascara .l { display: block; overflow: hidden; padding-bottom: .06em; }
.titulo-mascara .l > span { display: inline-block; transform: translateY(105%); transition: transform 1.1s var(--ease); }
.titulo-mascara.visible .l > span { transform: none; }
.titulo-mascara.visible .l:nth-child(2) > span { transition-delay: .12s; }
.hero .entra { opacity: 0; transform: translateY(22px); transition: opacity .9s var(--ease), transform 1.1s var(--ease); transition-delay: calc(.25s + var(--i, 0) * 110ms); }
.hero.lista .entra { opacity: 1; transform: none; }

/* ---------------------------------------------------------------------------
   CRONOGRAMA — línea de tiempo que se dibuja; hitos en cascada
   --------------------------------------------------------------------------- */
/* Reloj regresivo a la próxima fecha importante */
.reloj { display: flex; flex-direction: column; align-items: center; gap: 10px; margin-top: clamp(20px, 2.2vw, 34px); }
.reloj[hidden] { display: none; }
.reloj-ante { color: var(--oro-texto); }
.reloj-cifras { display: flex; align-items: flex-start; justify-content: center; gap: clamp(8px, 1.4vw, 24px); }
.reloj .unidad { display: flex; flex-direction: column; align-items: center; min-width: clamp(64px, 6.6vw, 124px); overflow: hidden; }
.reloj .num { display: inline-block; font-family: var(--f-titulo); font-weight: 600; font-size: clamp(56px, 6.2vw, 116px); line-height: .95; font-variant-numeric: tabular-nums; color: var(--tinta); }
.reloj .num.cambia { animation: cifra .6s var(--ease); }
@keyframes cifra { from { transform: translateY(-32%); opacity: .1; } to { transform: none; opacity: 1; } }
.reloj .unidad .dato { margin-top: 6px; font-size: 11.5px; color: var(--tinta-3); }
.reloj .sep { font-family: var(--f-titulo); font-weight: 500; font-size: clamp(38px, 4.2vw, 80px); line-height: 1.1; color: var(--oro); }
.reloj-zona { font-size: 11px; letter-spacing: .12em; color: var(--tinta-3); }
.crono { position: relative; display: grid; grid-template-columns: repeat(8, 1fr); gap: 0; margin-top: clamp(26px, 3vw, 46px); }
.crono::before { content: ''; position: absolute; left: 0; right: 0; top: 98px; height: 1px; background: var(--linea); }
.crono .trazo { position: absolute; left: 0; top: 98px; height: 1px; width: 100%; background: var(--oro); transform: scaleX(0); transform-origin: 0 50%; transition: transform 1.4s var(--ease-io); }
.crono.dentro .trazo { transform: scaleX(1); }
.hito { position: relative; display: flex; flex-direction: column; align-items: center; text-align: center; padding: 0 10px; }
.hito .fecha-bloque, .hito .detalle { display: flex; flex-direction: column; align-items: center; }
.hito .dia { font-family: var(--f-titulo); font-size: clamp(42px, 3.6vw, 66px); line-height: 1; height: 58px; display: flex; align-items: flex-end; }
.hito .mes { color: var(--tinta-3); margin-top: 6px; }
.hito .nodo { position: absolute; top: 93px; width: 11px; height: 11px; border-radius: 50%; background: var(--papel); border: 1.5px solid var(--oro); transition: background-color .4s ease, transform .5s var(--ease); }
.hito .que { margin-top: 30px; font-size: clamp(15px, 1.05vw, 18px); line-height: 1.35; font-weight: 500; }
.hito .hora { margin-top: 6px; color: var(--oro-texto); }
.hito .semana { color: var(--tinta-3); margin-top: 4px; }
.hito.destacado .que { color: var(--oro-texto); }
.hito:hover .nodo { background: var(--oro); transform: scale(1.5); }
/* aparición escalonada */
.crono .hito { opacity: 0; transform: translateY(16px); transition: opacity .55s var(--ease), transform .7s var(--ease); transition-delay: calc(.15s + var(--i, 0) * 70ms); }
.crono.dentro .hito { opacity: 1; transform: none; }
.crono-pie { margin-top: clamp(30px, 3.2vw, 54px); }

/* ---------------------------------------------------------------------------
   INDUSTRIAS — nombres grandes que corren lento
   --------------------------------------------------------------------------- */
.industrias-cinta { overflow: hidden; border-top: 1px solid var(--linea-oscura); border-bottom: 1px solid var(--linea-oscura); padding: clamp(14px, 1.6vw, 24px) 0; margin: 4px 0 clamp(24px, 2.4vw, 40px); }
.industrias-pista { display: flex; width: max-content; animation: correr 46s linear infinite; }
.industrias-pista span { font-family: var(--f-titulo); font-size: clamp(34px, 4vw, 74px); line-height: 1.1; padding: 0 clamp(22px, 2.4vw, 46px); white-space: nowrap; }
.industrias-pista span:nth-child(even) { color: var(--oro-claro); }
.industrias-cinta:hover .industrias-pista { animation-play-state: paused; }
@keyframes correr { to { transform: translateX(-50%); } }

/* ---------------------------------------------------------------------------
   PIE
   --------------------------------------------------------------------------- */
.pie { background: var(--oscuro); color: var(--sobre-oscuro-2); padding: clamp(40px, 4vw, 70px) 0 26px; }
.pie-grid { display: flex; flex-wrap: wrap; justify-content: center; gap: clamp(28px, 4vw, 90px); text-align: center; }
.pie-marca { display: flex; flex-direction: column; align-items: center; gap: 12px; }
.pie-marca img { width: 96px; }
.pie-marca .nombre { font-family: var(--f-titulo); font-size: 26px; color: var(--sobre-oscuro); text-transform: uppercase; letter-spacing: .02em; }
.pie h4 { font-family: var(--f-dato); font-size: 12px; letter-spacing: .2em; text-transform: uppercase; color: var(--oro-claro); margin-bottom: 12px; }
.pie ul { list-style: none; display: flex; flex-direction: column; gap: 6px; }
.pie a:hover { color: var(--sobre-oscuro); }
.pie-final { margin-top: clamp(28px, 3vw, 48px); padding-top: 18px; border-top: 1px solid var(--linea-oscura); text-align: center; font-size: 13px; }

/* ---------------------------------------------------------------------------
   ESCALONADO Y PARALLAX (offset y delay al hacer scroll)
   --------------------------------------------------------------------------- */
.rev { opacity: 0; transform: translateY(18px); transition: opacity .55s var(--ease), transform .7s var(--ease); transition-delay: calc(var(--i, 0) * 55ms); }
.rev.dentro { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation: none !important; transition-duration: .01ms !important; transition-delay: 0s !important; }
    .rev, .crono .hito, .hero .entra { opacity: 1; transform: none; }
    .reloj .num.cambia { animation: none; }
    .titulo-mascara .l > span { transform: none; }
}

/* ---------------------------------------------------------------------------
   TABLET Y CELULAR
   --------------------------------------------------------------------------- */
@media (max-width: 1100px) {
    .crono { grid-template-columns: 1fr; max-width: 560px; margin-left: auto; margin-right: auto; }
    .crono::before, .crono .trazo { left: 50%; right: auto; top: 0; bottom: 0; width: 1px; height: auto; }
    .crono .trazo { transform: scaleY(0); transform-origin: 50% 0; }
    .crono.dentro .trazo { transform: scaleY(1); }
    .hito { display: grid; grid-template-columns: 1fr 1fr; column-gap: 34px; padding: 14px 0; align-items: center; }
    .hito .fecha-bloque { text-align: right; justify-self: end; align-items: flex-end; }
    .hito .detalle { text-align: left; justify-self: start; align-items: flex-start; }
    .hito .dia { height: auto; justify-content: flex-end; }
    .hito .nodo { top: 50%; left: 50%; margin: -5.5px 0 0 -5.5px; }
    .hito .que { margin-top: 0; }
}
@media (max-width: 760px) {
    :root { --barra-h: 60px; }
    body { font-size: 16px; }
    .barra { grid-template-columns: auto 1fr auto; gap: 10px; }
    .barra-marca { justify-self: center; }
    .barra-marca .nombre, .menu-boton .rotulo { display: none; }
    .barra-marca img { width: 38px; height: 38px; }
    .btn-inscribir { padding: 10px 13px; font-size: 11px; letter-spacing: .12em; }
    .btn-inscribir::after { display: none; }
    .idiomas { display: none; }
    .menu { width: 100%; display: grid; grid-template-columns: 1fr; grid-auto-rows: max-content; align-content: start; align-items: start; overflow-y: auto; }
    .menu-velo, .menu-fotos { display: none; }
    .menu-lista { height: auto; }
    .menu-subs, .menu.con-subs .menu-subs { position: static; z-index: auto; width: auto; transform: none; visibility: visible; background: none; border-left: 0; transition: none; }
    .menu-lista { padding: 26px 16px 8px; }
    .menu-lista a { font-size: 32px; }
    .menu.abierto .menu-lista a.activo { transform: none; }
    .menu-subs { border-top: 1px solid var(--linea-oscura); height: auto; padding: 18px 16px 10px; }
    .menu-subs ul { position: static; display: none; }
    .menu-subs ul.activa { display: flex; }
    .menu-pie { position: static; padding: 10px 0 24px; flex-wrap: wrap; }
    .menu-idiomas { display: flex !important; justify-content: center; }
    .hero-contenido { padding-bottom: 86px; }
    .hero-botones { flex-direction: column; width: 100%; max-width: 330px; }
    .hero-botones .btn { width: 100%; }
    /* cronograma en celular: columna de fechas angosta (no mitad y mitad) para que no sobre aire a la izquierda */
    .hito { grid-template-columns: 64px 1fr; column-gap: 24px; }
    .crono::before, .crono .trazo { left: 76px; }
    .hito .nodo { left: 76px; }
    .reloj-cifras { gap: 4px; }
    .reloj .unidad { min-width: 62px; }
    .reloj .num { font-size: 50px; }
    .reloj .sep { font-size: 34px; }
    .reloj .unidad .dato { font-size: 10px; letter-spacing: .08em; }
    .reloj-ante { font-size: 11.5px; letter-spacing: .06em; text-align: center; }
    .pie-grid { flex-direction: column; gap: 26px; }
}
.menu-idiomas { display: none; }

/* ===========================================================================
   PÁGINAS INTERIORES (El Evento, Industrias, Nosotros, Participa, Compite, Contacto)
   Generadas por claude-scripts\cif2026\cif_build.py
   =========================================================================== */

/* Cabecera de página: foto real velada, título que sube por líneas */
.cabeza-pagina { position: relative; min-height: 76vh; min-height: 76svh; display: flex; align-items: center; justify-content: center; overflow: hidden; color: var(--sobre-oscuro); background: var(--oscuro); text-align: center; }
.cabeza-fondo { position: absolute; inset: -8% 0; }
.cabeza-fondo img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.06); animation: acercar 22s ease-out forwards; }
.cabeza-pagina::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(17,19,23,.7) 0%, rgba(17,19,23,.5) 45%, rgba(17,19,23,.78) 100%); }
.cabeza-contenido { position: relative; z-index: 2; width: 92%; max-width: 1150px; padding: calc(var(--barra-h) + 46px) 0 64px; }
.cabeza-pagina .antetitulo { color: var(--oro-claro); }
.cabeza-pagina h1 { font-size: clamp(48px, min(6.4vw, 11vh), 118px); margin-bottom: 18px; }
.cabeza-pagina h1 em { font-style: normal; color: var(--oro-claro); }
.cabeza-pagina .bajada { font-size: clamp(16px, 1.3vw, 21px); color: rgba(241,237,228,.9); max-width: 860px; margin: 0 auto; }
.cabeza-pagina .entra { opacity: 0; transform: translateY(22px); transition: opacity .9s var(--ease), transform 1.1s var(--ease); transition-delay: calc(.25s + var(--i, 0) * 110ms); }
.cabeza-pagina.lista .entra { opacity: 1; transform: none; }

/* Índice de la página: se queda bajo la barra y marca la sección visible */
.subnav { position: sticky; top: var(--barra-h); z-index: 900; background: rgba(244,241,234,.95); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); border-bottom: 1px solid var(--linea); }
.subnav ul { list-style: none; display: flex; justify-content: center; flex-wrap: wrap; gap: 0 clamp(16px, 2.2vw, 40px); padding: 10px 16px; max-width: var(--ancho); margin: 0 auto; }
.subnav a { display: inline-block; font-family: var(--f-dato); font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--tinta-3); padding: 8px 0; position: relative; transition: color .3s ease; white-space: nowrap; }
.subnav a::after { content: ''; position: absolute; left: 0; right: 0; bottom: 2px; height: 1px; background: var(--oro); transform: scaleX(0); transition: transform .45s var(--ease); }
.subnav a:hover, .subnav a.activo { color: var(--tinta); }
.subnav a.activo::after { transform: scaleX(1); }
.interior section[id], .interior article[id] { scroll-margin-top: calc(var(--barra-h) + 56px); }

/* Bloque: foto que se revela + texto */
.bloque { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(32px, 5vw, 100px); align-items: center; }
.bloque.sin-foto { grid-template-columns: 1fr; max-width: 1100px; }
.bloque.alterno .bloque-foto { order: 2; }
.bloque-foto { position: relative; overflow: hidden; }
/* el recorte va en la imagen (si va en el marco, el navegador no avisa que llegó a la pantalla) */
.bloque-foto img { width: 100%; height: auto; clip-path: inset(0 0 100% 0); transform: scale(1.1); transition: clip-path .9s var(--ease-io), transform 1.4s var(--ease); }
.bloque-foto.dentro img { clip-path: inset(0 0 0 0); transform: scale(1); }
.bloque-texto { text-align: center; max-width: 780px; justify-self: center; }
.bloque-texto h2 { font-size: clamp(34px, 3.4vw, 62px); margin-bottom: 20px; }
.bloque-texto h2 em, .franja-texto em, .experiencia-cierre h3 em { font-style: normal; color: var(--oro-texto); }
.seccion-oscura .bloque-texto h2 em { color: var(--oro-claro); }
.bloque-texto p + p { margin-top: 14px; }
.bloque-texto strong, .texto-columnas strong { font-weight: 600; }
.bloque-botones { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; margin-top: 28px; }
.seccion-oscura .bloque-texto p:not(.destacado), .seccion-oscura .texto-columnas p { color: var(--sobre-oscuro-2); }

/* Frase de cierre (las negritas de Victoria): título mayor, dorado, con una línea */
.destacado { font-family: var(--f-titulo); font-weight: 500; font-size: clamp(21px, 1.75vw, 31px); line-height: 1.22; color: var(--oro-texto); text-align: center; text-align-last: center; hyphens: none; margin-top: 26px !important; padding-top: 22px; position: relative; }
.destacado::before { content: ''; position: absolute; top: 0; left: 50%; width: 56px; height: 1px; background: var(--oro); transform: translateX(-50%); }
.seccion-oscura .destacado { color: var(--oro-claro); }
.destacado.ancho { max-width: 1050px; margin-left: auto; margin-right: auto; }
/* Los hitos dorados del cronograma (.hito.destacado) NO llevan el estilo de párrafo destacado de arriba */
.hito.destacado { font: inherit; color: inherit; text-align-last: auto; hyphens: manual; margin-top: 0 !important; padding-top: 0; }
.hito.destacado::before { content: none; }

.franja-texto { font-family: var(--f-titulo); font-weight: 500; font-size: clamp(28px, 3vw, 54px); line-height: 1.14; max-width: 1200px; margin: 0 auto; hyphens: none; }

/* Texto en columnas (Terreno, Bases, Envío) */
.texto-columnas { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: clamp(20px, 3vw, 56px); margin: clamp(26px, 3vw, 46px) auto 0; max-width: 1400px; }
.dos-columnas { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(36px, 5vw, 100px); }
.dos-columnas h3, .experiencia-cierre h3 { font-size: clamp(28px, 2.4vw, 44px); margin-bottom: 18px; }
.dos-columnas p + p { margin-top: 14px; }
.h3-siguiente { margin-top: 40px; }
.subtitulo-lista { font-size: clamp(24px, 2vw, 36px); margin: 8px 0 clamp(24px, 2.6vw, 40px); }
.nota { font-size: 14px; color: var(--tinta-3); margin-top: 26px; }
.seccion-oscura .nota { color: var(--sobre-oscuro-2); }

/* Video de YouTube (carga al apretarlo) */
.video-marco { position: relative; aspect-ratio: 16 / 9; max-width: 1240px; margin: 0 auto; overflow: hidden; background: #000; cursor: pointer; }
.video-marco img { width: 100%; height: 100%; object-fit: cover; opacity: .72; transition: opacity .5s ease, transform 1.2s var(--ease); }
.video-marco:hover img { opacity: .9; transform: scale(1.03); }
.video-play { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; color: var(--sobre-oscuro); }
.video-play .anillo { width: clamp(64px, 6vw, 92px); aspect-ratio: 1; border: 1.5px solid var(--oro-claro); border-radius: 50%; position: relative; transition: transform .5s var(--ease); }
.video-play .anillo::after { content: ''; position: absolute; left: 54%; top: 50%; transform: translate(-50%, -50%); border-style: solid; border-width: 11px 0 11px 18px; border-color: transparent transparent transparent var(--oro-claro); }
.video-marco:hover .anillo { transform: scale(1.08); }
.video-marco iframe, .video-marco video { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; background: #000; }
.video-marco.reproduciendo img, .video-marco.reproduciendo .video-play { display: none; }

/* Galería documental (Experiencias en Terreno) */
.galeria { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(10px, 1.2vw, 20px); }
.galeria-foto { overflow: hidden; }
.galeria-foto img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; clip-path: inset(0 0 100% 0); transition: clip-path .9s var(--ease-io) calc(var(--i, 0) * 90ms), transform 1.6s var(--ease); }
.galeria-foto.dentro img { clip-path: inset(0); }
.galeria-foto:hover img { transform: scale(1.05); }

/* Programa: recorrido de 7 etapas */
.recorrido { list-style: none; max-width: 1400px; margin: 0 auto; border-top: 1px solid var(--linea); }
.etapa { display: grid; grid-template-columns: 90px minmax(240px, .9fr) 1.6fr; gap: clamp(16px, 3vw, 60px); align-items: center; padding: clamp(22px, 2.4vw, 38px) clamp(8px, 1.4vw, 24px); border-bottom: 1px solid var(--linea); transition: background-color .45s ease; }
.etapa:hover { background: var(--papel-3); }
.etapa .num { color: var(--oro-texto); font-size: 15px; text-align: center; }
.etapa-nombre { text-align: center; }
.etapa h3 { font-size: clamp(24px, 2vw, 36px); }
.etapa .lema { font-family: var(--f-titulo); font-weight: 500; color: var(--oro-texto); font-size: clamp(17px, 1.25vw, 21px); line-height: 1.25; margin-top: 8px; text-align: center; text-align-last: center; }
.recorrido .etapa { opacity: 0; transform: translateY(14px); transition: opacity .5s var(--ease), transform .65s var(--ease), background-color .45s ease; }
.recorrido.dentro .etapa { opacity: 1; transform: none; }
.recorrido.dentro .etapa:nth-child(2) { transition-delay: .05s, .05s, 0s; } .recorrido.dentro .etapa:nth-child(3) { transition-delay: .1s, .1s, 0s; }
.recorrido.dentro .etapa:nth-child(4) { transition-delay: .15s, .15s, 0s; } .recorrido.dentro .etapa:nth-child(5) { transition-delay: .2s, .2s, 0s; }
.recorrido.dentro .etapa:nth-child(6) { transition-delay: .25s, .25s, 0s; } .recorrido.dentro .etapa:nth-child(7) { transition-delay: .3s, .3s, 0s; }
.experiencia-cierre { max-width: 1000px; margin: clamp(40px, 4vw, 70px) auto 0; text-align: center; }

/* I+D+i: avances numerados */
.avances { list-style: none; display: grid; grid-template-columns: 1fr 1fr; gap: 0 clamp(30px, 4vw, 80px); max-width: 1500px; margin: 0 auto; }
.avance { display: grid; grid-template-columns: 48px 1fr; gap: 18px; align-items: baseline; padding: 20px 0; border-top: 1px solid var(--linea-oscura); }
.avance .num { color: var(--oro-claro); }
.avance p { color: var(--sobre-oscuro-2); text-align: justify; text-align-last: left; }

/* Ediciones */
.ediciones { display: flex; flex-direction: column; gap: clamp(46px, 5vw, 96px); margin-top: clamp(30px, 3vw, 50px); }
.edicion { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(30px, 5vw, 96px); align-items: center; }
.edicion.alterno .edicion-media { order: 2; }
.edicion-media .bloque-foto img { max-height: 620px; object-fit: cover; }
.edicion-texto { text-align: center; }
.edicion .anio { display: block; font-family: var(--f-titulo); font-weight: 600; font-size: clamp(64px, 6.4vw, 120px); line-height: .9; color: var(--oro); }
.edicion h3 { font-size: clamp(28px, 2.6vw, 46px); margin: 6px 0 16px; }
.edicion p + p { margin-top: 14px; }

/* Colaboradores (nombres, mientras llegan los logos) */
.nombres { list-style: none; columns: 3 280px; column-gap: clamp(30px, 4vw, 70px); max-width: 1400px; margin: 0 auto; }
.nombres li { break-inside: avoid; padding: 13px 0; border-top: 1px solid var(--linea-oscura); text-align: center; color: var(--sobre-oscuro); font-size: 16px; }

/* Pasos (Bases, Envío, Inscripciones) */
.pasos { list-style: none; display: flex; justify-content: center; max-width: 1200px; margin: 0 auto clamp(30px, 3vw, 50px); }
.pasos:last-child { margin-bottom: 0; }   /* al final de una sección no suma aire al padding */
.paso { flex: 1; position: relative; display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 0 14px; text-align: center; }
.paso::after { content: ''; position: absolute; top: 30px; left: calc(50% + 46px); right: calc(-50% + 46px); height: 1px; background: var(--oro); opacity: .5; }
.paso:last-child::after { display: none; }
.paso .n { font-family: var(--f-titulo); font-weight: 600; font-size: clamp(44px, 3.6vw, 64px); line-height: 1; color: var(--oro); }
.paso-txt { font-size: clamp(16px, 1.15vw, 19px); font-weight: 500; line-height: 1.35; }

/* Documentos y guías */
.botones-docs { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; margin: 6px auto 0; }
.guias { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: clamp(18px, 2vw, 32px); }
.guia { background: var(--papel-3); display: flex; flex-direction: column; transition: transform .6s var(--ease), box-shadow .6s var(--ease); }
.guia:hover { transform: translateY(-6px); box-shadow: 0 18px 40px rgba(21,23,27,.1); }
.guia-foto { overflow: hidden; }
.guia-foto img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform 1.4s var(--ease); }
.guia:hover .guia-foto img { transform: scale(1.06); }
.guia-texto { padding: 24px 22px 28px; text-align: center; display: flex; flex-direction: column; gap: 12px; flex: 1; }
.guia h3 { font-size: clamp(24px, 1.8vw, 32px); }
.guia-herramienta { font-size: 15px; color: var(--tinta-2); }
.doc-grupo { border-top: 1px solid var(--linea); padding-top: 12px; display: flex; flex-direction: column; gap: 6px; }
.doc-nombre { font-family: var(--f-dato); font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--tinta-3); }
.doc-idiomas { display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 16px; }
.enlace-doc { color: var(--oro-texto); font-weight: 500; background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat; transition: background-size .45s var(--ease); }
.enlace-doc:hover { background-size: 100% 1px; }
/* Guías: en PC las cinco en una fila (Carlos 2026-10-06); sin cortar palabras con guion */
.guia-texto p { -webkit-hyphens: manual; hyphens: manual; }
@media (min-width: 1101px) {
    .guias { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: clamp(14px, 1.3vw, 26px); }
    .guia-texto { padding: 20px 16px 24px; gap: 10px; }
    .guia h3 { font-size: clamp(24px, 1.7vw, 30px); }
    .guia-herramienta { font-size: 14px; text-align: center; text-align-last: center; }
    .doc-idiomas { gap: 4px 12px; }
}

/* Centros de recepción */
.centros { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(18px, 2.4vw, 40px); max-width: 1200px; margin: 0 auto; }
.centro { border-top: 2px solid var(--oro); background: var(--papel-3); padding: clamp(26px, 2.6vw, 42px); text-align: center; }
.centro h3 { font-size: clamp(28px, 2.2vw, 40px); margin-bottom: 14px; }
.centro-dato { text-align: center; text-align-last: center; }
.centro-dato a { color: var(--oro-texto); }
.centro-nota { margin-top: 14px; font-size: 15px; color: var(--tinta-2); }

/* Promueve tu premio: datos de uso */
.datos-uso { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(24px, 4vw, 80px); max-width: 1200px; margin: 0 auto; }
.dato-uso { text-align: center; }
.dato-uso .cifra { display: block; font-family: var(--f-titulo); font-weight: 600; font-size: clamp(40px, 3.6vw, 66px); color: var(--oro); line-height: 1; margin-bottom: 14px; }

/* Inscripciones: tabla de tarifas (la dibuja js/tarifas.js) */
.tarifas { max-width: 1100px; margin: 0 auto; }
.tabla-scroll { overflow-x: auto; }
.tabla-tarifas { width: 100%; border-collapse: collapse; background: var(--papel-3); border-top: 2px solid var(--oro); font-variant-numeric: tabular-nums; }
.tabla-tarifas th, .tabla-tarifas td { padding: 14px 18px; text-align: center; border-bottom: 1px solid var(--linea); }
.tabla-tarifas thead th { font-family: var(--f-dato); font-size: 11.5px; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; color: var(--tinta-3); }
.tabla-tarifas thead .t-grupo { border-left: 1px solid var(--linea); padding-top: 22px; }
.tabla-tarifas thead tr:last-child th:nth-child(odd) { border-left: 1px solid var(--linea); }
.t-cat { display: block; font-family: var(--f-titulo); font-weight: 600; font-size: clamp(26px, 2vw, 34px); letter-spacing: 0; text-transform: none; color: var(--tinta); line-height: 1.1; }
.t-sub { display: block; margin-top: 4px; }
.tabla-tarifas .t-col-muestra { vertical-align: bottom; }
.tabla-tarifas tbody th { font-weight: 500; text-align: left; white-space: nowrap; }
.tabla-tarifas tbody td:nth-of-type(odd) { border-left: 1px solid var(--linea); }
.tabla-tarifas .t-valor { font-family: var(--f-titulo); font-weight: 600; font-size: 26px; color: var(--oro-texto); }
.tabla-tarifas .t-valor small { font-family: var(--f-dato); font-size: 11px; letter-spacing: .1em; color: var(--tinta-3); font-weight: 400; }
.tabla-tarifas .t-total { color: var(--tinta-2); font-size: 16px; }
.tabla-tarifas tbody tr:hover { background: rgba(184,137,43,.06); }
.tabla-tarifas .t-ejemplo th, .tabla-tarifas .t-ejemplo td { background: var(--papel-2); font-weight: 600; color: var(--tinta); }
@media (max-width: 760px) {
    .tabla-tarifas th, .tabla-tarifas td { padding: 10px 8px; }
    .tabla-tarifas thead th { font-size: 10px; letter-spacing: .06em; }
    .t-cat { font-size: 22px; }
    .tabla-tarifas .t-valor { font-size: 21px; }
    .tabla-tarifas .t-total { font-size: 14px; }
    .tabla-tarifas tbody th { white-space: normal; font-size: 14px; }
}
/* Preventa (destacada) y tarifa normal */
.tarifas { display: flex; flex-direction: column; gap: clamp(28px, 3vw, 48px); }
.tarifa-cabeza { text-align: center; margin-bottom: 14px; }
.tarifa-cabeza h3 { font-size: clamp(30px, 2.6vw, 46px); }
.tarifa-cabeza .dato { color: var(--tinta-3); margin-top: 4px; }
.tarifa-bloque.es-preventa .tarifa-cabeza h3 { color: var(--oro-texto); }
.tarifa-bloque.es-preventa .tarifa-cabeza .dato { color: var(--oro-texto); }
.tarifa-bloque.es-preventa .tabla-tarifas { border-top-width: 3px; box-shadow: 0 14px 40px rgba(122,90,18,.10); }
.tarifa-bloque.es-normal:not(.unica) .tabla-tarifas { border-top-color: var(--tinta-3); }
.tarifa-bloque.es-normal:not(.unica) .tabla-tarifas .t-valor { color: var(--tinta-2); }
/* Borde completo a cada tabla; la preventa con borde dorado, resplandor y un brillo que la recorre */
.tarifa-bloque .tabla-scroll { border: 1px solid rgba(21,23,27,.28); }
.tarifa-bloque .tabla-tarifas { border-top: 0; }
.tarifa-bloque.es-normal:not(.unica) .tabla-scroll { border-color: rgba(21,23,27,.35); }
.tarifa-bloque.es-preventa .tabla-scroll {
    position: relative; border: 2px solid var(--oro);
    box-shadow: 0 0 0 4px rgba(217,180,90,.16), 0 12px 36px rgba(184,137,43,.22);
    animation: preventaLatido 3.6s ease-in-out infinite;
}
/* el destello es un fondo que se desplaza DENTRO del recuadro (inset: 0): nunca sale de sus bordes ni crea barra de desplazamiento */
.tarifa-bloque.es-preventa .tabla-scroll::after {
    content: ''; position: absolute; inset: 0; pointer-events: none;
    background: linear-gradient(105deg, transparent 40%, rgba(255,236,180,.7) 50%, transparent 60%) no-repeat;
    background-size: 300% 100%; background-position: 150% 0;
    animation: preventaBrillo 6s var(--ease-io) infinite;
}
@keyframes preventaBrillo { 0%, 62% { background-position: 150% 0; } 92%, 100% { background-position: -50% 0; } }
@keyframes preventaLatido { 0%, 100% { box-shadow: 0 0 0 4px rgba(217,180,90,.22), 0 0 26px rgba(217,180,90,.30), 0 12px 36px rgba(184,137,43,.20); } 50% { box-shadow: 0 0 0 7px rgba(217,180,90,.34), 0 0 40px rgba(217,180,90,.45), 0 14px 42px rgba(184,137,43,.30); } }
.tarifa-bloque.es-preventa .tabla-tarifas { box-shadow: none; }
@media (prefers-reduced-motion: reduce) { .tarifa-bloque.es-preventa .tabla-scroll, .tarifa-bloque.es-preventa .tabla-scroll::after { animation: none; } .tarifa-bloque.es-preventa .tabla-scroll::after { display: none; } }

/* PC: preventa y normal lado a lado, más compactas (Carlos 2026-10-06) */
@media (min-width: 1101px) {
    .tarifas { max-width: 1560px; flex-direction: row; align-items: stretch; gap: clamp(18px, 1.6vw, 30px); }
    .tarifa-bloque { flex: 1 1 0; min-width: 0; }
    .tarifa-bloque.unica { max-width: 820px; margin: 0 auto; }
    .tarifa-cabeza { margin-bottom: 8px; }
    .tarifa-cabeza h3 { font-size: clamp(26px, 2vw, 36px); }
    .tabla-tarifas th, .tabla-tarifas td { padding: 7px 10px; }
    .tabla-tarifas thead .t-grupo { padding-top: 12px; }
    .tabla-tarifas thead th { font-size: 10.5px; letter-spacing: .08em; }
    .t-cat { font-size: clamp(22px, 1.6vw, 28px); }
    .t-sub { margin-top: 2px; }
    .tabla-tarifas .t-valor { font-size: 22px; line-height: 1.1; }
    .tabla-tarifas .t-total { font-size: 15px; }
    .tabla-tarifas tbody th { font-size: 15px; }
    #tarifas.seccion { padding-top: 36px; padding-bottom: 36px; }
    #tarifas .cabecera { margin-bottom: 18px; }
    #tarifas .cabecera h2 { font-size: clamp(36px, 3.4vw, 60px); margin-bottom: 8px; }
}
/* notas bajo las tablas: juntas, sin aire de más */
#tarifas .nota { margin-top: 14px; }
#tarifas .nota + .nota { margin-top: 2px; }
#tarifas .nota[hidden] + .nota { margin-top: 14px; }
.formularios-pendientes { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px 30px; font-family: var(--f-titulo); font-size: clamp(22px, 1.8vw, 30px); color: var(--sobre-oscuro-2); max-width: 1100px; margin: 0 auto; }

/* Contacto */
.contacto { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: clamp(36px, 5vw, 100px); align-items: start; }
.formulario .cabecera { margin-bottom: 26px; }
.campos { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 24px; }
.campo { display: flex; flex-direction: column; gap: 8px; }
.campo.ancho { grid-column: 1 / -1; }
.campo .dato { font-size: 11.5px; color: var(--tinta-3); }
.campo input, .campo select, .campo textarea { font: inherit; font-size: 16px; color: var(--tinta); background: var(--papel-3); border: 1px solid var(--tinta); border-radius: 0; padding: 13px 14px; transition: border-color .3s ease, background-color .3s ease; width: 100%; }
.campo input:focus, .campo select:focus, .campo textarea:focus { outline: none; border-color: var(--oro); background: #fff; }
.campo textarea { resize: vertical; min-height: 150px; }
.oculto { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.form-estado { min-height: 24px; margin-top: 16px; text-align: center; text-align-last: center; font-weight: 500; }
.form-estado.ok { color: #2F6B3A; }
.form-estado.error { color: #9B2C2C; }
.contacto-directo { display: flex; flex-direction: column; align-items: center; gap: 26px; text-align: center; padding-top: 10px; }
.contacto-logo { width: clamp(150px, 13vw, 220px); }
.contacto-item { display: flex; flex-direction: column; align-items: center; gap: 4px; }
.contacto-item a { font-size: 18px; color: var(--tinta); transition: color .3s ease; }
.contacto-item a:hover { color: var(--oro-texto); }

@media (max-width: 1100px) {
    .etapa { grid-template-columns: 1fr; gap: 10px; text-align: center; }
    .etapa .etapa-desc { text-align: justify; text-align-last: center; }
    .avances { grid-template-columns: 1fr; }
    .contacto { grid-template-columns: 1fr; }
}
@media (max-width: 900px) {
    .bloque, .edicion, .dos-columnas, .datos-uso, .centros { grid-template-columns: 1fr; }
    .bloque.alterno .bloque-foto, .edicion.alterno .edicion-media { order: 0; }
    .galeria { grid-template-columns: 1fr; }
    .pasos { flex-direction: column; gap: 22px; }
    .paso::after { display: none; }
}
@media (max-width: 760px) {
    .subnav ul { flex-wrap: nowrap; justify-content: flex-start; overflow-x: auto; scrollbar-width: none; padding: 6px 16px; }
    .subnav ul::-webkit-scrollbar { display: none; }
    .cabeza-pagina { min-height: 68vh; min-height: 68svh; }
    .campos { grid-template-columns: 1fr; }
    .avance { grid-template-columns: 1fr; gap: 6px; text-align: center; }
    .avance p { text-align: justify; text-align-last: center; }
}
@media (prefers-reduced-motion: reduce) {
    .bloque-foto img, .galeria-foto img { clip-path: none; transform: none; }
    .recorrido .etapa { opacity: 1; transform: none; }
}

/* Visor de ganadores por edición (Nosotros > Ediciones) */
.modal-ganadores { position: fixed; inset: 0; z-index: 9500; display: none; align-items: center; justify-content: center; background: rgba(12,13,16,.92); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.modal-ganadores.abierto { display: flex; animation: ganadoresEntra .35s ease; }
@keyframes ganadoresEntra { from { opacity: 0; } to { opacity: 1; } }
.ganadores-caja { position: relative; display: flex; flex-direction: column; align-items: center; }
.ganadores-img { display: block; max-height: 82vh; max-width: 92vw; width: auto; height: auto; opacity: 0; transition: opacity .3s ease; box-shadow: 0 20px 60px rgba(0,0,0,.5); }
.ganadores-img.visible { opacity: 1; }
.ganadores-anterior, .ganadores-siguiente, .ganadores-cerrar { position: absolute; display: flex; align-items: center; justify-content: center; color: var(--oro-claro); border: 1px solid rgba(217,180,90,.6); border-radius: 50%; background: rgba(17,19,23,.75); transition: transform .3s var(--ease), background-color .3s ease; }
.ganadores-anterior, .ganadores-siguiente { top: 41vh; width: 52px; height: 52px; margin-top: -26px; font-size: 30px; line-height: 1; }
.ganadores-anterior { left: -76px; }
.ganadores-siguiente { right: -76px; }
.ganadores-cerrar { top: -14px; right: -60px; width: 42px; height: 42px; font-size: 26px; line-height: 1; }
.ganadores-anterior:hover, .ganadores-siguiente:hover, .ganadores-cerrar:hover { transform: scale(1.08); background: rgba(217,180,90,.15); }
.ganadores-pie { display: flex; gap: 22px; justify-content: center; margin-top: 14px; color: var(--sobre-oscuro-2); }
.ganadores-anio { color: var(--oro-claro); }
@media (max-width: 760px) {
    .ganadores-anterior { left: 6px; } .ganadores-siguiente { right: 6px; }
    .ganadores-anterior, .ganadores-siguiente { width: 40px; height: 40px; margin-top: -20px; font-size: 24px; }
    .ganadores-cerrar { top: -52px; right: 6px; }
}

/* ===================== Inscripción: formularios en ventana (lógica EFM, diseño CIF) ===================== */
.insc-botones { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; max-width: 1100px; margin: 0 auto; }
.insc-botones .btn { min-width: 190px; justify-content: space-between; }
.insc-incluye { text-align: center; color: var(--sobre-oscuro-2); margin-top: 18px; font-size: 15px; }
.insc-modal { position: fixed; inset: 0; z-index: 9400; display: none; overflow-y: auto; overscroll-behavior: contain; padding: clamp(16px, 4vh, 48px) 16px; background: rgba(12,13,16,.86); -webkit-backdrop-filter: blur(5px); backdrop-filter: blur(5px); }
.insc-modal.abierto { display: block; animation: ganadoresEntra .3s ease; }
.insc-caja { position: relative; max-width: 940px; margin: 0 auto; background: var(--papel); color: var(--tinta); border: 1px solid var(--tinta); padding: clamp(26px, 3.4vw, 56px) clamp(18px, 3.4vw, 56px); }
/* La X queda siempre a la vista: pegada (sticky) arriba a la derecha mientras se recorre el formulario */
.insc-caja { --insc-pad-top: clamp(26px, 3.4vw, 56px); --insc-pad-lado: clamp(18px, 3.4vw, 56px); }
.insc-cerrar { position: sticky; top: 12px; z-index: 3; float: right; margin: calc(12px - var(--insc-pad-top)) calc(12px - var(--insc-pad-lado)) -60px 0; width: 42px; height: 42px; display: flex; align-items: center; justify-content: center; font-size: 28px; line-height: 1; color: var(--tinta); border: 1px solid var(--tinta); border-radius: 50%; background: var(--papel); box-shadow: 0 2px 10px rgba(21,23,27,.12); transition: background-color .3s ease, color .3s ease; }
.insc-cerrar:hover { background: var(--tinta); color: var(--papel); }
.insc-cabeza { text-align: center; margin-bottom: 8px; }
.insc-cabeza .antetitulo { margin-bottom: 8px; }
.insc-cabeza h2 { font-size: clamp(36px, 3.6vw, 58px); line-height: 1; }
.insc-cabeza h2 em { font-style: normal; color: var(--oro-texto); }
.insc-nota { margin-top: 12px; color: var(--tinta-2); }
.insc-seccion { border: 0; border-top: 1px solid var(--linea); margin: 30px 0 0; padding: 22px 0 0; min-width: 0; }
.insc-seccion legend { font-family: var(--f-titulo); font-weight: 600; font-size: clamp(24px, 2vw, 32px); padding: 0 14px 0 0; }
.insc-form .campos { grid-template-columns: repeat(6, minmax(0, 1fr)); margin-top: 14px; }
.insc-form .campo { grid-column: span 3; }
.insc-form .campo.ancho { grid-column: 1 / -1; }
.insc-form .campo.tercio { grid-column: span 2; }
.insc-form .campo[hidden] { display: none; }
.insc-form .campo .dato { font-size: 12px; color: var(--tinta-2); letter-spacing: .1em; }
.insc-req { color: var(--oro-texto); }
.insc-ayuda { font-size: 14px; color: var(--tinta-3); line-height: 1.5; }
.insc-destacado { font-size: 14px; line-height: 1.6; color: var(--tinta-2); border-left: 3px solid var(--oro); background: var(--papel-2); padding: 10px 14px; }
.insc-destacado strong { color: var(--tinta); }
.insc-correo { border: 1px solid var(--oro); background: rgba(184,137,43,.08); padding: 14px 18px; text-align: center; font-size: 14.5px; line-height: 1.55; }
.insc-correo-titulo { font-weight: 600; color: var(--oro-texto); margin-bottom: 4px; }
.insc-correo-gmail { margin-top: 6px; font-family: var(--f-dato); font-size: 12px; letter-spacing: .08em; color: var(--tinta-2); }
.insc-radios { display: flex; flex-direction: column; gap: 10px; }
.insc-radio { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border: 1px solid var(--tinta); background: var(--papel-3); cursor: pointer; transition: border-color .3s ease, background-color .3s ease; }
.insc-radio:hover { border-color: var(--oro); }
.insc-radio input { width: 18px; height: 18px; accent-color: var(--oro); flex: none; }
.insc-radio:has(input:checked) { border-color: var(--oro); background: #fff; }
.insc-final { margin-top: 30px; border-top: 1px solid var(--linea); padding-top: 20px; text-align: center; font-size: 14.5px; line-height: 1.6; color: var(--tinta-2); }
.insc-final p + p { margin-top: 8px; }
.insc-final p:first-child, .insc-final p:last-child { color: var(--tinta); font-weight: 600; }
.insc-form .cif-turnstile { display: flex; justify-content: center; margin-top: 18px; }
.insc-acciones { margin-top: 18px; }
/* Ventanas de "enviando" y de éxito */
.insc-aviso { position: fixed; inset: 0; z-index: 9700; display: none; align-items: center; justify-content: center; padding: 16px; background: rgba(12,13,16,.9); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.insc-aviso.abierto { display: flex; animation: ganadoresEntra .3s ease; }
.insc-aviso-caja { max-width: 560px; width: 100%; background: var(--papel); color: var(--tinta); border: 1px solid var(--tinta); padding: clamp(26px, 3vw, 44px); text-align: center; }
.insc-aviso-caja h3 { font-size: clamp(30px, 2.6vw, 42px); margin-bottom: 10px; }
.insc-aviso-caja p { color: var(--tinta-2); line-height: 1.55; }
.insc-aviso-caja p + p { margin-top: 8px; }
.insc-aviso-alerta { color: var(--oro-texto) !important; font-size: 12px; }
.insc-spinner { width: 46px; height: 46px; margin: 0 auto 18px; border: 3px solid var(--papel-2); border-top-color: var(--oro); border-radius: 50%; animation: inscGira .9s linear infinite; }
@keyframes inscGira { to { transform: rotate(360deg); } }
.insc-codigo { display: block; margin: 12px auto 4px; padding: 14px 24px; font-family: var(--f-dato); font-size: clamp(20px, 2.2vw, 28px); letter-spacing: .08em; color: var(--tinta); background: #fff; border: 2px solid var(--oro); cursor: pointer; word-break: break-all; transition: background-color .3s ease, color .3s ease; }
.insc-codigo:hover { background: rgba(184,137,43,.1); }
.insc-codigo.copiado { background: var(--oro); color: #fff; }
.insc-pista { font-size: 13px; }
.insc-cabeza p, .insc-correo p, .insc-final p, .insc-aviso-caja p { text-align: center; text-align-last: center; }
.insc-ayuda, .insc-destacado { text-align: left; text-align-last: auto; }
@media (max-width: 760px) {
    .insc-caja { padding-top: 64px; --insc-pad-top: 64px; }
    .insc-form .campos { grid-template-columns: 1fr; }
    .insc-form .campo, .insc-form .campo.tercio { grid-column: 1 / -1; }
    .insc-botones .btn { min-width: 0; flex: 1 1 calc(50% - 7px); }
}

/* ===================== Pagos y Estado del pago (lógica EFM, diseño CIF) ===================== */
.pago-app { max-width: 820px; margin: 0 auto; }
.pago-paso .cabecera { margin-bottom: 24px; }
.pago-paso .cabecera h2 { font-size: clamp(34px, 3.4vw, 56px); }
.pago-paso .cif-turnstile { display: flex; justify-content: center; margin-top: 16px; }
.pago-aviso { text-align: center; text-align-last: center; padding: 12px 16px; margin: 0 0 20px; border: 1px solid var(--linea); }
.pago-aviso.ok { border-color: #2F6B3A; color: #2F6B3A; background: rgba(47,107,58,.06); }
.pago-aviso:empty { display: none; }
.pago-codigo { text-align: center; font-family: var(--f-dato) !important; font-size: 28px !important; letter-spacing: .5em; }
.pago-grupo { font-size: clamp(22px, 1.8vw, 28px); margin: 22px 0 8px; }
.pago-grupo:first-child { margin-top: 0; }
.pago-muestra { display: grid; grid-template-columns: auto 1fr auto; gap: 14px; align-items: center; padding: 12px 16px; margin-bottom: 8px; border: 1px solid var(--tinta); background: var(--papel-3); cursor: pointer; transition: border-color .3s ease, background-color .3s ease; }
.pago-muestra:hover { border-color: var(--oro); }
.pago-muestra.elegida { border-color: var(--oro); background: #fff; }
.pago-muestra input { width: 20px; height: 20px; accent-color: var(--oro); }
.pago-muestra-txt { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.pago-muestra-txt strong { font-weight: 600; overflow-wrap: anywhere; }
.pago-muestra-txt .dato { font-size: 11.5px; color: var(--tinta-3); letter-spacing: .08em; }
.pago-muestra-precio { font-family: var(--f-titulo); font-weight: 600; font-size: 24px; color: var(--oro-texto); text-align: right; line-height: 1.05; white-space: nowrap; }
.pago-muestra-precio small { display: block; font-family: var(--f-dato); font-size: 10.5px; font-weight: 400; letter-spacing: .08em; color: var(--tinta-3); }
.pago-resumen { margin-top: 22px; border: 1px solid var(--tinta); background: var(--papel-3); padding: 6px 20px 14px; }
.pago-fila { display: flex; justify-content: space-between; gap: 16px; padding: 10px 0; border-bottom: 1px solid var(--linea); }
.pago-fila-suave { color: var(--tinta-2); font-size: 15px; }
.pago-fila span:last-child { white-space: nowrap; text-align: right; }
.pago-total { border-bottom: 0; font-family: var(--f-titulo); font-weight: 600; font-size: clamp(26px, 2.2vw, 34px); }
.pago-total span:last-child { color: var(--oro-texto); }
.pago-nota { font-size: 14px; color: var(--tinta-2); text-align: center; text-align-last: center; margin-top: 8px; }
.pago-medios { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 18px; }
.pago-medios .btn[disabled] { opacity: .45; pointer-events: none; }
.pago-medios .btn[hidden] { display: none; }
[data-pago-exitoso] .insc-spinner { margin: 6px auto 22px; }
.pago-monto { text-align: center; font-family: var(--f-titulo); font-weight: 600; font-size: clamp(26px, 2.4vw, 36px); color: var(--oro-texto); margin-top: -6px; }
.pago-proximos { margin-top: 40px; border-top: 1px solid var(--linea); padding-top: 30px; }
.pago-proximos h3 { font-size: clamp(26px, 2.2vw, 36px); margin-bottom: 22px; }
@media (max-width: 760px) {
    .pago-muestra { grid-template-columns: auto 1fr; }
    .pago-muestra-precio { grid-column: 2; text-align: left; }
    .pago-medios .btn { flex: 1 1 100%; justify-content: space-between; }
}
/* Pagos: explicación antes del formulario */
.pago-subtitulo { font-size: clamp(28px, 2.4vw, 40px); margin: clamp(34px, 3vw, 54px) 0 18px; }
.pago-reglas { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(16px, 1.6vw, 28px); max-width: 1300px; margin: 0 auto; }
.pago-reglas > div { border-top: 2px solid var(--oro); padding-top: 14px; text-align: center; }
.pago-reglas h4 { font-family: var(--f-titulo); font-weight: 600; font-size: clamp(22px, 1.6vw, 27px); margin-bottom: 6px; }
.pago-reglas p { font-size: 15px; color: var(--tinta-2); text-align: center; text-align-last: center; }
.pago-ejemplo { max-width: 820px; margin: clamp(26px, 2.6vw, 40px) auto 0; border: 1px solid var(--tinta); background: var(--papel-3); padding: 20px 24px; text-align: center; }
.pago-ejemplo .antetitulo { margin-bottom: 8px; }
.pago-ejemplo p { text-align: center; text-align-last: center; line-height: 1.6; }
.pago-ejemplo p + p { margin-top: 6px; }
@media (max-width: 1100px) { .pago-reglas { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 760px) { .pago-reglas { grid-template-columns: 1fr; } }
.pago-aviso.prueba { border: 2px dashed #B8892B; color: var(--oro-texto); background: rgba(184,137,43,.08); font-weight: 600; }
/* Pagos e Inscripciones: menos aire arriba y abajo (Carlos 2026-10-06) */
.pagina-pagos .seccion, .pagina-inscripciones .seccion { padding: clamp(26px, 2.2vw, 40px) 0; }
.pagina-pagos .cabecera, .pagina-inscripciones .cabecera { margin-bottom: clamp(14px, 1.4vw, 24px); }
.pagina-pagos .cabecera h2, .pagina-inscripciones .cabecera h2 { margin-bottom: 8px; }
.pagina-pagos .pasos, .pagina-inscripciones .pasos { margin-bottom: 0; }
.pagina-inscripciones #como .bloque-botones { margin-top: 22px; }
.pagina-pagos .pago-ejemplo { margin-top: clamp(18px, 1.6vw, 26px); padding: 16px 22px; }
.pagina-pagos .pago-paso .cabecera { margin-bottom: 16px; }
/* Editor de inscripciones: mismo aire que Pagos */
.pagina-editor .seccion { padding: clamp(26px, 2.2vw, 40px) 0; }
.pagina-editor .cabecera { margin-bottom: clamp(14px, 1.4vw, 24px); }
.pagina-editor .cabecera h2 { margin-bottom: 8px; }
.pagina-editor .pasos { margin-bottom: 0; }
.pagina-editor .pago-ejemplo { margin-top: clamp(18px, 1.6vw, 26px); padding: 16px 22px; }
.pagina-editor .pago-paso .cabecera { margin-bottom: 16px; }
.pago-grupo small { font-size: 11.5px; letter-spacing: .08em; color: var(--tinta-3); margin-left: 6px; }
.editor-muestra { display: grid; grid-template-columns: 1fr auto; gap: 10px 16px; align-items: center; padding: 14px 16px; margin-bottom: 8px; border: 1px solid var(--tinta); background: var(--papel-3); }
.editor-muestra.pagada { background: #fff; }
.editor-cat { font-size: 14px; color: var(--tinta-2); overflow-wrap: anywhere; }
.editor-estado { font-size: 11.5px; letter-spacing: .08em; color: var(--oro-texto); text-align: right; white-space: nowrap; }
.editor-estado.ok { color: #2F6B3A; }
.editor-acciones { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 8px; }
.editor-acciones .btn { padding-top: 9px; padding-bottom: 9px; }
.btn.editor-eliminar { border-color: #9B2C2C; color: #9B2C2C; }
.btn.editor-eliminar:hover { background: #9B2C2C; color: #fff; }
.editor-id { font-family: var(--f-dato); letter-spacing: .06em; color: var(--tinta); }
.editor-final .insc-destacado { text-align: left; text-align-last: auto; font-weight: 400; color: var(--tinta-2); margin-bottom: 14px; }
.editor-reenviar { justify-content: center; max-width: 560px; margin: 0 auto; font-weight: 400; color: var(--tinta); }
.editor-mensaje .insc-codigo { cursor: default; }
@media (max-width: 760px) {
    .editor-muestra { grid-template-columns: 1fr; }
    .editor-estado { text-align: left; }
    .editor-acciones .btn { flex: 1 1 100%; justify-content: center; }
}
.editor-modal .insc-form :is(input, select, textarea):disabled { background: var(--papel-2); color: var(--tinta-2); cursor: not-allowed; opacity: 1; }
/* Aviso de inscripciones cerradas (js/estado-inscripciones.js): por encima de las ventanas de inscripción */
.cif-cerrado { z-index: 9800; }
.cif-cerrado-logo { width: clamp(86px, 8vw, 112px); height: auto; margin: 0 auto 14px; display: block; }
.cif-cerrado .antetitulo { margin-bottom: 6px; }
.cif-cerrado .bloque-botones { margin-top: 18px; }
.cif-cerrado-fijo { background: var(--tinta); -webkit-backdrop-filter: none; backdrop-filter: none; }   /* Editor y Pagos cerrados: no se ve la página detrás */
/* Estado del pago (pago-exitoso.html): sin cabecera con foto, logo grande a la izquierda (Carlos 2026-10-06) */
.pagina-pago-exitoso main { padding-top: var(--barra-h); }
.pagina-pago-exitoso #estado { min-height: calc(100vh - var(--barra-h)); display: flex; align-items: center; }
.exito-grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(30px, 4vw, 80px); align-items: center; }
.exito-logo img { display: block; width: 100%; max-width: 440px; height: auto; margin: 0 auto; }
.exito-grid .pago-app { max-width: none; margin: 0; }
@media (max-width: 900px) {
    .exito-grid { grid-template-columns: 1fr; gap: 20px; }
    .exito-logo img { max-width: 170px; }
    .pagina-pago-exitoso #estado { min-height: 0; }
}
/* Botones de pago con el logo de cada empresa dentro (Carlos 2026-10-06) */
.pago-medios .pago-boton { flex: 1 1 0; min-width: 220px; max-width: 300px; flex-direction: column; justify-content: flex-start; gap: 10px; padding: 16px 14px 14px; background: #fff; color: var(--tinta); border: 1px solid var(--tinta); }
.pago-boton img { display: block; height: 46px; margin: 9px 0; width: auto; max-width: 100%; object-fit: contain; }   /* alto total 64px en los tres */
.pago-boton span { font-size: 11.5px; }
.pago-boton-txt { display: flex; flex-direction: column; align-items: center; gap: 5px; }
.pago-boton small { font-family: var(--f-cuerpo); font-size: 12.5px; line-height: 1.45; letter-spacing: 0; text-transform: none; color: var(--tinta-2); text-align: center; }
.pago-boton small strong { color: var(--oro-texto); font-weight: 700; }
@media (max-width: 760px) {
    .pago-medios .pago-boton { display: grid; grid-template-columns: 112px 1fr; align-items: center; gap: 14px; text-align: left; }
    .pago-boton img { margin: 0 auto; }
    .pago-boton-txt { align-items: flex-start; }
    .pago-boton small { text-align: left; }
}
.pago-boton img[src*="flow"] { height: 64px; margin: 0; }   /* la imagen de Flow + Webpay es ancha y baja: se ve chica a la misma altura */
.pago-boton::before { display: none; }   /* sin el relleno oscuro de .btn: taparía el logo */
.pago-boton:hover { background: #fff; color: var(--tinta); border-color: var(--oro); box-shadow: 0 0 0 2px var(--oro); }
@media (max-width: 760px) {
    .pago-medios .pago-boton { flex: 1 1 100%; max-width: none; flex-direction: row; justify-content: space-between; padding: 12px 16px; }
    .pago-boton img { height: 38px; margin: 7px 0; }
    .pago-boton img[src*="flow"] { height: 52px; margin: 0; }
}
