/* ==========================================================================
   Variables
   ========================================================================== */
:root {
    --nuevo-azul: #0B2A5B;
    --nuevo-rojo: #E2001A;
    --nuevo-celeste: #0085B2;
    --nuevo-gris: #F4F4F6;
    --nuevo-negro: #1D1D1F;
    --nuevo-gris-texto: #6B6B70;
    --nuevo-rosa: #FDF1F1;
    --nuevo-blanco: #FFFFFF;
    --nuevo-borde: #E3E3E8;
    --nuevo-rojo-error: #FF0000;

    --nuevo-ancho-contenido: 960px;
    --nuevo-padding-lateral: 20px;

    --nuevo-espacio-xs: 8px;
    --nuevo-espacio-sm: 16px;
    --nuevo-espacio-md: 24px;
    --nuevo-espacio-lg: 32px;
    --nuevo-espacio-xl: 48px;
    --nuevo-espacio-seccion: 40px;

    --nuevo-radio-sm: 8px;
    --nuevo-radio-md: 16px;
    --nuevo-radio-pill: 40px;
}
@media (min-width: 992px) {
    :root {
        --nuevo-espacio-lg: 40px;
        --nuevo-espacio-xl: 56px;
        --nuevo-espacio-seccion: 60px;
    }
}

/* ==========================================================================
   Contenedor
   ========================================================================== */
.contenedor-nuevo {
    box-sizing: border-box;
    width: 100%;
    max-width: var(--nuevo-ancho-contenido);
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--nuevo-padding-lateral);
    padding-right: var(--nuevo-padding-lateral);
}

/* ==========================================================================
   Espaciados
   ========================================================================== */
.nuevo-py-seccion { padding-top: var(--nuevo-espacio-seccion); padding-bottom: var(--nuevo-espacio-seccion); }
.nuevo-pt-seccion { padding-top: var(--nuevo-espacio-seccion); }
.nuevo-pb-seccion { padding-bottom: var(--nuevo-espacio-seccion); }
.nuevo-p-tarjeta { padding: var(--nuevo-espacio-md); }

.nuevo-mt-0 { margin-top: 0; }
.nuevo-mt-xs { margin-top: var(--nuevo-espacio-xs); }
.nuevo-mt-sm { margin-top: var(--nuevo-espacio-sm); }
.nuevo-mt-md { margin-top: var(--nuevo-espacio-md); }
.nuevo-mt-lg { margin-top: var(--nuevo-espacio-lg); }
.nuevo-mt-xl { margin-top: var(--nuevo-espacio-xl); }

.nuevo-mb-0 { margin-bottom: 0; }
.nuevo-mb-xs { margin-bottom: var(--nuevo-espacio-xs); }
.nuevo-mb-sm { margin-bottom: var(--nuevo-espacio-sm); }
.nuevo-mb-md { margin-bottom: var(--nuevo-espacio-md); }
.nuevo-mb-lg { margin-bottom: var(--nuevo-espacio-lg); }
.nuevo-mb-xl { margin-bottom: var(--nuevo-espacio-xl); }

@media (min-width: 992px) {
    .nuevo-p-tarjeta { padding: var(--nuevo-espacio-lg); }
}

/* ==========================================================================
   Tipografía
   ========================================================================== */
.nuevo-titulo-seccion {
    margin: 0 0 var(--nuevo-espacio-sm);
    font-size: 28px;
    font-weight: 400;
    line-height: 1.2;
    strong, b {
        font-weight: 700;
    }
}
.nuevo-kicker {
    margin: 0 0 var(--nuevo-espacio-xs);
    font-size: 14px;
    font-style: italic;
    font-weight: 500;
    line-height: 1.3;
}
.nuevo-parrafo,
.nuevo-parrafo-sm,
.nuevo-parrafo-xs {
    margin: 0;
    line-height: 1.5;
    strong, b {
        font-weight: 700;
    }
}
.nuevo-parrafo { font-size: 16px; }
.nuevo-parrafo-sm { font-size: 14px; }
.nuevo-parrafo-xs { font-size: 12px; }
.nuevo-texto-centro { text-align: center; }

@media (min-width: 992px) {
    .nuevo-titulo-seccion {
        font-size: 36px;
    }
    .nuevo-kicker {
        font-size: 16px;
    }
}

/* ==========================================================================
   Colores de fondo
   ========================================================================== */
.nuevo-bg-azul { background-color: var(--nuevo-azul); }
.nuevo-bg-rojo { background-color: var(--nuevo-rojo); }
.nuevo-bg-gris { background-color: var(--nuevo-gris); }
.nuevo-bg-negro { background-color: var(--nuevo-negro); }
.nuevo-bg-rosa { background-color: var(--nuevo-rosa); }
.nuevo-bg-blanco { background-color: var(--nuevo-blanco); }

/* ==========================================================================
   Colores de texto (van después de la tipografía para poder sobrescribirla)
   ========================================================================== */
.nuevo-color-azul { color: var(--nuevo-azul); }
.nuevo-color-rojo { color: var(--nuevo-rojo); }
.nuevo-color-negro { color: var(--nuevo-negro); }
.nuevo-color-gris { color: var(--nuevo-gris-texto); }
.nuevo-color-blanco { color: var(--nuevo-blanco); }

/* ==========================================================================
   Botones
   ========================================================================== */
.nuevo-btn {
    -webkit-appearance: none;
    appearance: none;
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 44px;
    padding: 10px 32px;
    border: 2px solid transparent;
    border-radius: var(--nuevo-radio-pill);
    font-family: inherit;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
    &:hover, &:focus {
        text-decoration: none;
    }
    &:focus-visible {
        outline: 3px solid rgba(11, 42, 91, 0.35);
        outline-offset: 2px;
    }
}
.nuevo-btn-sm {
    min-height: 36px;
    padding: 8px 24px;
    font-size: 14px;
}
.nuevo-btn-bloque {
    width: 100%;
}
.nuevo-btn-rojo {
    background-color: var(--nuevo-rojo);
    border-color: var(--nuevo-rojo);
    color: var(--nuevo-blanco);
    &:hover, &:focus {
        background-color: var(--nuevo-azul);
        border-color: var(--nuevo-azul);
        color: var(--nuevo-blanco);
    }
}
.nuevo-btn-azul {
    background-color: var(--nuevo-azul);
    border-color: var(--nuevo-azul);
    color: var(--nuevo-blanco);
    &:hover, &:focus {
        background-color: var(--nuevo-rojo);
        border-color: var(--nuevo-rojo);
        color: var(--nuevo-blanco);
    }
}

.nuevo-btn-blanco {
    background-color: var(--nuevo-blanco);
    border-color: var(--nuevo-blanco);
    color: var(--nuevo-azul);
    &:hover, &:focus {
        background-color: var(--nuevo-azul);
        border-color: var(--nuevo-azul);
        color: var(--nuevo-blanco);
    }
}
.nuevo-btn-borde-azul {
    background-color: var(--nuevo-blanco);
    border-color: var(--nuevo-azul);
    color: var(--nuevo-azul);
    &:hover, &:focus {
        background-color: var(--nuevo-azul);
        color: var(--nuevo-blanco);
    }
}
.nuevo-btn-borde-rojo {
    background-color: transparent;
    border-color: var(--nuevo-rojo);
    color: var(--nuevo-rojo);
    &:hover, &:focus {
        background-color: var(--nuevo-rojo);
        color: var(--nuevo-blanco);
    }
}
.nuevo-btn-borde-blanco {
    background-color: transparent;
    border-color: var(--nuevo-blanco);
    color: var(--nuevo-blanco);
    &:hover, &:focus {
        background-color: var(--nuevo-blanco);
        color: var(--nuevo-azul);
    }
}
.nuevo-btn-celeste {
    background-color: var(--nuevo-celeste);
    border-color: var(--nuevo-celeste);
    color: var(--nuevo-blanco);
    &:hover, &:focus {
        background-color: transparent;
        border-color: var(--nuevo-celeste);
        color: var(--nuevo-celeste);
    }
}
.nuevo-boton-hover-celeste {
    &:hover, &:focus {
        background-color: var(--nuevo-celeste) !important;
        border-color: var(--nuevo-celeste) !important;
        color: var(--nuevo-blanco) !important;
    }
}

/* ==========================================================================
   Toggle (selector de opciones tipo pastilla)
   ========================================================================== */
.nuevo-toggle {
    display: inline-flex;
    gap: 4px;
    padding: 3px;
    border: 1.5px solid var(--nuevo-rojo);
    border-radius: var(--nuevo-radio-pill);
    background-color: var(--nuevo-blanco);
}
.nuevo-toggle-bloque {
    display: flex;
    width: 100%;
    .nuevo-toggle-btn {
        flex: 1;
    }
}
.nuevo-toggle-btn {
    -webkit-appearance: none;
    appearance: none;
    padding: 8px 24px;
    border: 0;
    border-radius: var(--nuevo-radio-pill);
    background-color: transparent;
    color: var(--nuevo-negro);
    font-family: inherit;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.2;
    cursor: pointer;
    transition: background-color 0.2s ease, color 0.2s ease;
    &:hover {
        color: var(--nuevo-rojo);
    }
    &.is-active {
        background-color: var(--nuevo-rojo);
        color: var(--nuevo-blanco);
        cursor: default;
    }
    &:focus-visible {
        outline: 2px solid var(--nuevo-azul);
        outline-offset: 2px;
    }
}
@media (min-width: 992px) {
    .nuevo-toggle-bloque {
        display: inline-flex;
        width: auto;
        .nuevo-toggle-btn {
            flex: initial;
        }
    }
}

/* ==========================================================================
   Banner interno 2026 (modules/m_banner-interno-2026.php)
   ========================================================================== */
.nuevo-banner-link {
    display: block;
    color: inherit;
    text-decoration: none;
    &:hover, &:focus {
        color: inherit;
        text-decoration: none;
    }
}
.nuevo-banner {
    position: relative;
    display: flex;
    align-items: flex-end;
    height: 560px;
    overflow: hidden;
    background-color: var(--nuevo-azul);
    color: var(--nuevo-blanco);
    &::after {
        content: '';
        position: absolute;
        inset: 0;
        z-index: 1;
        background: linear-gradient(180deg, rgba(11, 42, 91, 0.02) 25%, #0B2A5B 57%);
        pointer-events: none;
    }
}
.nuevo-banner-media {
    position: absolute;
    z-index: 0;
    display: block;
    width: 100%;
    height: 100%;
    img {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center top;
    }
}
.nuevo-banner-contenido {
    position: relative;
    z-index: 2;
    padding-top: var(--nuevo-espacio-xl);
    padding-bottom: var(--nuevo-espacio-lg);
}
.nuevo-banner-titulo {
    margin: 0 0 var(--nuevo-espacio-sm);
    font-size: 36px;
    font-weight: 400;
    line-height: 1.15;
    color: inherit;
    strong, b {
        font-weight: 700;
    }
}
.nuevo-banner-bajada {
    font-size: 15px;
    line-height: 1.5;
    p {
        margin: 0;
    }
    strong, b {
        font-weight: 700;
    }
}
.nuevo-banner-ctas {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: var(--nuevo-espacio-md);
    .nuevo-btn:hover, .nuevo-btn:focus {
        border-color: var(--nuevo-blanco);
    }
}
@media (min-width: 768px) {
    .nuevo-banner {
        align-items: center;
        height: 420px;
        &::after {
            background: linear-gradient(270deg, rgba(11, 42, 91, 0.02) 25%, #0B2A5B 57%);
        }
    }
    .nuevo-banner-media {
        width: 70%;
        right: 0;
    }
    .nuevo-banner-contenido {
        padding-top: var(--nuevo-espacio-xl);
        padding-bottom: var(--nuevo-espacio-xl);
    }
    .nuevo-banner-texto {
        max-width: 440px;
    }
}
@media (min-width: 992px) {
    .nuevo-banner-titulo {
        font-size: 48px;
    }
}
