/**
 * Home layout resto: titulos de seccion, nosotros, logros, CTA, noticias, contacto, pie.
 */
.home-section-alt {
    background: var(--home-section-alt);
}

.home-section-title {
    font-family: var(--home-font-display);
    font-weight: 600;
    font-size: clamp(1.35rem, 3vw, 1.6rem);
    color: var(--home-text-on-light);
    margin-bottom: 1.5rem;
    transition: color var(--home-duration) var(--home-ease);
}

.home-section-eyebrow {
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    color: var(--home-color1);
    margin-bottom: 0.5rem;
}

.home-section-subtitle {
    font-size: 1.0625rem;
    color: var(--home-text-muted);
    margin-bottom: 1rem;
}

/* Nosotros: dos columnas + iconos flotantes */
.home-nosotros-text {
    font-size: 1.0625rem;
    line-height: 1.75;
}

.home-nosotros-text p+p {
    margin-top: 1rem;
}

.home-nosotros-visual {
    position: relative;
    min-height: 220px;
}

.home-nosotros-img-wrap {
    width: 100%;
    height: 100%;
    min-height: 200px;
    border-radius: var(--home-card-radius);
    background: var(--home-nosotros-visual-bg);
    border: 1px solid var(--home-card-border);
    overflow: hidden;
}

.home-nosotros-img {
    width: 100%;
    height: 100%;
    min-height: 200px;
    object-fit: contain;
    object-position: center bottom;
    display: block;
}

.home-nosotros-icons {
    position: absolute;
    bottom: 0;
    right: 0;
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.home-nosotros-icon {
    width: 3rem;
    height: 3rem;
    border-radius: 50%;
    background: var(--home-card-bg);
    box-shadow: var(--home-shadow-icon);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--home-color1);
    font-size: 1.1rem;
    transition:
        transform var(--home-duration) var(--home-ease),
        box-shadow var(--home-duration) var(--home-ease);
}

.home-nosotros-icon:hover {
    transform: translateY(-4px);
    box-shadow: var(--home-shadow-icon-hover);
}

/* Logros */
.home-logros-intro {
    max-width: 36rem;
    margin-bottom: 2rem !important;
    color: var(--home-text-muted);
}

.home-logro-num {
    font-family: var(--home-font-display);
    font-weight: 700;
    font-size: 2.5rem;
    line-height: 1;
    color: var(--home-card-bg);
    display: block;
    margin-bottom: 0.25rem;
    transition: transform 0.2s var(--home-ease);
}

.home-logro-item:hover .home-logro-num {
    transform: scale(1.05);
}

.home-logro-label {
    font-size: 0.875rem;
    color: var(--home-text-muted);
    margin: 0;
}

/* Logros: capas (mismo patron que hero). Section sin fondo para que se vean las capas. */
.home-section.home-logros {
    background: transparent;
    padding-top: 0;
    padding-bottom: 0;
}

.home-logros-body {
    position: relative;
    overflow: hidden;
    padding-top: var(--home-section-py);
    padding-bottom: var(--home-section-py);
    min-height: 420px;
    color: var(--home-text-on-dark);
    isolation: isolate;
}

.home-logros-body .home-logros-bg-gradient {
    position: absolute;
    inset: 0;
    z-index: 0;
    background: linear-gradient(145deg,
            var(--home-color3) 0%,
            var(--home-color4) 35%,
            var(--home-color4) 65%,
            var(--home-color5) 100%);
    pointer-events: none;
}

.home-logros-body .home-bg-particles {
    position: absolute;
    inset: 0;
    z-index: 0.5;
    pointer-events: none;
}

.home-logros-body .home-logros-overlay {
    position: absolute;
    inset: 0;
    background: var(--home-overlay-hero);
    z-index: 1;
    pointer-events: none;
}

.home-logros-content {
    position: relative;
    z-index: 2;
}

.home-logros-intro-light {
    color: var(--home-text-on-dark-soft);
}

.home-logro-label-light {
    color: var(--home-text-on-dark-softer);
}

.home-logro-tarjeta {
    padding: 1rem 1.25rem;
    text-align: center;
    height: 100%;
    background: var(--home-text-on-dark-bg);
    border: 1px solid var(--home-text-on-dark-border);
    border-radius: var(--home-card-radius);
    box-shadow: var(--home-shadow-sm);
}

.home-historia-img {
    min-height: 420px;
    border-radius: 1.5rem;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.35);
    object-fit: cover;
}

.home-logros-bg .home-logro-num {
    color: var(--home-text-on-dark);
}

/* CTA Admision */
.home-cta-section {
    min-height: 500px;
    background: linear-gradient(145deg,
            var(--home-color5) 0%,
            var(--home-color3) 50%,
            var(--home-hero-bg) 100%);
    color: var(--home-text-on-dark);
}

.home-cta-section-img {
    filter: brightness(0.4);
}

.home-section-eyebrow-light {
    color: var(--home-text-on-dark-softer);
}

.home-section-eyebrow-acento {
    color: var(--home-color1);
}

.home-section-title-light {
    color: var(--home-text-on-dark);
}

.home-cta-lead {
    font-size: 1.0625rem;
    color: var(--home-text-on-dark-soft);
    max-width: 700px;
    margin-bottom: 1.5rem !important;
}

.home-cta-section .btn-cta {
    background: var(--home-color1);
    color: var(--home-text-on-dark);
    border: none;
    transition:
        background var(--home-duration) var(--home-ease),
        transform var(--home-duration) var(--home-ease),
        box-shadow var(--home-duration) var(--home-ease);
}

.home-cta-section .btn-cta:hover {
    background: var(--home-color2);
    color: var(--home-text-on-dark);
    transform: translateY(-2px);
    box-shadow: var(--home-shadow-lg);
}

/* Becas */
.home-becas-img {
    min-height: 350px;
}

.home-medios-img {
    min-height: 250px;
}

.home-becas-text {
    font-size: 1.0625rem;
    line-height: 1.7;
    max-width: 40rem;
}

.home-becas-text+.btn {
    transition: transform var(--home-duration) var(--home-ease);
}

.home-becas-text+.btn:hover {
    transform: translateY(-1px);
}

/* Tarjetas (niveles, etc.): altura y tipografia; borde/radio/sombra ya en .home-cards .card */
.home-cards .card {
    height: 100%;
}

.home-cards .card-header {
    font-family: var(--home-font-display);
    font-weight: 600;
    font-size: 1.1rem;
    color: var(--home-text-on-light);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.home-cards .card-title {
    font-size: inherit;
    font-weight: inherit;
}

.home-cards .card-body p:last-child,
.home-cards .card-body .text-body-secondary:last-child {
    margin-bottom: 0;
}

.home-nivel-num {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 50%;
    background: var(--home-color1-alpha-12);
    color: var(--home-color1);
    font-family: var(--home-font-display);
    font-weight: 700;
    font-size: 1rem;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 0.75rem;
    transition:
        background var(--home-duration) var(--home-ease),
        transform 0.2s var(--home-ease);
}

.home-cards .card:hover .home-nivel-num {
    background: var(--home-color1-alpha-20);
    transform: scale(1.08);
}

/* Tarjetas niveles: imagen contain (sin recortes) + zoom al hover */
.home-card-nivel .card-header {
    padding-top: 0;
}

.home-card-img-wrap {
    overflow: hidden;
    border-radius: var(--home-card-radius) var(--home-card-radius) 0 0;
    min-height: 180px;
    background: var(--home-section-alt);
    line-height: 0;
}

.home-card-img-alt {
    height: 180px;
}

.home-card-img-alt--lg {
    height: 200px;
}

.home-card-img {
    position: relative;
    width: 100%;
    transition: transform 0.5s var(--home-ease);
}

.home-card-img-el {
    width: 100%;
    height: auto;
    display: block;
}

.home-card-nivel:hover .home-card-img {
    transform: scale(1.08);
}

.home-card-img-inicial {
    background: linear-gradient(135deg,
            var(--home-color1-alpha-20) 0%,
            var(--home-color1-alpha-12) 100%);
}

.home-card-img-primaria {
    background: linear-gradient(135deg,
            var(--home-color2-alpha-20) 0%,
            var(--home-color2-alpha-15) 100%);
}

.home-card-img-secundaria {
    background: linear-gradient(135deg,
            var(--home-color1-alpha-20) 0%,
            var(--home-color1-alpha-12) 100%);
}

.home-cards .card-body .btn-outline-primary {
    transition:
        background var(--home-duration) var(--home-ease),
        color var(--home-duration) var(--home-ease),
        transform 0.2s var(--home-ease);
}

.home-cards .card-body .btn-outline-primary:hover {
    transform: translateY(-1px);
}

.home-cards .card-body .home-btn-outline-acento {
    transition:
        background var(--home-duration) var(--home-ease),
        color var(--home-duration) var(--home-ease),
        transform 0.2s var(--home-ease);
}

.home-cards .card-body .home-btn-outline-acento:hover {
    transform: translateY(-1px);
}

/* Noticias */
.home-noticias-list {
    max-width: 28rem;
}

.home-noticias-list li {
    padding: 0.6rem 0;
    border-bottom: 1px solid var(--home-card-border);
    transition: padding-left 0.2s var(--home-ease);
}

.home-noticias-list li:hover {
    padding-left: 0.5rem;
}

.home-noticias-list li:last-child {
    border-bottom: none;
}

.home-noticias-list a {
    text-underline-offset: 2px;
    transition: color var(--home-duration) var(--home-ease);
}

/* Contacto */
.home-contacto-links a,
.home-contacto-block-links a {
    text-underline-offset: 3px;
    transition: color var(--home-duration) var(--home-ease);
}

.home-contacto-links a:hover,
.home-contacto-block-links a:hover {
    text-decoration: underline;
}

.home-contacto-block {
    background: linear-gradient(135deg, var(--home-bg-cream) 0%, var(--home-card-bg) 100%);
}

.home-contacto-block-links {
    font-size: 1.125rem;
}

.home-contacto-links .sep {
    color: var(--home-text-muted);
    margin: 0 0.35rem;
}

/* Footer: misma paleta granate del encabezado (fila contacto) */
.home-footer {
    margin-top: auto;
    border-top: none;
    color: var(--home-text-on-dark, #fff);
    position: relative;
}

.home-footer-inner {
    background: linear-gradient(
        145deg,
        var(--home-color5, #661414) 0%,
        var(--home-color3, #4d0f0f) 55%,
        var(--home-color2, #7a1919) 100%
    );
    padding-top: 2.75rem;
    padding-bottom: 1.25rem;
}

.home-footer-nuevo {
    background: linear-gradient(
        145deg,
        var(--home-color5, #661414) 0%,
        var(--home-color3, #4d0f0f) 55%,
        var(--home-color2, #7a1919) 100%
    );
    overflow: hidden;
}

.home-footer-top {
    padding: 3.5rem 0 2rem;
    border-bottom: 1px solid var(--home-border-footer, rgba(255,255,255,0.08));
}

.home-pie-logo {
    width: 52px;
    height: 52px;
    object-fit: contain;
    border-radius: 0.75rem;
    background: rgba(255,255,255,0.08);
    padding: 4px;
}

.home-pie-brand-nuevo .home-pie-titulo {
    color: var(--home-text-on-dark, #f0ebe0);
    letter-spacing: -0.02em;
}

.home-pie-brand-nuevo .home-pie-tagline {
    color: var(--home-text-on-dark-softer, rgba(240,235,224,0.55));
}

.home-pie-copy-wrapper {
    padding: 1rem 0;
}

.home-pie-copy-sub {
    font-size: 0.8rem;
    color: var(--home-text-on-dark-softer, rgba(240,235,224,0.45));
}

.home-pie {
    padding-bottom: 0;
}

.home-pie--editorial .home-pie-brand {
    max-width: 22rem;
}

.home-pie-titulo {
    font-family: var(--home-font-display);
    font-size: clamp(1.35rem, 2vw, 1.65rem);
    font-weight: 700;
    color: var(--home-text-on-dark);
    letter-spacing: 0.02em;
    margin: 0 0 0.35rem;
    line-height: 1.15;
}

.home-pie-tagline {
    font-family: var(--home-font-base);
    font-weight: 600;
    font-size: 0.8125rem;
    color: var(--home-color-dorado, #D99A56);
    letter-spacing: 0.01em;
    margin: 0 0 0.75rem;
}

.home-pie-brand .home-pie-tagline {
    display: block;
}

.home-pie-desc {
    color: rgba(255, 255, 255, 0.82);
    font-size: 0.875rem;
    line-height: 1.55;
    margin: 0 0 1.25rem;
    max-width: 20rem;
}

.home-pie-social {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
}

.home-pie-social-link {
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.1);
    color: var(--home-text-on-dark, #fff);
    border: 1px solid rgba(255, 255, 255, 0.2);
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    font-size: 0.85rem;
    transition:
        background var(--home-duration) var(--home-ease),
        color var(--home-duration) var(--home-ease),
        border-color var(--home-duration) var(--home-ease),
        transform 0.2s var(--home-ease);
}

.home-pie-social-link:hover {
    background: var(--home-color-dorado, #D99A56);
    border-color: var(--home-color-dorado, #D99A56);
    color: var(--home-color-blanco, #fff);
    transform: translateY(-2px);
}

.home-pie-heading {
    font-size: 0.875rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    color: var(--home-color-dorado, #D99A56);
    margin: 0 0 0.9rem;
    padding-bottom: 0.45rem;
    border-bottom: 1px solid rgba(217, 154, 86, 0.35);
    display: inline-block;
    min-width: 7rem;
}

.home-pie-links li {
    margin-bottom: 0.35rem;
}

.home-pie-links a {
    color: var(--home-footer-text);
    text-underline-offset: 2px;
    text-decoration: none;
    transition: color var(--home-duration) var(--home-ease);
}

.home-pie-links a:hover {
    color: var(--home-text-on-dark);
}

.home-pie-contacto {
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
}

.home-pie-contacto-item {
    display: flex;
    gap: 0.75rem;
    align-items: flex-start;
}

.home-pie-icon {
    color: var(--home-color1);
    margin-top: 0.25rem;
    flex-shrink: 0;
}

.home-pie-contacto-item a,
.home-pie-contacto-item span {
    color: rgba(255, 255, 255, 0.9);
    text-decoration: none;
    font-size: 0.875rem;
    line-height: 1.4;
}

.home-pie-contacto-item a:hover {
    color: var(--home-color-dorado, #D99A56);
}

.home-pie-contacto-item div,
.home-pie-contacto-tels {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.4rem;
}

.home-pie-sep {
    color: rgba(255, 255, 255, 0.45);
    font-weight: 600;
}

.home-pie-horario {
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 0.75rem;
    padding: 0.55rem 0.8rem;
    max-width: 14.5rem;
    width: 100%;
}

.home-pie-horario-list {
    margin-bottom: 0;
    font-size: 0.75rem;
    line-height: 1.3;
}

.home-pie-horario-fila {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 0.65rem;
    margin-bottom: 0.28rem;
}

.home-pie-horario-fila:last-child {
    margin-bottom: 0;
}

.home-pie-horario-fila span:first-child {
    color: rgba(255, 255, 255, 0.72);
    font-size: 0.72rem;
    font-weight: 500;
}

.home-pie-horario-valor {
    color: #fff;
    font-weight: 600;
    font-size: 0.72rem;
    white-space: nowrap;
}

.home-pie-copy {
    margin-top: 2rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(255, 255, 255, 0.14);
    font-size: 0.75rem;
    color: rgba(255, 255, 255, 0.65);
    text-align: center;
}

/* Boton flotante subir al inicio (izquierda inferior) */
.home-btn-subir {
    position: fixed;
    bottom: 1.5rem;
    right: 1.5rem;
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.75rem;
    height: 2.75rem;
    min-width: 44px;
    min-height: 44px;
    border-radius: 50%;
    background: color-mix(in srgb, var(--home-color5) 88%, #000);
    color: var(--home-color-dorado);
    border: 1px solid color-mix(in srgb, var(--home-color-dorado) 45%, transparent);
    text-decoration: none;
    box-shadow: var(--home-shadow-lg);
    opacity: 0;
    visibility: hidden;
    transform: translateY(0.5rem);
    transition:
        opacity var(--home-duration) var(--home-ease),
        visibility var(--home-duration) var(--home-ease),
        background var(--home-duration) var(--home-ease),
        color var(--home-duration) var(--home-ease),
        border-color var(--home-duration) var(--home-ease),
        transform var(--home-duration) var(--home-ease);
}

.home-btn-subir.is-visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.home-btn-subir:hover {
    background: var(--home-color5);
    color: var(--home-ambar-soft);
    border-color: var(--home-color-dorado);
    transform: translateY(-2px);
}

.home-btn-subir.is-visible:hover {
    transform: translateY(-2px);
}

.home-btn-subir i {
    font-size: 1.125rem;
}

/* ——— Header en 2 filas: contacto (teal) + nav/botones (blanco) ——— */
.home-header--filas {
    position: sticky;
    top: 0;
    z-index: 1100;
    background: transparent;
    box-shadow: none;
}

.home-header-fila {
    width: 100%;
}

.home-header-fila-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem 1rem;
}

/* Fila 1 — contacto + redes: granate de marca */
.home-header-fila--contacto {
    background: linear-gradient(
        145deg,
        var(--home-color5) 0%,
        var(--home-color3) 55%,
        var(--home-color4) 100%
    );
    color: var(--home-text-on-dark, #fff);
}

.home-header-fila-inner--contacto {
    min-height: 2.5rem;
    padding: 0.4rem 0;
    flex-wrap: wrap;
}

.home-header-contacto-grupo {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.65rem 1.1rem;
}

.home-header-fila--contacto .home-header-meta-link {
    color: rgba(255, 255, 255, 0.95);
    font-size: 0.8125rem;
    font-weight: 600;
}

.home-header-fila--contacto .home-header-meta-link:hover {
    color: var(--home-color-dorado, #D99A56);
}

.home-header-fila--contacto .home-header-social-link {
    width: 2rem;
    height: 2rem;
    color: rgba(255, 255, 255, 0.9);
}

.home-header-fila--contacto .home-header-social-link:hover {
    color: var(--home-color-dorado, #D99A56);
    transform: translateY(-1px);
}

/* Fila 2 — logo | menu | botones en la misma linea */
.home-header-fila--nav {
    background: var(--home-surface-elevated, #fff);
    border-bottom: 2px solid color-mix(in srgb, var(--home-color-dorado, #D99A56) 40%, var(--home-color-crema, #F7F3E8));
}

.home-header-fila-inner--nav {
    min-height: 4rem;
    padding: 0.55rem 0;
    position: relative;
    gap: 1rem 1.25rem;
}

.home-header-nav-bloque {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0.75rem 1.15rem;
    margin-left: auto;
    min-width: 0;
}

.home-header--filas .home-logo {
    color: var(--home-header-ink, #17181d);
    gap: 0.65rem;
    flex-shrink: 0;
}

.home-header--filas .home-logo:hover {
    color: var(--home-color1);
}

.home-header--filas .home-logo-text {
    font-size: 0.95rem;
    font-weight: 700;
    letter-spacing: -0.01em;
}

.home-header--filas .home-nav {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0.35rem 0.95rem;
}

.home-header--filas .home-nav-link {
    color: var(--home-header-ink, #17181d);
    font-size: 0.9rem;
    font-weight: 600;
}

.home-header--filas .home-nav-link::after {
    background: var(--home-color-dorado, #D99A56);
}

.home-header--filas .home-nav-link:hover {
    color: var(--home-color-granate, #661414);
}

.home-header--filas .home-nav-toggle {
    border-color: color-mix(in srgb, var(--home-header-muted) 40%, transparent);
    color: var(--home-header-ink);
    margin-left: auto;
}

.home-header--filas .home-nav-toggle:hover {
    color: var(--home-color1);
    border-color: var(--home-color1);
}

.home-header--filas .home-header-acciones {
    display: flex;
    align-items: center;
    flex-shrink: 0;
    gap: 0.5rem;
    margin: 0;
    padding-left: 0.85rem;
    border-left: 1px solid color-mix(in srgb, var(--home-color-dorado, #D99A56) 35%, var(--home-color-crema, #F7F3E8));
}

.home-header--filas.home-header--scrolled .home-header-fila--nav {
    box-shadow: var(--home-shadow-sm);
}

.home-header--filas .home-cta-pill,
.home-header--filas .home-nav-cta-pill,
.home-header--filas .home-header-intranet-pill {
    --btn-accion-pill-h: 32px;
    --btn-accion-pill-min-w: 0;
    --btn-accion-pill-px: 0.75rem;
    --btn-accion-pill-radius: 9999px;
    --btn-accion-pill-icon: 0.85rem;
    font-size: 0.8125rem;
    font-weight: 600;
}

.home-header-meta-link {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    text-decoration: none;
    transition: color var(--home-duration) var(--home-ease);
}

.home-header--filas .home-header-social {
    display: flex;
    align-items: center;
    gap: 0.15rem;
}

.home-hero-eyebrow {
    margin: 0;
    font-size: 0.8125rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    color: var(--home-color-dorado, #D99A56);
}

.page-home .home-section--ds {
    background: var(--home-surface-elevated, #fff);
}

.page-home .home-section--ds.home-section-alt {
    background: var(--home-surface, #f4f6f8);
}

.page-home #logros.home-logros--editorial {
    background: var(--home-surface, #f4f6f8);
}

.home-nav-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 0.4rem 1rem;
    margin-left: 0.25rem;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--home-text-on-dark);
    background: var(--home-color1);
    border-radius: var(--home-radius-sm);
    text-decoration: none;
    transition: background var(--home-duration) var(--home-ease), transform 0.2s var(--home-ease);
}

.home-nav-cta:hover {
    background: var(--home-color2);
    color: var(--home-text-on-dark);
    transform: translateY(-1px);
}

/* Pills del header: compactos. Hero/CTA de seccion: un poco mas altos */
.page-home .home-header--filas .home-cta-pill,
.page-home .home-header--filas .home-nav-cta-pill,
.page-home .home-header--filas .home-header-intranet-pill {
    --btn-accion-pill-h: 32px;
    --btn-accion-pill-min-w: 0;
    --btn-accion-pill-px: 0.75rem;
    --btn-accion-pill-radius: 9999px;
    font-size: 0.8125rem;
    font-weight: 600;
    white-space: nowrap;
}

.page-home .home-cta-section .home-cta-pill,
.page-home .home-becas--editorial .home-cta-pill,
.page-home .home-contacto-block .home-cta-pill {
    --btn-accion-pill-h: 34px;
    --btn-accion-pill-min-w: 0;
    --btn-accion-pill-px: 0.9rem;
    --btn-accion-pill-radius: 9999px;
    font-size: 0.8125rem;
    font-weight: 600;
    white-space: nowrap;
}

.page-home .home-hero--editorial .home-cta-pill {
    --btn-accion-pill-h: 50px;
    --btn-accion-pill-min-w: 0;
    --btn-accion-pill-px: 1.5rem;
    --btn-accion-pill-radius: 9999px;
    font-size: 0.9375rem;
    font-weight: 600;
    white-space: nowrap;
    box-shadow: 0 10px 26px rgba(26, 26, 31, 0.35);
}

.page-home .home-header--filas .home-nav-cta-pill {
    margin-left: 0;
}

.page-home .home-ds-card {
    transition: transform var(--home-duration) var(--home-ease), box-shadow var(--home-duration) var(--home-ease);
}

.page-home .home-ds-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--home-shadow-md);
}

.page-home .home-ds-card .card-image__media-img {
    opacity: 1;
}

.page-home .home-ds-card-body {
    align-items: center;
    text-align: center;
}

.page-home .home-nivel-banda-cta.btn-accion-pill {
    align-self: flex-start;
    margin-top: 0.65rem;
}

.home-hero--editorial {
    position: relative;
    min-height: var(--home-hero-editorial-min, 100vh);
    display: flex;
    align-items: center;
    justify-content: flex-start;
    padding: 0;
    color: var(--home-text-on-dark);
    background: var(--home-hero-bg);
    overflow: hidden;
}

.home-hero--editorial .home-hero-content {
    position: relative;
    z-index: 3;
    display: grid;
    grid-template-columns: 1fr;
    align-items: center;
    justify-content: flex-start;
    width: 44%;
    max-width: 44%;
    margin-left: 0;
    margin-right: auto;
    margin-top: clamp(3.5rem, 10vh, 7rem);
    padding: 1.5rem 1.5rem 2.5rem 1.5rem;
    box-sizing: border-box;
    transform: translateY(8%);
    transition: width 0.9s cubic-bezier(0.65, 0, 0.35, 1), max-width 0.9s cubic-bezier(0.65, 0, 0.35, 1), margin 0.9s cubic-bezier(0.65, 0, 0.35, 1);
}

.home-hero--editorial .home-hero-eyebrow {
    font-size: 0.875rem;
    margin-bottom: 0.25rem;
}

.home-hero--editorial .hero-title {
    font-size: clamp(2rem, 3.5vw, 3rem);
    line-height: 1.12;
}

.home-hero--editorial .hero-slogan {
    font-size: clamp(1.1rem, 1.6vw, 1.35rem);
    margin-top: 0.25rem;
}

.home-hero--editorial .hero-lead {
    font-size: 0.9375rem;
    line-height: 1.45;
}

.home-hero-media {
    position: absolute;
    inset: 0;
    z-index: 0;
    /* mismo tono del degradado: si hay micro-junta no se ve negro */
    background: #4d0f0f;
    overflow: hidden;
}

.home-hero-carousel {
    position: absolute;
    inset: 0;
    background: #4d0f0f;
    overflow: hidden;
}

.home-hero-carousel-slide {
    position: absolute;
    inset: 0;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.55s ease, visibility 0.55s ease;
    background: #4d0f0f;
    overflow: hidden;
}

.home-hero-carousel-slide.is-active {
    opacity: 1;
    visibility: visible;
    z-index: 1;
}

/*
 * Panel derecho adaptable: desde el ovalo hasta el borde (60% escritorio).
 * La foto entra un poco bajo el ovalo (sin hueco); el scrim queda encima.
 */
.home-hero--editorial .home-hero-carousel-img {
    position: absolute !important;
    top: 0 !important;
    bottom: 0 !important;
    left: var(--home-hero-img-left, 40%) !important;
    right: auto !important;
    width: var(--home-hero-img-width, 60%) !important;
    height: 100% !important;
    max-width: none !important;
    min-width: 0;
    min-height: 100%;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    object-fit: cover !important;
    object-position: center center;
    display: block;
    z-index: 0;
    background: transparent;
    transform: none !important;
}

/* Portada: chicos centrados dentro del panel derecho */
.home-hero--editorial .home-hero-carousel-img--portada {
    object-position: 50% 30%;
}

/* Ovalo original (no aplastar la curva) */
.home-hero-scrim {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: var(--home-hero-scrim-width, 48%);
    z-index: 1;
    background: linear-gradient(135deg, #661414 0%, #4d0f0f 100%);
    clip-path: ellipse(108% 120% at -8% 50%);
    pointer-events: none;
    transition: width 0.9s cubic-bezier(0.65, 0, 0.35, 1);
}

.home-hero--editorial.home-hero--sede-active .home-hero-scrim {
    width: 46%;
}

/* Sedes: misma caja adaptable; fachada centrada */
.home-hero--editorial.home-hero--sede-active .home-hero-carousel-img {
    left: var(--home-hero-img-left, 40%) !important;
    width: var(--home-hero-img-width, 60%) !important;
    object-position: center 40%;
}

/* En slide de sedes: el panel de contenido se ubica mas a la derecha */
.home-hero--sede-active .home-hero-content {
    width: 44%;
    max-width: 44%;
    margin-left: clamp(5.5rem, 9vw, 11rem);
    margin-top: clamp(4.5rem, 11vh, 8rem);
    transform: translateY(12%);
    padding: 2rem 1.5rem 2rem 1.5rem;
}

.home-hero-carousel-nav {
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
}

.home-hero-carousel-arrow {
    pointer-events: auto;
    position: absolute;
    top: 42%;
    transform: translateY(-50%);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.75rem;
    height: 2.75rem;
    min-width: 44px;
    min-height: 44px;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, 0.35);
    background: rgba(26, 26, 31, 0.45);
    color: var(--home-text-on-dark);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    font-size: 1rem;
    cursor: pointer;
    transition: background 0.3s ease, transform 0.3s ease, border-color 0.3s ease;
    z-index: 4;
}

.home-hero-carousel-arrow:hover {
    background: rgba(102, 20, 20, 0.75);
    border-color: var(--home-color-dorado, #D99A56);
    transform: translateY(-52%) scale(1.05);
}

.home-hero-carousel-arrow--next {
    right: 1.25rem;
}

/* Indicadores de diapositivas (Dots) */
.home-hero-carousel-dots {
    position: absolute;
    bottom: 1.5rem;
    right: 2.5rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    z-index: 4;
    pointer-events: auto;
}

.home-hero-carousel-dot {
    width: 0.7rem;
    height: 0.7rem;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, 0.45);
    background: rgba(255, 255, 255, 0.25);
    cursor: pointer;
    padding: 0;
    transition: width 0.35s ease, background-color 0.35s ease, border-color 0.35s ease, border-radius 0.35s ease;
}

.home-hero-carousel-dot:hover {
    background: rgba(255, 255, 255, 0.6);
}

.home-hero-carousel-dot.is-active {
    width: 2rem;
    border-radius: 999px;
    background: var(--home-color-dorado, #D99A56);
    border-color: #F8D7A6;
    box-shadow: 0 0 10px rgba(217, 154, 86, 0.5);
}

.home-hero-text-col {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    text-align: left;
    gap: 0.65rem;
    max-width: 25rem;
    flex: 1 1 auto;
    min-width: 0;
    padding-bottom: 0.35rem;
    order: 1;
}

.home-hero-mascot {
    height: 18rem;
    width: auto;
    display: block;
    flex-shrink: 0;
    filter: drop-shadow(0 14px 24px rgba(10, 9, 11, 0.45));
    order: 0;
}

.home-hero-mascot--senala {
    height: clamp(26rem, 52vh, 38rem);
    margin-bottom: -0.75rem;
    margin-left: -0.75rem;
    margin-right: 0;
    transform: none;
}

/* Ventanas de escritorio angostas: el panel no tiene sitio para texto + mascota */
@media (max-width: 64rem) {
    .home-hero--editorial {
        --home-hero-img-left: 38%;
        --home-hero-img-width: 62%;
        --home-hero-scrim-width: 46%;
    }

    .home-hero-mascot {
        display: none;
    }
}

/* Grupo de paneles del hero: apilados en grilla para transicion suave y fluida */
.home-hero-panel-group {
    grid-column: 1;
    grid-row: 1;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 0.85rem 1.1rem;
    width: 100%;
    opacity: 0;
    visibility: hidden;
    transform: translateY(12px) scale(0.98);
    pointer-events: none;
    transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1), transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), visibility 0.3s ease;
}

.home-hero-panel-group.is-active {
    opacity: 1;
    visibility: visible;
    transform: translateY(0) scale(1);
    pointer-events: auto;
    transition: opacity 0.45s cubic-bezier(0.16, 1, 0.3, 1) 0.25s, transform 0.45s cubic-bezier(0.16, 1, 0.3, 1) 0.25s, visibility 0.45s ease 0.25s;
}

/* Microanimaciones escalonadas para los elementos dentro del panel activo */
.home-hero-panel-group.is-active .home-hero-eyebrow,
.home-hero-panel-group.is-active .home-hero-sede-badge-row {
    animation: heroItemFadeIn 0.45s cubic-bezier(0.16, 1, 0.3, 1) 0.28s both;
}

.home-hero-panel-group.is-active .hero-title {
    animation: heroItemFadeIn 0.5s cubic-bezier(0.16, 1, 0.3, 1) 0.34s both;
}

.home-hero-panel-group.is-active .hero-slogan,
.home-hero-panel-group.is-active .home-hero-sede-address {
    animation: heroItemFadeIn 0.5s cubic-bezier(0.16, 1, 0.3, 1) 0.40s both;
}

.home-hero-panel-group.is-active .home-hero-sede-chips,
.home-hero-panel-group.is-active .hero-lead {
    animation: heroItemFadeIn 0.5s cubic-bezier(0.16, 1, 0.3, 1) 0.46s both;
}

.home-hero-panel-group.is-active .home-hero-ctas {
    animation: heroItemFadeIn 0.5s cubic-bezier(0.16, 1, 0.3, 1) 0.52s both;
}

.home-hero-panel-group.is-active .home-hero-mascot {
    animation: heroMascotPop 0.6s cubic-bezier(0.16, 1, 0.3, 1) 0.3s both;
}

@keyframes heroItemFadeIn {
    from {
        opacity: 0;
        transform: translateY(10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes heroMascotPop {
    from {
        opacity: 0;
        transform: scale(0.93) translateY(10px);
    }
    to {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
}

/* Panel especifico de una sede: alineado a la izquierda (como Grupo Educativo) con bloque centrado en scrim */
.home-hero-panel-group--sede {
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    text-align: left;
    width: 100%;
    margin: 0;
}

.home-hero-panel-group--sede.is-active {
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    text-align: left;
}

.home-hero-sede-info {
    max-width: 25rem;
    align-items: flex-start;
    text-align: left;
    gap: 0.75rem;
    margin: 0;
    width: 100%;
}

.home-hero-sede-badge-row {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: 0.6rem;
    margin-bottom: 0.15rem;
    width: 100%;
}

.home-hero-sede-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.25rem 0.75rem;
    border-radius: 999px;
    background: rgba(217, 154, 86, 0.25);
    border: 1px solid rgba(217, 154, 86, 0.65);
    color: #F8D7A6;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.01em;
}

.home-hero-sede-eyebrow {
    font-size: 0.825rem;
    color: rgba(255, 255, 255, 0.75);
    letter-spacing: 0.01em;
    font-weight: 500;
}

.home-hero-sede-title {
    font-size: clamp(1.85rem, 3vw, 2.7rem) !important;
    line-height: 1.12 !important;
    margin: 0;
    color: #FFFFFF !important;
    font-weight: 800;
    text-align: left;
    width: 100%;
}

.home-hero-sede-address {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 0.45rem;
    font-size: 0.95rem;
    color: #F8D7A6;
    margin: 0.1rem 0 0.35rem 0;
    font-weight: 500;
    text-align: left;
    width: 100%;
}

.home-hero-sede-chips {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: 0.4rem;
    margin-bottom: 0.25rem;
    width: 100%;
}

.home-hero-panel-group--sede .hero-lead {
    text-align: left;
    max-width: 25rem;
    margin: 0;
    font-size: 0.95rem;
    line-height: 1.5;
}

.home-hero-panel-group--sede .home-hero-ctas {
    justify-content: flex-start;
    width: 100%;
    margin-top: 0.35rem;
}

.home-hero-chip {
    display: inline-block;
    padding: 0.2rem 0.65rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.15);
    border: 1px solid rgba(255, 255, 255, 0.25);
    color: #FFFFFF;
    font-size: 0.8rem;
    font-weight: 600;
}

.home-hero-chip--highlight {
    background: rgba(217, 154, 86, 0.3);
    border-color: rgba(217, 154, 86, 0.7);
    color: #FFF;
}

.home-hero-sede-card-nombre {
    font-size: clamp(0.78rem, 1.1vw, 0.9rem);
    font-weight: 700;
    color: var(--home-text-on-dark);
    margin: 0;
    line-height: 1.25;
}

.home-hero-sede-card-dir {
    font-size: clamp(0.68rem, 0.9vw, 0.78rem);
    color: rgba(255, 255, 255, 0.62);
    margin: 0;
    line-height: 1.35;
}

.home-hero-sede-card-niveles {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
    margin-top: 0.3rem;
}

.home-hero-sede-card-niveles span {
    font-size: 0.65rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    padding: 0.15rem 0.5rem;
    border-radius: 999px;
    background: rgba(102, 20, 20, 0.55);
    border: 1px solid rgba(217, 154, 86, 0.4);
    color: var(--home-color-dorado, #D99A56);
}

.home-hero--editorial .home-hero-eyebrow {
    font-size: clamp(0.85rem, 1.4vw, 1rem);
}

.home-hero--editorial .hero-title {
    font-size: clamp(2.75rem, 6vw, 3.85rem);
    margin-bottom: 0.2rem;
    max-width: none;
    line-height: 1.05;
}

.home-hero--editorial .hero-slogan {
    font-family: var(--home-font-display);
    font-size: clamp(1.2rem, 2.6vw, 1.55rem);
    font-weight: 600;
    color: var(--home-color-dorado, #D99A56);
    margin-bottom: 0.2rem;
    line-height: 1.25;
}

.home-hero--editorial .hero-lead {
    margin-left: 0;
    margin-right: 0;
    margin-bottom: 0.35rem;
    max-width: 28rem;
    font-size: clamp(0.95rem, 1.5vw, 1.1rem);
    line-height: 1.45;
}

.home-hero--editorial .home-hero-ctas {
    justify-content: flex-start;
    margin-top: 0.85rem;
    gap: 0.55rem;
}

.home-hero--editorial .btn-cta.home-btn-acento,
.home-hero--editorial .btn-cta-primary {
    background: var(--home-color1);
    color: var(--home-text-on-dark);
}

.home-hero--editorial .btn-cta.home-btn-acento:hover,
.home-hero--editorial .btn-cta-primary:hover {
    background: var(--home-color2);
    color: var(--home-text-on-dark);
}

.home-logros--editorial {
    background: var(--home-card-bg);
    padding-top: var(--home-section-py);
    padding-bottom: var(--home-section-py);
}

.home-logros-media {
    border-radius: var(--home-card-radius);
    overflow: hidden;
    box-shadow: var(--home-shadow-md);
    line-height: 0;
}

.home-logros-media-img {
    width: 100%;
    height: 100%;
    min-height: 280px;
    object-fit: cover;
    display: block;
}

.home-logro-stat {
    padding: 0.75rem 0.5rem 0.75rem 0;
    border-top: 2px solid var(--home-color1);
}

.home-logros--editorial .home-logro-num {
    font-family: var(--home-font-display);
    font-size: clamp(1.75rem, 3vw, 2.35rem);
    font-weight: 700;
    line-height: 1.1;
    color: var(--home-color1);
    display: block;
    margin-bottom: 0.35rem;
}

.home-logros--editorial .home-logro-label {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--home-text-muted);
    line-height: 1.35;
}

.home-nosotros-img-wrap--bleed {
    border-radius: 0;
    border: 0;
    box-shadow: var(--home-shadow-lg);
}

.home-niveles-bandas {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    margin-top: 1.5rem;
}

.home-nivel-banda {
    position: relative;
    display: grid;
    grid-template-columns: 1fr;
    min-height: 220px;
    border-radius: var(--home-card-radius);
    overflow: hidden;
    text-decoration: none;
    color: var(--home-text-on-dark);
    box-shadow: var(--home-shadow-sm);
    transition: transform var(--home-duration) var(--home-ease), box-shadow var(--home-duration) var(--home-ease);
}

.home-nivel-banda:hover {
    transform: translateY(-3px);
    box-shadow: var(--home-shadow-lg);
    color: var(--home-text-on-dark);
}

.home-nivel-banda-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s var(--home-ease);
}

.home-nivel-banda:hover .home-nivel-banda-img {
    transform: scale(1.05);
}

.home-nivel-banda-scrim {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(26, 26, 31, 0.9) 0%, rgba(102, 20, 20, 0.55) 48%, rgba(26, 26, 31, 0.35) 100%);
    z-index: 1;
}

.home-nivel-banda-body {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 0.35rem;
    padding: 1.5rem 1.5rem 1.5rem 1.75rem;
    max-width: 36rem;
}

.home-nivel-banda-num {
    font-family: var(--home-font-display);
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--home-color-dorado);
    letter-spacing: 0.08em;
}

.home-nivel-banda-titulo {
    font-family: var(--home-font-display);
    font-size: clamp(1.5rem, 3vw, 2rem);
    font-weight: 700;
    margin: 0;
}

.home-nivel-banda-texto {
    margin: 0;
    font-size: 0.9375rem;
    line-height: 1.55;
    color: var(--home-text-on-dark-soft);
}

.home-nivel-banda-cta {
    margin-top: 0.5rem;
    font-size: 0.875rem;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.home-cta-section--editorial {
    min-height: min(48vh, 420px);
}

.home-cta-scrim {
    position: absolute;
    inset: 0;
    background: linear-gradient(145deg, rgba(77, 15, 15, 0.82) 0%, rgba(26, 26, 31, 0.75) 100%);
}

.home-becas-media {
    border-radius: var(--home-card-radius);
    overflow: hidden;
    box-shadow: var(--home-shadow-md);
    line-height: 0;
}

.home-becas-media .home-becas-img {
    min-height: 320px;
    display: block;
}

@media (min-width: 48rem) {
    .home-nivel-banda {
        min-height: 240px;
    }

    .home-nivel-banda-body {
        padding-left: 2.5rem;
        max-width: 42rem;
    }
}

@media (max-width: 47.99rem) {
    .home-hero--editorial {
        min-height: 100vh;
        --home-hero-img-left: 0%;
        --home-hero-img-width: 100%;
        --home-hero-scrim-width: 100%;
    }

    .home-hero--editorial .home-hero-carousel-img {
        left: 0 !important;
        width: 100% !important;
        min-width: 0;
        height: 100% !important;
        max-width: none !important;
        object-fit: cover !important;
        object-position: center center;
        transform: none !important;
    }

    .home-hero--editorial .home-hero-carousel-img--portada {
        object-position: 50% 26%;
    }

    .home-hero--editorial.home-hero--sede-active .home-hero-carousel-img {
        left: 0 !important;
        width: 100% !important;
        object-position: center 38%;
    }

    .home-hero-scrim {
        width: 100%;
        clip-path: none;
        background-image:
            linear-gradient(to top, rgba(10, 9, 11, 0.75) 0%, rgba(10, 9, 11, 0.4) 45%, transparent 70%),
            linear-gradient(to top, rgba(102, 20, 20, 0.85) 0%, rgba(102, 20, 20, 0.5) 100%);
        background-size: 100% 100%, 100% 100%;
        background-repeat: no-repeat, no-repeat;
        background-position: center, center;
    }

    /* En movil el texto ocupa todo el ancho */
    .home-hero--sede-active .home-hero-scrim {
        width: 100%;
        clip-path: none;
    }

    .home-hero-carousel-arrow {
        top: 6.5%;
    }

    .home-hero-carousel-dots {
        bottom: 0.75rem;
        right: 50%;
        transform: translateX(50%);
    }

    .home-hero--editorial .home-hero-content,
    .home-hero--sede-active .home-hero-content {
        flex-direction: column;
        justify-content: center;
        align-items: flex-start;
        width: 100%;
        max-width: none;
        margin-left: 0;
        margin-right: 0;
        margin-top: 1rem;
        padding: 2.25rem 1rem 2rem;
        text-align: left;
        transform: none;
    }

    .home-hero-text-col {
        max-width: none;
    }

    .home-hero-mascot {
        display: none;
    }

    .home-hero--editorial .hero-title {
        max-width: none;
    }

    .home-nivel-banda-texto {
        display: -webkit-box;
        -webkit-line-clamp: 3;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }
}

/* ——— Compactacion + legibilidad (feedback 2026-09-14) ——— */
.home-logros--compacto {
    background: transparent;
}

.home-logros--compacto .home-logros-barra {
    display: grid;
    gap: 1rem 1.25rem;
    padding: 1.05rem 1.15rem;
    border-radius: var(--home-card-radius);
    background: linear-gradient(145deg, var(--home-color3) 0%, var(--home-color1) 100%);
    color: var(--home-text-on-dark);
}

@media (min-width: 62rem) {
    .home-logros--compacto .home-logros-barra {
        grid-template-columns: minmax(11rem, 0.85fr) 1.7fr;
        align-items: center;
    }
}

.home-logros-barra-stats {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem 0.85rem;
}

@media (min-width: 48rem) {
    .home-logros-barra-stats {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

.home-logro-stat--claro {
    border-top: 2px solid var(--home-color-dorado, #D99A56);
    padding-top: 0.45rem;
}

.home-logros--compacto .home-logro-stat--claro .home-logro-num {
    color: #fff;
    font-size: clamp(1.25rem, 2.2vw, 1.7rem);
}

.home-logros--compacto .home-logro-stat--claro .home-logro-label {
    color: rgba(255, 255, 255, 0.86);
    font-size: 0.72rem;
}

.home-logros-media--compacto {
    height: min(42vh, 360px);
    margin-top: 0.75rem;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--home-bg-cream);
}

.home-logros-media--compacto .home-logros-media-img {
    width: auto;
    height: 100%;
    max-width: 100%;
    min-height: 0;
    object-fit: contain;
}

.home-niveles-bandas {
    gap: 0.6rem;
    margin-top: 0.85rem;
}

.home-nivel-banda {
    min-height: 140px;
}

.home-nivel-banda-body {
    padding: 0.9rem 1.1rem;
    gap: 0.15rem;
}

.home-nivel-banda-titulo {
    font-size: clamp(1.2rem, 2.3vw, 1.5rem);
}

.home-nivel-banda-texto {
    font-size: 0.82rem;
    -webkit-line-clamp: 2;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.home-cta-section--editorial {
    min-height: min(30vh, 260px);
}

.page-home .home-ds-card .card-image__media {
    min-height: 9rem;
}

.page-home .card-image--vertical {
    min-height: 0;
}

.home-becas-media .home-becas-img {
    min-height: 200px;
    max-height: 260px;
}

@media (min-width: 48rem) {
    .home-nivel-banda {
        min-height: 148px;
    }
}

.home-noticias--compacto .home-noticias-head {
    margin-bottom: 0.85rem;
}

.home-noticias-rail {
    display: grid;
    gap: 0.55rem;
}

@media (min-width: 62rem) {
    .home-noticias-rail {
        grid-template-columns: 1fr 1fr;
        gap: 0.65rem 1rem;
    }
}

.home-noticia-item {
    display: grid;
    grid-template-columns: 5.5rem 1fr;
    gap: 0.75rem;
    align-items: center;
    padding: 0.55rem;
    border-radius: var(--home-card-radius);
    background: var(--home-card-bg, #fff);
    border: 1px solid color-mix(in srgb, var(--home-color-granate, #661414) 18%, transparent);
    text-decoration: none;
    color: inherit;
    transition: border-color 0.2s var(--home-ease), box-shadow 0.2s var(--home-ease);
}

.home-noticia-item:hover {
    border-color: var(--home-color-granate, #661414);
    box-shadow: var(--home-shadow-sm, 0 4px 14px rgba(26, 26, 31, 0.08));
}

.home-noticia-thumb {
    display: block;
    width: 5.5rem;
    height: 4.25rem;
    border-radius: 0.45rem;
    overflow: hidden;
    background: var(--home-section-alt, #f4f6f8);
}

.home-noticia-thumb-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.home-noticia-meta {
    display: block;
    font-size: 0.7rem;
    color: var(--home-ink-soft, #6b6560);
    margin-bottom: 0.2rem;
}

.home-noticia-titulo {
    display: block;
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--home-color-granate, #661414);
    line-height: 1.3;
}

.page-home .home-ds-grid {
    --bs-gutter-y: 0.9rem;
}

.page-home #medios .row {
    --bs-gutter-y: 0.9rem;
}

.page-home .home-section--ds .home-section-title {
    margin-bottom: 0.85rem;
}

.page-home #medios .home-section-subtitle {
    margin-bottom: 0.85rem !important;
    max-width: 36rem;
    font-size: 0.9rem;
}

/* ==========================================================================
   REDISEÑO INNOVADOR — HISTORIAS DE ÉXITO HASTA CONTACTO
   ========================================================================== */

/* 1. Historias de Éxito */
.home-pill-acento {
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.22);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    color: var(--color-dorado, #ffd700);
}

.home-logro-floating-badge {
    position: absolute;
    bottom: -15px;
    right: -15px;
    background: rgba(45, 10, 10, 0.88);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1.5px solid var(--color-dorado, #d99a56);
    border-radius: 1rem;
    padding: 0.75rem 1.15rem;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    z-index: 10;
    color: #ffffff;
}

.home-logro-floating-badge__icon {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 50%;
    background: rgba(217, 154, 86, 0.25);
    color: var(--color-dorado, #d99a56);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
}

.home-logro-tarjeta-innovadora {
    background: rgba(255, 255, 255, 0.08);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 1.15rem;
    padding: 1.25rem 1.35rem;
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
    display: flex;
    align-items: center;
    gap: 1rem;
    height: 100%;
}

.home-logro-tarjeta-innovadora:hover {
    background: rgba(255, 255, 255, 0.14);
    border-color: rgba(217, 154, 86, 0.6);
    transform: translateY(-4px);
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.25);
}

.home-logro-icono-wrap {
    width: 3rem;
    height: 3rem;
    border-radius: 50%;
    background: rgba(217, 154, 86, 0.2);
    color: var(--color-dorado, #d99a56);
    font-size: 1.25rem;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

/* 2. Nosotros */
.home-nosotros-pilar-card {
    background: var(--ui-card-surface, #ffffff);
    border: 1px solid var(--ui-card-border, rgba(92, 74, 61, 0.13));
    border-radius: 0.75rem;
    padding: 0.7rem 1rem;
    transition: all 0.3s var(--home-ease);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.02);
}

.home-nosotros-pilar-card:hover {
    transform: translateX(6px);
    border-color: var(--color-granate, #661414);
    box-shadow: 0 8px 20px rgba(102, 20, 20, 0.08);
}

.home-nosotros-pilar-icon {
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 0.65rem;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.95rem;
    flex-shrink: 0;
}

.home-nosotros-pilar-icon--valores {
    background: rgba(231, 76, 60, 0.12);
    color: #e74c3c;
}

.home-nosotros-pilar-icon--innovacion {
    background: rgba(241, 196, 15, 0.16);
    color: #d4ac0d;
}

.home-nosotros-pilar-icon--excelencia {
    background: rgba(102, 20, 20, 0.12);
    color: var(--color-granate, #661414);
}

.home-nosotros-stat-badge {
    position: absolute;
    bottom: -10px;
    left: -10px;
    background: #ffffff;
    border: 2px solid var(--color-granate, #661414);
    border-radius: 0.75rem;
    padding: 0.5rem 1rem;
    display: flex;
    align-items: center;
    gap: 0.6rem;
    z-index: 5;
}

.home-nosotros-stat-badge__num {
    font-family: var(--home-font-display);
    font-size: 1.5rem;
    font-weight: 800;
    line-height: 1;
    color: var(--color-granate, #661414);
}

.home-nosotros-stat-badge__label {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--color-text-muted, #666);
    max-width: 140px;
    line-height: 1.25;
}

/* 3. Niveles */
.home-nivel-card-innovador {
    background: #ffffff;
    border: 1px solid var(--ui-card-border, rgba(92, 74, 61, 0.13));
    border-radius: 1.25rem;
    overflow: hidden;
    transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.03);
}

.home-nivel-card-innovador:hover {
    transform: translateY(-8px);
    box-shadow: 0 16px 32px rgba(102, 20, 20, 0.1);
    border-color: color-mix(in srgb, var(--color-granate, #661414) 40%, transparent);
}

.home-nivel-media-wrap {
    position: relative;
    height: 220px;
    overflow: hidden;
}

.home-nivel-card-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

.home-nivel-card-innovador:hover .home-nivel-card-img {
    transform: scale(1.08);
}

.home-nivel-scrim {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.65) 0%, transparent 60%);
}

.home-nivel-tag {
    position: absolute;
    bottom: 15px;
    left: 15px;
    z-index: 2;
}

.home-nivel-step-num {
    position: absolute;
    top: 15px;
    right: 15px;
    z-index: 2;
    font-family: var(--home-font-display);
    font-size: 1.5rem;
    font-weight: 800;
    color: rgba(255, 255, 255, 0.85);
    text-shadow: 0 2px 5px rgba(0, 0, 0, 0.6);
}

.home-nivel-bullets li {
    line-height: 1.4;
    color: var(--color-text-muted, #555);
}

/* 4. Admisión */
.home-admision-paso-card {
    background: rgba(255, 255, 255, 0.08);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 1rem;
    padding: 1.25rem 1.35rem;
    transition: all 0.3s var(--home-ease);
}

.home-admision-paso-card:hover {
    background: rgba(255, 255, 255, 0.14);
    border-color: rgba(255, 255, 255, 0.3);
    transform: translateY(-4px);
}

.home-admision-paso-badge {
    display: inline-block;
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--color-dorado, #ffd700);
    margin-bottom: 0.4rem;
    letter-spacing: 0.01em;
}

/* 5. Becas */
.home-becas-floating-pill {
    position: absolute;
    bottom: 1rem;
    right: 1rem;
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 1rem;
    padding: 0.75rem 1.25rem;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    z-index: 5;
}

.home-icon-circulo-sm {
    width: 2.25rem;
    height: 2.25rem;
    font-size: 0.95rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    flex-shrink: 0;
}

.home-beca-card {
    transition: all 0.3s var(--home-ease);
}

.home-beca-card:hover {
    border-color: var(--color-granate, #661414);
    transform: translateY(-3px);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.05);
}

/* 6. Sedes & Medios */
.home-sedes--editorial {
    background:
        radial-gradient(ellipse 70% 50% at 50% 0%, rgba(102, 20, 20, 0.06), transparent 60%),
        var(--home-bg-section, #f7f1e8);
}

.home-sedes-intro {
    max-width: 40rem;
}

.home-sede-media {
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: #1a1010;
}

.home-sede-media .card-image__media-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
}

.home-sede-chip {
    position: absolute;
    top: 0.85rem;
    left: 0.85rem;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    padding: 0.3rem 0.75rem;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    color: #fff;
    background: rgba(102, 20, 20, 0.92);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.18);
}

.home-sede-nombre {
    margin: 0 0 0.5rem;
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--color-granate, #661414);
    line-height: 1.25;
}

.home-sede-dir {
    display: flex;
    align-items: flex-start;
    gap: 0.4rem;
    margin: 0 0 0.85rem;
    font-size: 0.82rem;
    line-height: 1.45;
    color: var(--color-text-muted, #6b6560);
    flex-grow: 1;
}

.home-sede-dir i {
    margin-top: 0.15rem;
    color: var(--color-granate, #661414);
    opacity: 0.75;
}

.home-sede-llegar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    margin-top: auto;
    align-self: center;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--color-granate, #661414);
    text-decoration: underline;
    text-underline-offset: 0.2em;
    background: none;
    border: 0;
    padding: 0;
    box-shadow: none;
    transition: color var(--home-duration) var(--home-ease);
}

.home-sede-llegar i {
    font-size: 0.8rem;
    text-decoration: none;
}

.home-sede-llegar:hover {
    color: var(--color-granate-hover, #7a1919);
    text-decoration: underline;
}

.home-sede-card,
.home-medios-card {
    transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
    overflow: hidden;
}

.home-sede-card:hover,
.home-medios-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 14px 28px rgba(102, 20, 20, 0.1) !important;
    border-color: var(--color-granate, #661414) !important;
}

.home-sede-card .card-image__media-img,
.home-medios-card .card-image__media-img {
    transition: transform 0.5s ease;
}

.home-sede-card:hover .card-image__media-img,
.home-medios-card:hover .card-image__media-img {
    transform: scale(1.06);
}

/* 7. Noticias Bento */
.home-noticia-destacada-card {
    min-height: 400px;
    background: #110505;
}

.home-noticia-scrim {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(20, 4, 4, 0.94) 0%, rgba(20, 4, 4, 0.45) 55%, transparent 100%);
}

.home-noticia-mini-card {
    transition: all 0.3s var(--home-ease);
}

.home-noticia-mini-card:hover {
    transform: translateX(5px);
    border-color: var(--color-granate, #661414);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.06) !important;
}

.home-noticia-mini-thumb {
    width: 95px;
    height: 75px;
}

/* 8. Contacto — info + formulario (homepage y /contacto) */
.home-contacto-panel {
    background: var(--home-card-bg, #fff);
    padding-top: 3.5rem;
    padding-bottom: 4rem;
}

.home-contacto-panel--solapa-hero {
    margin-top: -7.5rem;
    position: relative;
    z-index: 4;
    padding-top: 2rem;
    padding-bottom: 4rem;
    background: transparent;
}

.home-contacto-panel--solapa-hero .container {
    background: var(--home-card-bg, #fff);
    border-radius: 1.5rem;
    padding: 2rem 1.25rem 2.5rem;
    box-shadow:
        0 18px 48px rgba(31, 30, 30, 0.12),
        0 2px 0 rgba(102, 20, 20, 0.06);
    border: 1px solid rgba(31, 30, 30, 0.06);
}

.home-contacto-form-card {
    background: var(--home-card-bg, #fff);
    padding: 1.75rem 1.5rem;
    border-radius: var(--home-card-radius, 1rem);
    border: 1px solid rgba(31, 30, 30, 0.08);
    box-shadow: 0 12px 32px rgba(31, 30, 30, 0.08);
}

/* En la card grande de /contacto: sin card anidada; mismos form-floating */
.home-contacto-form-card--en-panel {
    background: transparent;
    padding: 0;
    border: none;
    box-shadow: none;
    border-radius: 0;
}

@media (min-width: 768px) {
    .home-contacto-form-card:not(.home-contacto-form-card--en-panel) {
        padding: 2.25rem 2rem;
    }

    .home-contacto-panel--solapa-hero {
        margin-top: -9rem;
    }

    .home-contacto-panel--solapa-hero .container {
        padding: 2.75rem 2.25rem 3.25rem;
        border-radius: 1.75rem;
    }
}

/* Formulario contacto: blanco + borde fino (sin outline+ring dobles del page-home) */
.home-contacto-form .form-floating {
    --floating-bg: var(--panel-floating-bg, var(--color-blanco, #ffffff));
    --floating-border: rgba(114, 114, 114, 0.28);
    --floating-border-hover: rgba(102, 20, 20, 0.4);
    --floating-focus: var(--home-color1, #661414);
    --floating-shadow: 0 0 0 2px rgba(var(--home-color1-rgb, 102, 20, 20), 0.16);
}

.home-contacto-form .form-floating > .form-control,
.home-contacto-form .form-floating > textarea.form-control {
    border-width: 1px;
}

.home-contacto-form .form-floating > textarea.form-control {
    min-height: 6rem;
}

.page-home .home-contacto-form .form-control:focus,
.page-home .home-contacto-form .form-control:focus-visible,
.page-home .home-contacto-form textarea.form-control:focus,
.page-home .home-contacto-form textarea.form-control:focus-visible {
    outline: none;
}

.home-contacto-form-card .form-floating > label {
    color: var(--floating-muted, var(--home-text-muted, #6c757d));
}

/* 9. Utilidades */
.home-sede-tag {
    font-size: 0.75rem;
    padding: 0.2rem 0.6rem;
    border-radius: 20px;
    background: var(--home-color1-light, rgba(102, 20, 20, 0.08));
    color: var(--color-granate, #661414);
    border: 1px solid rgba(102, 20, 20, 0.15);
    font-weight: 500;
    white-space: nowrap;
}

/* 10. Footer Social Icons — no pisar .home-pie-social-link */
.home-footer .home-pie-social-link:hover {
    transform: translateY(-2px);
    background: var(--home-color-dorado, #D99A56) !important;
    color: #fff !important;
}

.home-footer-postular-btn {
    background: var(--home-color-blanco, #fff);
    color: var(--home-color-granate, #661414) !important;
    border: 1px solid var(--home-color-blanco, #fff);
    font-size: 0.8125rem;
    font-weight: 600;
    transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0;
    text-decoration: none;
    width: auto;
    min-width: 9.5rem;
    margin-top: 0.85rem;
    border-radius: 9999px !important;
    padding: 0.55rem 1.35rem !important;
}

.home-footer-postular-btn i,
.home-footer-postular-btn svg,
.home-footer-postular-btn .fa,
.home-footer-postular-btn [class*="fa-"] {
    display: none !important;
}

.home-footer-postular-btn:hover {
    background: var(--home-color-dorado, #D99A56) !important;
    color: var(--home-color-blanco, #fff) !important;
    border-color: var(--home-color-dorado, #D99A56) !important;
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2);
}

.home-pie-contacto--sin-iconos .home-pie-contacto-item {
    gap: 0;
}

.home-pie-contacto--sin-iconos .home-pie-contacto-item > a,
.home-pie-contacto--sin-iconos .home-pie-contacto-item > span,
.home-pie-contacto--sin-iconos .home-pie-contacto-item > div {
    margin-left: 0;
}

/* Responsivo para móviles */
@media (max-width: 991px) {
    .home-logro-floating-badge {
        right: 10px;
        bottom: 10px;
    }

    .home-nosotros-stat-badge {
        left: 10px;
        bottom: 10px;
    }

    .home-becas-floating-pill {
        right: 10px;
        bottom: 10px;
    }

    .home-logro-tarjeta-innovadora {
        flex-direction: column;
        text-align: center;
        padding: 1rem 0.75rem;
    }

    .home-logro-datos {
        text-align: center;
    }
}

