/*
Theme Name: Astra Child
Theme URI: https://wpastra.com/
Description: Tema hijo de Astra
Author: Damian
Author URI: https://wpastra.com/
Template: astra
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: astra-child
*/

/* =====================================================
   SUTCAPRA - Estilos personalizados
   ===================================================== */

/* --- Variables de color --- */
:root {
    --color-primario:        #334F9B;
    --color-secundario:      #2EA2DA;
    --color-acento:          #2EA2DA;
    --color-acento-alt:      #7BCFE3;
    --color-profundo:        #3C3A9B;
    --color-celeste:         #5BBAD9;
    --color-celeste-claro:   #7BCFE3;
    --color-texto:           #ffffff;
    --color-dropdown-bg:     rgba(40, 58, 130, 0.97);
    --color-dropdown-hover:  #2EA2DA;

    /* Tipografía */
    --font-main: 'Poppins', 'Inter', system-ui, sans-serif;

    /* Efectos */
    --radius-sm:   8px;
    --radius-md:   12px;
    --radius-lg:   16px;
    --radius-xl:   24px;
    --shadow-sm:   0 2px 8px rgba(51, 79, 155, 0.10);
    --shadow-md:   0 8px 32px rgba(51, 79, 155, 0.16);
    --shadow-lg:   0 16px 48px rgba(51, 79, 155, 0.22);
    --shadow-glow: 0 8px 32px rgba(46, 162, 218, 0.30);
    --transition:  all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* =====================================================
   HEADER - transparente solo en la home
   ===================================================== */

/* Todas las páginas: header azul sólido, posición normal */
.site-header,
#masthead,
.main-header-bar {
    background: var(--color-primario) !important;
    position: relative !important;
    width: 100%;
    z-index: 999;
    box-shadow: 0 2px 12px rgba(51, 79, 155, 0.35) !important;
    transition: background 0.4s ease, box-shadow 0.4s ease !important;
}

/* Solo en la home: glassmorphism sticky superpuesto al hero */
.home .site-header,
.home #masthead,
.home .main-header-bar {
    background: rgba(25, 40, 100, 0.30) !important;
    backdrop-filter: blur(18px) saturate(180%) !important;
    -webkit-backdrop-filter: blur(18px) saturate(180%) !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12) !important;
    position: fixed !important;
    top: 0;
    left: 0;
    width: 100%;
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.15) !important;
}

/* Header home al hacer scroll (clase añadida por JS) */
.home .site-header.sc-header-scrolled,
.home #masthead.sc-header-scrolled,
.home .main-header-bar.sc-header-scrolled {
    background: rgba(51, 79, 155, 0.95) !important;
    backdrop-filter: blur(20px) !important;
    -webkit-backdrop-filter: blur(20px) !important;
    box-shadow: 0 4px 24px rgba(51, 79, 155, 0.40) !important;
}

/* Contenedor del menú: ancho completo y posición relativa para logo absoluto */
.main-header-bar .ast-container,
.ast-main-header-wrap,
.ast-header-wrap {
    max-width: 100% !important;
    padding: 0 24px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-wrap: nowrap !important;
    position: relative !important;
}

/* =====================================================
   LOGO — posición absoluta a la izquierda
   ===================================================== */

.site-logo,
.ast-site-identity,
#ast-hf-site-identity {
    position: absolute !important;
    left: 24px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    z-index: 2;
    margin-right: 0 !important;
    flex-shrink: 0;
}

.site-logo img,
.custom-logo {
    max-height: 85px !important;
    width: auto !important;
}

/* =====================================================
   MENÚ PRINCIPAL — centrado en el ancho total del header
   ===================================================== */

.main-navigation,
#ast-hf-menu-1,
.ast-nav-menu-enabled {
    flex: 0 0 auto !important;
    width: 100% !important;
}

.ast-nav-menu {
    display: flex !important;
    flex-wrap: nowrap !important;
    justify-content: center !important;
    align-items: center !important;
    width: 100%;
    margin: 0 !important;
    padding: 0 !important;
}

.ast-nav-menu > li {
    flex-shrink: 0;
}

/* Ítems del menú principal */
.ast-nav-menu > li > a,
.main-navigation ul > li > a {
    color: var(--color-texto) !important;
    font-size: 11.5px !important;
    font-weight: 700 !important;
    letter-spacing: 0.3px;
    padding: 14px 8px 8px !important;
    white-space: nowrap;
    text-transform: uppercase;
    text-shadow: 0 1px 3px rgba(0,0,0,0.5);
    transition: color 0.2s;
}

/* Hover e ítem activo */
.ast-nav-menu > li > a:hover,
.ast-nav-menu > li.current-menu-item > a,
.ast-nav-menu > li.current-menu-ancestor > a {
    color: var(--color-celeste-claro) !important;
    background: transparent !important;
}

/* Indicador activo — línea inferior */
.ast-nav-menu > li.current-menu-item > a::after,
.ast-nav-menu > li.current-menu-ancestor > a::after {
    content: '';
    display: block;
    position: absolute;
    bottom: 0;
    left: 9px;
    right: 9px;
    height: 3px;
    background: var(--color-celeste-claro);
    border-radius: 2px 2px 0 0;
}

.ast-nav-menu > li > a {
    position: relative;
}

/* Eliminar outline/border de foco en ítems del menú */
.ast-nav-menu > li > a:focus,
.ast-nav-menu > li > a:active,
.ast-nav-menu > li:focus,
.ast-nav-menu > li:focus-within,
.main-navigation ul > li > a:focus,
.main-navigation ul > li > a:active {
    outline: none !important;
    border: none !important;
    box-shadow: none !important;
}

/* Flecha de submenú */
.ast-nav-menu li .ast-menu-toggle svg,
.ast-nav-menu li .ast-menu-toggle {
    color: var(--color-texto) !important;
    fill: var(--color-texto) !important;
}

/* =====================================================
   DROPDOWNS
   ===================================================== */

.ast-nav-menu .sub-menu,
.main-navigation ul ul {
    background-color: var(--color-dropdown-bg) !important;
    border: none !important;
    border-top: 3px solid var(--color-secundario) !important;
    border-radius: 0 0 10px 10px !important;
    box-shadow: 0 12px 40px rgba(51, 79, 155, 0.45) !important;
    min-width: 220px !important;
    padding: 6px 0 !important;
    backdrop-filter: blur(12px) !important;
    -webkit-backdrop-filter: blur(12px) !important;
}

.ast-nav-menu .sub-menu li a,
.main-navigation ul ul li a {
    color: var(--color-texto) !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    padding: 10px 18px !important;
    text-transform: none !important;
    letter-spacing: 0.2px;
    border-bottom: 1px solid rgba(255,255,255,0.08) !important;
    transition: background-color 0.15s, padding-left 0.15s;
    display: block;
    text-shadow: none;
}

.ast-nav-menu .sub-menu li:last-child a {
    border-bottom: none !important;
}

.ast-nav-menu .sub-menu li a:hover {
    background-color: rgba(46, 162, 218, 0.25) !important;
    color: var(--color-celeste-claro) !important;
    padding-left: 26px !important;
}

/* =====================================================
   RESPONSIVE - MENÚ MÓVIL
   ===================================================== */

@media (max-width: 920px) {

    /* En móvil el header vuelve a ser sólido para mejor legibilidad */
    .site-header,
    #masthead,
    .main-header-bar {
        background: var(--color-primario) !important;
        position: relative !important;
    }

    /* En móvil el logo vuelve a flujo normal */
    .site-logo,
    .ast-site-identity,
    #ast-hf-site-identity {
        position: relative !important;
        left: auto !important;
        top: auto !important;
        transform: none !important;
    }

    .main-navigation,
    #ast-hf-menu-1,
    .ast-nav-menu-enabled {
        width: auto !important;
    }

    /* Botón hamburguesa */
    .ast-mobile-menu-trigger-1 span,
    .ast-mobile-menu-trigger span {
        background-color: var(--color-texto) !important;
    }

    /* Menú desplegado */
    .ast-header-break-point .main-navigation ul,
    .ast-header-break-point .ast-nav-menu {
        background-color: var(--color-primario) !important;
    }

    .ast-header-break-point .main-navigation ul li a {
        color: var(--color-texto) !important;
        border-bottom: 1px solid rgba(255,255,255,0.1) !important;
        padding: 13px 20px !important;
        font-size: 14px !important;
    }

    .ast-header-break-point .main-navigation ul ul li a {
        background-color: rgba(0,0,0,0.25) !important;
        padding-left: 36px !important;
    }
}

/* =====================================================
   HOME PAGE - ROMPER CONTENEDOR DE ASTRA
   ===================================================== */

/* Eliminar padding/margin del contenedor de Astra en la home */
.home .ast-article-single,
.home #content,
.home .ast-container,
.home .entry-content,
.home .site-content,
.home #primary,
.home .content-area,
.home .ast-row {
    max-width: 100% !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    float: none !important;
}

.home .ast-article-single {
    padding: 0 !important;
}

/* Quitar padding lateral del wrapper principal */
.home #page {
    overflow-x: hidden;
}

/* Quitar margen del post en la home */
.home .post,
.home .page,
.home article {
    margin: 0 !important;
    padding: 0 !important;
}

#sutcapra-home {
    overflow-x: hidden;
    width: 100%;
}

.sc-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 24px;
}

.sc-section-title {
    font-size: 32px;
    font-weight: 800;
    color: #334F9B;
    text-align: center;
    margin: 0 0 36px;
    position: relative;
}

.sc-section-title::after {
    content: '';
    display: block;
    width: 60px;
    height: 4px;
    background: #2EA2DA;
    margin: 12px auto 0;
    border-radius: 2px;
}

.sc-section-title--light {
    color: #ffffff !important;
}

.sc-section-title--light::after {
    background: linear-gradient(90deg, #7BCFE3, #2EA2DA) !important;
}

.sc-section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 36px;
    flex-wrap: wrap;
    gap: 12px;
}

.sc-section-header .sc-section-title {
    margin: 0;
}

/* Botones */
.sc-btn {
    display: inline-block;
    padding: 13px 28px;
    border-radius: 6px;
    font-size: 15px;
    font-weight: 700;
    text-decoration: none;
    transition: all 0.2s;
    cursor: pointer;
    white-space: nowrap;
}

.sc-btn--primary {
    background: linear-gradient(135deg, #2EA2DA 0%, #334F9B 100%);
    color: #ffffff;
    border: 2px solid transparent;
    box-shadow: 0 4px 16px rgba(46, 162, 218, 0.35);
}

.sc-btn--primary:hover {
    background: linear-gradient(135deg, #3C3A9B 0%, #2EA2DA 100%);
    border-color: transparent;
    color: #ffffff;
    box-shadow: 0 8px 28px rgba(46, 162, 218, 0.50);
    transform: translateY(-2px);
}

.sc-btn--outline {
    background: rgba(255,255,255,0.08);
    color: #fff;
    border: 2px solid rgba(255,255,255,0.70);
    backdrop-filter: blur(4px);
}

.sc-btn--outline:hover {
    background: #fff;
    border-color: #fff;
    color: #334F9B;
    box-shadow: 0 8px 24px rgba(255,255,255,0.20);
}

.sc-btn--outline-light {
    background: rgba(255,255,255,0.10);
    color: #fff;
    border: 2px solid rgba(255,255,255,0.60);
    padding: 9px 20px;
    font-size: 14px;
    backdrop-filter: blur(4px);
}

.sc-btn--outline-light:hover {
    background: rgba(255,255,255,0.22);
    border-color: #fff;
    color: #fff;
}

.sc-btn--lg {
    padding: 16px 36px;
    font-size: 17px;
}

/* =====================================================
   HERO
   ===================================================== */

.sc-hero {
    position: relative;
    min-height: 100vh;
    background: linear-gradient(135deg, #1a2464 0%, #334F9B 50%, #3C3A9B 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    width: 100%;
}

/* Cuando se asigne una imagen de fondo desde WordPress */
.sc-hero.has-bg-image {
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    background-attachment: scroll;
}

.sc-hero__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to bottom,
        rgba(15, 25, 80, 0.65) 0%,
        rgba(30, 50, 130, 0.45) 40%,
        rgba(15, 25, 80, 0.72) 100%
    );
}

.sc-hero__content {
    position: relative;
    z-index: 1;
    padding: 120px 24px 60px;
    max-width: 1100px;
}

.sc-hero__logo {
    max-height: 120px;
    width: auto;
    margin-bottom: 24px;
    filter: drop-shadow(0 4px 12px rgba(0,0,0,0.4));
}

.sc-hero__title {
    font-size: 42px;
    font-weight: 900;
    color: #fff;
    line-height: 1.15;
    margin: 0 0 16px;
    text-shadow: 0 2px 8px rgba(0,0,0,0.4);
}

.sc-hero__sub {
    font-size: 20px;
    color: rgba(255,255,255,0.88);
    margin: 0 0 32px;
    text-shadow: 0 1px 4px rgba(0,0,0,0.3);
}

.sc-hero__btns {
    display: flex;
    gap: 16px;
    justify-content: center;
    flex-wrap: wrap;
}

/* =====================================================
   TARJETAS FLOTANTES ESTILO AERI
   ===================================================== */

.sc-flotantes {
    position: relative;
    z-index: 10;
    margin-top: -70px;
    padding: 0 0 20px;
}

.sc-flotantes__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.sc-flotante-card {
    background: #fff;
    border-radius: 16px;
    padding: 36px 28px 28px;
    text-align: center;
    text-decoration: none;
    box-shadow: 0 8px 32px rgba(0,0,0,0.12);
    border-bottom: 4px solid transparent;
    transition: all 0.25s;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
}

.sc-flotante-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 16px 48px rgba(0,0,0,0.18);
}

.sc-flotante-card--afiliacion { border-bottom-color: #334F9B; }
.sc-flotante-card--beneficios { border-bottom-color: #2EA2DA; }
.sc-flotante-card--turismo    { border-bottom-color: #2EA2DA; }

.sc-flotante-card__icono {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 4px;
}

.sc-flotante-card--afiliacion .sc-flotante-card__icono {
    background: #e8eef8;
    color: #334F9B;
}
.sc-flotante-card--beneficios .sc-flotante-card__icono {
    background: #e8f4fb;
    color: #2EA2DA;
}
.sc-flotante-card--turismo .sc-flotante-card__icono {
    background: #e8f0ff;
    color: #2EA2DA;
}

.sc-flotante-card__icono svg {
    width: 34px;
    height: 34px;
    stroke-width: 1.8;
}

.sc-flotante-card h3 {
    font-size: 20px !important;
    font-weight: 800 !important;
    color: #1a1a2e !important;
    margin: 0 !important;
    line-height: 1.2 !important;
}

.sc-flotante-card p {
    font-size: 14px !important;
    color: #777 !important;
    margin: 0 !important;
    line-height: 1.5 !important;
}

@media (max-width: 768px) {
    .sc-flotantes {
        margin-top: 0;
        padding: 32px 0 0;
    }
    .sc-flotantes__grid {
        grid-template-columns: 1fr;
        gap: 16px;
    }
}

/* =====================================================
   ACCESOS RÁPIDOS
   ===================================================== */

.sc-accesos {
    padding: 72px 0;
    background: #f7f9fc;
}

.sc-accesos__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.sc-acceso-card {
    background: #fff;
    border-radius: 12px;
    padding: 32px 24px;
    text-align: center;
    text-decoration: none;
    box-shadow: 0 4px 16px rgba(0,0,0,0.07);
    border-bottom: 4px solid transparent;
    transition: all 0.25s;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.sc-acceso-card:hover {
    border-bottom-color: #2EA2DA;
    transform: translateY(-4px);
    box-shadow: 0 10px 28px rgba(0,0,0,0.12);
}

.sc-acceso-card__icon {
    font-size: 48px;
    margin-bottom: 14px;
    line-height: 1;
}

.sc-acceso-card h3 {
    font-size: 18px;
    font-weight: 800;
    color: #334F9B;
    margin: 0 0 8px;
}

.sc-acceso-card p {
    font-size: 14px;
    color: #666;
    margin: 0 0 16px;
    line-height: 1.4;
}

.sc-acceso-card__link {
    font-size: 13px;
    font-weight: 700;
    color: #2EA2DA;
    margin-top: auto;
}

/* =====================================================
   NOTICIAS
   ===================================================== */

.sc-noticias {
    padding: 72px 0;
    background: #334F9B;
}

.sc-noticias__cta {
    text-align: right;
    margin-top: 32px;
}

.sc-noticias__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.sc-noticia-card {
    background: #fff;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 16px rgba(0,0,0,0.15);
    transition: transform 0.2s, box-shadow 0.2s;
    display: flex;
    flex-direction: column;
}

.sc-noticia-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 10px 28px rgba(0,0,0,0.2);
}

.sc-noticia-card__img-wrap {
    display: block;
    height: 200px;
    overflow: hidden;
}

.sc-noticia-card__img {
    width: 100%;
    height: 200px;
    object-fit: cover;
    transition: transform 0.3s;
}

.sc-noticia-card:hover .sc-noticia-card__img {
    transform: scale(1.05);
}

.sc-noticia-card__placeholder {
    width: 100%;
    height: 200px;
    background: linear-gradient(135deg, #334F9B 0%, #2EA2DA 100%);
    display: flex;
    align-items: center;
    justify-content: center;
}

.sc-noticia-card__placeholder svg {
    width: 100%;
    height: 100%;
}

.sc-noticia-card__body {
    padding: 20px;
    flex: 1;
    display: flex;
    flex-direction: column;
}

.sc-noticia-card__fecha {
    font-size: 12px;
    color: #2EA2DA;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 8px;
    display: block;
}

.sc-noticia-card__titulo {
    font-size: 17px;
    font-weight: 700;
    margin: 0 0 10px;
    line-height: 1.3;
}

.sc-noticia-card__titulo a {
    color: #1a1a2e;
    text-decoration: none;
}

.sc-noticia-card__titulo a:hover {
    color: #334F9B;
}

.sc-noticia-card__excerpt {
    font-size: 14px;
    color: #666;
    line-height: 1.6;
    margin: 0 0 16px;
    flex: 1;
}

.sc-noticia-card__mas {
    font-size: 13px;
    font-weight: 700;
    color: #334F9B;
    text-decoration: none;
    margin-top: auto;
}

.sc-noticia-card__mas:hover {
    color: #2EA2DA;
}

/* =====================================================
   BANNER AFILIACIÓN
   ===================================================== */

.sc-banner-afiliacion {
    background: linear-gradient(135deg, #334F9B 0%, #3C3A9B 40%, #2EA2DA 100%);
    padding: 60px 0;
    position: relative;
    overflow: hidden;
}

.sc-banner-afiliacion::before {
    content: '';
    position: absolute;
    inset: 0;
    background: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.04'%3E%3Ccircle cx='30' cy='30' r='4'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
}

.sc-banner-afiliacion__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 32px;
    flex-wrap: wrap;
    position: relative;
    z-index: 1;
}

.sc-banner-afiliacion h2 {
    font-size: 30px;
    font-weight: 800;
    color: #ffffff;
    margin: 0 0 8px;
    text-shadow: 0 2px 8px rgba(0,0,0,0.15);
}

.sc-banner-afiliacion p {
    font-size: 17px;
    color: rgba(255, 255, 255, 0.88);
    margin: 0;
}

.sc-banner-afiliacion .sc-btn--primary {
    background: #ffffff;
    border: 2px solid #ffffff;
    color: #334F9B;
    box-shadow: 0 4px 20px rgba(0,0,0,0.20);
    flex-shrink: 0;
}

.sc-banner-afiliacion .sc-btn--primary:hover {
    background: #f0f6ff;
    border-color: #f0f6ff;
    color: #334F9B;
    box-shadow: 0 8px 32px rgba(0,0,0,0.25);
    transform: translateY(-2px);
}

/* =====================================================
   BENEFICIOS
   ===================================================== */

.sc-beneficios {
    padding: 72px 0;
    background: #fff;
}

.sc-beneficios__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
    margin-bottom: 40px;
}

.sc-beneficio-item {
    text-align: center;
    padding: 32px 20px;
    border-radius: 12px;
    background: #f7f9fc;
    border-top: 4px solid #334F9B;
    transition: all 0.2s;
    text-decoration: none;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.sc-beneficio-item:hover {
    background: #eef2fa;
    transform: translateY(-3px);
    text-decoration: none;
}

.sc-beneficio-item__icon {
    font-size: 44px;
    margin-bottom: 14px;
    line-height: 1;
}

.sc-beneficio-item h4 {
    font-size: 17px;
    font-weight: 700;
    color: #334F9B;
    margin: 0 0 8px;
}

.sc-beneficio-item p {
    font-size: 14px;
    color: #666;
    margin: 0;
    line-height: 1.5;
}

.sc-beneficios__cta {
    text-align: center;
}

/* =====================================================
   CONTACTO
   ===================================================== */

/* =====================================================
   AUTORIDADES EN HOME
   ===================================================== */

.sc-autoridades-home {
    padding: 72px 0;
    background: #f7f9fc;
}

.sc-autoridades-home .sc-section-title {
    color: #334F9B;
    text-align: left;
    margin: 0;
}

.sc-autoridades-home .sc-section-title::after {
    margin: 12px 0 0;
}

.sc-btn--outline-blue {
    background: transparent;
    color: #334F9B;
    border: 2px solid #334F9B;
    padding: 9px 20px;
    font-size: 14px;
    border-radius: 6px;
    font-weight: 700;
    text-decoration: none;
    transition: all 0.2s;
    white-space: nowrap;
}

.sc-btn--outline-blue:hover {
    background: #334F9B;
    color: #fff;
}

/* =====================================================
   CONTACTO */
.sc-contacto {
    padding: 72px 0;
    background: #fff;
}

.sc-contacto__grid {
    display: grid;
    grid-template-columns: 1fr 1.4fr;
    gap: 48px;
    align-items: start;
}

.sc-contacto__info h2 {
    font-size: 30px;
    font-weight: 800;
    color: #334F9B;
    margin: 0 0 24px;
}

.sc-contacto__lista {
    list-style: none;
    margin: 0 0 8px;
    padding: 0;
}

.sc-contacto__lista li {
    font-size: 16px;
    color: #444;
    padding: 8px 0;
    border-bottom: 1px solid #e0e0e0;
    line-height: 1.5;
}

.sc-contacto__lista li:last-child {
    border-bottom: none;
}

.sc-contacto__lista a {
    color: #334F9B;
    text-decoration: none;
    font-weight: 600;
}

.sc-contacto__lista a:hover {
    color: #2EA2DA;
    text-decoration: underline;
}

/* =====================================================
   RESPONSIVE HOME
   ===================================================== */

@media (max-width: 1024px) {
    .sc-accesos__grid,
    .sc-noticias__grid,
    .sc-beneficios__grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .sc-contacto__grid {
        grid-template-columns: 1fr;
    }

    .sc-hero__title {
        font-size: 34px;
    }
}

@media (max-width: 640px) {
    .sc-accesos__grid,
    .sc-noticias__grid,
    .sc-beneficios__grid {
        grid-template-columns: 1fr;
    }

    .sc-hero__title {
        font-size: 26px;
    }

    .sc-hero__sub {
        font-size: 16px;
    }

    .sc-section-title {
        font-size: 24px;
    }

    .sc-banner-afiliacion__inner {
        flex-direction: column;
        text-align: center;
    }
}

/* =====================================================
   FORMULARIOS SUTCAPRA (Afiliación y Contacto)
   ===================================================== */

.sc-afil-wrap,
.sc-contacto-form-wrap {
    max-width: 820px !important;
    margin: 0 auto !important;
    padding: 10px 0 !important;
}

/* Header del formulario de afiliación */
.sc-afil-header {
    background: #f0f4ff !important;
    border-left: 5px solid #334F9B !important;
    border-radius: 0 8px 8px 0 !important;
    padding: 16px 20px !important;
    margin-bottom: 32px !important;
}
.sc-afil-header__badge {
    font-size: 15px !important;
    color: #334F9B !important;
    margin-bottom: 6px !important;
    display: block !important;
}
.sc-afil-header p {
    margin: 0 !important;
    font-size: 14px !important;
    color: #555 !important;
}

/* Secciones del formulario */
.sc-afil-seccion {
    margin-bottom: 28px !important;
    border: 1px solid #e8edf5 !important;
    border-radius: 10px !important;
    padding: 24px !important;
    background: #fafbfd !important;
}

.sc-afil-seccion__titulo {
    font-size: 16px !important;
    font-weight: 800 !important;
    color: #334F9B !important;
    margin: 0 0 20px !important;
    padding-bottom: 12px !important;
    border-bottom: 2px solid #e0e7f5 !important;
    display: block !important;
}

/* Grillas de campos */
.sc-form__row--2col {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 20px !important;
    margin-bottom: 0 !important;
}

.sc-form__row--3col {
    display: grid !important;
    grid-template-columns: 1fr 1fr 1fr !important;
    gap: 20px !important;
    margin-bottom: 0 !important;
}

/* Grupos de campo */
.sc-form .sc-form__grupo,
.sc-afil-form .sc-form__grupo {
    margin-bottom: 20px !important;
    display: block !important;
    width: 100% !important;
}

/* Labels */
.sc-form .sc-form__grupo label,
.sc-afil-form .sc-form__grupo label {
    display: block !important;
    font-weight: 700 !important;
    font-size: 14px !important;
    color: #1a1a2e !important;
    margin-bottom: 6px !important;
    width: 100% !important;
    float: none !important;
}

.sc-form .sc-form__grupo label span,
.sc-afil-form .sc-form__grupo label span {
    color: #cc0000 !important;
}

/* Inputs, selects y textareas */
.sc-form .sc-form__grupo input,
.sc-form .sc-form__grupo select,
.sc-form .sc-form__grupo textarea,
.sc-afil-form .sc-form__grupo input,
.sc-afil-form .sc-form__grupo select,
.sc-afil-form .sc-form__grupo textarea {
    display: block !important;
    width: 100% !important;
    padding: 11px 14px !important;
    border: 2px solid #dde2ee !important;
    border-radius: 6px !important;
    font-size: 15px !important;
    color: #333 !important;
    background: #fff !important;
    box-shadow: none !important;
    margin: 0 !important;
    float: none !important;
    box-sizing: border-box !important;
    font-family: inherit !important;
    transition: border-color 0.2s, box-shadow 0.2s !important;
    height: auto !important;
    line-height: 1.5 !important;
}

.sc-form .sc-form__grupo input:focus,
.sc-form .sc-form__grupo select:focus,
.sc-form .sc-form__grupo textarea:focus,
.sc-afil-form .sc-form__grupo input:focus,
.sc-afil-form .sc-form__grupo select:focus,
.sc-afil-form .sc-form__grupo textarea:focus {
    border-color: #334F9B !important;
    box-shadow: 0 0 0 3px rgba(0,48,135,0.12) !important;
    outline: none !important;
}

.sc-afil-form .sc-form__grupo textarea {
    resize: vertical !important;
    min-height: 130px !important;
}

/* Checkbox de términos */
.sc-afil-terminos {
    margin: 8px 0 24px !important;
    padding: 16px !important;
    background: #edf6fb !important;
    border: 1px solid #a8d8ef !important;
    border-radius: 6px !important;
}

.sc-afil-terminos label {
    display: flex !important;
    gap: 12px !important;
    align-items: flex-start !important;
    font-size: 14px !important;
    color: #444 !important;
    cursor: pointer !important;
    line-height: 1.5 !important;
    font-weight: normal !important;
}

.sc-afil-terminos input[type="checkbox"] {
    width: 18px !important;
    height: 18px !important;
    margin-top: 2px !important;
    flex-shrink: 0 !important;
    accent-color: #334F9B !important;
    display: inline-block !important;
}

/* Botón submit */
.sc-form__submit {
    display: flex !important;
    align-items: center !important;
    gap: 24px !important;
    flex-wrap: wrap !important;
    margin-top: 8px !important;
}

.sc-form__nota {
    font-size: 13px !important;
    color: #888 !important;
    margin: 0 !important;
}

.sc-form__nota span { color: #cc0000 !important; }

/* Mensajes de error y éxito */
.sc-form-errores {
    background: #fff3f3 !important;
    border-left: 4px solid #cc0000 !important;
    border-radius: 4px !important;
    padding: 14px 18px !important;
    margin-bottom: 24px !important;
}

.sc-form-errores p {
    margin: 4px 0 !important;
    font-size: 14px !important;
    color: #cc0000 !important;
}

.sc-form-ok {
    text-align: center !important;
    padding: 48px 24px !important;
    background: #f0fff4 !important;
    border-radius: 12px !important;
    border: 2px solid #00a854 !important;
}

.sc-form-ok__icon {
    font-size: 56px !important;
    display: block !important;
    margin-bottom: 16px !important;
}

.sc-form-ok h3 {
    font-size: 24px !important;
    color: #00a854 !important;
    margin: 0 0 10px !important;
}

.sc-form-ok p {
    font-size: 16px !important;
    color: #555 !important;
    margin: 0 !important;
}

/* =====================================================
   AUTORIDADES
   ===================================================== */

.sc-autoridades-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 240px));
    gap: 28px;
    padding: 20px 0;
    justify-content: start;
}

.sc-autoridad-card {
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.10);
    overflow: hidden;
    text-align: center;
    transition: transform 0.2s, box-shadow 0.2s;
    border-top: 4px solid #334F9B;
}

.sc-autoridad-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 12px 30px rgba(0,0,0,0.15);
}

.sc-autoridad-foto-wrap {
    width: 100%;
    height: 260px;
    overflow: hidden;
    background: #e8eef6;
}

.sc-autoridad-foto {
    width: 100%;
    height: 260px;
    object-fit: cover;
    object-position: top center;
    object-position: top center;
    display: block;
    transition: transform 0.3s;
}

.sc-autoridad-card:hover .sc-autoridad-foto {
    transform: scale(1.04);
}

.sc-autoridad-placeholder {
    width: 100%;
    height: 300px;
    background: linear-gradient(135deg, #334F9B, #2EA2DA);
    display: flex;
    align-items: center;
    justify-content: center;
}

.sc-autoridad-placeholder span {
    font-size: 80px;
    font-weight: 900;
    color: rgba(255,255,255,0.35);
    font-family: serif;
    line-height: 1;
}

.sc-autoridad-info {
    padding: 16px 16px 20px;
}

.sc-autoridad-nombre {
    font-size: 17px !important;
    font-weight: 800 !important;
    color: #334F9B !important;
    margin: 0 0 4px !important;
    line-height: 1.2 !important;
}

.sc-autoridad-cargo {
    font-size: 11px !important;
    font-weight: 700 !important;
    color: #fff !important;
    background: #334F9B !important;
    display: inline-block !important;
    padding: 3px 10px !important;
    border-radius: 20px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.3px !important;
    margin: 0 0 10px !important;
    line-height: 1.4 !important;
    white-space: nowrap !important;
}

.sc-autoridad-rama,
.sc-autoridad-periodo,
.sc-autoridad-email,
.sc-autoridad-tel {
    font-size: 13px !important;
    color: #555 !important;
    margin: 0 !important;
    padding: 1px 0 !important;
    line-height: 1.5 !important;
}

.sc-autoridad-email a,
.sc-autoridad-tel a {
    color: #2EA2DA !important;
    text-decoration: none !important;
}

.sc-autoridad-email a:hover,
.sc-autoridad-tel a:hover {
    text-decoration: underline !important;
}

@media (max-width: 600px) {
    .sc-autoridades-grid {
        grid-template-columns: 1fr 1fr;
        gap: 16px;
    }
}

@media (max-width: 380px) {
    .sc-autoridades-grid {
        grid-template-columns: 1fr;
    }
}

/* =====================================================
   ESCALA SALARIAL INTERACTIVA
   ===================================================== */

.sc-escala {
    max-width: 860px;
    margin: 0 auto;
    font-family: inherit;
}

.sc-escala__header {
    display: flex;
    align-items: center;
    gap: 18px;
    background: #334F9B;
    color: #fff;
    padding: 24px 28px;
    border-radius: 12px 12px 0 0;
}

.sc-escala__logo {
    font-size: 42px;
    line-height: 1;
    flex-shrink: 0;
}

.sc-escala__titulo {
    font-size: 20px !important;
    font-weight: 800 !important;
    color: #fff !important;
    margin: 0 0 4px !important;
    line-height: 1.2 !important;
}

.sc-escala__periodo {
    font-size: 13px !important;
    color: rgba(255,255,255,0.80) !important;
    margin: 0 !important;
}

/* Pestañas */
.sc-escala__tabs {
    display: flex;
    background: #e8edf5;
    border-left: 1px solid #dde2ee;
    border-right: 1px solid #dde2ee;
}

.sc-escala__tab {
    flex: 1;
    padding: 13px 20px;
    background: transparent;
    border: none;
    border-bottom: 3px solid transparent;
    font-size: 14px;
    font-weight: 700;
    color: #555;
    cursor: pointer;
    transition: all 0.2s;
    letter-spacing: 0.3px;
}

.sc-escala__tab:hover {
    color: #334F9B;
    background: #dde5f5;
}

.sc-escala__tab.active {
    color: #334F9B;
    background: #fff;
    border-bottom-color: #2EA2DA;
}

/* Paneles */
.sc-escala__panel {
    display: none;
    border-left: 1px solid #dde2ee;
    border-right: 1px solid #dde2ee;
}

.sc-escala__panel.active {
    display: block;
}

.sc-escala__table-wrap {
    overflow-x: auto;
}

/* Tabla */
.sc-escala__table {
    width: 100% !important;
    border-collapse: collapse !important;
    margin: 0 !important;
}

.sc-escala__table thead tr {
    background: #334F9B !important;
}

.sc-escala__table thead th {
    color: #fff !important;
    padding: 12px 18px !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    text-align: left !important;
    border: none !important;
}

.sc-escala__table thead th:not(:first-child) {
    text-align: right !important;
}

.sc-escala__table td {
    padding: 11px 18px !important;
    font-size: 15px !important;
    border-bottom: 1px solid #eef0f5 !important;
    color: #333 !important;
}

.sc-escala__table td:not(:first-child) {
    text-align: right !important;
    font-variant-numeric: tabular-nums !important;
}

/* Fila categoría */
.sc-escala__row-cat td {
    background: #f7f9fc !important;
    font-weight: 600 !important;
    color: #334F9B !important;
}

.sc-escala__cat-nombre {
    text-align: left !important;
    font-size: 15px !important;
    font-weight: 700 !important;
}

/* Fila bono */
.sc-escala__row-bono td {
    background: #fff !important;
    color: #666 !important;
    font-size: 14px !important;
    font-style: italic !important;
}

/* Fila total */
.sc-escala__row-total td {
    background: #334F9B !important;
    color: #2EA2DA !important;
    font-weight: 800 !important;
    font-size: 15px !important;
    border-bottom: 3px solid #2EA2DA !important;
}

/* Adicionales */
.sc-escala__adicionales {
    background: #263870;
    border-left: 1px solid #dde2ee;
    border-right: 1px solid #dde2ee;
    padding: 20px 24px;
}

.sc-escala__adic-titulo {
    font-size: 13px !important;
    font-weight: 700 !important;
    color: #2EA2DA !important;
    text-transform: uppercase !important;
    letter-spacing: 1px !important;
    margin: 0 0 14px !important;
}

.sc-escala__adic-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
}

.sc-escala__adic-item {
    background: rgba(255,255,255,0.08);
    border-radius: 6px;
    padding: 10px 14px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
}

.sc-escala__adic-nombre {
    font-size: 13px;
    color: #fff;
    font-weight: 600;
}

.sc-escala__adic-valor {
    font-size: 13px;
    color: #2EA2DA;
    font-weight: 700;
    white-space: nowrap;
}

.sc-escala__actualizacion {
    background: #f0f4ff;
    border: 1px solid #dde2ee;
    border-top: none;
    border-radius: 0 0 12px 12px;
    padding: 10px 20px;
    font-size: 12px !important;
    color: #888 !important;
    margin: 0 !important;
    text-align: right;
}

@media (max-width: 600px) {
    .sc-escala__header { flex-direction: column; text-align: center; padding: 20px; }
    .sc-escala__adic-grid { grid-template-columns: 1fr; }
    .sc-escala__table td,
    .sc-escala__table th { padding: 9px 12px !important; font-size: 13px !important; }
}

/* Responsive formularios */
@media (max-width: 640px) {
    .sc-form__row--2col,
    .sc-form__row--3col {
        grid-template-columns: 1fr !important;
        gap: 0 !important;
    }
    .sc-afil-seccion {
        padding: 16px !important;
    }
}


/* =====================================================
   RECIBO DE SUELDO — Generador dinámico
   ===================================================== */

/* --- Formulario (pantalla) --- */
.sc-recibo-wrap {
    max-width: 900px;
    margin: 0 auto;
}

.sc-recibo-form__titulo {
    font-size: 1.5rem;
    color: var(--color-primario);
    margin-bottom: 4px !important;
}

.sc-recibo-form__sub {
    color: #666;
    margin-bottom: 20px;
    font-size: 0.95rem;
}

.sc-recibo-fs {
    border: 1px solid #d0dae7;
    border-radius: 8px;
    padding: 16px 20px;
    margin-bottom: 20px;
}

.sc-recibo-fs legend {
    font-weight: 700;
    color: var(--color-primario);
    padding: 0 8px;
    font-size: 0.95rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.sc-recibo-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px 16px;
    margin-top: 12px;
}

.sc-recibo-field {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.sc-recibo-field--wide {
    grid-column: span 3;
}

.sc-recibo-field--check {
    justify-content: flex-end;
    padding-bottom: 4px;
}

.sc-recibo-field label {
    font-size: 0.8rem;
    font-weight: 600;
    color: #555;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.sc-recibo-field input[type="text"],
.sc-recibo-field input[type="number"],
.sc-recibo-field input[type="date"],
.sc-recibo-field select {
    border: 1px solid #ccd5e0;
    border-radius: 6px;
    padding: 8px 10px;
    font-size: 0.95rem;
    font-family: inherit;
    color: #1a2a3a;
    background: #fff;
    transition: border-color 0.2s;
    width: 100%;
    box-sizing: border-box;
}

.sc-recibo-field input:focus,
.sc-recibo-field select:focus {
    outline: none;
    border-color: var(--color-primario);
    box-shadow: 0 0 0 3px rgba(0,48,135,0.1);
}

/* Mini preview */
.sc-recibo-preview-mini {
    display: flex;
    gap: 16px;
    background: #f0f4fb;
    border-radius: 8px;
    padding: 14px 20px;
    margin-bottom: 20px;
    flex-wrap: wrap;
}

.sc-rpm-item {
    display: flex;
    flex-direction: column;
    gap: 2px;
    flex: 1;
    min-width: 140px;
}

.sc-rpm-item span {
    font-size: 0.78rem;
    color: #666;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.sc-rpm-item strong {
    font-size: 1.1rem;
    color: var(--color-primario);
    font-weight: 700;
}

.sc-rpm-item--neto strong {
    color: #00a854;
    font-size: 1.25rem;
}

.sc-recibo-actions {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 30px;
}

/* --- Recibo para imprimir (oculto en pantalla, visible al imprimir) --- */
.sc-recibo-print {
    display: none;
}

.sc-recibo-print.sc-print-active {
    display: block;
}

/* Print header */
.sc-rp-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border: 2px solid #334F9B;
    padding: 10px 14px;
    margin-bottom: 0;
    background: #334F9B;
    color: #fff;
}

.sc-rp-header__sigla {
    font-size: 1.3rem;
    font-weight: 900;
    letter-spacing: 0.05em;
}

.sc-rp-header__desc {
    font-size: 0.75rem;
    opacity: 0.85;
}

.sc-rp-header__titulo {
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-align: right;
}

/* Print tables */
.sc-rp-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.82rem;
    color: #111;
}

.sc-rp-table td,
.sc-rp-table th {
    border: 1px solid #aab;
    padding: 5px 8px;
    vertical-align: middle;
}

.sc-rp-lbl {
    background: #e8ecf5;
    font-weight: 600;
    font-size: 0.75rem;
    white-space: nowrap;
    color: #334F9B;
    width: 100px;
}

.sc-rp-lbl--neto {
    background: #334F9B;
    color: #fff !important;
    font-weight: 700;
}

.sc-rp-val {
    min-width: 80px;
}

.sc-rp-val--wide {
    min-width: 160px;
}

.sc-rp-val--num {
    text-align: right;
    font-family: monospace;
}

.sc-rp-val--neto {
    text-align: right;
    font-family: monospace;
    font-weight: 700;
    font-size: 0.95rem;
    color: #334F9B;
}

.sc-rp-table--conc th {
    background: #334F9B;
    color: #fff;
    font-size: 0.78rem;
    text-align: left;
}

.sc-rp-table--conc td:nth-child(3),
.sc-rp-table--conc td:nth-child(4) {
    text-align: right;
    font-family: monospace;
}

.sc-rp-row--sep td {
    height: 4px;
    padding: 0;
    background: #e8ecf5;
    border-left: none;
    border-right: none;
}

.sc-rp-row--total td {
    background: #334F9B;
    color: #fff;
    font-weight: 700;
    text-align: right;
}

.sc-rp-row--total td:first-child {
    text-align: left;
}

.sc-rp-table--res {
    margin-top: 6px;
}

.sc-rp-footer {
    margin-top: 16px;
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 20px;
}

.sc-rp-footer__datos {
    font-size: 0.82rem;
    line-height: 1.6;
}

.sc-rp-letras {
    font-size: 0.78rem;
    font-style: italic;
    margin-top: 4px;
}

.sc-rp-firmas {
    display: flex;
    gap: 40px;
}

.sc-rp-firma {
    text-align: center;
    font-size: 0.72rem;
    color: #444;
    min-width: 130px;
}

.sc-rp-firma__linea {
    border-top: 1px solid #333;
    margin-bottom: 4px;
    width: 100%;
}

/* Print media */
@media print {
    body.sc-printing-recibo * {
        visibility: hidden !important;
    }
    body.sc-printing-recibo .sc-recibo-print.sc-print-active,
    body.sc-printing-recibo .sc-recibo-print.sc-print-active * {
        visibility: visible !important;
    }
    body.sc-printing-recibo .sc-recibo-print.sc-print-active {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        width: 100% !important;
        padding: 10mm 12mm !important;
        font-size: 11pt !important;
        box-sizing: border-box;
    }
    .sc-rp-header {
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }
    .sc-rp-lbl--neto,
    .sc-rp-row--total td,
    .sc-rp-table--conc th {
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }
}

/* Responsive recibo form */
@media (max-width: 700px) {
    .sc-recibo-grid {
        grid-template-columns: 1fr 1fr;
    }
    .sc-recibo-field--wide {
        grid-column: span 2;
    }
}

@media (max-width: 480px) {
    .sc-recibo-grid {
        grid-template-columns: 1fr;
    }
    .sc-recibo-field--wide {
        grid-column: span 1;
    }
    .sc-recibo-preview-mini {
        flex-direction: column;
    }
}


/* =====================================================
   BENEFICIOS SOCIALES — Cards + Página individual
   ===================================================== */

/* Grid de cards */
.sc-benef-wrap {
    padding: 0;
}

.sc-benef-grid {
    display: grid;
    gap: 28px;
}

.sc-benef-grid--3 { grid-template-columns: repeat(3, 1fr); }
.sc-benef-grid--2 { grid-template-columns: repeat(2, 1fr); }
.sc-benef-grid--4 { grid-template-columns: repeat(4, 1fr); }

/* Card */
.sc-benef-card {
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 2px 12px rgba(0,48,135,.08);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: transform .2s, box-shadow .2s;
    text-decoration: none !important;
    color: inherit !important;
}

.sc-benef-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0,48,135,.15);
    text-decoration: none !important;
}

.sc-benef-card__img-wrap {
    display: block;
    overflow: hidden;
    aspect-ratio: 16 / 9;
    background: #e8ecf5;
}

.sc-benef-card__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .3s;
}

.sc-benef-card:hover .sc-benef-card__img {
    transform: scale(1.04);
}

.sc-benef-card__placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #334F9B 0%, #334F9B 100%);
    font-size: 3rem;
}

.sc-benef-card__body {
    padding: 18px 20px 22px;
    display: flex;
    flex-direction: column;
    flex: 1;
}

.sc-benef-card__titulo {
    font-size: 1.05rem;
    font-weight: 700;
    margin: 0 0 8px !important;
    line-height: 1.3;
    color: var(--color-primario);
    text-decoration: none !important;
}

.sc-benef-card:hover .sc-benef-card__titulo {
    color: var(--color-acento);
}

.sc-benef-card__titulo a {
    color: var(--color-primario);
    text-decoration: none;
}

.sc-benef-card__titulo a:hover {
    color: var(--color-acento);
}

.sc-benef-card__texto,
.sc-benef-card__excerpt {
    font-size: 0.9rem;
    color: #555;
    line-height: 1.6;
    flex: 1;
    margin: 0 0 14px !important;
    text-decoration: none !important;
}

.sc-benef-card__link {
    color: var(--color-acento);
    font-size: 0.88rem;
    font-weight: 700;
    text-decoration: none;
    letter-spacing: 0.02em;
    align-self: flex-start;
}

.sc-benef-card__link:hover {
    text-decoration: underline;
}

.sc-benef-empty {
    color: #888;
    font-style: italic;
}

/* Página individual de beneficio */
.sc-benef-single {
    max-width: 860px;
    margin: 0 auto;
    padding: 40px 20px 60px;
}

.sc-benef-single__back {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--color-primario);
    font-size: 0.88rem;
    font-weight: 600;
    text-decoration: none;
    margin-bottom: 28px;
    opacity: .75;
    transition: opacity .15s;
}

.sc-benef-single__back:hover { opacity: 1; }

.sc-benef-single__img-wrap {
    border-radius: 12px;
    overflow: hidden;
    margin-bottom: 32px;
    max-height: 420px;
}

.sc-benef-single__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    max-height: 420px;
}

.sc-benef-single__titulo {
    font-size: 2rem;
    font-weight: 800;
    color: var(--color-primario);
    margin: 0 0 24px !important;
    line-height: 1.2;
}

.sc-benef-single__contenido {
    font-size: 1.05rem;
    line-height: 1.75;
    color: #2a3a4a;
}

.sc-benef-single__contenido p { margin-bottom: 1.2em; }
.sc-benef-single__contenido h2 { color: var(--color-primario); margin-top: 1.8em; }
.sc-benef-single__contenido h3 { color: #1a2a3a; margin-top: 1.4em; }
.sc-benef-single__contenido ul, .sc-benef-single__contenido ol {
    padding-left: 1.5em;
    margin-bottom: 1.2em;
}
.sc-benef-single__contenido li { margin-bottom: .5em; }

/* Responsive */
@media (max-width: 900px) {
    .sc-benef-grid--3,
    .sc-benef-grid--4 { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 580px) {
    .sc-benef-grid--2,
    .sc-benef-grid--3,
    .sc-benef-grid--4 { grid-template-columns: 1fr; }
    .sc-benef-single__titulo { font-size: 1.5rem; }
}


/* Ocultar widgets por defecto de WordPress en el sidebar */
.widget_recent_entries,
.widget_recent_comments,
.widget_archive,
.widget_categories,
.widget_tag_cloud,
.widget_meta,
.widget_rss,
.widget_search,
/* Navegación anterior/siguiente en entradas */
.post-navigation,
.ast-post-navigation,
.navigation.post-navigation {
    display: none !important;
}


/* =====================================================
   BENEFICIOS — Tabs de categoría
   ===================================================== */

.sc-benef-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 28px;
}

.sc-benef-tab {
    padding: 9px 20px;
    border: 2px solid var(--color-primario);
    border-radius: 30px;
    background: transparent;
    color: var(--color-primario);
    font-size: 0.88rem;
    font-weight: 700;
    cursor: pointer;
    transition: background .18s, color .18s;
    font-family: inherit;
    letter-spacing: 0.02em;
}

.sc-benef-tab:hover {
    background: var(--color-primario);
    color: #fff;
}

.sc-benef-tab--activo {
    background: var(--color-primario);
    color: #fff;
}

.sc-benef-panel--oculto {
    display: none !important;
}

.sc-benef-cat-titulo {
    font-size: 1.3rem;
    font-weight: 700;
    color: var(--color-primario);
    margin: 0 0 20px !important;
    padding-bottom: 10px;
    border-bottom: 2px solid #e0e8f5;
}


/* =============================================================
   CREDENCIALES DIGITALES
   ============================================================= */

.sc-cred-wrap {
    max-width: 640px;
    margin: 40px auto;
    font-family: Arial, sans-serif;
}

/* Tarjeta principal */
.sc-cred-card {
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 10px 40px rgba(0,0,0,.18);
    background: #fff;
}
.sc-cred-card--vencida { opacity: .75; }

/* Header azul */
.sc-cred-header {
    background: linear-gradient(135deg, #334F9B 0%, #2EA2DA 100%);
    padding: 28px 32px 22px;
    display: flex;
    align-items: center;
    gap: 16px;
}
.sc-cred-header-logo {
    font-size: 32px;
    font-weight: 900;
    color: #fff;
    letter-spacing: 2px;
}
.sc-cred-header-sub {
    font-size: 13px;
    color: rgba(255,255,255,.8);
    letter-spacing: .5px;
    text-transform: uppercase;
    margin-left: auto;
}

/* Cuerpo */
.sc-cred-body {
    display: flex;
    gap: 100px;
    padding: 44px 60px 40px;
    align-items: flex-start;
    justify-content: center;
}

/* Columna foto */
.sc-cred-foto-col {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    flex-shrink: 0;
}
.sc-cred-foto {
    width: 160px;
    height: 160px;
    border-radius: 50%;
    object-fit: cover;
    border: 4px solid #334F9B;
}
.sc-cred-foto-placeholder {
    width: 160px;
    height: 160px;
    border-radius: 50%;
    background: #334F9B;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 64px;
    font-weight: 700;
    color: #fff;
}

/* Badge vigente/vencida */
.sc-cred-badge {
    font-size: 13px;
    font-weight: 700;
    padding: 5px 16px;
    border-radius: 20px;
    letter-spacing: .5px;
    white-space: nowrap;
}
.sc-cred-badge--vigente {
    background: #d4f4dd;
    color: #0a6b28;
    border: 1px solid #0a6b28;
}
.sc-cred-badge--vencida {
    background: #fde8e8;
    color: #c0392b;
    border: 1px solid #c0392b;
}

/* Info */
.sc-cred-info { flex: 0 1 auto; min-width: 0; }
.sc-cred-nombre {
    font-size: 24px;
    font-weight: 700;
    color: #1a1a2e;
    margin: 0 0 6px;
    line-height: 1.3;
}
.sc-cred-cargo {
    font-size: 15px;
    color: #334F9B;
    font-weight: 600;
    margin: 0 0 18px;
    text-transform: uppercase;
    letter-spacing: .4px;
}
.sc-cred-datos { display: flex; flex-direction: column; gap: 12px; }
.sc-cred-dato {
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.sc-cred-dato-label {
    font-size: 11px;
    text-transform: uppercase;
    color: #888;
    letter-spacing: .5px;
}
.sc-cred-dato-val {
    font-size: 17px;
    color: #222;
    font-weight: 500;
}

/* Columna QR (lado derecho del cuerpo) */
.sc-cred-qr-col {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
    border-left: 1px solid #d0d8ea;
    padding-left: 80px;
    text-align: center;
}
.sc-cred-qr-col img,
.sc-cred-qr-col canvas {
    border: 4px solid #334F9B;
    border-radius: 10px;
    display: block;
}
.sc-cred-qr-txt {
    font-size: 11px;
    color: #666;
    text-transform: uppercase;
    letter-spacing: .4px;
    margin: 0;
}
.sc-cred-cod-label {
    font-size: 11px;
    text-transform: uppercase;
    color: #888;
    letter-spacing: .5px;
    margin: 4px 0 2px;
}
.sc-cred-cod {
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 2px;
    color: #334F9B;
    font-family: monospace;
    margin: 0 0 2px;
    word-break: break-all;
}
.sc-cred-url {
    font-size: 11px;
    color: #bbb;
    margin: 0;
}

/* Mensaje de validación bajo la tarjeta */
.sc-cred-valido-msg,
.sc-cred-vencida-msg {
    margin-top: 20px;
    padding: 20px 24px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    gap: 18px;
}
.sc-cred-valido-msg {
    background: #d4f4dd;
    border: 1px solid #0a6b28;
}
.sc-cred-vencida-msg {
    background: #fde8e8;
    border: 1px solid #c0392b;
}
.sc-cred-valido-msg strong { color: #0a6b28; display: block; font-size: 17px; }
.sc-cred-vencida-msg strong { color: #c0392b; display: block; font-size: 17px; }
.sc-cred-valido-msg p,
.sc-cred-vencida-msg p { margin: 4px 0 0; font-size: 15px; color: #333; }
.sc-cred-valido-icon { font-size: 36px; color: #0a6b28; flex-shrink: 0; }
.sc-cred-vencida-msg > span { font-size: 36px; color: #c0392b; flex-shrink: 0; }

/* Pantalla inválida */
.sc-cred-invalid {
    max-width: 360px;
    margin: 60px auto;
    text-align: center;
    padding: 40px 24px;
    background: #fff;
    border-radius: 16px;
    box-shadow: 0 4px 20px rgba(0,0,0,.1);
}
.sc-cred-x {
    font-size: 56px;
    color: #c0392b;
    line-height: 1;
    margin-bottom: 12px;
}
.sc-cred-invalid p { font-size: 16px; font-weight: 600; color: #333; margin: 0 0 8px; }
.sc-cred-sub { font-size: 13px !important; font-weight: 400 !important; color: #777 !important; }

/* Mobile adjustments */
@media (max-width: 560px) {
    .sc-cred-wrap { margin: 16px; }
    .sc-cred-body { flex-direction: column; align-items: center; text-align: center; }
    .sc-cred-datos { align-items: center; }
    .sc-cred-qr-col { border-left: none; border-top: 1px solid #e2e8f4; padding-left: 0; padding-top: 20px; width: 100%; }
}


/* =====================================================
   SUTCAPRA MODERNIZACIÓN — Tipografía, Animaciones y
   Mejoras Visuales Premium v2.0
   ===================================================== */

/* --- TIPOGRAFÍA GLOBAL --- */
body,
.ast-single-post .entry-content,
.entry-content,
p, h1, h2, h3, h4, h5, h6,
.ast-nav-menu li a,
input, select, textarea, button {
    font-family: 'Poppins', 'Inter', system-ui, sans-serif !important;
}

body {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    color: #1e2a3a;
}

/* Scroll suave */
html {
    scroll-behavior: smooth;
}

/* --- HERO MODERNO --- */
.sc-hero {
    background: linear-gradient(145deg, #1a2464 0%, #334F9B 45%, #3C3A9B 75%, #263870 100%);
    min-height: 100vh;
    position: relative;
    overflow: hidden;
}

/* Efecto de partículas/mesh en el hero */
.sc-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse at 20% 50%, rgba(46, 162, 218, 0.18) 0%, transparent 60%),
        radial-gradient(ellipse at 80% 20%, rgba(123, 207, 227, 0.12) 0%, transparent 50%),
        radial-gradient(ellipse at 60% 80%, rgba(60, 58, 155, 0.20) 0%, transparent 55%);
    pointer-events: none;
}

.sc-hero__overlay {
    background: linear-gradient(
        to bottom,
        rgba(15, 25, 80, 0.65) 0%,
        rgba(30, 50, 130, 0.45) 40%,
        rgba(15, 25, 80, 0.72) 100%
    );
}

/* Hero content — animación de entrada */
.sc-hero__content {
    animation: scHeroFadeIn 1s cubic-bezier(0.4, 0, 0.2, 1) both;
}

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

.sc-hero__title {
    font-family: 'Poppins', sans-serif !important;
    font-size: 30px;
    font-weight: 900;
    line-height: 1.22;
    letter-spacing: -0.2px;
    color: #fff;
    text-transform: uppercase;
    text-shadow: 0 3px 16px rgba(0, 0, 0, 0.35);
    margin: 0 0 18px;
    white-space: nowrap;
}

.sc-hero__sub {
    font-family: 'Poppins', sans-serif !important;
    font-size: 21px;
    font-weight: 400;
    color: rgba(255, 255, 255, 0.90);
    letter-spacing: 0.2px;
    text-shadow: 0 1px 6px rgba(0, 0, 0, 0.25);
}

.sc-hero__btns {
    animation: scHeroFadeIn 1s 0.3s cubic-bezier(0.4, 0, 0.2, 1) both;
}

/* Línea decorativa bajo el subtítulo del hero */
.sc-hero__sub::before {
    content: '';
    display: block;
    width: 60px;
    height: 3px;
    background: linear-gradient(90deg, #7BCFE3, #2EA2DA);
    margin: 0 auto 18px;
    border-radius: 2px;
}

/* --- SECCIÓN TÍTULOS MODERNOS --- */
.sc-section-title {
    font-family: 'Poppins', sans-serif !important;
    font-size: 34px;
    font-weight: 800;
    color: #334F9B;
    letter-spacing: -0.3px;
}

.sc-section-title::after {
    background: linear-gradient(90deg, #2EA2DA, #7BCFE3);
    width: 56px;
    height: 4px;
}

/* --- TARJETAS FLOTANTES MODERNIZADAS --- */
.sc-flotante-card {
    border-radius: 20px;
    border-bottom: 4px solid transparent;
    box-shadow: 0 8px 32px rgba(51, 79, 155, 0.12);
    transition: var(--transition);
    border-top: 1px solid rgba(51, 79, 155, 0.06);
}

.sc-flotante-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 20px 56px rgba(51, 79, 155, 0.20);
}

.sc-flotante-card--afiliacion { border-bottom-color: #334F9B; }
.sc-flotante-card--beneficios { border-bottom-color: #2EA2DA; }
.sc-flotante-card--turismo    { border-bottom-color: #5BBAD9; }

.sc-flotante-card--afiliacion .sc-flotante-card__icono {
    background: linear-gradient(135deg, #e8eef8, #d0dcf5);
    color: #334F9B;
}
.sc-flotante-card--beneficios .sc-flotante-card__icono {
    background: linear-gradient(135deg, #e0f3fb, #c8eaf6);
    color: #2EA2DA;
}
.sc-flotante-card--turismo .sc-flotante-card__icono {
    background: linear-gradient(135deg, #e5f6fc, #ceeef8);
    color: #5BBAD9;
}

/* --- ACCESOS RÁPIDOS MODERNOS --- */
.sc-accesos {
    background: linear-gradient(180deg, #f5f7fc 0%, #eef2fb 100%);
}

.sc-acceso-card {
    border-radius: 16px;
    border-bottom: 4px solid transparent;
    box-shadow: 0 4px 16px rgba(51, 79, 155, 0.08);
    transition: var(--transition);
    position: relative;
    overflow: hidden;
}

.sc-acceso-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    background: linear-gradient(90deg, #334F9B, #2EA2DA);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.3s ease;
}

.sc-acceso-card:hover::before {
    transform: scaleX(1);
}

.sc-acceso-card:hover {
    border-bottom-color: #2EA2DA;
    transform: translateY(-5px);
    box-shadow: 0 12px 36px rgba(51, 79, 155, 0.16);
}

.sc-acceso-card h3 {
    font-family: 'Poppins', sans-serif !important;
    color: #334F9B;
    font-weight: 700;
}

.sc-acceso-card__link {
    color: #2EA2DA !important;
    font-weight: 700;
}

/* --- SECCIÓN NOTICIAS --- */
.sc-noticias {
    background: linear-gradient(135deg, #334F9B 0%, #263870 50%, #3C3A9B 100%);
    position: relative;
}

.sc-noticias::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at 30% 50%, rgba(46, 162, 218, 0.12) 0%, transparent 60%);
    pointer-events: none;
}

.sc-noticia-card {
    border-radius: 16px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.16);
    transition: var(--transition);
    overflow: hidden;
}

.sc-noticia-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 16px 48px rgba(0,0,0,0.25);
}

.sc-noticia-card__fecha {
    color: #2EA2DA !important;
    font-weight: 700 !important;
    letter-spacing: 0.8px;
}

.sc-noticia-card__mas {
    color: #334F9B !important;
    font-weight: 700 !important;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    transition: gap 0.2s;
}

.sc-noticia-card__mas:hover {
    color: #2EA2DA !important;
    gap: 8px;
}

/* --- BENEFICIOS MODERNOS --- */
.sc-beneficio-item {
    border-radius: 16px;
    background: #f5f8fd;
    border-top: 3px solid transparent;
    border-image: linear-gradient(90deg, #334F9B, #2EA2DA) 1;
    border-image-slice: 1;
    box-shadow: 0 2px 12px rgba(51, 79, 155, 0.07);
    transition: var(--transition);
}

.sc-beneficio-item:hover {
    background: linear-gradient(180deg, #eef3fc 0%, #f5f8fd 100%);
    transform: translateY(-4px);
    box-shadow: 0 12px 36px rgba(51, 79, 155, 0.14);
}

.sc-beneficio-item h4 {
    color: #334F9B !important;
    font-family: 'Poppins', sans-serif !important;
    font-weight: 700 !important;
}

/* --- AUTORIDADES MODERNIZADAS --- */
.sc-autoridad-card {
    border-radius: 16px;
    border-top: 4px solid #334F9B;
    box-shadow: 0 4px 20px rgba(51, 79, 155, 0.10);
    transition: var(--transition);
    overflow: hidden;
}

.sc-autoridad-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 16px 48px rgba(51, 79, 155, 0.20);
}

.sc-autoridad-nombre {
    font-family: 'Poppins', sans-serif !important;
    color: #334F9B !important;
    font-weight: 800 !important;
}

.sc-autoridad-cargo {
    background: linear-gradient(135deg, #334F9B, #2EA2DA) !important;
    font-family: 'Poppins', sans-serif !important;
}

/* --- SECCIÓN CONTACTO --- */
.sc-contacto {
    background: linear-gradient(180deg, #ffffff 0%, #f5f8fd 100%);
}

.sc-contacto__info h2 {
    font-family: 'Poppins', sans-serif !important;
    color: #334F9B;
    font-weight: 800;
    background: linear-gradient(135deg, #334F9B, #2EA2DA);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* --- SCROLL REVEAL — Animaciones de entrada --- */
.sc-reveal {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.7s cubic-bezier(0.4,0,0.2,1), transform 0.7s cubic-bezier(0.4,0,0.2,1);
}

.sc-reveal.sc-visible {
    opacity: 1;
    transform: translateY(0);
}

/* --- BOTÓN OUTLINE AZUL MODERNO --- */
.sc-btn--outline-blue {
    background: transparent;
    color: #334F9B;
    border: 2px solid #334F9B;
    padding: 9px 20px;
    font-size: 14px;
    border-radius: 8px;
    font-weight: 700;
    font-family: 'Poppins', sans-serif !important;
    text-decoration: none;
    transition: var(--transition);
    white-space: nowrap;
}

.sc-btn--outline-blue:hover {
    background: linear-gradient(135deg, #334F9B, #2EA2DA);
    border-color: transparent;
    color: #fff;
    box-shadow: 0 6px 20px rgba(51, 79, 155, 0.30);
}

/* --- BOTONES GLOBALES --- */
.sc-btn {
    font-family: 'Poppins', sans-serif !important;
    letter-spacing: 0.2px;
    border-radius: 8px;
    transition: var(--transition);
}

.sc-btn--lg {
    border-radius: 10px;
}

/* --- FOCUS ACCESIBLE CON NUEVA PALETA --- */
.sc-btn:focus-visible,
.sc-acceso-card:focus-visible,
.sc-flotante-card:focus-visible {
    outline: 3px solid #7BCFE3;
    outline-offset: 3px;
}

/* --- ESCALA SALARIAL — actualizar escala tabs activos --- */
.sc-escala__tab.active {
    border-bottom-color: #2EA2DA;
    color: #334F9B;
}

.sc-escala__adic-titulo {
    color: #7BCFE3 !important;
}

.sc-escala__adic-valor {
    color: #7BCFE3 !important;
}

/* --- RESPONSIVE: ajustes hero en mobile --- */
@media (max-width: 920px) {
    .home .site-header,
    .home #masthead,
    .home .main-header-bar {
        background: rgba(51, 79, 155, 0.96) !important;
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
        position: relative !important;
    }
}

@media (max-width: 768px) {
    .sc-hero__title {
        font-size: 16px;
        letter-spacing: -0.1px;
        white-space: normal;
    }
    .sc-hero__sub {
        font-size: 17px;
    }
    .sc-section-title {
        font-size: 26px;
    }
    .sc-banner-afiliacion h2 {
        font-size: 24px;
    }
    .sc-contacto__info h2 {
        font-size: 24px;
    }
}

@media (max-width: 480px) {
    .sc-hero__title {
        font-size: 13px;
        white-space: normal;
    }
}

/* Ocultar sidebar completo en página de Novedades (blog/archive) */
.blog #secondary,
.archive #secondary,
.blog .ast-sidebar-wrap,
.archive .ast-sidebar-wrap,
.blog .widget-area,
.archive .widget-area,
.blog .secondary,
.archive .secondary {
    display: none !important;
}

.blog #primary,
.archive #primary,
.blog .ast-prime-menu-area,
.archive .ast-prime-menu-area {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
}

/* =====================================================
   GALERÍA DE FOTOS
===================================================== */
.sc-galeria {
    padding: 80px 20px;
    background: #f4f7fd;
}

.sc-galeria .sc-section-title {
    margin-bottom: 40px;
}

.sc-galeria__grid {
    columns: 4;
    column-gap: 12px;
}

.sc-galeria__item {
    break-inside: avoid;
    margin-bottom: 12px;
    position: relative;
    overflow: hidden;
    border-radius: 8px;
    cursor: pointer;
}

.sc-galeria__item--hidden {
    display: none;
}

.sc-galeria__img {
    width: 100%;
    height: auto;
    display: block;
    transition: transform 0.4s ease;
}

.sc-galeria__overlay {
    position: absolute;
    inset: 0;
    background: rgba(51, 79, 155, 0.50);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.sc-galeria__overlay span {
    color: #fff;
    font-size: 2.2rem;
    font-weight: 300;
    line-height: 1;
}

.sc-galeria__item:hover .sc-galeria__img {
    transform: scale(1.06);
}

.sc-galeria__item:hover .sc-galeria__overlay {
    opacity: 1;
}

.sc-galeria__more-wrap {
    text-align: center;
    margin-top: 40px;
}

@media (max-width: 1024px) {
    .sc-galeria__grid { columns: 3; }
}

@media (max-width: 700px) {
    .sc-galeria__grid { columns: 2; }
}

@media (max-width: 420px) {
    .sc-galeria__grid { columns: 1; }
}

/* Lightbox */
.sc-lightbox {
    position: fixed;
    inset: 0;
    z-index: 99999;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.25s ease;
}

.sc-lightbox.sc-lightbox--open {
    opacity: 1;
    pointer-events: all;
}

.sc-lightbox__bg {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.92);
    cursor: pointer;
}

.sc-lightbox__inner {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
}

.sc-lightbox__img {
    max-width: 90vw;
    max-height: 88vh;
    object-fit: contain;
    border-radius: 4px;
    box-shadow: 0 8px 40px rgba(0,0,0,0.6);
    display: block;
}

.sc-lightbox__close,
.sc-lightbox__prev,
.sc-lightbox__next {
    position: fixed;
    z-index: 2;
    background: rgba(255,255,255,0.15);
    border: none;
    color: #fff;
    cursor: pointer;
    border-radius: 50%;
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s;
    font-family: inherit;
    line-height: 1;
}

.sc-lightbox__close:hover,
.sc-lightbox__prev:hover,
.sc-lightbox__next:hover {
    background: rgba(255,255,255,0.30);
}

.sc-lightbox__close {
    top: 20px;
    right: 20px;
    font-size: 1.1rem;
}

.sc-lightbox__prev {
    left: 16px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 2.2rem;
    width: 52px;
    height: 52px;
}

.sc-lightbox__next {
    right: 16px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 2.2rem;
    width: 52px;
    height: 52px;
}

.sc-lightbox__counter {
    position: fixed;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
    color: rgba(255,255,255,0.70);
    font-size: 0.85rem;
    z-index: 2;
    margin: 0;
}

/* =====================================================
   PÁGINA CFL — Centro de Formación Laboral
===================================================== */
.sc-cfl-page {
    max-width: 960px;
    margin: 0 auto;
    padding: 20px 0 60px;
    font-family: 'Poppins', sans-serif;
}

.sc-cfl-intro {
    background: linear-gradient(135deg, #334F9B 0%, #2EA2DA 100%);
    color: #fff;
    border-radius: 12px;
    padding: 36px 40px;
    margin-bottom: 48px;
    font-size: 1.05rem;
    line-height: 1.7;
}

.sc-cfl-intro p { margin: 0 0 12px; }
.sc-cfl-intro p:last-child { margin: 0; }

.sc-cfl-section-title {
    font-size: 1.5rem;
    font-weight: 700;
    color: #334F9B;
    margin: 48px 0 24px;
    padding-bottom: 10px;
    border-bottom: 3px solid #2EA2DA;
}

/* Cursos */
.sc-cfl-cursos {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    margin-bottom: 12px;
}

@media (max-width: 900px) { .sc-cfl-cursos { grid-template-columns: 1fr 1fr; } }
@media (max-width: 580px) { .sc-cfl-cursos { grid-template-columns: 1fr; } }

.sc-cfl-curso-card {
    background: #fff;
    border: 1px solid #dde6f7;
    border-radius: 12px;
    padding: 28px 24px;
    box-shadow: 0 2px 12px rgba(51,79,155,0.07);
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.sc-cfl-curso-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 8px;
}

.sc-cfl-curso-header h3 {
    font-size: 1rem;
    font-weight: 700;
    color: #334F9B;
    margin: 0;
    line-height: 1.4;
}

.sc-cfl-badge {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 20px;
    font-size: 0.75rem;
    font-weight: 700;
    white-space: nowrap;
    flex-shrink: 0;
}

.sc-cfl-badge--2026 { background: #334F9B; color: #fff; }
.sc-cfl-badge--2025 { background: #2EA2DA; color: #fff; }

.sc-cfl-curso-card p {
    font-size: 0.9rem;
    color: #555;
    line-height: 1.6;
    margin: 0;
}

.sc-cfl-lista {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.sc-cfl-lista li {
    font-size: 0.85rem;
    color: #334F9B;
    font-weight: 600;
    padding-left: 20px;
    position: relative;
}

.sc-cfl-lista li::before {
    content: '✓';
    position: absolute;
    left: 0;
    color: #2EA2DA;
    font-weight: 700;
}

/* Sedes */
.sc-cfl-sedes {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
    margin-top: 20px;
}

@media (max-width: 900px) { .sc-cfl-sedes { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 580px) { .sc-cfl-sedes { grid-template-columns: repeat(2, 1fr); } }

.sc-cfl-sede {
    background: #f4f7fd;
    border: 1px solid #dde6f7;
    border-radius: 8px;
    padding: 12px 16px;
    font-size: 0.9rem;
    font-weight: 600;
    color: #334F9B;
    text-align: center;
}

.sc-cfl-sede small {
    display: block;
    font-size: 0.75rem;
    font-weight: 400;
    color: #777;
    margin-top: 2px;
}

/* Contacto */
.sc-cfl-contacto-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
    margin-top: 20px;
}

@media (max-width: 580px) { .sc-cfl-contacto-grid { grid-template-columns: 1fr; } }

.sc-cfl-contacto-item {
    display: flex;
    align-items: center;
    gap: 12px;
    background: #f4f7fd;
    border-radius: 10px;
    padding: 16px 20px;
    font-size: 0.95rem;
}

.sc-cfl-contacto-item a {
    color: #334F9B;
    font-weight: 600;
    text-decoration: none;
}

.sc-cfl-contacto-item a:hover { text-decoration: underline; }

.sc-cfl-periodo {
    font-size: 0.8rem;
    font-weight: 600;
    color: #888;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    margin: 0 0 8px;
}

.sc-cfl-desc {
    font-size: 0.9rem;
    color: #555;
    line-height: 1.6;
    margin: 0 0 12px;
}

.sc-cfl-notas {
    font-size: 0.82rem;
    color: #666;
    background: #fffbeb;
    border-left: 3px solid #f59e0b;
    padding: 8px 12px;
    border-radius: 0 6px 6px 0;
    margin: 12px 0 0;
}

.sc-cfl-curso-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid #eef1f8;
    flex-wrap: wrap;
}

.sc-cfl-estado {
    font-size: 0.78rem;
    font-weight: 700;
    padding: 4px 10px;
    border-radius: 20px;
}

.sc-cfl-inscribirse {
    font-size: 0.85rem;
    font-weight: 700;
    color: #334F9B;
    text-decoration: none;
    padding: 6px 14px;
    border: 2px solid #334F9B;
    border-radius: 20px;
    transition: background 0.2s, color 0.2s;
}

.sc-cfl-inscribirse:hover {
    background: #334F9B;
    color: #fff;
}

.sc-cfl-empty {
    color: #888;
    font-style: italic;
    padding: 20px 0;
}

/* =====================================================
   REDES SOCIALES — Footer: íconos más grandes
===================================================== */
.ast-footer-social-1-wrap .ast-builder-social-element,
.ast-footer-social-2-wrap .ast-builder-social-element {
    width: 40px !important;
    height: 40px !important;
    min-width: 40px !important;
    min-height: 40px !important;
}

.ast-footer-social-1-wrap .ast-builder-social-element svg,
.ast-footer-social-2-wrap .ast-builder-social-element svg {
    width: 24px !important;
    height: 24px !important;
}

/* =====================================================
   REDES SOCIALES — Hero: barra de íconos en homepage
===================================================== */
.sc-hero__social {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    margin-top: 28px;
}

.sc-hero__social-label {
    font-family: 'Poppins', sans-serif;
    font-size: 0.82rem;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.75);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    white-space: nowrap;
}

.sc-hero__social-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    background: rgba(255, 255, 255, 0.15);
    border: 2px solid rgba(255, 255, 255, 0.35);
    border-radius: 50%;
    color: #fff;
    transition: background 0.2s, border-color 0.2s, transform 0.15s;
    text-decoration: none;
}

.sc-hero__social-link:hover {
    background: rgba(255, 255, 255, 0.30);
    border-color: rgba(255, 255, 255, 0.75);
    transform: translateY(-2px);
    color: #fff;
    text-decoration: none;
}

.sc-hero__social-link svg {
    width: 22px;
    height: 22px;
    fill: currentColor;
}

@media (max-width: 600px) {
    .sc-hero__social { margin-top: 20px; gap: 10px; }
    .sc-hero__social-link { width: 38px; height: 38px; }
    .sc-hero__social-link svg { width: 18px; height: 18px; }
}

/* =====================================================
   HISTORIA PAGE
   ===================================================== */

.sc-historia-hero {
    background: linear-gradient(135deg, var(--color-primario) 0%, var(--color-profundo) 100%);
    color: #fff;
    padding: 60px 40px;
    border-radius: var(--radius-lg);
    margin-bottom: 48px;
    position: relative;
    overflow: hidden;
}
.sc-historia-hero::before {
    content: '';
    position: absolute;
    top: -60px; right: -60px;
    width: 300px; height: 300px;
    border-radius: 50%;
    background: rgba(46,162,218,0.15);
    pointer-events: none;
}
.sc-historia-hero h1,
.sc-historia-hero h2 {
    color: #fff !important;
    font-size: 1.6rem !important;
    line-height: 1.3 !important;
    margin-bottom: 16px !important;
    position: relative;
}
.sc-historia-hero p {
    color: rgba(255,255,255,0.92) !important;
    font-size: 1rem !important;
    line-height: 1.7 !important;
    position: relative;
}
.sc-historia-hero .sc-historia-hero__fecha {
    display: inline-block;
    background: var(--color-acento);
    color: #fff;
    font-weight: 700;
    font-size: 0.85rem;
    padding: 4px 14px;
    border-radius: 20px;
    margin-bottom: 18px;
    letter-spacing: 0.05em;
}
.sc-historia-sede-img {
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-lg);
    width: 100% !important;
    max-width: 400px !important;
    height: auto !important;
    display: block !important;
    margin: 0 auto !important;
    image-rendering: -webkit-optimize-contrast;
    image-rendering: crisp-edges;
}
.sc-historia-sede-img img {
    width: 100% !important;
    height: auto !important;
    border-radius: var(--radius-md) !important;
    box-shadow: var(--shadow-lg) !important;
}
.sc-historia-sede-img figcaption {
    color: rgba(255,255,255,0.75) !important;
    font-size: 0.8rem !important;
    text-align: center !important;
    margin-top: 8px !important;
    font-style: italic !important;
}

/* Objetivos cards */
.sc-historia-objetivos {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    margin: 40px 0 !important;
}
.sc-historia-obj-card {
    background: #fff;
    border: 2px solid #e8edf8;
    border-radius: var(--radius-md);
    padding: 28px 24px;
    text-align: center;
    box-shadow: var(--shadow-sm);
    transition: var(--transition);
}
.sc-historia-obj-card:hover {
    border-color: var(--color-acento);
    box-shadow: var(--shadow-md);
    transform: translateY(-4px);
}
.sc-historia-obj-card__num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px; height: 48px;
    background: linear-gradient(135deg, var(--color-primario), var(--color-acento));
    color: #fff;
    border-radius: 50%;
    font-size: 1.4rem;
    font-weight: 800;
    margin-bottom: 14px;
}
.sc-historia-obj-card__texto {
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--color-primario);
    line-height: 1.4;
    margin: 0;
}

/* Timeline de logros */
.sc-historia-timeline {
    position: relative;
    padding-left: 32px;
    margin: 32px 0 !important;
}
.sc-historia-timeline::before {
    content: '';
    position: absolute;
    left: 8px; top: 0; bottom: 0;
    width: 3px;
    background: linear-gradient(to bottom, var(--color-primario), var(--color-acento));
    border-radius: 2px;
}
.sc-historia-tl-item {
    position: relative;
    margin-bottom: 28px;
    padding: 20px 24px;
    background: #f8faff;
    border-radius: var(--radius-md);
    border-left: 3px solid var(--color-primario);
}
.sc-historia-tl-item::before {
    content: '';
    position: absolute;
    left: -40px; top: 22px;
    width: 14px; height: 14px;
    background: var(--color-acento);
    border: 3px solid #fff;
    border-radius: 50%;
    box-shadow: 0 0 0 2px var(--color-acento);
}
.sc-historia-tl-item__year {
    display: inline-block;
    background: var(--color-primario);
    color: #fff;
    font-weight: 700;
    font-size: 0.78rem;
    padding: 2px 10px;
    border-radius: 10px;
    margin-bottom: 8px;
    letter-spacing: 0.06em;
}
.sc-historia-tl-item p {
    margin: 0 !important;
    font-size: 0.9rem;
    color: #444;
    line-height: 1.6;
}

/* Convenios */
.sc-historia-convenios {
    background: linear-gradient(135deg, #f0f4ff 0%, #e8f4fb 100%);
    border-radius: var(--radius-md);
    padding: 32px;
    margin: 32px 0 !important;
}
.sc-historia-convenios h3 {
    color: var(--color-primario) !important;
    margin-top: 0 !important;
}
.sc-historia-convenios ol {
    margin: 0 !important;
    padding-left: 20px;
}
.sc-historia-convenios li {
    margin-bottom: 10px;
    font-size: 0.95rem;
    color: #333;
    padding: 8px 12px;
    background: rgba(255,255,255,0.7);
    border-radius: 8px;
    border-left: 3px solid var(--color-acento);
}

/* Utopías / lemas */
.sc-historia-lemas {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin: 24px 0 !important;
}
.sc-historia-lema {
    background: linear-gradient(135deg, var(--color-primario) 0%, var(--color-profundo) 100%);
    color: #fff;
    border-radius: var(--radius-md);
    padding: 24px;
    text-align: center;
}
.sc-historia-lema__quote {
    font-size: 0.9rem;
    font-style: italic;
    line-height: 1.6;
    color: rgba(255,255,255,0.95);
    margin: 0;
}
.sc-historia-lema__quote strong {
    display: block;
    font-size: 1rem;
    font-style: normal;
    color: var(--color-acento-alt);
    margin-bottom: 6px;
}

/* Responsive historia */
@media (max-width: 768px) {
    .sc-historia-hero { padding: 36px 20px; }
    .sc-historia-hero h1, .sc-historia-hero h2 { font-size: 1.25rem !important; }
    .sc-historia-objetivos { grid-template-columns: 1fr; gap: 16px; }
    .sc-historia-lemas { grid-template-columns: 1fr; }
    .sc-historia-convenios { padding: 20px; }
}


/* =====================================================
   FATRASEP — Sección homepage
   ===================================================== */
.sc-fatrasep-section {
    background: linear-gradient(135deg, #0f1a4a 0%, #1a2a6e 100%);
    padding: 56px 24px;
}
.sc-fatrasep-section__inner {
    max-width: 1100px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    gap: 60px;
}
.sc-fatrasep-section__texto {
    flex: 1;
}
.sc-fatrasep-section__label {
    color: var(--color-acento);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    margin: 0 0 10px !important;
}
.sc-fatrasep-section__titulo {
    color: #fff;
    font-size: 1.5rem;
    font-weight: 800;
    line-height: 1.3;
    margin: 0 0 14px !important;
}
.sc-fatrasep-section__desc {
    color: rgba(255,255,255,0.7);
    font-size: 0.95rem;
    line-height: 1.7;
    margin: 0 !important;
}
.sc-fatrasep-section__logo-wrap {
    flex-shrink: 0;
    background: #fff;
    border-radius: var(--radius-md);
    padding: 20px 24px;
    box-shadow: 0 8px 32px rgba(0,0,0,0.25);
}
.sc-fatrasep-section__logo {
    height: 150px;
    width: auto;
    display: block;
}


@media (max-width: 768px) {
    .sc-fatrasep-section__inner { flex-direction: column; gap: 32px; text-align: center; }
    .sc-fatrasep-section__logo { height: 110px; }
    .sc-fatrasep-footer__inner { justify-content: center; }
}

/* --- JS HOOKS — Sticky header scroll effect --- */
