/* CIVTAC dentro de docentes20.com · estilo E (el mismo lenguaje que la transmisión en OBS).
   Todo va acotado bajo .cv para no tocar la cabecera ni el footer reales del sitio.
   Ritmo: bandas oscuras de «escenario» (portada, fechas, programa, ponentes, acceso) y bandas claras para
   lo que se lee con calma (participación, inscripción, certificado, preguntas, contacto). */

@font-face { font-family:'Montserrat'; src:url('fuentes/woff2/Montserrat-Bold.woff2') format('woff2'); font-weight:700; font-display:swap; }
@font-face { font-family:'Montserrat'; src:url('fuentes/woff2/Montserrat-ExtraBold.woff2') format('woff2'); font-weight:800; font-display:swap; }
@font-face { font-family:'Manrope'; src:url('fuentes/woff2/Manrope-Medium.woff2') format('woff2'); font-weight:500; font-display:swap; }
@font-face { font-family:'Manrope'; src:url('fuentes/woff2/Manrope-SemiBold.woff2') format('woff2'); font-weight:600; font-display:swap; }
@font-face { font-family:'Manrope'; src:url('fuentes/woff2/Manrope-Bold.woff2') format('woff2'); font-weight:700; font-display:swap; }

/* ── Tokens ─────────────────────────────────────────────────────────────────── */
:root {
  /* color de marca */
  --fondo:#081A24; --fondo-alto:#102B39; --fondo-bajo:#050E14; --panel:#0E2632;
  --tinta:#112632; --azul:#1D3A4A; --azul-linea:#2B5266;
  --papel:#F5F2EB; --papel-hondo:#EBE6DC; --blanco:#FFFFFF;
  --oro:#F0B424; --oro-claro:#FFD66B; --turq:#17A2B8; --turq-claro:#2CC3DA; --burdeos:#780C24; --burdeos-vivo:#A5163A;
  /* texto, según el fondo (todas las parejas pasan AA para su tamaño) */
  --t-oscuro:#FFFFFF; --t-oscuro-2:#C9D3D9; --t-oscuro-3:#9FB4BE;     /* sobre --fondo: 16,9 · 11,6 · 7,9 : 1 */
  --t-claro:#112632;  --t-claro-2:#46535B;                              /* sobre --papel: 14,5 · 7,4 : 1 */
  --turq-sobre-oscuro:#5FD4E6;   /* 9,9:1 sobre --fondo */
  --turq-sobre-claro:#0C6A79;    /* 5,6:1 sobre --papel */
  --oro-sobre-claro:#7A5000;     /* 6,5:1 sobre --papel */
  --borde-claro:#D6D1C6; --borde-oscuro:rgba(255,255,255,.14);
  /* firma */
  --degradado:linear-gradient(135deg,#FFD66B 0%,#F0B424 22%,#17A2B8 70%,#0E6F80 100%);
  --linea:linear-gradient(90deg,#17A2B8,#F0B424);
  /* tipografía */
  --f-rotulo:'Montserrat',system-ui,sans-serif; --f-texto:'Manrope',system-ui,sans-serif;
  /* espacio (escala de 4) */
  --e1:4px; --e2:8px; --e3:12px; --e4:16px; --e5:24px; --e6:32px; --e7:48px; --e8:64px; --e9:96px;
  --ancho:1200px; --margen:24px; --banda:var(--e9);
  /* marco de medios: borde degradado · franja de protección · segunda línea */
  --m-borde:5px; --m-franja:10px; --m-linea:11px;
  --cabecera:86px;   /* cabecera fija de docentes20.com en interiores */
}
@media (max-width:760px){ :root { --margen:20px; --banda:var(--e8); --m-borde:4px; --m-franja:8px; --m-linea:8px; } }

/* ── Base ───────────────────────────────────────────────────────────────────── */
.cv-body { background:var(--papel); margin:0; }   /* base.css no reinicia el margen del body */
.cv { padding-top:var(--cabecera); color:var(--t-claro); font-family:var(--f-texto); font-size:18px; line-height:1.6; font-weight:500;
      -webkit-font-smoothing:antialiased; overflow-x:clip; }
.cv *, .cv *::before, .cv *::after { box-sizing:border-box; }
.cv section { scroll-margin-top:calc(var(--cabecera) + 18px); }
.cv :focus-visible { outline:3px solid var(--turq-claro); outline-offset:3px; }
.cv h1, .cv h2, .cv h3, .cv h4 { margin:0; font-family:var(--f-rotulo); color:inherit; }   /* base.css fija su fuente en h1..h6 */
.cv p { margin:0 0 var(--e3); }
.cv a { color:inherit; }
.cv-aviso { margin:0; background:#04090C; color:#cfd8de; font:600 13px/1.4 var(--f-texto); letter-spacing:.04em; text-align:center; padding:8px 16px; }

/* Contenedor y bandas a sangre: el fondo llega de borde a borde, el contenido queda en --ancho. */
.cv-marco, .cv-hero, .cv-sec, .cv-cta { max-width:var(--ancho); margin:0 auto; padding-left:var(--margen); padding-right:var(--margen); }
.cv-sec { padding-top:var(--banda); padding-bottom:calc(var(--banda) * .75); }
.cv-marco, .cv-hero, #fechas, #programa, #ponentes, #eposteres-resumen, #acceso, #eposteres {
  color:var(--t-oscuro); background:var(--fondo); box-shadow:0 0 0 100vmax var(--fondo); clip-path:inset(0 -100vmax); }
/* Fechas clave: banda intermedia, un escalón más clara que la portada, que hace de transición hacia el papel */
#fechas { --tr:#12354A; background:var(--tr); box-shadow:0 0 0 100vmax var(--tr);   /* plano: la sombra a sangre no admite degradado */
          padding-top:var(--banda); padding-bottom:var(--banda); border-top:1px solid rgba(95,212,230,.18); }
#programa { background:var(--fondo-alto); box-shadow:0 0 0 100vmax var(--fondo-alto); }
#acceso { padding-bottom:var(--banda); }

/* ── Rótulos, títulos de sección, estados ───────────────────────────────────── */
.cv-sec__cab { display:flex; flex-wrap:wrap; align-items:flex-end; gap:var(--e3) var(--e5); margin-bottom:var(--e6); }
.cv-sec__n { margin:0 !important; flex-basis:100%; font:700 15px var(--f-rotulo); letter-spacing:.3em; color:var(--turq-sobre-claro); }
.cv-sec__cab h2 { font-weight:800; font-size:clamp(32px,4.2vw,50px); line-height:1.05; letter-spacing:-.02em; position:relative; padding-bottom:var(--e4); }
.cv-sec__cab h2::after { content:""; position:absolute; left:0; bottom:0; width:72px; height:3px; border-radius:2px; background:var(--linea); }
.cv-sec__cab .cv-marcador { flex-basis:100%; }
.cv-marco .cv-sec__n, .cv-hero .cv-sec__n, #fechas .cv-sec__n, #programa .cv-sec__n, #ponentes .cv-sec__n, #eposteres-resumen .cv-sec__n, #acceso .cv-sec__n, #eposteres .cv-sec__n { color:var(--turq-sobre-oscuro); }
.cv-sub { font:800 21px var(--f-rotulo); margin:var(--e7) 0 var(--e4) !important; }
.cv-lead { font-size:20px; max-width:62ch; }
.cv-nota { font-size:15px; color:var(--t-claro-2); }
.cv-marcador { font:700 13px var(--f-rotulo); letter-spacing:.16em; text-transform:uppercase; color:var(--t-claro-2); }
.cv-hueco { display:inline-block; border:1.5px dashed currentColor; color:var(--t-claro-2); font:600 15px var(--f-texto); padding:3px 10px; border-radius:4px; }

/* Estado de la sección en la fase */
.cv-pill { display:inline-flex; align-items:center; margin:0 !important; padding:6px 14px; border-radius:16px; font:800 13px var(--f-rotulo);
           letter-spacing:.18em; text-transform:uppercase; line-height:1.3; border:1.5px solid currentColor; }
.cv-pill--abierta { background:linear-gradient(180deg,var(--turq-claro),var(--turq)); border-color:transparent; color:#04222A; }
.cv-pill--cerrada { color:var(--t-claro-2); }
.cv-pill--pend { color:var(--t-claro-2); border-style:dashed; }

/* Sobre fondo oscuro, los tonos claros de cada token */
.cv-marco .cv-nota, .cv-hero .cv-nota, #fechas .cv-nota, #programa .cv-nota, #ponentes .cv-nota, #eposteres-resumen .cv-nota, #acceso .cv-nota, #eposteres .cv-nota,
.cv-hero .cv-hueco, #fechas .cv-hueco, #programa .cv-hueco, #ponentes .cv-hueco, #acceso .cv-hueco, #eposteres .cv-hueco,
#programa .cv-pill--pend, #ponentes .cv-pill--pend, #acceso .cv-pill--pend, #programa .cv-pill--cerrada, #acceso .cv-pill--cerrada,
#ponentes .cv-marcador, #eposteres .cv-marcador, #programa .cv-marcador, #fechas .cv-marcador, #acceso .cv-marcador { color:var(--t-oscuro-3); }

/* ── Botones: uno primario, uno secundario ─────────────────────────────────── */
.cv-acciones { display:flex; flex-wrap:wrap; gap:var(--e3); margin-top:var(--e6); }
.cv-btn { display:inline-flex; align-items:center; justify-content:center; min-height:52px; padding:0 26px; border-radius:26px;
          font:800 16px var(--f-rotulo); letter-spacing:.02em; text-decoration:none; border:2px solid transparent; }
.cv-btn--primario { background:var(--oro); color:var(--tinta) !important; box-shadow:0 10px 26px rgba(240,180,36,.28); }
.cv-btn--primario:hover { background:var(--oro-claro); }
.cv-btn--sec { color:var(--t-claro) !important; border-color:currentColor; }
.cv-hero .cv-btn--sec:not(.cv-btn--demo), #acceso .cv-btn--sec:not(.cv-btn--demo), .cv-reloj .cv-btn--sec, #programa .cv-btn--sec:not(.cv-btn--demo), #eposteres-resumen .cv-btn--sec:not(.cv-btn--demo) { color:var(--t-oscuro) !important; }
.cv-btn--sec:hover { background:rgba(23,162,184,.12); }
/* Pago, envío y registro: demostrativos e inactivos durante la revisión */
.cv-btn--demo, .cv-btn--demo:hover { background:#E4E7EA !important; color:#3F4A51 !important; border:2px dashed #7A858C !important; box-shadow:none;
             cursor:not-allowed; flex-direction:column; gap:2px; line-height:1.2; padding-top:6px; padding-bottom:6px; }
.cv-demo { font:700 12px var(--f-rotulo); letter-spacing:.08em; text-transform:uppercase; }
.cv-acciones--sec { margin-top:var(--e3); }
@media (prefers-reduced-motion:no-preference){ .cv-btn, .cv-nav a { transition:background .15s, color .15s, border-color .15s; } }

/* ── Marco de identidad y navegación del congreso ──────────────────────────── */
.cv-marco { padding-top:0; padding-bottom:0; }
.cv-marco__fila { display:flex; align-items:center; justify-content:space-between; gap:var(--e4); flex-wrap:wrap; padding:var(--e5) 0 var(--e4); }
.cv-marco__logo { height:38px; width:auto; }
.cv-marco__logo--claro { display:none; }
.cv-marco__estado { margin:0; font:700 13px var(--f-rotulo); letter-spacing:.24em; text-transform:uppercase; color:var(--t-oscuro-3); }
.cv-estado { color:#04222A; background:linear-gradient(180deg,var(--turq-claro),var(--turq)); padding:5px 12px; border-radius:14px; margin-right:var(--e3); letter-spacing:.18em; }
.cv-nav ul { list-style:none; margin:0; padding:0; display:flex; overflow-x:auto; scrollbar-width:thin; border-top:1px solid var(--borde-oscuro); }
.cv-nav li { flex:none; }
.cv-nav a { display:flex; align-items:center; gap:var(--e2); min-height:52px; padding:0 18px 0 0; margin-right:6px; text-decoration:none; white-space:nowrap;
            font:700 15px var(--f-texto); color:var(--t-oscuro-2); border-bottom:3px solid transparent; }
.cv-nav a:hover, .cv-nav a:focus-visible, .cv-nav a[aria-current] { color:#fff; border-bottom-color:var(--oro); }
.cv-nav__n { font:800 13px var(--f-rotulo); letter-spacing:.1em; color:var(--turq-sobre-oscuro); }
@media (min-width:761px){ .cv-nav ul { flex-wrap:wrap; overflow:visible; } }
@media (max-width:760px){ .cv-nav ul { -webkit-mask-image:linear-gradient(to right,#000 82%,transparent); mask-image:linear-gradient(to right,#000 82%,transparent); padding-right:32px; } }

/* ── Portada ───────────────────────────────────────────────────────────────── */
.cv-hero { position:relative; display:grid; grid-template-columns:minmax(0,7fr) minmax(0,5fr); gap:var(--e8); align-items:center;
           padding-top:var(--e8); padding-bottom:var(--e9); }
.cv-hero::before { content:""; position:absolute; inset:0 -100vmax; z-index:0; pointer-events:none;
                   /* la caja se extiende 100vmax a cada lado: todo se ancla al centro del contenido, no a sus bordes */
                   background:radial-gradient(900px 620px at calc(50% + 620px) 0%,rgba(23,162,184,.26),transparent 62%),
                              radial-gradient(700px 520px at calc(50% - 760px) 100%,rgba(240,180,36,.10),transparent 60%); }
.cv-hero > * { position:relative; z-index:1; }
.cv-kicker { font:700 14px/1.6 var(--f-rotulo); letter-spacing:.24em; text-transform:uppercase; color:var(--turq-sobre-oscuro); max-width:48ch; margin-bottom:var(--e5) !important; }
.cv-hero__titular { font-weight:800; font-size:clamp(44px,5.8vw,78px); line-height:1.02; letter-spacing:-.025em; }
.cv-hero__titular em { font-style:normal; background:var(--linea); -webkit-background-clip:text; background-clip:text; color:transparent; }
.cv-hero__tema { margin-top:var(--e5); }
.cv-datos { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--e5); margin:var(--e6) 0 0; padding-top:var(--e4); border-top:1px solid var(--borde-oscuro); }
.cv-datos dt { font:700 13px var(--f-rotulo); letter-spacing:.2em; text-transform:uppercase; color:var(--turq-sobre-oscuro); margin-bottom:var(--e1); }
.cv-datos dd { margin:0; font:700 19px/1.35 var(--f-texto); }
.cv-cuenta { margin:var(--e4) 0 0; }
@media (max-width:560px){ .cv-datos { grid-template-columns:1fr; gap:var(--e3); } }
/* A la derecha, una «pantalla» con el marco de la transmisión: el mismo que ve quien mira el directo. */
.cv-hero__arte { position:relative; aspect-ratio:16/10; padding:calc(var(--m-borde) + var(--m-franja)); background:var(--degradado);
                 box-shadow:0 30px 80px rgba(0,0,0,.55),0 0 60px rgba(23,162,184,.2); }
.cv-hero__arte::before { content:""; position:absolute; inset:var(--m-borde); background:var(--fondo); }
.cv-hero__arte::after { content:""; position:absolute; inset:0; transform:translate(var(--m-linea),var(--m-linea)); z-index:-1;
                        border:1.5px solid rgba(44,195,218,.5); background:linear-gradient(135deg,rgba(23,162,184,.1),transparent 60%); }
.cv-hero__arte .m { position:absolute; width:18px; height:18px; z-index:1; }
.cv-hero__arte .m1 { right:-54px; top:18%; background:var(--turq); opacity:.7; } .cv-hero__arte .m2 { right:-80px; top:26%; background:var(--oro); opacity:.55; }
.cv-hero__arte .m3 { right:-54px; top:34%; background:var(--azul-linea); } .cv-hero__arte .m4 { left:-54px; bottom:14%; background:var(--turq); opacity:.4; }
.cv-hero__arte .m5 { left:-80px; bottom:22%; background:var(--burdeos); opacity:.8; } .cv-hero__arte .m6 { right:-106px; top:18%; background:var(--turq); opacity:.3; }
.cv-hero__arte .m7 { left:-54px; bottom:30%; background:var(--oro); opacity:.35; }
/* Tarjeta de decisión (convocatoria y programa): ocupa la pantalla en lugar del logo; la pantalla crece con su contenido */
.cv-hero__arte:has(.cv-decide) { aspect-ratio:auto; }
.cv-decide { position:relative; z-index:1; padding:var(--e5) var(--e5) var(--e4); }
.cv-decide__t { font:700 13px/1.4 var(--f-rotulo); letter-spacing:.22em; text-transform:uppercase; color:var(--turq-sobre-oscuro); margin:0 0 var(--e3); }
.cv-decide ul { list-style:none; margin:0; padding:0; }
.cv-decide li { display:grid; grid-template-columns:1fr auto; gap:2px var(--e3); padding:var(--e3) 0; border-top:1px solid var(--borde-oscuro); }
.cv-decide li span { font:700 18px/1.3 var(--f-texto); color:var(--t-oscuro); }
.cv-decide li strong { font:800 20px/1.3 var(--f-rotulo); color:var(--oro); text-align:right; white-space:nowrap; }
.cv-decide li em { grid-column:1 / -1; font-style:normal; font-size:14px; line-height:1.45; color:var(--t-oscuro-2); }
.cv .cv-hero__sub { margin-top:var(--e6); font-size:19px; line-height:1.55; color:var(--t-oscuro-2); max-width:58ch; }
.cv .cv-hero__precio { margin:var(--e4) 0 0; font-weight:700; font-size:16px; color:var(--t-oscuro); }
/* Distintivo «Nuevo» del e-póster */
.cv-nuevo { display:inline-block; vertical-align:.35em; margin-left:.5em; padding:3px 9px; border-radius:3px; background:var(--oro); color:var(--tinta);
            font:800 13px/1.3 var(--f-rotulo); letter-spacing:.12em; text-transform:uppercase; }
.cv-hero__logo { position:absolute; z-index:1; left:50%; top:50%; transform:translate(-50%,-50%); width:62%; height:auto; }
@media (max-width:900px){ .cv-hero { grid-template-columns:1fr; gap:var(--e7); } .cv-hero__arte { max-width:520px; width:88%; }
                          .cv-hero__arte .m1, .cv-hero__arte .m2, .cv-hero__arte .m6 { display:none; } }

/* ── Datos en filas: fechas, acceso, contacto ─────────────────────────────── */
.cv-fechas { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); column-gap:var(--e5); margin:0; }
.cv-fechas div { padding:var(--e4) 0; border-top:1px solid var(--borde-claro); }
.cv-fechas dt { font:700 13px var(--f-rotulo); letter-spacing:.2em; text-transform:uppercase; color:var(--turq-sobre-claro); margin-bottom:var(--e2); }
.cv-fechas dd { margin:0; font-weight:600; }
.cv-fechas--una { grid-template-columns:1fr; }
.cv-fechas--una div { display:grid; grid-template-columns:240px 1fr; gap:var(--e4); }
#fechas .cv-fechas div, #acceso .cv-fechas div { border-top-color:var(--borde-oscuro); }
#fechas .cv-fechas dt, #acceso .cv-fechas dt { color:var(--turq-sobre-oscuro); }
@media (max-width:560px){ .cv-fechas--una div { grid-template-columns:1fr; gap:var(--e1); } }

/* ── Listas, objetivos y ejes ─────────────────────────────────────────────── */
.cv-lista { margin:0 0 var(--e3); padding-left:0; list-style:none; }
.cv-lista li { margin:0 0 var(--e3); padding-left:26px; position:relative; }
.cv-lista li::before { content:""; position:absolute; left:0; top:.62em; width:12px; height:12px; background:var(--turq); }
.cv-ejes { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--e5); }
.cv-ejes li { display:flex; flex-direction:column; gap:var(--e3); padding-top:var(--e4); border-top:3px solid var(--turq); }
.cv-ejes li:nth-child(3n+2) { border-top-color:var(--oro); } .cv-ejes li:nth-child(3n) { border-top-color:var(--burdeos); }
.cv-eje__n { font:800 30px var(--f-rotulo); color:var(--tinta); }
@media (max-width:900px){ .cv-ejes { grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .cv-ejes { grid-template-columns:1fr; } }

/* ── Participación: dos columnas de texto, sin cajas ───────────────────────── */
.cv-grid2 { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--e7); align-items:start; }
.cv-caja { padding-top:var(--e5); border-top:3px solid var(--turq); }
.cv-caja--destacada { border-top-color:var(--oro); }
.cv-caja h3 { font:800 28px var(--f-rotulo); letter-spacing:-.01em; margin-bottom:var(--e3) !important; }
.cv-precio { font-weight:700; }
.cv-precio strong { font:800 34px var(--f-rotulo); color:var(--tinta); }
.cv-precio-grande { font:800 52px/1.05 var(--f-rotulo); letter-spacing:-.02em; margin:var(--e1) 0 var(--e2) !important; }
.cv-aviso-sec { border-left:4px solid var(--oro); padding:var(--e3) var(--e5); font-weight:600; background:var(--papel-hondo); }
.cv-pasos { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:var(--e5); counter-reset:paso; }
.cv-pasos li { counter-increment:paso; }
.cv-pasos li::before { content:"0" counter(paso); display:block; font:800 40px var(--f-rotulo); line-height:1; margin-bottom:var(--e3);
                       background:var(--linea); -webkit-background-clip:text; background-clip:text; color:transparent; }
.cv-pasos h3 { font:800 20px var(--f-rotulo); margin-bottom:var(--e2); }
.cv-pasos--tres { grid-template-columns:repeat(3,minmax(0,1fr)); }
.cv-docs { list-style:none; margin:0; padding:0; }
.cv-docs li { display:flex; justify-content:space-between; align-items:center; gap:var(--e4); flex-wrap:wrap; padding:var(--e4) 0; border-top:1px solid var(--borde-claro); }
.cv-docs li > :first-child { font-weight:700; }
.cv-docs a { color:var(--turq-sobre-claro); font-weight:700; min-height:44px; display:inline-flex; align-items:center; }
@media (max-width:900px){ .cv-grid2, .cv-pasos, .cv-pasos--tres { grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .cv-grid2, .cv-pasos, .cv-pasos--tres { grid-template-columns:1fr; } }

/* ── Formularios (demostrativos) ──────────────────────────────────────────── */
.cv-form { margin-top:var(--e6); padding:var(--e6); background:var(--blanco); border-radius:4px; box-shadow:0 1px 0 var(--borde-claro), 0 18px 40px rgba(17,38,50,.08); position:relative; }
.cv-form::before { content:""; position:absolute; left:0; top:0; right:0; height:4px; background:var(--degradado); border-radius:4px 4px 0 0; }
.cv-form fieldset { border:0; margin:0; padding:0; min-width:0; }
.cv-form legend { font:800 21px var(--f-rotulo); margin-bottom:var(--e5); padding:0; }
.cv-form__grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--e4) var(--e5); margin-bottom:var(--e5); }
.cv-campo { display:flex; flex-direction:column; gap:6px; }
.cv-campo--ancho { grid-column:1 / -1; }
.cv-campo label, .cv-campo__et { font:700 14px var(--f-texto); }
.cv-campo input[type=text], .cv-campo input[type=email], .cv-campo input[type=tel], .cv-campo select, .cv-campo textarea {
  font:500 16px var(--f-texto); padding:12px 14px; border:1.5px solid #8A969D; border-radius:4px; background:#F6F7F8; color:var(--tinta); width:100%; }
.cv-opc { display:inline-flex !important; align-items:center; gap:var(--e2); font-weight:600 !important; margin-right:var(--e4); min-height:44px; }
.cv-turnstile { border:1.5px dashed #7A858C; color:var(--t-claro-2); padding:var(--e4); font-size:14px; font-weight:600; max-width:320px; border-radius:4px; }
@media (max-width:560px){ .cv-form { padding:var(--e5) var(--e4); } .cv-form__grid { grid-template-columns:1fr; } }

/* ── Programa ─────────────────────────────────────────────────────────────── */
.cv-agenda { list-style:none; margin:0 0 var(--e6); padding:0; }
.cv-agenda li { display:grid; grid-template-columns:150px 1fr; gap:var(--e5); padding:var(--e5) 0; border-top:1px solid var(--borde-oscuro); }
.cv-agenda p { margin:0 0 var(--e1); }
.cv-agenda__tipo { font:700 13px var(--f-rotulo); letter-spacing:.22em; text-transform:uppercase; color:var(--turq-sobre-oscuro); }
.cv-agenda__q { font:700 21px/1.35 var(--f-texto); }
.cv-agenda__q a { color:var(--oro-claro); }
.cv-agenda__h { font:800 18px var(--f-rotulo); }
.cv-agenda__epo { background:linear-gradient(90deg,rgba(23,162,184,.14),transparent); padding-left:var(--e4) !important; }
.cv-agenda__act { box-shadow:inset 4px 0 0 var(--oro); padding-left:var(--e4) !important; background:linear-gradient(90deg,rgba(240,180,36,.10),transparent); }
.cv-agenda__ahora { display:inline-block; background:linear-gradient(180deg,var(--burdeos-vivo),var(--burdeos)); color:#fff; font:800 13px var(--f-rotulo);
                    letter-spacing:.18em; text-transform:uppercase; padding:5px 12px; border-radius:13px; margin-top:var(--e2); }
.cv-agenda__est { display:block; font-size:15px; color:var(--t-oscuro-3); margin-top:var(--e1); }
.cv-tz { padding:var(--e5) 0 0; border-top:1px solid var(--borde-oscuro); }
.cv-tabla { width:100%; border-collapse:collapse; margin:var(--e2) 0 var(--e4); }
.cv-tabla caption { text-align:left; padding-bottom:var(--e2); color:var(--t-oscuro-3); }
.cv-tabla th, .cv-tabla td { text-align:left; padding:var(--e3) var(--e3) var(--e3) 0; border-bottom:1px solid var(--borde-oscuro); }
.cv-tabla th { font:700 13px var(--f-rotulo); letter-spacing:.2em; text-transform:uppercase; color:var(--t-oscuro-3); }
@media (max-width:560px){ .cv-agenda li { grid-template-columns:1fr; gap:var(--e2); } }

/* ── Ponentes: el retrato con el marco de la transmisión ──────────────────── */
.cv-ponentes { display:grid; gap:var(--e7) var(--e6); grid-template-columns:repeat(3,minmax(0,1fr)); }
.cv-ponente__foto { margin:0 var(--m-linea) var(--e5) 0; position:relative; aspect-ratio:4/5; padding:calc(var(--m-borde) + var(--m-franja)); background:var(--degradado);
                    box-shadow:0 24px 60px rgba(0,0,0,.5); }
.cv-ponente__foto::after { content:""; position:absolute; inset:0; transform:translate(var(--m-linea),var(--m-linea)); z-index:-1;
                           border:1.5px solid rgba(44,195,218,.5); }
.cv-ponente__foto::before { content:""; position:absolute; inset:var(--m-borde); background:var(--fondo); }
.cv-ponente__foto img { position:relative; width:100%; height:100%; object-fit:cover; object-position:center 30%; display:block; }
.cv-ponente__txt { padding:0; }
.cv-pais { display:inline-flex; align-items:center; gap:var(--e3); font:700 13px var(--f-rotulo); letter-spacing:.22em; text-transform:uppercase; color:var(--t-oscuro-3); }
.cv-bandera { width:30px; height:20px; display:flex; align-items:center; justify-content:center; flex:none; }
.cv-bandera img { width:100%; height:100%; object-fit:contain; display:block; }
.cv-ponente h3 { font-weight:800; font-size:26px; line-height:1.15; letter-spacing:-.01em; margin:var(--e3) 0 var(--e3); }
.cv-ponente h3::after { content:""; display:block; width:56px; height:3px; border-radius:2px; background:var(--linea); margin-top:var(--e3); }
.cv-ponente__tema { font-size:17px; color:var(--t-oscuro-2); }
.cv-ponente__afil { font-size:15px; color:var(--t-oscuro-3); }
@media (max-width:900px){ .cv-ponentes { grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .cv-ponentes { grid-template-columns:1fr; } }

/* ── E-pósteres ───────────────────────────────────────────────────────────── */
.cv-epos { display:grid; gap:var(--e7) var(--e6); grid-template-columns:repeat(3,minmax(0,1fr)); }
.cv-epo__img { display:grid; place-items:center; aspect-ratio:841/1189; overflow:hidden; padding:calc(var(--m-borde) + var(--m-franja)); background:var(--degradado); position:relative; }
.cv-epo__img::before { content:""; position:absolute; inset:var(--m-borde); background:var(--fondo); }
.cv-epo__img img, .cv-epo__img .cv-hueco { position:relative; width:100%; height:100%; object-fit:contain; display:block; }
.cv-epo--vacio .cv-epo__img .cv-hueco { height:auto; width:auto; }
.cv-epo h2, .cv-epo h3 { font:700 20px/1.3 var(--f-texto); margin:var(--e4) 0 var(--e2); }
.cv-epo__acc { display:flex; gap:var(--e4); flex-wrap:wrap; }
.cv-epo__acc a { color:var(--oro-claro); font-weight:700; min-height:44px; display:inline-flex; align-items:center; }
@media (max-width:900px){ .cv-epos { grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .cv-epos { grid-template-columns:1fr; } }

/* ── Certificado ──────────────────────────────────────────────────────────── */
.cv-metodos { display:flex; flex-direction:column; gap:var(--e2); margin-top:var(--e3); }
.cv-metodos .cv-btn { width:100%; }

/* ── Preguntas ────────────────────────────────────────────────────────────── */
.cv-faq { display:grid; gap:0; max-width:900px; }
.cv-faq details { border-top:1px solid var(--borde-claro); padding:var(--e2) 0; }
.cv-faq details:last-child { border-bottom:1px solid var(--borde-claro); }
.cv-faq summary { cursor:pointer; font:700 19px var(--f-texto); min-height:52px; display:flex; align-items:center; gap:var(--e4); list-style:none; }
.cv-faq summary::-webkit-details-marker { display:none; }
.cv-faq summary::before { content:"+"; flex:none; width:28px; height:28px; display:grid; place-items:center; font:800 20px var(--f-rotulo);
                          color:#04222A; background:linear-gradient(180deg,var(--turq-claro),var(--turq)); border-radius:50%; }
.cv-faq details[open] summary::before { content:"–"; background:linear-gradient(180deg,var(--oro-claro),var(--oro)); }
.cv-faq details p { padding-left:44px; color:var(--t-claro-2); }

/* ── Ajustes de móvil ─────────────────────────────────────────────────────── */
@media (max-width:560px){
  .cv-marco__estado { display:flex; flex-wrap:wrap; align-items:center; gap:var(--e2); letter-spacing:.14em; font-size:12px; }
  .cv-estado { margin-right:0; }
  .cv-kicker { letter-spacing:.14em; font-size:13px; }
  .cv-fechas dt, .cv-datos dt, .cv-agenda__tipo { letter-spacing:.14em; }
}

/* ── Línea de tiempo de fechas clave: avanza con la fase ─────────────────── */
.cv-linea { list-style:none; margin:0 0 var(--e5); padding:0; display:grid;
            grid-template-columns:repeat(var(--hitos,8),minmax(0,1fr)); gap:0 var(--e3); position:relative; }   /* el número de hitos lo pone el generador */
.cv-linea::before { content:""; position:absolute; left:0; right:0; top:13px; height:2px; background:rgba(255,255,255,.18); }
.cv-linea::after { content:""; position:absolute; left:0; top:13px; height:2px; width:var(--avance,0%); background:var(--linea); transform-origin:left; }
.cv-hito { position:relative; padding-top:44px; }
.cv-hito__punto { position:absolute; left:0; top:4px; width:20px; height:20px; border-radius:50%; border:2px solid rgba(255,255,255,.45); background:var(--fondo); }
.cv-hito--hecho .cv-hito__punto { border-color:transparent; background:var(--degradado); }
.cv-hito--actual .cv-hito__punto { width:28px; height:28px; top:0; left:-4px; border:3px solid var(--oro); background:var(--fondo);
                                   box-shadow:0 0 0 6px rgba(240,180,36,.18),0 0 24px rgba(240,180,36,.55); }
.cv-hito__nom { font:800 16px/1.3 var(--f-rotulo); margin-bottom:var(--e2) !important; }
.cv-hito--futuro .cv-hito__nom { color:var(--t-oscuro-2); }
.cv-hito__fecha .cv-hueco { font-size:13px; color:var(--t-oscuro-3); }
.cv-hito__ahora { display:inline-block; margin-top:var(--e3) !important; font:800 12px var(--f-rotulo); letter-spacing:.2em; text-transform:uppercase;
                  color:var(--tinta); background:var(--oro); padding:4px 10px; border-radius:12px; }
@media (max-width:900px){
  .cv-linea { grid-template-columns:1fr; gap:var(--e5); padding-left:40px; }
  .cv-linea::before { left:13px; right:auto; top:0; bottom:0; width:2px; height:auto; }
  .cv-linea::after { left:13px; top:0; width:2px; height:var(--avance,0%); }
  .cv-hito { padding-top:0; } .cv-hito__punto { left:-37px; } .cv-hito--actual .cv-hito__punto { left:-41px; }
}
/* avance según la fase (hito actual) */
.cv-linea:has(.cv-hito:nth-child(1)[aria-current]) { --avance:0%; }
.cv-linea:has(.cv-hito:nth-child(5)[aria-current]) { --avance:62%; }
.cv-linea:has(.cv-hito:nth-child(6)[aria-current]) { --avance:77%; }
.cv-linea:has(.cv-hito:nth-child(7)[aria-current]) { --avance:92%; }

/* ── Por qué participar ───────────────────────────────────────────────────── */
.cv-cifras { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:var(--e5); margin:var(--e6) 0 var(--e7); }
.cv-cifra { border-top:3px solid var(--turq); padding-top:var(--e4); }
.cv-cifra:nth-child(2) { border-top-color:var(--oro); } .cv-cifra:nth-child(3) { border-top-color:var(--burdeos); }
.cv-cifra__n { font:800 clamp(44px,5vw,64px)/1 var(--f-rotulo); letter-spacing:-.03em; margin-bottom:var(--e2) !important; }
.cv-cifra__t { font-weight:600; color:var(--t-claro-2); }
.cv-razones { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--e7) var(--e6); }
.cv-razones li { position:relative; padding-left:var(--e6); }
.cv-razones li::before { content:""; position:absolute; left:0; top:6px; width:16px; height:16px; background:var(--turq); }
.cv-razones li:nth-child(3n+2)::before { background:var(--oro); } .cv-razones li:nth-child(3n)::before { background:var(--burdeos); }
.cv-razones h3 { font:800 21px var(--f-rotulo); margin-bottom:var(--e2); }
.cv-razones p { color:var(--t-claro-2); }
@media (max-width:900px){ .cv-razones { grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .cv-razones { grid-template-columns:1fr; } }
.cv-enlace { color:var(--turq-sobre-claro); font-weight:800; text-decoration:underline; text-underline-offset:4px; min-height:44px; display:inline-flex; align-items:center; }

/* ── Premio: banda oscura con oro ─────────────────────────────────────────── */
/* Premio Líder: módulo aparte con el estilo de la portada de premio.docentes20.com
   (papel #f4f0e8, Inter, títulos negros muy compactos, filetes de 1 px negros, etiquetas en mayúsculas, botón dorado) */
#premio.cv-pm { --pm-negro:#050505; --pm-papel:#f4f0e8; --pm-oro:#b89444; --pm-gris:#5E5B55; --pm-linea:#191919;
  display:grid; grid-template-columns:190px minmax(0,1fr) 280px; gap:clamp(18px,4vw,56px); align-items:end;
  padding-top:var(--banda); padding-bottom:var(--banda); font-family:Inter, Arial, sans-serif; color:var(--pm-negro);
  background:var(--pm-papel); box-shadow:0 0 0 100vmax var(--pm-papel); clip-path:inset(0 -100vmax);
  border-top:1px solid var(--pm-linea); border-bottom:1px solid var(--pm-linea); }
#premio.cv-pm::before { content:""; position:absolute; left:-100vmax; right:-100vmax; top:-1px; border-top:1px solid var(--pm-linea); }
#premio.cv-pm { position:relative; }
.cv-pm__label { margin:0 0 18px !important; color:var(--pm-gris); font:900 13px/1.3 Inter, Arial, sans-serif; text-transform:uppercase; letter-spacing:0; }
.cv-pm__titulo h2 { font:800 clamp(52px,7.2vw,112px)/.92 Inter, Arial, sans-serif; letter-spacing:-.035em; margin:0; color:var(--pm-negro); }
.cv .cv-pm__lead { margin:24px 0 0; max-width:46ch; font:500 18px/1.5 Inter, Arial, sans-serif; color:#2B2926; }
.cv-pm__meta, .cv-pm__cats { font:800 13px/1.35 Inter, Arial, sans-serif; text-transform:uppercase; }
.cv-pm__ini { display:flex; align-items:center; gap:12px; margin-bottom:20px; }
.cv-pm__ini img { width:44px; height:44px; object-fit:contain; }
.cv .cv-pm__ini p { margin:0; font-weight:900; font-size:12px; }
.cv-pm__ini span { display:block; color:var(--pm-gris); font-weight:800; }
.cv-pm__meta ul, .cv-pm__cats ul { list-style:none; margin:0; padding:0; border-top:1px solid var(--pm-linea); }
.cv-pm__meta li, .cv-pm__cats li { padding:10px 0; border-bottom:1px solid var(--pm-linea); }
.cv-pm__meta .cv-hueco { text-transform:none; font-weight:600; }
.cv-pm__btn { display:inline-block; margin-top:18px; padding:13px 16px; background:var(--pm-oro); color:var(--pm-negro) !important;
  font:900 14px/1.2 Inter, Arial, sans-serif; text-transform:uppercase; text-decoration:none; }
.cv-pm__btn:hover, .cv-pm__btn:focus-visible { background:#e5c56e; }
@media (max-width:980px){ #premio.cv-pm { grid-template-columns:1fr 1fr; align-items:start; }
  .cv-pm__titulo { grid-column:1 / -1; grid-row:1; } }
@media (max-width:600px){ #premio.cv-pm { grid-template-columns:1fr; } }

/* ── Respaldo institucional ───────────────────────────────────────────────── */
.cv-ids { margin-top:var(--e7); padding-top:var(--e5); border-top:1px solid var(--borde-claro); }
.cv-ids ul { list-style:none; margin:var(--e3) 0 0; padding:0; display:flex; flex-wrap:wrap; gap:var(--e3) var(--e6); }
.cv-ids li { font-weight:700; } .cv-ids li span { font:700 12px var(--f-rotulo); letter-spacing:.18em; text-transform:uppercase; color:var(--turq-sobre-claro); margin-right:var(--e2); }
.cv-ids a { color:var(--turq-sobre-claro); }

/* ═════════ Movimiento al desplazarse (solo CSS; sin JavaScript) ═════════
   Scroll-driven animations: el navegador que no las soporta muestra la página quieta y completa.
   Se desactivan si el visitante pide menos movimiento. */
@media (prefers-reduced-motion:no-preference){
  @supports (animation-timeline: view()){
    /* Figura en el margen derecho: cambia de forma y de color a lo largo de toda la página */
    .cv::before { content:""; position:fixed; z-index:30; right:34px; top:50vh; width:64px; height:64px; margin-top:-32px; pointer-events:none;
                  background:var(--degradado); opacity:.9; box-shadow:0 0 30px rgba(23,162,184,.35);
                  animation:cv-figura linear both; animation-timeline:scroll(root); }
    @keyframes cv-figura {
      0%   { clip-path:polygon(50% 0,100% 0,100% 50%,100% 100%,50% 100%,0 100%,0 50%,0 0); transform:rotate(0deg) scale(.8); filter:hue-rotate(0deg); }
      25%  { clip-path:polygon(50% 0,75% 25%,100% 50%,75% 75%,50% 100%,25% 75%,0 50%,25% 25%); transform:rotate(90deg) scale(1); }
      50%  { clip-path:polygon(50% 0,93% 25%,93% 50%,93% 75%,50% 100%,7% 75%,7% 50%,7% 25%); transform:rotate(180deg) scale(.9); filter:hue-rotate(-40deg); }
      75%  { clip-path:polygon(50% 0,85% 15%,100% 50%,85% 85%,50% 100%,15% 85%,0 50%,15% 15%); transform:rotate(270deg) scale(1.1); }
      100% { clip-path:polygon(50% 0,100% 0,100% 50%,100% 100%,50% 100%,0 100%,0 50%,0 0); transform:rotate(360deg) scale(.8); filter:hue-rotate(0deg); }
    }
    /* La red de moléculas de la portada gira y se aleja al bajar */
    .cv-hero::before { animation:cv-moleculas linear both; animation-timeline:scroll(root); animation-range:0 110vh; }
    @keyframes cv-moleculas { to { transform:translateY(22vh) rotate(-6deg) scale(1.08); opacity:.35; } }
    /* La pantalla de la portada se inclina y se asienta */
    .cv-hero__arte { animation:cv-pantalla ease-out both; animation-timeline:view(); animation-range:entry 0% cover 50%; }
    @keyframes cv-pantalla { from { transform:perspective(1200px) rotateY(-16deg) rotateX(6deg) translateY(30px); opacity:0; } }
    /* Títulos de sección: entran de abajo; su línea de color crece */
    .cv-sec__cab h2 { animation:cv-sube ease-out both; animation-timeline:view(); animation-range:entry 10% cover 30%; }
    .cv-sec__cab h2::after { animation:cv-crece ease-out both; animation-timeline:view(); animation-range:entry 30% cover 40%; transform-origin:left; }
    @keyframes cv-sube { from { opacity:0; transform:translateY(40px); } }
    @keyframes cv-crece { from { transform:scaleX(0); } }
    /* Retratos, e-pósteres, medalla y razones: aparecen al entrar */
    .cv-ponente, .cv-epo, .cv-razones li, .cv-cifra, .cv-ejes li, .cv-pasos li { animation:cv-aparece ease-out both; animation-timeline:view(); animation-range:entry 0% cover 25%; }
    @keyframes cv-aparece { from { opacity:0; transform:translateY(48px) scale(.97); } }
    .cv-premio__medalla { animation:cv-medalla ease-out both; animation-timeline:view(); animation-range:entry 0% cover 45%; }
    @keyframes cv-medalla { from { transform:rotateY(80deg) scale(.7); opacity:0; } }
    /* La línea de tiempo se llena al entrar en pantalla */
    .cv-linea::after { animation:cv-avance ease-out both; animation-timeline:view(); animation-range:entry 20% cover 45%; }
    @keyframes cv-avance { from { transform:scaleX(0); } }
    @media (max-width:900px){ .cv-linea::after { transform-origin:top; } @keyframes cv-avance { from { transform:scaleY(0); } } }
  }
}
@media (max-width:1380px){ .cv::before { display:none; } }   /* la figura vive en el margen: sin margen, no se muestra */

/* ── Llamadas a la acción entre bloques ─────────────────────────────────────
   Banda oscura a sangre con la línea degradada arriba y abajo; una sola acción, el botón primario. */
.cv-cta { position:relative; display:flex; align-items:center; justify-content:space-between; gap:var(--e5) var(--e7); flex-wrap:wrap;
          padding-top:var(--e7); padding-bottom:var(--e7); background:#0C2330; color:var(--t-oscuro);
          box-shadow:0 0 0 100vmax #0C2330; clip-path:inset(0 -100vmax); }
.cv-cta::before, .cv-cta::after { content:""; position:absolute; left:-100vmax; right:-100vmax; height:3px; background:var(--degradado); }
.cv-cta::before { top:0; } .cv-cta::after { bottom:0; }
.cv-cta__txt { flex:1 1 420px; max-width:760px; }
.cv .cv-cta__t { font:800 clamp(22px,2.4vw,30px)/1.2 var(--f-rotulo); letter-spacing:-.01em; margin:0 0 var(--e2); color:#fff; }
.cv .cv-cta p:not(.cv-cta__t) { margin:0; font-size:17px; line-height:1.55; color:var(--t-oscuro-2); }
.cv-cta .cv-btn { flex:0 0 auto; }
@media (max-width:560px){ .cv-cta { padding-top:var(--e6); padding-bottom:var(--e6); } .cv-cta .cv-btn { width:100%; justify-content:center; } }

/* ── Partículas de la portada ───────────────────────────────────────────────
   Como las de la portada de docentes20.com (puntos que derivan, enlaces por cercanía, el cursor los atrae),
   con la paleta del congreso. Lienzo a sangre detrás del texto; con «menos movimiento», un fotograma fijo. */
.cv-hero > .cv-part { position:absolute; z-index:0; top:0; bottom:0; left:50%; width:100vw; height:100%; transform:translateX(-50%);
                      pointer-events:none; display:block; }

/* ── Agenda: filtro por tipo y hora local ───────────────────────────────────
   El filtro es CSS puro (radios + :has); la hora local la calcula un script pequeño con Intl. */
.cv-reloj { display:grid; gap:var(--e3); margin:0 0 var(--e5); padding:var(--e4) var(--e5); border:1px solid var(--borde-oscuro); background:rgba(255,255,255,.03); }
.cv .cv-reloj__estado { margin:0; font-size:17px; }
.cv-reloj__ctl { display:flex; flex-wrap:wrap; align-items:center; gap:var(--e3) var(--e4); }
.cv-reloj__ctl label { font-size:15px; color:var(--t-oscuro-2); }
.cv-reloj select { min-height:44px; padding:8px 12px; font:600 16px var(--f-texto); background:#0E2735; color:#fff; border:1px solid rgba(95,212,230,.45); border-radius:6px; }
.cv-reloj .cv-nota { margin:0; }
.cv-filtro { display:flex; flex-wrap:wrap; align-items:center; gap:var(--e2); margin:0 0 var(--e4); padding:0; border:0; }
.cv-filtro legend { float:left; margin-right:var(--e3); font:700 13px var(--f-rotulo); letter-spacing:.2em; text-transform:uppercase; color:var(--turq-sobre-oscuro); }
.cv-filtro input { position:absolute; opacity:0; width:1px; height:1px; }
.cv-filtro label { display:inline-flex; align-items:center; min-height:44px; padding:0 18px; border:1.5px solid rgba(95,212,230,.45); border-radius:22px;
                   font:700 15px var(--f-texto); color:var(--t-oscuro); cursor:pointer; }
.cv-filtro input:checked + label { background:var(--turq-sobre-oscuro); border-color:var(--turq-sobre-oscuro); color:var(--tinta); }
.cv-filtro input:focus-visible + label { outline:3px solid var(--oro); outline-offset:2px; }
.cv-prog:has(#cv-ver-pon:checked) .cv-agenda--filtrable li.es-epo,
.cv-prog:has(#cv-ver-epo:checked) .cv-agenda--filtrable li:not(.es-epo) { display:none; }
/* los e-pósteres, filas pequeñas entre ponencias */
.cv-agenda li.es-epo { padding:var(--e2) 0 var(--e2) var(--e4); }
.cv-agenda li.es-epo .cv-agenda__h { font-size:15px; font-weight:700; color:var(--t-oscuro-2); }
.cv-agenda li.es-epo .cv-agenda__tipo { font-size:13px; color:var(--oro-claro); }
.cv-agenda li.es-epo .cv-agenda__q { font:600 16px/1.4 var(--f-texto); color:var(--t-oscuro-2); }
.cv-agenda li.es-epo p { margin:0; }

/* ── Aliados: muro de logos sobre tarjetas blancas (los logos traen fondos propios) ── */
.cv-aliados { list-style:none; margin:var(--e5) 0; padding:0; display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:var(--e3); }
.cv-aliados li { display:grid; place-items:center; aspect-ratio:3/2; padding:var(--e3); background:#fff; border:1px solid #E1E6EA; border-radius:8px; }
.cv-aliados li a { display:grid; place-items:center; width:100%; height:100%; }
.cv-aliados img { max-width:100%; max-height:78px; width:auto; height:auto; object-fit:contain; }
.cv-aliados li:hover, .cv-aliados li:focus-within { border-color:var(--turq); box-shadow:0 6px 18px rgba(17,38,50,.10); }
@media (max-width:560px){ .cv-aliados { grid-template-columns:repeat(3,1fr); gap:var(--e2); } .cv-aliados img { max-height:52px; } }

/* ── Patrocinio: resumen en la página y página propia ───────────────────────── */
.cv-patro { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:var(--e7); align-items:center; }
.cv-patro__niv { list-style:none; margin:var(--e5) 0 0; padding:0; display:grid; grid-template-columns:repeat(4,1fr); gap:var(--e3); }
.cv-patro__niv li { padding:var(--e4); border:1px solid #D5DCE1; border-top:4px solid var(--oro); background:#fff; }
.cv-patro__niv span { display:block; font:800 13px var(--f-rotulo); letter-spacing:.18em; text-transform:uppercase; color:var(--t-claro-2, #3C5260); }
.cv-patro__niv strong { font:800 22px var(--f-rotulo); }
.cv-patro__acc .cv-nota { margin-top:var(--e3); }
@media (max-width:900px){ .cv-patro { grid-template-columns:1fr; gap:var(--e5); } .cv-patro__niv { grid-template-columns:repeat(2,1fr); } }
.cv-dossier { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:var(--e4) var(--e7); margin:var(--e7) 0;
              padding:var(--e6); background:var(--fondo); color:var(--t-oscuro); border-left:6px solid var(--oro); }
.cv-dossier h2 { font-size:clamp(24px,2.6vw,32px); margin:0 0 var(--e2) !important; color:#fff; }
.cv-dossier > div { flex:1 1 380px; }
.cv .cv-dossier p { color:var(--t-oscuro-2); margin:0; }
.cv .cv-dossier .cv-marcador, .cv-dossier .cv-nota { color:var(--t-oscuro-3); }
.cv-dossier .cv-hueco { color:var(--t-oscuro-2); border-color:rgba(255,255,255,.4); }
.cv-dossier a:not(.cv-btn) { color:var(--turq-sobre-oscuro); }
.cv-niveles { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:var(--e4); margin-top:var(--e4); }
.cv-nivel { display:flex; flex-direction:column; padding:var(--e5); background:#fff; border:1px solid #D5DCE1; border-top:6px solid var(--oro); }
.cv-nivel h2 { font-size:24px; margin:0 0 var(--e2) !important; }
.cv-nivel--oficial { border-top-color:var(--oro); } .cv-nivel--eposter { border-top-color:var(--turq); }
.cv-nivel--becas { border-top-color:var(--burdeos); } .cv-nivel--alianza { border-top-color:#8A99A3; }
.cv-nivel h2 { font-size:22px; line-height:1.2; }
.cv-nivel__precio { font:800 18px var(--f-rotulo); }
.cv-patro__niv span { font-size:14px; letter-spacing:.06em; text-transform:none; font-weight:800; color:var(--tinta); }
.cv .cv-nivel__precio { margin:0 0 var(--e4); } .cv-nivel__precio strong { font:800 28px var(--f-rotulo); }
.cv-nivel__precio span { font-size:14px; color:#4A5A64; text-transform:uppercase; letter-spacing:.12em; }
.cv-nivel .cv-lista { flex:1; }
@media (max-width:1100px){ .cv-niveles { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:600px){ .cv-niveles { grid-template-columns:1fr; } }
.cv-reloj__btn { background:transparent; font-family:inherit; cursor:pointer; }

/* ── Escena de desplazamiento (parallax de partículas) ───────────────────────
   Sin JS: lista de pasos sobre banda oscura. Con JS (.js-escena): 8 pantallas de recorrido, lienzo pegado y un paso visible a la vez. */
.cv-escena { max-width:var(--ancho); margin:0 auto; padding:var(--e8) var(--margen); color:var(--t-oscuro); background:var(--fondo);
             box-shadow:0 0 0 100vmax var(--fondo); clip-path:inset(0 -100vmax); position:relative; }
.cv-escena__lienzo { display:none; }
.cv-escena__pasos { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:var(--e5); }
.cv .cv-escena__t { font:800 clamp(26px,3vw,40px)/1.1 var(--f-rotulo); letter-spacing:-.02em; margin:0 0 var(--e2); color:#fff; }
.cv .cv-escena__paso p:not(.cv-escena__t) { color:var(--t-oscuro-2); font-size:18px; line-height:1.5; margin:0 0 var(--e4); }
.cv-escena.js-escena { height:calc(var(--pasos, 8) * 58vh); padding-top:0; padding-bottom:0; }   /* 58vh por paso: el recorrido es más corto y rápido */
.js-escena, .js-escena .cv-escena__pega { background:var(--fondo-escena, var(--fondo)); }
.js-escena { box-shadow:0 0 0 100vmax var(--fondo-escena, var(--fondo)); transition:none; }
.js-escena .cv-escena__pega { position:sticky; top:0; height:100vh; height:100svh; overflow:hidden; }
.js-escena .cv-escena__lienzo { display:block; position:absolute; top:0; bottom:0; left:50%; width:100vw; height:100%; transform:translateX(-50%); }
/* viñeta: oscurece los bordes de la banda y concentra la luz en la figura */
.js-escena .cv-escena__pega::after { content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(ellipse 70% 80% at 62% 50%, transparent 55%, rgba(0,0,0,.28) 100%); }
.js-escena .cv-escena__pasos { display:block; position:absolute; left:0; top:50%; transform:translateY(-50%); width:38%; z-index:1; }
.js-escena .cv-escena__paso { position:absolute; left:0; top:0; transform:translateY(calc(-50% + 34px)); opacity:0; pointer-events:none;
  transition:opacity .5s cubic-bezier(.2,.7,.2,1), transform .6s cubic-bezier(.2,.7,.2,1); }
.js-escena .cv-escena__paso.es-activo { opacity:1; transform:translateY(-50%); pointer-events:auto; transition-delay:.12s; }
.js-escena .cv-escena__t { font-size:clamp(34px,4.4vw,64px); }
.js-escena .cv-escena__t::before { content:""; display:block; width:44px; height:3px; margin:0 0 var(--e4); background:var(--linea); border-radius:2px;
  transform-origin:left; transform:scaleX(0); transition:transform .7s cubic-bezier(.2,.7,.2,1) .25s; }
.js-escena .es-activo .cv-escena__t::before { transform:scaleX(1); }
@media (max-width:760px){
  .js-escena .cv-escena__pasos { width:auto; right:0; top:auto; bottom:11vh; transform:none; }
  .js-escena .cv-escena__paso { top:auto; bottom:0; transform:translateY(30px); } .js-escena .cv-escena__paso.es-activo { transform:none; }
  .js-escena .cv-escena__t { font-size:32px; } .js-escena .cv-escena__t::before { margin-bottom:var(--e3); } }
@media (min-width:761px) and (max-height:600px){   /* pantallas bajas: rótulo y texto más contenidos para que el paso quepa junto a la figura */
  .js-escena .cv-escena__t { font-size:clamp(28px,3.4vw,42px); } .cv .js-escena .cv-escena__paso p:not(.cv-escena__t) { font-size:16px; margin-bottom:var(--e3); } }
.en-escena .cv::before { opacity:0 !important; transition:opacity .3s; }   /* la figura del margen se aparta durante la escena */

/* Dos secciones claras seguidas dejaban casi el doble de aire que una banda oscura: se acerca la segunda. */
.cv-sec + .cv-sec { padding-top:calc(var(--banda) * .55); }
#fechas, #programa, #ponentes, #eposteres-resumen, #acceso, #eposteres, #premio.cv-pm { padding-top:var(--banda); }

/* Hito continuo: no es una fecha pendiente, es una regla del proceso (decisiones y materiales) */
.cv-hito--continuo .cv-hito__punto { background:transparent; border:2px dashed var(--turq-sobre-oscuro); }
.cv-hito--continuo .cv-hito__fecha { color:var(--t-oscuro-2); font-style:italic; font-size:14px; line-height:1.45; }

/* La línea con 8 hitos no cabe en pantallas medianas: se parte en dos filas parejas y la barra se oculta. */
@media (max-width:1180px){ .cv-linea { grid-template-columns:repeat(4,minmax(0,1fr)); row-gap:var(--e6); }
                           .cv-linea::before, .cv-linea::after { display:none; } }
@media (max-width:720px){ .cv-linea { grid-template-columns:repeat(2,minmax(0,1fr)); } }

/* Nota de evaluación continua: explica el proceso sin meterlo en la línea de tiempo */
.cv .cv-continua { margin:var(--e4) 0 0; padding:var(--e4) var(--e5); border-left:4px solid var(--turq); background:rgba(23,162,184,.07);
                   font-size:16px; line-height:1.6; }
