/* Tema "Academia" de la landing v2 — se carga después de landing_v2.css y reemplaza a landing_v2_tema.css.
   Traslada el rediseño "Academic Prestige Modern" (Stitch) a la plantilla: azul marino que enmarca, azul de
   marca para la acción, superficies claras teñidas, tarjetas redondeadas con sombra suave y bloques de
   cristal sobre fondos marinos. Todo se deriva de las variables de marca de LandingConfiguracion
   (--primario, --acento, --oscuro, --fondo), así que cada instancia conserva su identidad. */

:root {
    --display: var(--fuente);
    --marino: color-mix(in srgb, var(--primario) 70%, var(--oscuro));
    --marino-profundo: color-mix(in srgb, var(--primario) 40%, var(--oscuro));
    --tinta: color-mix(in srgb, var(--primario) 25%, var(--oscuro));
    --cielo: color-mix(in srgb, var(--primario) 42%, #fff);
    --tinte: color-mix(in srgb, var(--primario) 13%, #fff);
    --tinte-suave: color-mix(in srgb, var(--primario) 6%, #fff);
    --sup-suave: color-mix(in srgb, var(--primario) 3%, color-mix(in srgb, var(--fondo) 50%, #fff));
    --texto: #41474F;
    --muted: #5B6573;
    --linea: color-mix(in srgb, var(--tinta) 12%, #fff);
    --linea-suave: color-mix(in srgb, var(--tinta) 7%, #fff);
    --radio: 16px;
    --radio-sm: 10px;
    --radio-lg: 24px;
    --sombra: 0 1px 2px color-mix(in srgb, var(--tinta) 5%, transparent), 0 4px 20px -2px color-mix(in srgb, var(--tinta) 8%, transparent);
    --sombra-alta: 0 2px 4px color-mix(in srgb, var(--tinta) 5%, transparent), 0 14px 30px -6px color-mix(in srgb, var(--primario) 22%, transparent);
    --sombra-flotante: 0 2px 6px color-mix(in srgb, var(--tinta) 8%, transparent), 0 28px 56px -20px color-mix(in srgb, var(--tinta) 38%, transparent);
    --ancho: 1240px;
    --fondo-seccion: #fff;
}

html { -webkit-tap-highlight-color: transparent; scrollbar-color: var(--cielo) transparent; }
body { color: var(--texto); caret-color: var(--primario); touch-action: manipulation; }
::selection { background: var(--primario); color: #fff; }

h1, h2, h3 { font-family: var(--display); color: var(--tinta); text-wrap: balance; }
p { text-wrap: pretty; }
a { text-underline-offset: .18em; }
.lv-seccion[id], .lv-hero[id] { scroll-margin-top: 88px; }

:focus-visible { outline: 3px solid var(--primario); outline-offset: 3px; }
.lv-fondo--oscuro :focus-visible, .lv-simulador :focus-visible, .lv-cta :focus-visible, .lv-footer :focus-visible { outline-color: #fff; }

/* ── Encabezado ─────────────────────────────────────────────── */
.lv-header {
    background: rgba(255, 255, 255, .88); backdrop-filter: saturate(160%) blur(12px);
    border-bottom: 1px solid transparent;
    transition: border-color .2s ease, box-shadow .2s ease;
}
.lv-header.es-flotando { border-bottom-color: var(--linea-suave); box-shadow: 0 8px 24px -18px color-mix(in srgb, var(--tinta) 45%, transparent); }
.lv-header__in { min-height: 76px; }
.lv-marca img { max-height: 46px; }
.lv-marca__siglas { font-weight: 700; font-size: 1.4rem; letter-spacing: -.02em; color: var(--tinta); }
.lv-nav { align-items: center; gap: .15rem; }
.lv-nav a, .lv-nav summary {
    padding: .5rem .7rem; border-radius: 8px; white-space: nowrap;
    color: var(--texto); font-size: .85rem; font-weight: 600; text-decoration: none;
    transition: color .15s ease, background-color .15s ease;
}
.lv-nav a:hover, .lv-nav summary:hover { background: var(--tinte-suave); color: var(--tinta); }
.lv-nav { min-width: 0; }
.lv-header__acciones { flex-shrink: 0; }
.lv-enlace-login { display: inline-flex; align-items: center; gap: .4rem; font-size: .85rem; font-weight: 600; color: var(--primario); white-space: nowrap; }
.lv-enlace-login:hover { color: var(--tinta); }
.lv-header .lv-btn { min-height: 42px; padding: .55rem 1.2rem; font-size: .85rem; }
.lv-menu-btn { background: var(--tinte-suave); }

/* Catálogo (Oferta académica) en el menú */
.lv-nav-catalogo { position: relative; }
.lv-nav-catalogo summary { list-style: none; display: inline-flex; align-items: center; gap: .35rem; cursor: pointer; user-select: none; }
.lv-nav-catalogo summary::-webkit-details-marker { display: none; }
.lv-nav-catalogo summary i { font-size: .65rem; transition: transform .2s ease; }
.lv-nav-catalogo[open] summary { color: var(--tinta); }
.lv-nav-catalogo[open] summary i { transform: rotate(180deg); }
.lv-nav-catalogo__menu {
    position: absolute; top: calc(100% + 8px); left: 0; z-index: 50; min-width: 260px;
    padding: .35rem; margin: 0; list-style: none; background: #fff;
    border: 1px solid var(--linea-suave); border-radius: 12px; box-shadow: var(--sombra-alta);
}
.lv-nav-catalogo__menu a { display: block; padding: .55rem .75rem; border-radius: 8px; font-weight: 500; }
.lv-nav-catalogo__menu li:first-child a { font-weight: 700; color: var(--tinta); }
.lv-nav-catalogo__menu li:first-child { border-bottom: 1px solid var(--linea-suave); margin-bottom: .25rem; padding-bottom: .25rem; }

/* "Más": secciones que no caben a la vista. En el menú móvil se listan planas (.lv-nav__resto). */
.lv-nav__resto { display: none; }
.lv-nav-mas .lv-nav-catalogo__menu { left: auto; right: 0; min-width: 200px; }
.lv-nav-mas .lv-nav-catalogo__menu li:first-child { border-bottom: 0; margin-bottom: 0; padding-bottom: 0; }
.lv-nav-mas .lv-nav-catalogo__menu li:first-child a { font-weight: 500; color: var(--texto); }

/* ── Botones ───────────────────────────────────────────────── */
.lv-btn {
    border-radius: var(--radio-sm); font-weight: 600;
    transition: background-color .2s ease, color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.lv-btn--primario:hover { box-shadow: 0 8px 16px -4px color-mix(in srgb, var(--primario) 45%, transparent); }
.lv-btn--grande { min-height: 52px; padding: .85rem 1.6rem; border-radius: 999px; font-size: .95rem; }
.lv-btn--grande.lv-btn--primario { box-shadow: 0 10px 20px -8px color-mix(in srgb, var(--primario) 60%, transparent); }
.lv-btn--grande:hover { transform: translateY(-2px); }
.lv-btn--grande:active { transform: translateY(0); }
.lv-btn--suave { background: #fff; color: var(--tinta); box-shadow: var(--sombra); }
.lv-btn--suave:hover { background: var(--tinte-suave); color: var(--tinta); box-shadow: var(--sombra-alta); }
.lv-btn--claro { color: var(--marino-profundo); box-shadow: 0 10px 24px -10px rgba(0, 0, 0, .45); }
.lv-btn--claro:hover { background: var(--tinte-suave); color: var(--marino-profundo); }
.lv-btn--oscuro { background: var(--marino-profundo); }
.lv-btn--oscuro:hover { filter: none; background: var(--marino); }
.lv-btn--acento, .lv-btn--acento:hover { color: var(--tinta); }
.lv-btn--whatsapp { background: #0E7C40; box-shadow: 0 10px 24px -10px rgba(0, 0, 0, .45); }
.lv-btn--whatsapp:hover { background: #0B6936; }
.lv-btn--bloque { border-radius: 12px; min-height: 50px; }

/* Rótulo sobre los títulos: píldora teñida. */
.lv-eyebrow {
    display: inline-flex; align-items: center; gap: .5rem;
    padding: .3rem .95rem; margin-bottom: .9rem; border-radius: 999px;
    background: var(--tinte); color: var(--tinta);
    font-size: .75rem; font-weight: 700; letter-spacing: .08em; line-height: 1.35; text-transform: uppercase;
}
.lv-eyebrow--claro { background: rgba(255, 255, 255, .12); color: #fff; }
.lv-eyebrow--claro::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: var(--cielo); }

.lv-chips { gap: .5rem; margin-top: 1.75rem; }
.lv-chips li {
    display: inline-flex; align-items: center; gap: .5rem;
    padding: .4rem .8rem; border: 0; border-radius: 10px;
    background: #fff; box-shadow: var(--sombra);
    font-size: .82rem; font-weight: 600; color: var(--texto);
}
.lv-chips li::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--primario); }
.lv-chips--peq { gap: .4rem; margin-top: 1.1rem; }
.lv-chips--peq li { padding: .25rem .6rem; border-radius: 6px; background: color-mix(in srgb, var(--tinta) 6%, #fff); box-shadow: none; font-size: .75rem; }
.lv-chips--peq li::before { content: none; }

.lv-pill { padding: .2rem .7rem; font-size: .72rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }

/* ── Portada ───────────────────────────────────────────────── */
.lv-hero {
    position: relative; overflow: hidden; isolation: isolate;
    padding: clamp(48px, 7vw, 88px) 0 clamp(72px, 9vw, 112px);
    background: linear-gradient(180deg, #fff 0%, var(--tinte-suave) 55%, #fff 100%);
}
.lv-hero::before, .lv-hero::after {
    content: ''; position: absolute; z-index: -1; border-radius: 50%; pointer-events: none; filter: blur(90px);
}
.lv-hero::before { top: -140px; left: -140px; width: 420px; height: 420px; background: color-mix(in srgb, var(--primario) 16%, transparent); }
.lv-hero::after { top: 28%; right: -120px; width: 520px; height: 520px; background: color-mix(in srgb, var(--cielo) 34%, transparent); }
.lv-hero__in { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(2rem, 4vw, 3.5rem); align-items: center; }
.lv-hero .lv-eyebrow { background: #fff; box-shadow: var(--sombra); }
.lv-hero .lv-eyebrow::before {
    content: ''; width: 8px; height: 8px; border-radius: 50%; background: var(--primario);
    animation: lv-pulso 2.4s ease-in-out infinite;
}
.lv-hero h1 {
    font-size: clamp(2.25rem, 4.6vw, 3.5rem); font-weight: 700; letter-spacing: -.02em; line-height: 1.12;
    max-width: 17ch;
}
.lv-hero__lema { margin-top: .9rem; font-size: clamp(1.1rem, 1.8vw, 1.3rem); font-weight: 600; color: var(--primario); }
.lv-hero__texto { margin: 1.1rem 0 2rem; max-width: 34rem; font-size: 1.125rem; line-height: 1.6; color: var(--texto); }
.lv-hero__arte { border: 1px solid var(--linea-suave); border-radius: var(--radio-lg); box-shadow: var(--sombra-flotante); }
.lv-hero__monograma { font-weight: 700; letter-spacing: -.03em; }

/* Tarjeta del simulador en la portada */
.lv-hero-sim { position: relative; }
.lv-hero-sim__caja {
    padding: 1.5rem; border: 1px solid var(--linea-suave); border-radius: var(--radio-lg);
    background: #fff; box-shadow: var(--sombra-flotante);
    animation: lv-subir .7s cubic-bezier(.16, 1, .3, 1) backwards;
}
.lv-hero-sim__barra {
    display: flex; align-items: center; gap: .75rem;
    padding: .55rem .6rem .55rem .9rem; border-radius: 12px; background: var(--tinte-suave);
}
.lv-hero-sim__luces { display: flex; gap: .35rem; }
.lv-hero-sim__luces i { width: 10px; height: 10px; border-radius: 50%; background: #EF4444; }
.lv-hero-sim__luces i:nth-child(2) { background: #F59E0B; }
.lv-hero-sim__luces i:nth-child(3) { background: #10B981; }
.lv-hero-sim__barra b { font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--tinta); }
.lv-hero-sim__barra em {
    margin-left: auto; display: inline-flex; align-items: center; gap: .4rem;
    padding: .25rem .7rem; border-radius: 999px; background: #FDECEC; color: #B42318;
    font-style: normal; font-size: .8rem; font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap;
}
.lv-hero-sim__meta { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin: 1.1rem 0 .8rem; font-size: .85rem; color: var(--muted); }
.lv-hero-sim__meta > span:first-child { font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--primario); }
.lv-hero-sim__meta b { color: var(--tinta); font-variant-numeric: tabular-nums; }
.lv-hero-sim__areas { list-style: none; margin: 0 0 1.25rem; padding: 0; display: grid; gap: .5rem; }
.lv-hero-sim__areas li {
    display: flex; align-items: center; gap: .75rem; padding: .7rem .85rem;
    border: 1px solid var(--linea-suave); border-radius: 12px; background: #fff;
    font-size: .92rem; font-weight: 500; color: var(--tinta);
}
.lv-hero-sim__areas li > b {
    flex-shrink: 0; display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%;
    background: var(--tinte); color: var(--tinta); font-size: .78rem;
}
.lv-hero-sim__areas li > em { margin-left: auto; font-style: normal; font-size: .8rem; font-weight: 700; color: var(--primario); font-variant-numeric: tabular-nums; }

/* Próxima fecha: tarjeta flotante sobre la del simulador */
.lv-hero-sim__fecha {
    position: absolute; left: -24px; bottom: -52px; z-index: 2;
    display: flex; align-items: center; gap: .85rem; max-width: 300px;
    padding: .8rem 1.1rem .8rem .8rem; border: 1px solid var(--linea-suave); border-radius: 14px;
    background: #fff; box-shadow: var(--sombra-flotante); text-decoration: none;
    transition: transform .2s ease;
    animation: lv-subir .7s cubic-bezier(.16, 1, .3, 1) .15s backwards;
}
.lv-hero-sim__fecha:hover { transform: translateY(-2px); }
.lv-hero-sim__fecha .lv-caja-fecha { background: var(--primario); border-color: var(--primario); }
.lv-hero-sim__fecha .lv-caja-fecha b, .lv-hero-sim__fecha .lv-caja-fecha span { color: #fff; }
.lv-hero-sim__fecha-txt { display: flex; flex-direction: column; min-width: 0; line-height: 1.3; }
.lv-hero-sim__fecha-txt small { font-size: .7rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.lv-hero-sim__fecha-txt b { font-size: .95rem; color: var(--tinta); }
.lv-hero-sim__fecha-txt span { font-size: .82rem; color: var(--texto); }

/* Sin simulador: la próxima fecha ocupa la columna derecha */
.lv-proxima {
    position: relative; display: grid; grid-template-columns: 112px minmax(0, 1fr); overflow: hidden;
    border: 1px solid var(--linea-suave); border-radius: var(--radio-lg); background: #fff; box-shadow: var(--sombra-flotante);
}
.lv-proxima__talon {
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .1rem;
    padding: 1.4rem .5rem; background: linear-gradient(160deg, var(--marino-profundo), var(--primario)); color: #fff; text-align: center;
}
.lv-proxima__talon span { font-size: .75rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; opacity: .85; }
.lv-proxima__talon b { font-size: 3.2rem; font-weight: 700; line-height: 1; letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.lv-proxima__cuerpo { padding: 1.35rem 1.5rem; }
.lv-proxima__eyebrow { display: block; margin-bottom: .4rem; font-size: .7rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.lv-proxima h2 { font-size: 1.4rem; font-weight: 700; letter-spacing: -.01em; line-height: 1.2; }
.lv-proxima__detalle { margin: .35rem 0 0; font-size: .92rem; color: var(--muted); }
.lv-proxima__cuenta { margin: .9rem 0 0; font-size: .95rem; }
.lv-proxima__cuenta b { font-size: 1.15rem; color: var(--primario); font-variant-numeric: tabular-nums; }
.lv-proxima__siguientes { grid-column: 1 / -1; padding: 1rem 1.5rem 1.1rem; background: var(--tinte-suave); }
.lv-proxima__siguientes ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .45rem; }
.lv-proxima__siguientes li { display: flex; gap: 1rem; align-items: baseline; font-size: .92rem; color: var(--tinta); }
.lv-proxima__siguientes time { flex-shrink: 0; min-width: 58px; font-size: .78rem; font-weight: 700; text-transform: uppercase; color: var(--primario); }
.lv-proxima__enlace {
    grid-column: 1 / -1; display: flex; align-items: center; justify-content: center; gap: .45rem;
    padding: .8rem 1rem; border-top: 1px solid var(--linea-suave);
    font-size: .88rem; font-weight: 600; text-decoration: none; color: var(--primario);
}
.lv-proxima__enlace:hover { background: var(--tinte-suave); }

/* ── Secciones ─────────────────────────────────────────────── */
.lv-seccion { padding: clamp(56px, 7vw, 88px) 0; }
.lv-fondo--suave { background: var(--sup-suave); --fondo-seccion: var(--sup-suave); }
.lv-fondo--oscuro { background: linear-gradient(135deg, var(--marino-profundo), var(--marino)); color: rgba(255, 255, 255, .82); }
.lv-seccion__cab { margin-bottom: clamp(32px, 4vw, 48px); }
.lv-seccion__cab--centro { max-width: 44rem; }
.lv-seccion h2 { font-size: clamp(1.75rem, 3.2vw, 2.5rem); font-weight: 700; letter-spacing: -.02em; line-height: 1.2; }
.lv-seccion__sub { margin-top: .7rem; font-size: 1rem; line-height: 1.65; color: var(--muted); }
.lv-fondo--oscuro .lv-seccion__sub { color: rgba(255, 255, 255, .78); }

/* Encabezado partido: título a la izquierda, texto de apoyo a la derecha. */
.lv-seccion__cab--lado .lv-eyebrow { padding: 0; background: none; color: var(--primario); }
.lv-fondo--oscuro .lv-seccion__cab--lado .lv-eyebrow { color: var(--cielo); }
.lv-seccion__cab--lado > div:only-child {
    flex: 1; max-width: none;
    display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); column-gap: 3rem; align-items: end;
}
.lv-seccion__cab--lado > div:only-child > .lv-eyebrow { grid-column: 1 / -1; justify-self: start; }
.lv-seccion__cab--lado > div:only-child > h2 { grid-column: 1; }
.lv-seccion__cab--lado > div:only-child > .lv-seccion__sub { grid-column: 2; margin: 0; }
.lv-seccion__nota--franja { border-radius: 12px; background: var(--tinte-suave); }
.lv-fondo--suave .lv-seccion__nota--franja { background: #fff; }

/* ── Tarjetas ──────────────────────────────────────────────── */
.lv-tarjeta, .lv-modalidad, .lv-oferta, .lv-aviso, .lv-cert {
    border: 1px solid var(--linea-suave); border-radius: var(--radio); box-shadow: var(--sombra);
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease, background-color .2s ease;
}
.lv-fondo--suave .lv-tarjeta, .lv-fondo--suave .lv-modalidad, .lv-fondo--suave .lv-oferta { border-color: var(--linea-suave); }
.lv-tarjeta:hover, .lv-oferta:hover, .lv-aviso:hover {
    transform: translateY(-2px); box-shadow: var(--sombra-alta);
    border-color: color-mix(in srgb, var(--primario) 30%, #fff);
}
/* Sobre fondo blanco las tarjetas son teñidas y se aclaran al pasar el cursor. */
.lv-fondo--blanco .lv-tarjeta { background: var(--sup-suave); border-color: transparent; box-shadow: none; }
.lv-fondo--blanco .lv-tarjeta:hover { background: #fff; box-shadow: var(--sombra-alta); border-color: color-mix(in srgb, var(--primario) 30%, #fff); }
.lv-fondo--blanco .lv-tarjeta .lv-chips--peq li { background: #fff; }

.lv-tarjeta h3, .lv-oferta h3, .lv-aviso h3, .lv-cert h3 { font-size: 1.125rem; font-weight: 700; letter-spacing: -.01em; line-height: 1.3; }
.lv-tarjeta p, .lv-oferta p { font-size: .9rem; line-height: 1.6; color: var(--muted); }
.lv-tarjeta__icono {
    width: 48px; height: 48px; border-radius: 12px;
    background: color-mix(in srgb, var(--item, var(--primario)) 14%, #fff); color: var(--item, var(--tinta));
    transition: background-color .2s ease, color .2s ease;
}
.lv-tarjeta:hover .lv-tarjeta__icono { background: var(--item, var(--primario)); color: #fff; }
.lv-tarjeta__num { font-family: var(--display); font-size: 1.75rem; font-weight: 700; line-height: 1; color: color-mix(in srgb, var(--primario) 62%, #fff); font-variant-numeric: tabular-nums; }
.lv-tarjeta__etiqueta {
    padding: .25rem .7rem; border-radius: 999px; background: var(--tinte); color: var(--tinta);
    font-size: .7rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
}
.lv-tarjeta__enlace { font-size: .85rem; color: var(--primario); }
.lv-tarjeta.es-destacado { border-color: color-mix(in srgb, var(--primario) 45%, #fff); box-shadow: 0 0 0 4px color-mix(in srgb, var(--primario) 10%, transparent), var(--sombra); }

.lv-fondo--oscuro .lv-tarjeta { background: rgba(255, 255, 255, .07); border-color: rgba(255, 255, 255, .12); box-shadow: none; }
.lv-fondo--oscuro .lv-tarjeta:hover { background: rgba(255, 255, 255, .11); border-color: rgba(255, 255, 255, .22); }
.lv-fondo--oscuro .lv-tarjeta p { color: rgba(255, 255, 255, .78); }
.lv-fondo--oscuro .lv-tarjeta__icono, .lv-fondo--oscuro .lv-tarjeta__etiqueta { background: rgba(255, 255, 255, .13); color: #fff; }
.lv-fondo--oscuro .lv-tarjeta__num { color: rgba(255, 255, 255, .6); }
.lv-fondo--oscuro .lv-tarjeta__enlace { color: #fff; }
.lv-fondo--oscuro .lv-chips--peq li { background: rgba(255, 255, 255, .12); color: #fff; }

.lv-tarjeta--edad { padding-top: 0; }
.lv-tarjeta__rango b { font-weight: 700; letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.lv-tarjeta__rango span { letter-spacing: .08em; }

/* Lista numerada, checks y pasos */
.lv-numerada { gap: 0 3rem; }
.lv-numerada li { gap: 1.1rem; padding: 1.4rem 0; border-top-color: var(--linea); }
.lv-numerada__num {
    flex-shrink: 0; display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border-radius: 12px;
    background: var(--tinte); color: var(--tinta);
    font-family: var(--display); font-size: .95rem; font-weight: 700; font-variant-numeric: tabular-nums;
}
.lv-numerada h3 { font-size: 1.125rem; font-weight: 700; }
.lv-fondo--oscuro .lv-numerada__num { background: rgba(255, 255, 255, .13); color: #fff; }
.lv-fondo--oscuro .lv-numerada p { color: rgba(255, 255, 255, .78); }

.lv-checks i { width: 24px; height: 24px; background: color-mix(in srgb, var(--primario) 12%, #fff); color: var(--tinta); font-size: .7rem; }

.lv-pasos { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 1rem; }
.lv-pasos li {
    flex-direction: column; align-items: center; gap: 1rem; padding: 1.75rem 1.5rem; text-align: center;
    border: 1px solid var(--linea-suave); border-radius: var(--radio); background: #fff; box-shadow: var(--sombra);
}
.lv-pasos li:not(:last-child)::after { content: none; }
.lv-pasos__num { width: 64px; height: 64px; border-radius: 16px; background: var(--tinte); color: var(--tinta); font-size: 1.6rem; font-weight: 700; }
.lv-pasos li.es-destacado .lv-pasos__num { background: var(--primario); color: #fff; box-shadow: 0 10px 18px -8px color-mix(in srgb, var(--primario) 65%, transparent); }
.lv-pasos__txt b { display: block; font-size: 1.125rem; color: var(--tinta); }
.lv-pasos__txt small { margin-top: .4rem; font-size: .875rem; line-height: 1.55; color: var(--muted); }

/* ── Cajas de fecha y cronograma ───────────────────────────── */
.lv-caja-fecha { border-color: var(--linea); }
.lv-caja-fecha b { font-weight: 700; color: var(--tinta); }
.lv-caja-fecha span { font-family: var(--fuente); font-size: .66rem; font-weight: 700; letter-spacing: .1em; color: var(--primario); }

.lv-cronograma-scroll { padding: 10px 4px 18px; scrollbar-color: var(--cielo) transparent; }
.lv-cronograma::before { top: 28px; height: 4px; border-radius: 4px; background: var(--tinte); }
.lv-hito__punto {
    width: 60px; height: 60px; margin-bottom: .9rem; border: 0; background: #fff;
    box-shadow: 0 0 0 6px var(--fondo-seccion), 0 8px 18px -4px color-mix(in srgb, var(--tinta) 26%, transparent);
    transition: transform .2s ease;
}
.lv-hito:hover .lv-hito__punto { transform: scale(1.05); }
.lv-hito__punto > b { font-family: var(--display); font-size: 1.05rem; font-weight: 700; color: var(--tinta); }
.lv-hito__punto .lv-caja-fecha b { font-size: 1.15rem; }
.lv-hito__etiqueta {
    display: inline-block; margin-bottom: .35rem; padding: .15rem .65rem; border-radius: 999px;
    background: color-mix(in srgb, var(--tinta) 7%, #fff); color: var(--texto);
    font-size: .68rem; font-weight: 700; letter-spacing: .08em;
}
.lv-hito h3 { font-size: .95rem; font-weight: 700; }
.lv-hito__fecha { font-size: .8rem; }
.lv-hito--en_curso .lv-hito__punto,
.lv-hito.es-destacado .lv-hito__punto {
    background: var(--primario);
    box-shadow: 0 0 0 6px var(--fondo-seccion), 0 12px 22px -6px color-mix(in srgb, var(--primario) 60%, transparent);
}
.lv-hito--en_curso .lv-hito__punto b, .lv-hito.es-destacado .lv-hito__punto b,
.lv-hito--en_curso .lv-hito__punto span, .lv-hito.es-destacado .lv-hito__punto span { color: #fff; }
.lv-hito--en_curso .lv-hito__etiqueta, .lv-hito.es-destacado .lv-hito__etiqueta { background: var(--tinte); color: var(--primario); }
.lv-hito.es-destacado h3, .lv-hito--en_curso h3 { color: var(--primario); }
.lv-hito--finalizado { opacity: .7; }

/* ── Modalidades ───────────────────────────────────────────── */
.lv-modalidad { overflow: hidden; padding: calc(clamp(1.5rem, 3vw, 2.5rem) + 8px) clamp(1.5rem, 3vw, 2.5rem) clamp(1.5rem, 3vw, 2.5rem); border-radius: var(--radio-lg); }
.lv-modalidad::before { content: ''; position: absolute; inset: 0 0 auto; height: 8px; background: var(--marino-profundo); }
.lv-modalidad:nth-child(even)::before { background: var(--primario); }
.lv-modalidad.es-destacado { border-color: var(--linea-suave); }
.lv-modalidad.es-destacado::before { background: var(--acento); }
.lv-modalidad:hover { box-shadow: var(--sombra-alta); }
.lv-modalidad__marca {
    align-self: flex-start; padding: .25rem .8rem; border-radius: 999px; background: var(--tinte); color: var(--tinta);
    font-size: .72rem; font-weight: 700; letter-spacing: .08em;
}
.lv-modalidad h3 { margin-top: 1rem; font-size: clamp(1.4rem, 2.4vw, 1.75rem); font-weight: 700; letter-spacing: -.01em; line-height: 1.25; }
.lv-modalidad__tipo { margin-top: .3rem; font-size: 1.05rem; font-weight: 600; color: var(--primario); }
.lv-modalidad p { font-size: 1rem; line-height: 1.65; color: var(--muted); }
.lv-resumen { margin-top: 1.5rem; padding: 1rem 1.1rem; border: 0; border-radius: var(--radio); background: var(--sup-suave); }
.lv-resumen dt { font-size: .68rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.lv-resumen dd { margin-top: .2rem; font-size: .95rem; font-weight: 700; color: var(--tinta); }
.lv-resumen--lista dt { font-size: .82rem; font-weight: 500; letter-spacing: 0; text-transform: none; }
.lv-acordeon { margin-top: 1rem; border-radius: 12px; background: var(--sup-suave); }
.lv-horario div { border-bottom-color: var(--linea); }
.lv-jornadas li { border-radius: 10px; }
.lv-jornadas span { font-family: var(--fuente); font-variant-numeric: tabular-nums; }
.lv-modalidad > :nth-last-child(2) { margin-bottom: 1.5rem; }
.lv-modalidad .lv-tarjeta__enlace {
    margin-top: auto; justify-content: center; min-height: 50px; padding: .8rem 1.2rem; border-radius: 12px;
    background: var(--marino-profundo); color: #fff; font-size: .95rem;
    transition: background-color .2s ease, box-shadow .2s ease;
}
.lv-modalidad .lv-tarjeta__enlace:hover { background: var(--marino); box-shadow: 0 8px 16px -6px color-mix(in srgb, var(--tinta) 55%, transparent); }
.lv-modalidad:nth-child(even) .lv-tarjeta__enlace { background: var(--primario); }
.lv-modalidad:nth-child(even) .lv-tarjeta__enlace:hover { background: var(--primario-hover); }

/* ── Convocatoria, oferta y avisos ─────────────────────────── */
.lv-cert__codigo { font-weight: 700; letter-spacing: -.02em; }
.lv-convocatoria__panel { border-radius: var(--radio-lg); background: var(--tinte-suave); border-color: color-mix(in srgb, var(--primario) 14%, #fff); }
.lv-convocatoria__panel .lv-eyebrow { background: #fff; }
.lv-fechas li.es-destacado .lv-caja-fecha { background: var(--primario); border-color: var(--primario); }
.lv-convocatoria__lugar { border-top-color: color-mix(in srgb, var(--primario) 14%, #fff); }
.lv-convocatoria__lugar i { color: var(--primario); }

.lv-oferta__modalidad { font-size: .72rem; font-weight: 700; letter-spacing: .08em; color: var(--primario); }
.lv-oferta time, .lv-aviso time { font-family: var(--fuente); font-size: .78rem; font-variant-numeric: tabular-nums; }
.lv-oferta .lv-resumen { margin-top: 1.1rem; }
.lv-aviso { border-radius: var(--radio); }
.lv-noticia--destacada { box-shadow: 0 0 0 2px var(--primario), var(--sombra); }
.lv-noticia__fecha { color: var(--muted); }
.lv-noticia__leer:focus-visible { outline-color: var(--primario); }

/* Botón flotante de WhatsApp: verde con contraste suficiente para el ícono blanco. */
.lv-wa-flotante { background: #128C7E; }

/* ── Simulador ─────────────────────────────────────────────── */
.lv-simulador {
    isolation: isolate; padding: clamp(28px, 5vw, 72px); border-radius: var(--radio-lg);
    background: linear-gradient(135deg, var(--marino-profundo) 0%, var(--marino) 62%, color-mix(in srgb, var(--primario) 88%, var(--oscuro)) 100%);
    box-shadow: 0 32px 64px -32px color-mix(in srgb, var(--tinta) 75%, transparent);
    color: rgba(255, 255, 255, .84);
}
.lv-simulador::before, .lv-simulador::after {
    content: ''; position: absolute; z-index: -1; border: 0; border-radius: 50%; box-shadow: none; pointer-events: none; filter: blur(80px);
}
.lv-simulador::before { top: -80px; right: -60px; width: 380px; height: 380px; background: color-mix(in srgb, var(--cielo) 30%, transparent); }
.lv-simulador::after { inset: auto auto -120px 30%; width: 320px; height: 320px; background: color-mix(in srgb, var(--primario) 55%, transparent); }
.lv-simulador h2 { font-size: clamp(1.75rem, 3.2vw, 2.5rem); font-weight: 700; letter-spacing: -.02em; line-height: 1.2; }
.lv-simulador__copia > p { font-size: 1.06rem; line-height: 1.7; }
.lv-simulador__datos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .6rem; max-width: 28rem; margin: 1.5rem 0 1.75rem; }
.lv-simulador__datos li { display: flex; flex-direction: column; gap: .3rem; padding: .85rem .9rem; border-radius: 12px; background: rgba(255, 255, 255, .1); font-size: .85rem; line-height: 1.3; }
.lv-simulador__datos b { font-size: 2.25rem; font-weight: 700; line-height: 1; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.lv-simulador__ventana {
    padding: 1rem; border: 1px solid rgba(255, 255, 255, .14); border-radius: var(--radio);
    background: rgba(255, 255, 255, .1); backdrop-filter: blur(12px);
    box-shadow: 0 24px 48px -12px rgba(0, 0, 0, .35);
}
.lv-simulador__barra { padding: .5rem .75rem; border: 0; border-radius: 8px; background: rgba(255, 255, 255, .07); color: rgba(255, 255, 255, .88); }
.lv-simulador__barra > span { width: 11px; height: 11px; background: rgba(255, 255, 255, .3); }
.lv-simulador__barra em { padding: .15rem .65rem; border-radius: 999px; background: rgba(255, 255, 255, .16); color: #fff; font-family: var(--fuente); font-weight: 700; font-variant-numeric: tabular-nums; }
.lv-simulador__pregunta { margin-top: .75rem; padding: 1rem; border-radius: 12px; background: rgba(255, 255, 255, .12); }
.lv-simulador__pregunta small { font-size: .8rem; font-weight: 600; color: color-mix(in srgb, var(--cielo) 55%, #fff); }
.lv-simulador__pregunta p { background: rgba(255, 255, 255, .24); }
.lv-simulador__pregunta ol li { height: 40px; border: 0; border-radius: 8px; background: rgba(255, 255, 255, .1); }
.lv-simulador__pregunta ol li.es-marcada { border: 0; background: var(--cielo); }
.lv-simulador__progreso { height: 6px; margin-top: .75rem; border-radius: 999px; overflow: hidden; background: rgba(255, 255, 255, .14); }
.lv-simulador__progreso span { background: var(--cielo); }

/* ── Cierre ────────────────────────────────────────────────── */
.lv-cta { padding: clamp(56px, 7vw, 88px) 24px; background: var(--sup-suave); }
.lv-cta__in {
    position: relative; overflow: hidden; isolation: isolate;
    max-width: calc(var(--ancho) - 48px); gap: 2.5rem; padding: clamp(28px, 5vw, 72px); border-radius: var(--radio-lg);
    background: linear-gradient(100deg, var(--marino-profundo), var(--marino) 55%, var(--primario));
    box-shadow: 0 32px 64px -32px color-mix(in srgb, var(--tinta) 75%, transparent);
}
.lv-cta__in::before {
    content: ''; position: absolute; inset: 0; z-index: -1; opacity: .1; pointer-events: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40'%3E%3Cpath d='M0 20 20 0l20 20-20 20Z' fill='none' stroke='%23fff' stroke-width='1.5'/%3E%3C/svg%3E");
}
.lv-cta h2 { font-size: clamp(1.9rem, 3.6vw, 2.6rem); font-weight: 700; letter-spacing: -.02em; line-height: 1.15; max-width: 20ch; }
.lv-cta .lv-botones { flex-shrink: 0; }

/* ── Pie ───────────────────────────────────────────────────── */
.lv-footer { padding: 72px 0 28px; background: var(--marino-profundo); color: rgba(255, 255, 255, .8); }
.lv-footer a { text-decoration: none; transition: color .15s ease; }
.lv-footer a:hover { color: var(--cielo); }
.lv-footer h3 { margin-bottom: 1rem; font-size: 1rem; font-weight: 600; letter-spacing: -.01em; text-transform: none; }
.lv-footer i { color: var(--cielo); }
.lv-footer__marca p span { color: rgba(255, 255, 255, .65); }
.lv-footer__pie { border-top-color: rgba(255, 255, 255, .12); }

/* ── Modales y formulario del simulador ────────────────────── */
.lv-modal__fondo { background: color-mix(in srgb, var(--tinta) 65%, transparent); backdrop-filter: blur(4px); }
.lv-modal__caja { border-radius: var(--radio); box-shadow: 0 24px 48px -12px color-mix(in srgb, var(--tinta) 45%, transparent); scrollbar-color: var(--cielo) transparent; }
.lv-modal__cuerpo h2, .lv-sim__caja h2 { font-weight: 700; letter-spacing: -.01em; }
.lv-campo input, .lv-campo select { border: 1.5px solid var(--linea); border-radius: 8px; }
.lv-campo input:focus, .lv-campo select:focus { box-shadow: 0 0 0 3px color-mix(in srgb, var(--primario) 16%, transparent); }
.lv-sim__area { letter-spacing: .08em; }
.lv-sim__reloj { font-family: var(--fuente); font-weight: 700; border-radius: 999px; background: var(--tinte-suave); }
.lv-sim__progreso { height: 8px; background: var(--tinte); }
.lv-sim__opcion { border-color: var(--linea-suave); box-shadow: var(--sombra); }
.lv-sim__opcion b { border-radius: 50%; background: var(--tinte); color: var(--tinta); }
.lv-sim__opcion[aria-pressed="true"] { background: var(--marino-profundo); border-color: var(--marino-profundo); color: #fff; }
.lv-sim__opcion[aria-pressed="true"] b { background: #fff; color: var(--marino-profundo); }
.lv-sim__nota b { font-weight: 700; letter-spacing: -.03em; }
.lv-sim__areas li div span { font-family: var(--fuente); font-variant-numeric: tabular-nums; }
.lv-sim__datos li { background: var(--tinte-suave); }

/* Grillas de 3 con sólo 1 o 2 tarjetas: ocupan el ancho en vez de dejar huecos. */
.lv-grid--3:has(> :only-child) { grid-template-columns: minmax(0, 560px); }
.lv-grid--3:has(> :nth-child(2):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); }

@keyframes lv-subir { from { opacity: 0; transform: translateY(18px); } }
@keyframes lv-pulso { 50% { opacity: .35; } }

/* ── Adaptación ────────────────────────────────────────────── */
/* El menú pasa a hamburguesa antes de quedarse sin sitio (logo + enlaces + acciones no caben bajo 1180px). */
@media (max-width: 1180px) {
    .lv-menu-btn { display: flex; }
    .lv-solo-escritorio { display: none; }
    .lv-nav {
        position: absolute; left: 0; right: 0; top: 100%;
        display: none; flex-direction: column; align-items: stretch; gap: 0; padding: .5rem 16px 1rem;
        background: #fff; border-bottom: 1px solid var(--linea);
        box-shadow: 0 16px 30px color-mix(in srgb, var(--tinta) 10%, transparent);
        max-height: calc(100vh - 76px); overflow-y: auto;
    }
    .lv-nav.es-abierto { display: flex; }
    .lv-nav a, .lv-nav summary { padding: .85rem .5rem; border-radius: 0; border-bottom: 1px solid var(--linea-suave); white-space: normal; }
    .lv-nav summary { display: flex; justify-content: space-between; }
    .lv-nav-catalogo__menu { position: static; min-width: 0; margin: 0; padding: 0 0 0 .75rem; border: 0; border-radius: 0; box-shadow: none; }
    .lv-nav-catalogo__menu li:first-child { border-bottom: 0; margin-bottom: 0; padding-bottom: 0; }
    .lv-nav__resto { display: block; }
    .lv-nav-mas { display: none; }
}

@media (max-width: 900px) {
    .lv-hero__in { grid-template-columns: 1fr; }
    .lv-hero-sim, .lv-proxima { max-width: 520px; }
    .lv-hero-sim__fecha { position: static; max-width: none; margin-top: 1rem; }
    .lv-seccion__cab--lado > div:only-child { grid-template-columns: 1fr; row-gap: .7rem; }
    .lv-seccion__cab--lado > div:only-child > .lv-seccion__sub { grid-column: 1; }
    .lv-cta .lv-botones { width: 100%; }
}

@media (max-width: 760px) {
    .lv-grid--3:has(> :nth-child(2):last-child) { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
    .lv-hero { padding-bottom: 56px; }
    .lv-hero h1 { font-size: clamp(2rem, 9.5vw, 2.5rem); }
    .lv-hero-sim__caja { padding: 1.1rem; }
    .lv-hero-sim__barra b { font-size: .68rem; }
    .lv-proxima { grid-template-columns: 92px minmax(0, 1fr); }
    .lv-proxima__talon b { font-size: 2.6rem; }
    .lv-btn { white-space: normal; text-align: center; }
    .lv-btn--grande { width: 100%; }
    .lv-simulador__datos b { font-size: 1.75rem; }
    .lv-cta { padding-inline: 16px; }
    .lv-cta__in { max-width: none; }
    .lv-footer { padding-top: 48px; }
}
