/*
 Theme Name:   CTPF Kadence Child
 Template:     kadence
 Version:      1.0.1
*/

/* === CTPF Specialty Cards === */
.ctpf-card-row {
    margin-bottom: 40px !important;
}

/* Espacio vertical en móviles cuando las columnas se apilan */
@media screen and (max-width: 781px) {
    .ctpf-card-row .wp-block-column {
        margin-bottom: 30px !important;
    }
    .ctpf-card-row .wp-block-column:last-child {
        margin-bottom: 0 !important;
    }
}

.ctpf-card-icon {
    display: flex;
    justify-content: center;
    margin-bottom: 10px;
}
.ctpf-card-icon img {
    width: 64px !important;
    height: 64px !important;
    object-fit: contain;
}
.ctpf-card-inner {
    background: var(--color-brand-light-card, #ffffff);
    border-radius: var(--radius-card, 12px);
    padding: 30px 20px !important;
    box-shadow: var(--shadow-soft, 0 4px 6px -1px rgba(0,0,0,0.05));
    border: 1px solid #e2e8f0;
    text-align: center;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    min-height: 280px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
}
.ctpf-card-inner:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-premium, 0 10px 15px -3px rgba(0,51,137,0.07));
    border-color: var(--color-brand-celeste, #0f99d6);
}
.ctpf-card-inner h3 {
    font-family: var(--font-futura, "Futura ICG", sans-serif) !important;
    font-weight: 700 !important;
    color: var(--color-brand-navy, #00528a) !important;
    margin-bottom: 10px;
}
.ctpf-card-inner p {
    color: #4A5568;
    line-height: 1.5;
    margin-bottom: 16px;
}
.ctpf-card-row .wp-block-button .wp-block-button__link {
    background: var(--color-brand-navy, #00528a) !important;
    color: #fff !important;
    border-radius: var(--radius-button, 12px) !important;
    padding: 10px 28px !important;
    font-family: var(--font-futura, "Futura ICG", sans-serif) !important;
    font-weight: 700 !important;
    font-size: 0.95rem;
    text-decoration: none !important;
    transition: background 0.2s ease;
}
.ctpf-card-row .wp-block-button .wp-block-button__link:hover {
    background: var(--color-brand-navy-hover, #004373) !important;
}

/* === Specialty Page Hero Escudo === */
.specialty-hero {
    text-align: center;
}
.ctpf-specialty-escudo img {
    width: 80px !important;
    height: 80px !important;
    object-fit: contain;
}

/* === Welcome Section === */
.welcome-section h1 {
    font-family: var(--font-display, "Gazpacho Black", sans-serif) !important;
    color: var(--color-brand-navy, #00528a) !important;
}
.welcome-section p {
    color: #4A5568;
    max-width: 700px;
    margin: 0 auto 20px;
}

/* === Specialties Section === */
.specialties-section h2 {
    font-family: var(--font-display, "Gazpacho Black", sans-serif) !important;
    color: var(--color-brand-navy, #00528a) !important;
}

/* === Ajustes para el Slider de la Página Principal === */
/* Reduce el espacio y padding superior del contenedor de la página de inicio y el slider */
.home .site-header, 
.home #masthead {
    margin-bottom: 0 !important;
}
.home #inner-wrap {
    padding-top: 0 !important;
    margin-top: 0 !important;
}
.home #primary {
    margin-top: 0 !important;
    padding-top: 0 !important;
}
.home .content-container {
    padding-top: 0 !important;
}
.home .site-main {
    padding-top: 0 !important;
    margin-top: 0 !important;
}
.home .content-wrap {
    padding-top: 0 !important;
    margin-top: 0 !important;
}
.home article {
    margin-top: 0 !important;
    padding-top: 0 !important;
}
.home .entry-content-wrap {
    padding-top: 0 !important;
    margin-top: 0 !important;
}
.home .entry-content-single {
    padding-top: 0 !important;
}
.home .entry-content {
    margin-top: 0 !important;
    padding-top: 0 !important;
}
.home .entry-header {
    display: none !important;
}
/* Elimina márgenes superiores del bloque HTML y del slider */
.home .wp-block-html {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}
.home .smart-slider-3 {
    margin-top: 0 !important;
}

/* === Estilos para las Páginas de Especialidades (Admisión 2026) === */
.specialty-hero-wrap {
    background: radial-gradient(circle, var(--color-brand-navy, #00528a) 0%, #001f3f 100%) !important;
    position: relative;
    overflow: hidden;
}
/* Patrón de red tecnológica sutil */
.specialty-hero-wrap::before {
    content: "";
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background-image: 
        linear-gradient(to right, rgba(15, 153, 214, 0.06) 1px, transparent 1px),
        linear-gradient(to bottom, rgba(15, 153, 214, 0.06) 1px, transparent 1px);
    background-size: 50px 50px;
    pointer-events: none;
    z-index: 1;
}
.specialty-hero-wrap * {
    position: relative;
    z-index: 2;
}
.ctpf-specialty-escudo img {
    width: 110px !important;
    height: 110px !important;
    object-fit: contain;
    filter: drop-shadow(0 8px 16px rgba(0,0,0,0.25));
    transition: transform 0.3s ease;
}
.ctpf-specialty-escudo img:hover {
    transform: scale(1.06) rotate(3deg);
}

/* Ajustes del cuerpo de contenido de especialidad */
.specialty-content-body {
    padding-top: 50px;
    padding-bottom: 50px;
}
.curriculum-year-block {
    border-left: 3px solid var(--color-brand-celeste, #0f99d6);
    padding-left: 20px !important;
    margin-bottom: 25px;
    background: #f8fafc;
    border-radius: 0 12px 12px 0;
    transition: border-color 0.2s ease, background-color 0.2s ease;
}
.curriculum-year-block:hover {
    border-color: var(--color-brand-navy, #00528a);
    background-color: #f1f5f9;
}
.curriculum-year-block h3 {
    margin-top: 0 !important;
    margin-bottom: 10px !important;
    font-weight: 700 !important;
    font-family: var(--font-futura, "Futura ICG", sans-serif) !important;
}

/* Estilos de barra lateral (Sidebar) */
.specialty-sidebar-card {
    box-shadow: var(--shadow-soft, 0 4px 6px -1px rgba(0,0,0,0.05));
    position: sticky;
    top: 100px;
}
.specialty-sidebar-card h3 {
    font-family: var(--font-futura, "Futura ICG", sans-serif) !important;
    font-weight: 700 !important;
}
.sidebar-list {
    padding-left: 15px !important;
}
.sidebar-list li {
    margin-bottom: 12px;
    font-size: 0.95rem;
    color: #4a5568;
    line-height: 1.4;
}

/* Contenedor de video responsivo */
.video-responsive-wrapper {
    margin: 20px auto;
    max-width: 800px;
}

/* Galería en Acción Estilizada */
.specialty-gallery {
    margin-top: 30px !important;
}
.specialty-gallery figure img {
    border-radius: 12px;
    box-shadow: var(--shadow-soft, 0 4px 6px -1px rgba(0,0,0,0.05));
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.specialty-gallery figure img:hover {
    transform: scale(1.03);
    box-shadow: var(--shadow-premium, 0 10px 15px -3px rgba(0,51,137,0.07));
}

/* Ocultar el título de página nativo en WordPress (evita duplicación con el Hero) */
.page .entry-header, 
.page .entry-title, 
.page .entry-hero {
    display: none !important;
    margin: 0 !important;
    padding: 0 !important;
    height: 0 !important;
    visibility: hidden !important;
}

/* === Ajustes Estéticos de Psicología Juvenil (Admisión 2026) === */
/* Animación del escudo y badge del hero */
.hero-badge {
    box-shadow: 0 4px 10px rgba(15, 153, 214, 0.3);
    display: inline-block;
    animation: pulseBadge 2s infinite ease-in-out;
}
@keyframes pulseBadge {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.03); box-shadow: 0 6px 14px rgba(15, 153, 214, 0.5); }
}

/* Tarjetas del gancho de atracción (Grid superior) */
.specialty-feature-grid .feature-card {
    border-radius: 16px !important;
    border: 1px solid #e2e8f0 !important;
    background: #ffffff !important;
    padding: 25px !important;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05) !important;
    transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.25s cubic-bezier(0.4, 0, 0.2, 1) !important;
}
.specialty-feature-grid .feature-card:hover {
    transform: translateY(-5px) !important;
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04) !important;
    border-color: var(--color-brand-celeste, #0f99d6) !important;
}

/* Lista de competencias estilizada con bullets modernos */
.competencies-list {
    list-style: none !important;
    padding-left: 0 !important;
}
.competencies-list li {
    position: relative;
    padding-left: 30px;
    margin-bottom: 14px;
    font-size: 1.05rem;
    line-height: 1.5;
    color: #4a5568;
}
.competencies-list li::before {
    content: "✓";
    position: absolute;
    left: 0;
    top: 2px;
    font-size: 1.1rem;
    color: var(--color-brand-celeste, #0f99d6);
}

/* Acordeón de recursos y enlaces */
.specialty-resources-accordion {
    box-shadow: var(--shadow-soft, 0 4px 6px -1px rgba(0,0,0,0.05)) !important;
}
.specialty-resources-accordion ul li {
    list-style: none !important;
    margin-bottom: 10px;
}
.specialty-resources-accordion ul li a {
    color: var(--color-brand-navy, #00528a) !important;
    font-weight: 600;
    transition: color 0.2s ease;
    display: inline-block;
}
.specialty-resources-accordion ul li a:hover {
    color: var(--color-brand-celeste, #0f99d6) !important;
    text-decoration: underline !important;
}

/* === Sección del Video "Sala de Cine" (Dark Mode) === */
.specialty-cinema-section {
    background-color: #0f172a !important; /* Azul oscuro profundo */
    position: relative;
    overflow: hidden;
}
.specialty-cinema-section::before {
    content: "";
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background-image: 
        radial-gradient(circle at 10% 20%, rgba(15, 153, 214, 0.15) 0%, transparent 40%),
        radial-gradient(circle at 90% 80%, rgba(0, 82, 138, 0.2) 0%, transparent 50%);
    pointer-events: none;
    z-index: 1;
}
.specialty-cinema-section > div {
    position: relative;
    z-index: 2;
}

/* === Galería Bento Grid === */
.specialty-bento-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-auto-rows: 200px;
    gap: 20px;
    margin-top: 30px;
}
.bento-item {
    position: relative;
    overflow: hidden;
    border-radius: 20px;
    border: 1px solid #e2e8f0;
    box-shadow: var(--shadow-soft, 0 4px 6px -1px rgba(0,0,0,0.05));
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.3s cubic-bezier(0.4, 0, 0.2, 1), border-color 0.3s ease;
}
.bento-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.5s ease;
}
.bento-item:hover {
    transform: translateY(-5px);
    box-shadow: var(--shadow-premium, 0 10px 15px -3px rgba(0,51,137,0.07)), 0 20px 25px -5px rgba(0,0,0,0.05);
    border-color: var(--color-brand-celeste, #0f99d6);
}
.bento-item:hover img {
    transform: scale(1.05);
}

/* Distribución asimétrica de Bento Grid (Estilo Premium) */
.bento-img-1 {
    grid-column: span 2;
    grid-row: span 2;
}
.bento-stat {
    grid-column: span 2;
    grid-row: span 1;
    background: linear-gradient(135deg, var(--color-brand-navy, #00528a) 0%, #002540 100%);
    border: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    padding: 20px;
    color: #ffffff;
}
.bento-stat .stat-value {
    font-size: 3rem;
    font-weight: 900;
    font-family: var(--font-display, "Gazpacho Black", sans-serif);
    color: var(--color-brand-celeste, #0f99d6);
    line-height: 1;
    margin-bottom: 5px;
    text-shadow: 0 4px 10px rgba(15, 153, 214, 0.3);
}
.bento-stat .stat-label {
    font-size: 1rem;
    font-family: var(--font-futura, "Futura ICG", sans-serif);
    font-weight: 700;
    opacity: 0.9;
    letter-spacing: 0.5px;
}
.bento-img-2 {
    grid-column: span 1;
    grid-row: span 1;
}
.bento-img-3 {
    grid-column: span 1;
    grid-row: span 1;
}

/* Responsividad para pantallas pequeñas (Bento Grid colapsa) */
@media screen and (max-width: 768px) {
    .specialty-bento-grid {
        grid-template-columns: 1fr;
        grid-auto-rows: 250px;
    }
    .bento-img-1, .bento-stat, .bento-img-2, .bento-img-3 {
        grid-column: span 1;
        grid-row: span 1;
    }
    .bento-stat .stat-value {
        font-size: 2.5rem;
    }
}

/* === DISEÑO DE CURRÍCULUM VITAE (CV) INTERACTIVO === */
/* Contenedor tipo "hoja de papel física" */
.specialty-cv-page-wrapper {
    background-color: #f1f5f9 !important; /* fondo del lienzo */
    display: flex;
    justify-content: center;
    align-items: center;
}
.specialty-cv-sheet {
    background: #ffffff;
    width: 100%;
    max-width: 1140px;
    margin: 0 auto;
    border-radius: 24px;
    box-shadow: 0 20px 40px -15px rgba(0, 51, 137, 0.08), 0 15px 25px -10px rgba(0,0,0,0.05);
    display: flex;
    overflow: hidden;
    border: 1px solid #e2e8f0;
}

/* Sidebar del CV (Columna izquierda) */
.cv-left-sidebar {
    width: 32%;
    background: #f8fafc;
    border-right: 1px solid #e2e8f0;
    padding: 40px 30px;
    display: flex;
    flex-direction: column;
    gap: 30px;
}
.cv-avatar-container {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 10px;
}
.cv-avatar-shield {
    width: 130px !important;
    height: 130px !important;
    object-fit: contain;
    filter: drop-shadow(0 8px 16px rgba(0,0,0,0.12));
    transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.cv-avatar-shield:hover {
    transform: scale(1.08) rotate(3deg);
}

/* Tint ciberseguridad.webp to navy #00528a like the SVG escudos */
.ctpf-card-icon img[src*="ciberseguridad.webp"],
.cv-avatar-shield[src*="ciberseguridad.webp"] {
    filter: brightness(0) saturate(100%) invert(16%) sepia(96%) saturate(3578%) hue-rotate(193deg) brightness(94%) contrast(93%);
}

.cv-badge-row {
    text-align: center;
}
.cv-badge-pill {
    background: var(--color-brand-celeste, #0f99d6);
    color: #ffffff;
    padding: 6px 14px;
    border-radius: 30px;
    font-size: 0.8rem;
    font-family: var(--font-futura, "Futura ICG", sans-serif);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.cv-sidebar-section {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.cv-section-title {
    font-size: 1.05rem;
    font-family: var(--font-futura, "Futura ICG", sans-serif);
    font-weight: 800;
    color: var(--color-brand-navy, #00528a);
    text-transform: uppercase;
    border-bottom: 2px solid #e2e8f0;
    padding-bottom: 6px;
    margin: 0 !important;
    letter-spacing: 0.5px;
}

.cv-info-list {
    list-style: none !important;
    padding-left: 0 !important;
    margin: 0 !important;
}
.cv-info-list li {
    font-size: 0.9rem;
    color: #475569;
    margin-bottom: 8px;
    line-height: 1.4;
}

/* Barra de progreso de inglés */
.cv-language-block {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.cv-lang-name {
    font-weight: 700;
    color: #1e293b;
    font-size: 0.95rem;
}
.cv-lang-level {
    font-size: 0.85rem;
    color: #64748b;
}
.cv-progress-bar {
    width: 100%;
    height: 8px;
    background: #e2e8f0;
    border-radius: 10px;
    overflow: hidden;
    margin-top: 4px;
}
.cv-progress-fill {
    height: 100%;
    background: linear-gradient(90deg, var(--color-brand-celeste, #0f99d6) 0%, var(--color-brand-navy, #00528a) 100%);
    border-radius: 10px;
}

/* Skills tags */
.cv-skills-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.cv-skill-tag {
    background: #ffffff;
    border: 1px solid #cbd5e1;
    color: #334155;
    padding: 4px 10px;
    border-radius: 8px;
    font-size: 0.8rem;
    font-weight: 600;
    transition: all 0.2s ease;
}
.cv-skill-tag:hover {
    border-color: var(--color-brand-celeste, #0f99d6);
    color: var(--color-brand-celeste, #0f99d6);
    background: #f8fafc;
}

/* Certificaciones / PDFs */
.cv-certifications-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.cv-cert-item {
    background: #ffffff;
    border: 1px solid #cbd5e1;
    border-radius: 10px;
    padding: 8px 12px;
    transition: all 0.2s ease;
}
.cv-cert-item:hover {
    border-color: var(--color-brand-celeste, #0f99d6);
    background: #f1f5f9;
}
.cv-cert-link {
    display: flex;
    align-items: center;
    gap: 10px;
    text-decoration: none !important;
}
.cv-cert-icon {
    font-size: 1.1rem;
}
.cv-cert-name {
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--color-brand-navy, #00528a) !important;
    line-height: 1.2;
}

/* Cuerpo del CV (Columna derecha) */
.cv-right-body {
    width: 68%;
    padding: 45px;
    display: flex;
    flex-direction: column;
    gap: 35px;
}
.cv-header-block {
    display: flex;
    flex-direction: column;
    gap: 8px;
    border-bottom: 2px solid #f1f5f9;
    padding-bottom: 20px;
}
.cv-candidate-name {
    font-size: 2.8rem !important;
    font-family: var(--font-display, "Gazpacho Black", sans-serif) !important;
    color: var(--color-brand-navy, #00528a) !important;
    margin: 0 !important;
    line-height: 1;
}
.cv-candidate-title {
    font-size: 1.15rem;
    font-family: var(--font-futura, "Futura ICG", sans-serif);
    font-weight: 700;
    color: var(--color-brand-celeste, #0f99d6);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.cv-candidate-tagline {
    font-style: italic;
    color: #64748b;
    font-size: 0.95rem;
    line-height: 1.4;
}

.cv-body-section {
    display: flex;
    flex-direction: column;
    gap: 15px;
}
.cv-body-section-title {
    font-size: 1.4rem !important;
    font-family: var(--font-display, "Gazpacho", sans-serif) !important;
    color: var(--color-brand-navy, #00528a) !important;
    margin: 0 !important;
    border-bottom: 2px solid var(--color-brand-navy, #00528a);
    padding-bottom: 8px;
}
.cv-about-text {
    font-size: 1rem;
    line-height: 1.6;
    color: #334155;
    margin: 0 !important;
}

/* Timeline educativo (Plan de estudios) */
.cv-timeline {
    position: relative;
    padding-left: 30px;
    margin-left: 20px;
    border-left: 2px dashed #cbd5e1;
    display: flex;
    flex-direction: column;
    gap: 30px;
    margin-top: 10px;
}
.cv-timeline-item {
    position: relative;
}
.cv-timeline-badge {
    position: absolute;
    left: -48px;
    top: 0;
    width: 34px;
    height: 34px;
    background: linear-gradient(135deg, var(--color-brand-celeste, #0f99d6) 0%, var(--color-brand-navy, #00528a) 100%);
    border-radius: 50%;
    color: #ffffff;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 0.8rem;
    font-weight: 800;
    font-family: var(--font-futura, "Futura ICG", sans-serif);
    box-shadow: 0 4px 10px rgba(15, 153, 214, 0.3);
}
.cv-timeline-content {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    padding: 20px;
    transition: all 0.25s ease;
}
.cv-timeline-content:hover {
    border-color: var(--color-brand-celeste, #0f99d6);
    background: #ffffff;
    box-shadow: var(--shadow-soft, 0 4px 6px -1px rgba(0,0,0,0.05));
}
.cv-timeline-title {
    font-size: 1.1rem !important;
    font-family: var(--font-futura, "Futura ICG", sans-serif) !important;
    font-weight: 700 !important;
    color: var(--color-brand-navy, #00528a) !important;
    margin: 0 0 4px 0 !important;
}
.cv-timeline-period {
    font-size: 0.85rem;
    color: #64748b;
    font-weight: 600;
    margin-bottom: 12px;
}
.cv-timeline-subareas {
    padding-left: 0 !important;
    margin: 0 !important;
}

/* Responsividad para móviles (El CV se convierte en una sola columna vertical) */
@media screen and (max-width: 992px) {
    .specialty-cv-sheet {
        flex-direction: column;
    }
    .cv-left-sidebar {
        width: 100%;
        border-right: 0;
        border-bottom: 1px solid #e2e8f0;
        padding: 30px;
    }
    .cv-right-body {
        width: 100%;
        padding: 30px;
    }
    .cv-candidate-name {
        font-size: 2.2rem !important;
    }
}

/* Estilos para los acordeones curriculares de subáreas en el CV */
.cv-subarea-accordion {
    transition: background-color 0.2s ease;
}
.cv-subarea-accordion[open] {
    background-color: #f8fafc;
    border-radius: 12px;
    padding: 10px;
    border-bottom: 1px solid var(--color-brand-celeste, #0f99d6) !important;
}
.cv-subarea-accordion summary::-webkit-details-marker {
    display: none !important; /* Quitar flecha nativa en Safari/Chrome */
}
.cv-subarea-accordion summary {
    list-style: none !important; /* Quitar flecha nativa en Firefox/Opera */
}
.cv-subarea-accordion summary:hover {
    color: var(--color-brand-celeste, #0f99d6) !important;
}
.cv-subarea-accordion summary:hover span {
    color: var(--color-brand-navy, #00528a) !important;
}

/* === Ajustes Adicionales de Realismo CV === */
/* Lista de contacto del sidebar */
.cv-contact-list {
    list-style: none !important;
    padding-left: 0 !important;
    margin: 0 !important;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.cv-contact-list li {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 0.88rem;
    color: #475569;
}
.cv-contact-list li .cnt-icon {
    font-size: 1.05rem;
    color: var(--color-brand-celeste, #0f99d6);
}

/* Ajustes de firma al pie del CV */
.cv-signature-section div div {
    font-family: var(--font-futura, "Futura ICG", sans-serif);
}

/* Iconos vectoriales Flaticon (SVG en línea) */
.flaticon-icon {
    display: inline-block;
    vertical-align: middle;
    fill: currentColor;
    transition: transform 0.2s ease, color 0.2s ease;
}
.cv-contact-list li:hover .flaticon-icon {
    transform: scale(1.15);
    color: var(--color-brand-navy, #00528a) !important;
}
.cv-cert-link:hover .flaticon-icon {
    transform: scale(1.15) rotate(-5deg);
    color: var(--color-brand-navy, #00528a) !important;
}
.cv-subarea-accordion summary:hover .flaticon-icon {
    transform: scale(1.2);
    color: var(--color-brand-navy, #00528a) !important;
}

/* === ESTILOS DE LA MASCOTA MAPACHE EN TODO EL SITIO === */
/* Botón Back to Top con huella de mapache */
.raccoon-back-to-top {
    position: fixed;
    bottom: 30px;
    right: 30px;
    width: 60px;
    height: 60px;
    background-color: var(--color-brand-navy, #00528a);
    color: #ffffff;
    border: 3px solid #ffffff;
    border-radius: 50%;
    cursor: pointer;
    z-index: 9999;
    display: flex;
    justify-content: center;
    align-items: center;
    box-shadow: 0 6px 15px rgba(0,0,0,0.15);
    opacity: 0;
    pointer-events: none;
    transform: scale(0.8);
    transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.raccoon-back-to-top.visible {
    opacity: 1;
    pointer-events: auto;
    transform: scale(1);
}
.raccoon-back-to-top:hover {
    background-color: var(--color-brand-celeste, #0f99d6);
    transform: translateY(-4px) rotate(15deg);
    box-shadow: 0 8px 20px rgba(15,153,214,0.35);
}
.raccoon-paw-svg {
    width: 32px;
    height: 32px;
    fill: #ffffff;
    display: block;
}

/* Mapache Peek-a-boo asomadizo en el footer (Mascota Oficial de Cuerpo Completo) */
.raccoon-peek-a-boo {
    position: fixed;
    bottom: 0;
    right: 110px; /* al lado del botón de volver arriba */
    width: 120px;
    height: auto;
    z-index: 9998;
    transform: translateY(100%);
    transition: transform 0.45s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    pointer-events: auto;
}
.raccoon-peek-a-boo.peek-active {
    transform: translateY(12px); /* Asoma el mapache oficial de forma óptima */
}
.raccoon-peek-a-boo.shy-mode {
    transform: translateY(100%) !important; /* Se esconde rápidamente al hover */
}
.raccoon-head-svg {
    width: 100%;
    height: auto;
    display: block;
    filter: drop-shadow(0 -5px 8px rgba(0,0,0,0.08));
}

/* Ajustes de responsividad para que en pantallas pequeñas no estorbe */
@media screen and (max-width: 768px) {
    .raccoon-back-to-top {
        bottom: 20px;
        right: 20px;
        width: 48px;
        height: 48px;
    }
    .raccoon-paw-svg {
        width: 26px;
        height: 26px;
    }
    .raccoon-peek-a-boo {
        right: 80px;
        width: 90px;
    }
}

/* Ocultar minuciosamente cualquier botón nativo de volver arriba de Kadence o WordPress */
#kt-scroll-up, .kt-scroll-up, #scroll-to-top, .scroll-to-top, .scroll-up, a.scroll-to-top, button.scroll-to-top, a.scroll-up, a[href="#top"] {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}



/* Regla de seguridad de posicionamiento de marcas de agua */
body {
    position: relative;
}

/* === PATRÓN DE HUELLAS DE MAPACHE EN EL FONDO IZQUIERDO === */
.raccoon-left-tracks {
    position: fixed;
    top: 0;
    left: 0;
    width: 60px;
    height: 100vh;
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="60" height="120" viewBox="0 0 60 120"><g transform="translate(8, 15) rotate(-15 12 12)" fill="%23000000" opacity="0.045"><circle cx="4.5" cy="9.5" r="1.8" /><circle cx="8" cy="6.5" r="2" /><circle cx="12" cy="5.5" r="2.2" /><circle cx="16" cy="6.5" r="2" /><circle cx="19.5" cy="9.5" r="1.8" /><path d="M12 11c-3.5 0-6.2 1.8-6.2 4 0 1.8 2.2 3.5 6.2 3.5s6.2-1.7 6.2-3.5c0-2.2-2.7-4-6.2-4z" /></g><g transform="translate(26, 75) rotate(15 12 12)" fill="%23000000" opacity="0.045"><circle cx="4.5" cy="9.5" r="1.8" /><circle cx="8" cy="6.5" r="2" /><circle cx="12" cy="5.5" r="2.2" /><circle cx="16" cy="6.5" r="2" /><circle cx="19.5" cy="9.5" r="1.8" /><path d="M12 11c-3.5 0-6.2 1.8-6.2 4 0 1.8 2.2 3.5 6.2 3.5s6.2-1.7 6.2-3.5c0-2.2-2.7-4-6.2-4z" /></g></svg>');
    background-repeat: repeat-y;
    background-position: left top;
    pointer-events: none;
    z-index: 10; /* Flota sobre los contenedores sólidos del tema */
}
/* === AJUSTE DE MÁRGENES DEL LOGOTIPO === */
.site-branding a.brand img {
    margin-top: 6px !important;
    margin-bottom: 6px !important;
}

/* Tarjetas interactivas flotantes en hover */
.home .entry-content .wp-block-columns > .wp-block-column,
.home .entry-content .wp-block-kadence-column,
.home .card, 
.home .specialty-card {
    border-radius: 12px !important;
    border-top: 4px solid var(--color-brand-celeste, #0f99d6) !important;
    box-shadow: 0 4px 12px rgba(0,0,0,0.05) !important;
    transition: all 0.35s cubic-bezier(0.25, 0.8, 0.25, 1) !important;
    background-color: #ffffff !important;
}
.home .entry-content .wp-block-columns > .wp-block-column:hover,
.home .entry-content .wp-block-kadence-column:hover,
.home .card:hover, 
.home .specialty-card:hover {
    transform: translateY(-6px) !important;
    box-shadow: 0 12px 24px rgba(15, 153, 214, 0.15) !important;
    border-top-color: var(--color-brand-navy, #00528a) !important;
}

/* Botones dinámicos con efecto Glow */
.home .wp-block-button__link,
.home .kb-button,
.home .btn,
.home .button {
    background: linear-gradient(135deg, var(--color-brand-navy, #00528a), var(--color-brand-celeste, #0f99d6)) !important;
    border: none !important;
    color: #ffffff !important;
    border-radius: 50px !important;
    padding: 12px 28px !important;
    box-shadow: 0 4px 12px rgba(15, 153, 214, 0.2) !important;
    transition: all 0.3s ease !important;
}
.home .wp-block-button__link:hover,
.home .kb-button:hover,
.home .btn:hover,
.home .button:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 8px 20px rgba(15, 153, 214, 0.45) !important;
    filter: brightness(1.1) !important;
}

/* Separadores en forma de patrón de cola de mapache (Gutenberg y Kadence Blocks) */
.home hr,
.home .wp-block-separator,
.home .kt-divider,
.home .kt-divider-line,
.home .kt-divider-line-inner,
.home .wp-block-kadence-spacer .kt-divider-line {
    border: none !important;
    border-top: none !important;
    border-bottom: none !important;
    height: 6px !important;
    background: repeating-linear-gradient(
        90deg,
        var(--color-brand-navy, #00528a),
        var(--color-brand-navy, #00528a) 20px,
        var(--color-brand-celeste, #0f99d6) 20px,
        var(--color-brand-celeste, #0f99d6) 40px
    ) !important;
    border-radius: 3px !important;
    opacity: 0.85 !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* === REMOVER MÁRGENES Y PADDINGS DEL CONTENIDO INTERNO EN HOMEPAGE (RESPETA DISEÑO BOXED) === */
.home .entry-content {
    padding-top: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-top: 0 !important;
}

/* Asegurar que la primera sección del slider/banner no tenga márgenes superiores */
.home .entry-content > *:first-child,
.home .entry-content > .wp-block-group:first-child,
.home .entry-content > .wp-block-kadence-rowlayout:first-child,
.home .entry-content > .wp-block-kadence-advancedgallery:first-child,
.home .entry-content > .wp-block-kadence-slider:first-child {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

/* === REMOVER MÁRGENES Y PADDINGS EN LAS PÁGINAS DE ESPECIALIDADES CON DISEÑO CV === */
/* Evita la aparición de la franja blanca superior e inferior causada por el padding de la entrada */
.page:has(.specialty-cv-page-wrapper) .entry-content-wrap,
.page-id-7 .entry-content-wrap,
.page-id-8 .entry-content-wrap,
.page-id-14 .entry-content-wrap {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

/* Quita el fondo blanco de la entrada y sombras adicionales para permitir que el CV flote limpio */
.page:has(.specialty-cv-page-wrapper) .entry.content-bg,
.page-id-7 .entry.content-bg,
.page-id-8 .entry.content-bg,
.page-id-14 .entry.content-bg {
    background: transparent !important;
    box-shadow: none !important;
    border: none !important;
}

/* === ALINEACIÓN DE BADGES DE LECCIONES EN LOS ACORDEONES DEL CV === */
/* Asegura que el summary tenga un comportamiento flex correcto y no permita desalineación */
.cv-subarea-accordion summary {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 16px !important;
}

/* El título e icono a la izquierda se expanden dinámicamente y contienen el texto de forma limpia */
.cv-subarea-accordion summary > span:first-child {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    flex: 1 1 auto !important;
    min-width: 0 !important;
}

/* El badge o pastilla a la derecha no se deforma, no hace salto de línea y se alinea a la derecha */
.cv-subarea-accordion summary > span:last-child {
    flex: 0 0 auto !important;
    white-space: nowrap !important;
    display: inline-block !important;
}

/* En dispositivos móviles, para evitar colapso visual, los acomodamos en columna vertical */
@media screen and (max-width: 576px) {
    .cv-subarea-accordion summary {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 8px !important;
    }
    
    .cv-subarea-accordion summary > span:last-child {
        white-space: normal !important;
        margin-left: 24px !important; /* Alinea el badge con el texto del título */
    }
}

/* === ALINEACIÓN DEL LOGO Y EL MENÚ CON LOS LÍMITES DEL BLOQUE PRINCIPAL (1140px) === */
/* Limita el contenedor del encabezado de escritorio a la misma anchura máxima del lienzo CV (1140px) y lo centra */
@media screen and (min-width: 1025px) {
    #main-header .site-container {
        max-width: 1140px !important;
        margin: 0 auto !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
}

/* === ALINEACIÓN DEL BLOQUE PRINCIPAL EN EL HOMEPAGE (IGUAL A ESPECIALIDADES) === */
/* Fondo de la página de inicio (gris de fondo del lienzo) */
.home {
    background-color: #f1f5f9 !important;
}

/* Quita los fondos blancos, márgenes y paddings superiores residuales en todos los contenedores de contenido */
.home #inner-wrap,
.home #primary,
.home .content-container,
.home #main,
.home .content-wrap,
.home .entry,
.home .entry-content-wrap,
.home .entry-content {
    background: transparent !important;
    background-color: transparent !important;
    padding-top: 0 !important;
    margin-top: 0 !important;
}

/* Quita cualquier margen o padding inferior del encabezado/cabecera en la página de inicio */
.home .site-header,
.home #masthead,
.home #main-header,
.home .site-header-wrap,
.home .site-header-row-container,
.home .site-header-row-container-inner,
.home .site-main-header-wrap,
.home .site-main-header-inner-wrap {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

/* Elimina el espaciado interno superior y el margen de la fila que Smart Slider agrega automáticamente */
.home .n2-padding,
.home .n2-ss-align,
.home .n2_clear,
.home ss3-force-full-width {
    padding-top: 0 !important;
    margin-top: 0 !important;
}

/* Anula las variables CSS de margen de Smart Slider (--margin-top) y paddings de sus contenedores internos */
.home div#n2-ss-4 [data-sstype="row"],
.home div#n2-ss-4 [data-sstype="col"],
.home div#n2-ss-4 [class*="n-uc-"],
.home div#n2-ss-4 [class*="-inner"] {
    margin-top: 0 !important;
    padding-top: 0 !important;
    --margin-top: 0 !important;
    --margin-bottom: 0 !important;
}

/* La tarjeta que agrupa el contenido del homepage debajo del slider, con las mismas dimensiones de contabilidad (1140px) */
.home-content-card {
    background-color: #ffffff !important;
    max-width: 1140px !important;
    margin: 40px auto !important; /* Margen de separación con el slider y pie de página */
    border-radius: 24px !important;
    box-shadow: 0 20px 40px -15px rgba(0, 51, 137, 0.08), 0 15px 25px -10px rgba(0, 0, 0, 0.05) !important;
    border: 1px solid #e2e8f0 !important;
    padding: 60px 45px !important; /* Relleno elegante dentro de la tarjeta para las columnas/textos */
    overflow: hidden !important;
}

/* Ajustes responsivos para dispositivos móviles en el homepage */
@media screen and (max-width: 768px) {
    .home-content-card {
        margin: 20px 15px !important;
        padding: 40px 20px !important;
    }
}

/* === ESTILOS PARA LA CABECERA Y MENÚ === */
/* Fondo de la cabecera (gris azulado muy suave para separarla del blanco de la tarjeta) */
#masthead, 
#main-header, 
#mobile-header,
.site-header-row-container {
    background-color: #f8fafc !important;
    border-bottom: 1px solid #e2e8f0 !important;
}

/* Enlaces del menú en azul institucional */
#main-header .header-navigation ul li.menu-item > a {
    color: #00528a !important;
    font-weight: 600 !important;
    font-size: 15px !important;
    transition: color 0.25s ease !important;
}

/* Hover de los enlaces del menú (celeste brillante) */
#main-header .header-navigation ul li.menu-item > a:hover {
    color: #0f99d6 !important;
}

/* Página activa del menú (negrita y azul más oscuro) */
#main-header .header-navigation ul li.current-menu-item > a {
    color: #004373 !important;
    font-weight: 700 !important;
}


/* === ESTILOS PARA EL FOOTER (PIE DE PÁGINA) === */
/* Fondo azul marino oscuro y textos claros */
#colophon, 
.site-footer,
.site-footer-row-container {
    background-color: #004373 !important;
    color: #cbd5e0 !important;
}

/* Ajustes de encabezados del pie de página */
.site-footer h1, 
.site-footer h2, 
.site-footer h3, 
.site-footer h4, 
.site-footer h5, 
.site-footer h6,
.site-footer .widget-title {
    color: #ffffff !important;
}

/* Enlaces del pie de página */
.site-footer a {
    color: #ffffff !important;
    text-decoration: none !important;
    transition: color 0.25s ease !important;
}

.site-footer a:hover {
    color: #0f99d6 !important;
}

/* Texto de copyright y créditos */
.site-footer .site-info, 
.site-footer .footer-credits,
.site-footer p {
    color: #cbd5e0 !important;
}

/* Corrección y premiumización de botones de redes sociales en el pie de página */
.site-footer a.social-button {
    background: rgba(255, 255, 255, 0.08) !important; /* Fondo translúcido sutil estilo cristal */
    color: #ffffff !important; /* Fuerza el icono a ser blanco */
    border-radius: 8px !important;
    transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.site-footer a.social-button:hover {
    background: #0f99d6 !important; /* Fondo celeste brillante en hover */
    color: #ffffff !important; /* El icono sigue blanco */
    transform: translateY(-3px) !important; /* Pequeño salto interactivo */
    box-shadow: 0 10px 20px rgba(15, 153, 214, 0.3) !important; /* Brillo celeste difuminado */
}

/* ==========================================================================
   === ESTILOS ADICIONALES PARA PÁGINAS IMPORTADAS DE PRODUCCIÓN ===
   ========================================================================== */

/* --- Ajustes Generales de padding --- */
.page-id-100 .entry-content-wrap,
.page-id-101 .entry-content-wrap,
.page-id-16 .entry-content-wrap,
.page-id-17 .entry-content-wrap,
.page-id-18 .entry-content-wrap {
    padding-top: 20px !important;
    padding-bottom: 20px !important;
}

/* --- Personal Administrativo & Docente (Tarjetas de Personal Modernas) --- */
.page-id-100 .wp-block-uagb-container,
.page-id-101 .wp-block-uagb-container {
    transition: all 0.3s ease;
}



/* Diseño de tarjeta flotante interactiva para las cajas de información Spectra */
.page-id-100 .uagb-infobox-wrap,
.page-id-101 .uagb-infobox-wrap {
    background: #ffffff !important;
    border-radius: var(--radius-card, 16px) !important;
    border: 1px solid #e2e8f0 !important;
    padding: 24px !important;
    box-shadow: var(--shadow-soft, 0 4px 6px -1px rgba(0,0,0,0.05)) !important;
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.3s cubic-bezier(0.4, 0, 0.2, 1), border-color 0.3s ease !important;
}
.page-id-100 .uagb-infobox-wrap:hover,
.page-id-101 .uagb-infobox-wrap:hover {
    transform: translateY(-4px) !important;
    box-shadow: var(--shadow-premium, 0 10px 15px -3px rgba(0,51,137,0.07)) !important;
    border-color: var(--color-brand-celeste, #0f99d6) !important;
}

/* Tipografía y Jerarquía del Staff */
.page-id-100 .uagb-infobox-title,
.page-id-101 .uagb-infobox-title {
    font-family: var(--font-futura, "Futura ICG", sans-serif) !important;
    font-weight: 700 !important;
    color: var(--color-brand-navy, #00528a) !important;
    margin-bottom: 6px !important;
    font-size: 1.15rem !important;
}
.page-id-100 .uagb-infobox-prefix,
.page-id-101 .uagb-infobox-prefix {
    font-family: var(--font-futura, "Futura ICG", sans-serif) !important;
    font-weight: 700 !important;
    color: var(--color-brand-celeste, #0f99d6) !important;
    font-size: 0.85rem !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
}
.page-id-100 .uagb-infobox-desc,
.page-id-101 .uagb-infobox-desc {
    color: #4a5568 !important;
    font-size: 0.95rem !important;
    line-height: 1.5 !important;
}

/* --- Acerca de Nosotros (Página 16) --- */
.page-id-16 .entry-content-wrap {
    background: #f8fafc !important;
}

/* Bento Misión y Visión */
.mision-vision-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    max-width: 1200px;
    margin: 40px auto;
    padding: 0 24px;
}
.mision-card, .vision-card {
    background: #ffffff;
    border-radius: 20px;
    border: 1px solid #e2e8f0;
    box-shadow: var(--shadow-soft, 0 4px 6px -1px rgba(0,0,0,0.05));
    padding: 40px;
    transition: transform 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
    display: flex;
    flex-direction: column;
}
.mision-card:hover, .vision-card:hover {
    transform: translateY(-5px);
    border-color: var(--color-brand-celeste, #0f99d6);
    box-shadow: var(--shadow-premium, 0 10px 15px -3px rgba(0,51,137,0.07));
}
.mv-title-wrap {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 20px;
    border-bottom: 2px solid #f1f5f9;
    padding-bottom: 12px;
}
.mv-title {
    font-family: var(--font-display, "Gazpacho Black", sans-serif) !important;
    font-size: 1.8rem !important;
    color: var(--color-brand-navy, #00528a) !important;
    font-weight: 900 !important;
    margin: 0 !important;
}
.mv-icon {
    width: 32px;
    height: 32px;
    color: var(--color-brand-celeste, #0f99d6);
}
.mv-text {
    color: #4a5568 !important;
    font-size: 1.05rem !important;
    line-height: 1.65 !important;
    margin: 0 !important;
}

/* Valores Grid */
.valores-section {
    max-width: 1200px;
    margin: 60px auto;
    padding: 0 24px;
}
.valores-main-title {
    font-family: var(--font-display, "Gazpacho Black", sans-serif) !important;
    font-size: 2.2rem !important;
    color: var(--color-brand-navy, #00528a) !important;
    font-weight: 900 !important;
    text-align: center;
    margin-bottom: 40px !important;
}
.valores-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 20px;
}
.valor-card {
    background: #ffffff;
    border-radius: 20px;
    border: 1px solid #e2e8f0;
    box-shadow: var(--shadow-soft, 0 4px 6px -1px rgba(0,0,0,0.05));
    padding: 30px 20px;
    text-align: center;
    transition: transform 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
    display: flex;
    flex-direction: column;
    align-items: center;
}
.valor-card:hover {
    transform: translateY(-5px);
    border-color: var(--color-brand-celeste, #0f99d6);
    box-shadow: var(--shadow-premium, 0 10px 15px -3px rgba(0,51,137,0.07));
}
.val-icon-wrap {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    background: rgba(15, 153, 214, 0.08);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 15px;
    transition: background 0.3s ease;
}
.valor-card:hover .val-icon-wrap {
    background: var(--color-brand-celeste, #0f99d6);
}
.val-icon {
    width: 28px;
    height: 28px;
    color: var(--color-brand-celeste, #0f99d6);
    transition: color 0.3s ease, transform 0.3s ease;
}
.valor-card:hover .val-icon {
    color: #ffffff;
    transform: scale(1.1);
}
.val-title {
    font-family: var(--font-futura, "Futura ICG", sans-serif) !important;
    font-size: 1.15rem !important;
    color: var(--color-brand-navy, #00528a) !important;
    font-weight: 800 !important;
    margin: 0 0 10px 0 !important;
}
.val-text {
    color: #64748b !important;
    font-size: 0.85rem !important;
    line-height: 1.5 !important;
    margin: 0 !important;
}

@media screen and (max-width: 992px) {
    .valores-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}
@media screen and (max-width: 650px) {
    .valores-grid {
        grid-template-columns: 1fr;
    }
}

/* Objetivos Grid */
.objetivos-section {
    max-width: 1200px;
    margin: 60px auto;
    padding: 0 24px;
}
.objetivos-main-title {
    font-family: var(--font-display, "Gazpacho Black", sans-serif) !important;
    font-size: 2.2rem !important;
    color: var(--color-brand-navy, #00528a) !important;
    font-weight: 900 !important;
    text-align: center;
    margin-bottom: 40px !important;
}
.objetivos-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
}
.objetivo-card {
    background: #ffffff;
    border-radius: 20px;
    border: 1px solid #e2e8f0;
    box-shadow: var(--shadow-soft, 0 4px 6px -1px rgba(0,0,0,0.05));
    padding: 35px;
    position: relative;
    transition: transform 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
    display: flex;
    flex-direction: column;
}
.objetivo-card:hover {
    transform: translateY(-5px);
    border-color: var(--color-brand-celeste, #0f99d6);
    box-shadow: var(--shadow-premium, 0 10px 15px -3px rgba(0,51,137,0.07));
}
.objetivo-number {
    font-family: var(--font-display, "Gazpacho Black", sans-serif) !important;
    font-size: 3rem !important;
    color: rgba(15, 153, 214, 0.15) !important;
    font-weight: 900 !important;
    line-height: 1;
    position: absolute;
    top: 20px;
    right: 25px;
    user-select: none;
    transition: color 0.3s ease;
}
.objetivo-card:hover .objetivo-number {
    color: rgba(15, 153, 214, 0.3) !important;
}
.objetivo-text {
    color: #4a5568 !important;
    font-size: 0.98rem !important;
    line-height: 1.6 !important;
    margin: 0 !important;
    position: relative;
    z-index: 2;
}

@media screen and (max-width: 992px) {
    .objetivos-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}
@media screen and (max-width: 768px) {
    .mision-vision-row {
        grid-template-columns: 1fr;
    }
}
@media screen and (max-width: 600px) {
    .objetivos-grid {
        grid-template-columns: 1fr;
    }
}

/* --- Página de Servicios (Página 17) --- */
.page-id-17 .entry-content-wrap {
    background: #f8fafc !important;
}
.servicios-cards-grid {
    display: block !important;
    max-width: 1200px !important;
    margin: 40px auto !important;
    padding: 0 24px !important;
}
.servicios-cards-grid > .wp-block-group__inner-container {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 30px !important;
    align-items: stretch !important;
    flex-direction: unset !important;
    flex-wrap: unset !important;
}
.servicios-cards-grid:not(:has(> .wp-block-group__inner-container)) {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 30px !important;
    align-items: stretch !important;
    flex-direction: unset !important;
    flex-wrap: unset !important;
}
.servicio-bento-card {
    background: #ffffff;
    border-radius: 20px;
    border: 1px solid #e2e8f0;
    box-shadow: var(--shadow-soft, 0 4px 6px -1px rgba(0,0,0,0.05));
    overflow: hidden;
    display: flex;
    flex-direction: column;
    height: 100% !important;
    transition: transform 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
}
.servicio-bento-card:hover {
    transform: translateY(-5px);
    border-color: var(--color-brand-celeste, #0f99d6);
    box-shadow: var(--shadow-premium, 0 10px 15px -3px rgba(0,51,137,0.07));
}
.servicio-icon-wrap {
    height: 180px;
    width: 100%;
    overflow: hidden;
    position: relative;
    background: linear-gradient(135deg, var(--color-brand-navy, #00528a) 0%, #001f3f 100%);
    display: flex;
    align-items: center;
    justify-content: center;
}
.servicio-icon-wrap .wp-block-image {
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}
.servicio-icon-wrap img {
    transition: transform 0.3s ease;
}
.servicio-icon-wrap img:not(.logo-coopetecs-img) {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
}
.servicio-bento-card:hover .servicio-icon-wrap img {
    transform: scale(1.05);
}
.servicio-icon-wrap.bg-becas {
    background: linear-gradient(135deg, var(--color-brand-navy, #00528a) 0%, #001f3f 100%);
    display: flex;
    align-items: center;
    justify-content: center;
}
.becas-svg-icon {
    filter: drop-shadow(0 4px 8px rgba(0,0,0,0.2));
    transition: transform 0.3s ease;
}
.servicio-bento-card:hover .becas-svg-icon {
    transform: scale(1.08) rotate(-3deg);
}
.servicio-icon-wrap.bg-coopetecs {
    background: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%);
    padding: 20px;
}
.logo-coopetecs-img {
    width: auto !important;
    height: 100px !important;
    object-fit: contain !important;
    transition: transform 0.3s ease !important;
}
.servicio-bento-card:hover .logo-coopetecs-img {
    transform: scale(1.06);
}
.servicio-card-content {
    padding: 30px;
    flex-grow: 1;
    display: flex;
    flex-direction: column;
}
.servicio-card-title {
    font-family: var(--font-display, "Gazpacho Black", sans-serif) !important;
    font-size: 1.4rem !important;
    color: var(--color-brand-navy, #00528a) !important;
    font-weight: 900 !important;
    margin: 0 0 15px 0 !important;
}
.servicio-card-desc {
    color: #4a5568 !important;
    font-size: 0.95rem !important;
    line-height: 1.65 !important;
    margin: 0 !important;
}
@media screen and (max-width: 992px) {
    .servicios-cards-grid > .wp-block-group__inner-container,
    .servicios-cards-grid:not(:has(> .wp-block-group__inner-container)) {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}
@media screen and (max-width: 650px) {
    .servicios-cards-grid > .wp-block-group__inner-container,
    .servicios-cards-grid:not(:has(> .wp-block-group__inner-container)) {
        grid-template-columns: 1fr !important;
    }
}


/* --- Contacto Page (Mapa, Form y Detalles) --- */
.page-id-18 .uagb-block-d1eb7ce0 {
    background: radial-gradient(circle, var(--color-brand-navy, #00528a) 0%, #001f3f 100%) !important;
    padding: 80px 20px !important;
}
.page-id-18 .uagb-block-d1eb7ce0 .uagb-infobox-title {
    font-family: var(--font-display, "Gazpacho Black", sans-serif) !important;
    color: #ffffff !important;
    font-size: 3rem !important;
    font-weight: 900 !important;
    text-shadow: 0 4px 12px rgba(0,0,0,0.3) !important;
}
.page-id-18 .uagb-block-43008b68 {
    padding: 60px 20px !important;
    background: #f8fafc !important;
}
.page-id-18 .uagb-block-00feabc6,
.page-id-18 .uagb-block-93378eb7 {
    background: #ffffff !important;
    border-radius: 20px !important;
    border: 1px solid #e2e8f0 !important;
    box-shadow: var(--shadow-soft, 0 4px 6px -1px rgba(0,0,0,0.05)) !important;
    padding: 35px !important;
}
.page-id-18 .uagb-block-e7c4dedd h1,
.page-id-18 .uagb-block-3ad686a3 h1 {
    font-family: var(--font-display, "Gazpacho Black", sans-serif) !important;
    color: var(--color-brand-navy, #00528a) !important;
    font-size: 1.8rem !important;
    margin-bottom: 20px !important;
    font-weight: 900 !important;
}
.page-id-18 .uagb-google-map iframe {
    border-radius: 12px !important;
    border: 1px solid #cbd5e1 !important;
}

/* --- Prevención de Desborde y Centrado de Contenedores Spectra --- */
html, body {
    overflow-x: hidden !important;
}

.uagb-is-root-container > .uagb-container-inner-blocks-wrap {
    max-width: 1200px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 24px !important;
    padding-right: 24px !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

/* --- Estilos Bento Grid (Personal Administrativo - Página 100) --- */
.page-id-100 .entry-content-wrap {
    background: #f8fafc !important;
}
.coordinaciones-list-container {
    max-width: 1200px;
    margin: 40px auto;
    padding: 0 24px;
    display: flex;
    flex-direction: column;
    gap: 30px;
}
.staff-row-bento {
    display: flex;
    background: #ffffff;
    border-radius: 20px;
    border: 1px solid #e2e8f0;
    box-shadow: var(--shadow-soft, 0 4px 6px -1px rgba(0,0,0,0.05));
    overflow: hidden;
    transition: transform 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
}
.staff-row-bento:hover {
    transform: translateY(-4px);
    border-color: var(--color-brand-celeste, #0f99d6);
    box-shadow: var(--shadow-premium, 0 10px 15px -3px rgba(0,51,137,0.07));
}
.staff-bento-card-left {
    width: 30%;
    background: #f8fafc;
    padding: 40px 30px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    border-right: 1px solid #e2e8f0;
}
.staff-avatar-wrap img {
    width: 130px !important;
    height: 130px !important;
    border-radius: 50% !important;
    border: 3px solid var(--color-brand-celeste, #0f99d6) !important;
    box-shadow: 0 8px 16px rgba(0, 51, 137, 0.08) !important;
    object-fit: cover !important;
    object-position: center 12% !important;
    aspect-ratio: 1 / 1 !important;
    filter: grayscale(100%);
    transition: filter 0.3s ease, transform 0.3s ease, border-color 0.3s ease !important;
}
.staff-row-bento:hover .staff-avatar-wrap img {
    filter: grayscale(0%);
    transform: scale(1.06);
    border-color: var(--color-brand-navy, #00528a) !important;
}
.staff-name {
    font-family: var(--font-futura, "Futura ICG", sans-serif) !important;
    font-weight: 800 !important;
    color: var(--color-brand-navy, #00528a) !important;
    font-size: 1.25rem !important;
    margin: 15px 0 8px 0 !important;
    line-height: 1.2 !important;
}
.staff-badge {
    background: var(--color-brand-celeste, #0f99d6);
    color: #ffffff;
    padding: 4px 12px;
    border-radius: 30px;
    font-size: 0.75rem;
    font-family: var(--font-futura, "Futura ICG", sans-serif);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.staff-bento-card-right {
    width: 70%;
    padding: 40px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.staff-desc-title {
    font-family: var(--font-display, "Gazpacho Black", sans-serif) !important;
    font-size: 1.1rem !important;
    color: var(--color-brand-navy, #00528a) !important;
    font-weight: 900 !important;
    margin: 0 0 10px 0 !important;
    border-bottom: 2px solid #f1f5f9;
    padding-bottom: 5px;
}
.staff-desc-text {
    color: #4a5568 !important;
    font-size: 0.98rem !important;
    line-height: 1.6 !important;
    margin: 0 !important;
}
@media screen and (max-width: 768px) {
    .staff-row-bento {
        flex-direction: column;
    }
    .staff-bento-card-left, .staff-bento-card-right {
        width: 100%;
    }
    .staff-bento-card-left {
        border-right: 0;
        border-bottom: 1px solid #e2e8f0;
        padding: 30px 20px;
    }
    .staff-bento-card-right {
        padding: 30px 20px;
    }
}

/* --- Acordeones y Grilla (Personal Docente - Página 101) --- */
.page-id-101 .entry-content-wrap {
    background: #f8fafc !important;
}
.docentes-accordion-container {
    max-width: 1200px;
    margin: 40px auto;
    padding: 0 24px;
    display: flex;
    flex-direction: column;
    gap: 20px;
}
.docentes-department-accordion {
    background: #ffffff;
    border-radius: 20px;
    border: 1px solid #e2e8f0;
    box-shadow: var(--shadow-soft, 0 4px 6px -1px rgba(0,0,0,0.05));
    overflow: hidden;
    transition: border-color 0.3s ease, box-shadow 0.3s ease;
    margin-bottom: 10px;
}
.docentes-department-accordion[open] {
    border-color: var(--color-brand-celeste, #0f99d6);
    box-shadow: var(--shadow-premium, 0 10px 15px -3px rgba(0,51,137,0.07));
}
.docentes-accordion-header {
    padding: 24px 30px;
    font-family: var(--font-display, "Gazpacho Black", sans-serif);
    font-size: 1.35rem;
    font-weight: 900;
    color: var(--color-brand-navy, #00528a);
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: #ffffff;
    user-select: none;
    outline: none;
}
.docentes-accordion-header:hover {
    background: #f8fafc;
}
.docentes-header-count {
    font-family: var(--font-futura, "Futura ICG", sans-serif);
    font-weight: 700;
    font-size: 0.85rem;
    color: #64748b;
    background: #f1f5f9;
    padding: 4px 12px;
    border-radius: 30px;
    border: 1px solid #e2e8f0;
}
.docentes-grid-container {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 30px;
    padding: 30px;
    background: #f8fafc;
    border-top: 1px solid #e2e8f0;
}
.teacher-grid-card {
    background: #ffffff;
    border-radius: 16px;
    border: 1px solid #e2e8f0;
    padding: 24px 20px;
    text-align: center;
    box-shadow: var(--shadow-soft, 0 4px 6px -1px rgba(0,0,0,0.05));
    transition: transform 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
}
.teacher-grid-card:hover {
    transform: translateY(-4px);
    border-color: var(--color-brand-celeste, #0f99d6);
    box-shadow: var(--shadow-premium, 0 10px 15px -3px rgba(0,51,137,0.07));
}
.teacher-avatar-wrap img {
    width: 105px !important;
    height: 105px !important;
    border-radius: 50% !important;
    border: 3px solid var(--color-brand-celeste, #0f99d6) !important;
    object-fit: cover !important;
    object-position: center 12% !important;
    aspect-ratio: 1 / 1 !important;
    filter: grayscale(100%);
    transition: filter 0.3s ease, transform 0.3s ease, border-color 0.3s ease !important;
    margin: 0 auto 12px !important;
}
.teacher-grid-card:hover .teacher-avatar-wrap img {
    filter: grayscale(0%);
    transform: scale(1.06);
    border-color: var(--color-brand-navy, #00528a) !important;
}
.teacher-card-name {
    font-family: var(--font-futura, "Futura ICG", sans-serif) !important;
    font-weight: 800 !important;
    color: var(--color-brand-navy, #00528a) !important;
    font-size: 1.05rem !important;
    margin: 5px 0 6px 0 !important;
    line-height: 1.25 !important;
}
.teacher-card-subject {
    font-family: var(--font-futura, "Futura ICG", sans-serif) !important;
    font-weight: 600 !important;
    color: #64748b !important;
    font-size: 0.82rem !important;
    line-height: 1.3 !important;
}

/* --- Forzar escudo blanco en los encabezados hero de especialidades y páginas --- */
.ctpf-specialty-escudo img {
    filter: brightness(0) invert(1) !important;
}

/* --- Corrección de Submenú / Dropdown de Navegación Principal --- */
.header-navigation ul.sub-menu,
.main-navigation ul ul,
.main-navigation .sub-menu,
ul.sub-menu {
    background: #ffffff !important;
    border-radius: 12px !important;
    border: 1px solid #e2e8f0 !important;
    box-shadow: 0 10px 25px rgba(0, 51, 137, 0.08) !important;
    padding: 10px 0 !important;
    width: 320px !important; /* Ancho elegante para evitar dropdowns exageradamente anchos */
    max-width: 90vw !important;
}

/* Enlaces del submenú */
.header-navigation ul.sub-menu li a,
.main-navigation ul ul li a,
.main-navigation .sub-menu a,
ul.sub-menu a {
    color: var(--color-brand-navy, #00528a) !important;
    font-family: var(--font-futura, "Futura ICG", sans-serif) !important;
    font-weight: 600 !important;
    font-size: 0.92rem !important;
    padding: 12px 20px !important;
    display: block !important;
    width: 100% !important;
    box-sizing: border-box !important;
    transition: all 0.2s ease !important;
    background: transparent !important;
    white-space: normal !important; /* Permite el salto de línea para textos muy largos */
    line-height: 1.4 !important; /* Asegura un interlineado estético en textos multilinea */
}

/* Hover en los enlaces del submenú */
.header-navigation ul.sub-menu li a:hover,
.main-navigation ul ul li a:hover,
.main-navigation .sub-menu a:hover,
ul.sub-menu a:hover {
    background: rgba(15, 153, 214, 0.08) !important; /* Celeste muy suave */
    color: var(--color-brand-celeste, #0f99d6) !important;
}

/* Ajustes de espaciado y divisores entre items */
.header-navigation ul.sub-menu li,
.main-navigation ul ul li,
.main-navigation .sub-menu li,
ul.sub-menu li {
    margin: 0 !important;
    border: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
}

/* ==========================================================================
   Ajustes Premium para el Slider Hero (Smart Slider 3 / Kadence Homepage)
   ========================================================================== */

/* Forzar tipografía Gazpacho Black en títulos del slider */
.home .smart-slider-3 h1,
.home .smart-slider-3 h2,
.home .smart-slider-3 [class*="heading"],
.home .smart-slider-3 div[data-item-type="heading"] {
    font-family: var(--font-display, "Gazpacho Black", sans-serif) !important;
    font-weight: 900 !important;
    letter-spacing: -0.02em !important;
    text-shadow: 0 4px 15px rgba(0, 82, 138, 0.3) !important;
}

/* Forzar tipografía Futura ICG en elementos especiales y botones */
.home .smart-slider-3 div[data-item-type="button"] a,
.home .smart-slider-3 .n-uc-ll4NWGsB5hFY a {
    font-family: var(--font-futura, "Futura ICG", sans-serif) !important;
}

/* Efecto de Vidrio Esmerilado (Glassmorphism) en contenedores de texto del slider */
.home .smart-slider-3 .n-uc-lSa8m6TLbGT6,
.home .smart-slider-3 .smartslider-layers-container {
    backdrop-filter: blur(10px) !important;
    -webkit-backdrop-filter: blur(10px) !important;
}

/* Estilos Premium para los Botones del Slider */
.home .smart-slider-3 a[class*="button"],
.home .smart-slider-3 div[data-item-type="button"] a {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 12px 26px !important;
    font-size: 0.9rem !important;
    font-weight: 700 !important;
    border-radius: 12px !important;
    transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1) !important;
    text-shadow: none !important;
    box-shadow: 0 4px 14px rgba(15, 153, 214, 0.25) !important;
    text-decoration: none !important;
}

/* Botón Primario del Slider (Navy con Glow) */
.home .smart-slider-3 a[class*="button"]:not(.accent),
.home .smart-slider-3 div[data-item-type="button"]:first-child a {
    background-color: var(--color-brand-navy, #00528a) !important;
    color: #ffffff !important;
}

.home .smart-slider-3 a[class*="button"]:not(.accent):hover,
.home .smart-slider-3 div[data-item-type="button"]:first-child a:hover {
    background-color: var(--color-brand-navy-hover, #004373) !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 8px 22px rgba(0, 82, 138, 0.45) !important;
}

/* Botón Accent del Slider (Celeste con Glow) */
.home .smart-slider-3 a.accent,
.home .smart-slider-3 div[data-item-type="button"]:nth-child(2) a {
    background-color: var(--color-brand-celeste, #0f99d6) !important;
    color: #ffffff !important;
    box-shadow: 0 4px 14px rgba(15, 153, 214, 0.3) !important;
}

.home .smart-slider-3 a.accent:hover,
.home .smart-slider-3 div[data-item-type="button"]:nth-child(2) a:hover {
    background-color: var(--color-brand-celeste-hover, #0b82b7) !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 8px 22px rgba(15, 153, 214, 0.5) !important;
}

/* Animación de microinteracción para las imágenes y logos de especialidad del slider */
.home .smart-slider-3 img {
    transition: transform 0.6s cubic-bezier(0.25, 1, 0.5, 1) !important;
}
.home .smart-slider-3:hover img {
    transform: scale(1.05) translateY(-5px) !important;
}

/* Overlay degradado inferior para fundir el slider con el fondo claro del homepage */
.home .smart-slider-3 {
    position: relative !important;
}
.home .smart-slider-3::after {
    content: "" !important;
    position: absolute !important;
    bottom: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 70px !important;
    background: linear-gradient(to bottom, transparent, var(--color-brand-light-bg, #f8fafc)) !important;
    pointer-events: none !important;
    z-index: 99 !important;
}

/* === Clases de Tipografía Personalizadas para Smart Slider 3 === */
/* Aplica Gazpacho Black al Título H1 o capa de texto del título */
.ctpf-slider-display,
.ctpf-slider-display * {
    font-family: 'Gazpacho Black', "Helvetica Neue", Arial, sans-serif !important;
    font-weight: 900 !important;
}

/* Aplica Futura ICG Regular a Subtítulos, Descripciones o capas de texto secundario */
.ctpf-slider-futura,
.ctpf-slider-futura * {
    font-family: 'Futura ICG', "Helvetica Neue", Arial, sans-serif !important;
}

/* Aplica Futura ICG Bold a Botones o Textos Destacados */
.ctpf-slider-futura-bold,
.ctpf-slider-futura-bold * {
    font-family: 'Futura ICG', "Helvetica Neue", Arial, sans-serif !important;
    font-weight: 700 !important;
}

/* === Estilos para la Página del Plan Nacional (ID 99) === */

.plan-content-wrap {
    max-width: 1200px !important;
    margin: 60px auto !important;
    padding: 0 24px !important;
}

.plan-section-title {
    font-family: 'Gazpacho Black', sans-serif;
    color: var(--color-brand-navy, #00528a);
    font-size: 2.2rem;
    font-weight: 900;
    margin-top: 60px !important;
    margin-bottom: 30px !important;
    position: relative;
    padding-left: 15px;
}
.plan-section-title::before {
    content: "";
    position: absolute;
    left: 0;
    top: 15%;
    height: 70%;
    width: 5px;
    background: var(--color-brand-celeste, #0f99d6);
    border-radius: 4px;
}

/* 1. Cuadrícula de Fundamentos */
.plan-intro-grid {
    display: block !important;
    margin-bottom: 40px !important;
}
.plan-intro-grid > .wp-block-group__inner-container {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 24px !important;
    align-items: stretch !important;
    flex-direction: unset !important;
    flex-wrap: unset !important;
}
.plan-intro-grid:not(:has(> .wp-block-group__inner-container)) {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 24px !important;
    align-items: stretch !important;
}
@media (max-width: 1024px) {
    .plan-intro-grid > .wp-block-group__inner-container,
    .plan-intro-grid:not(:has(> .wp-block-group__inner-container)) {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}
@media (max-width: 600px) {
    .plan-intro-grid > .wp-block-group__inner-container,
    .plan-intro-grid:not(:has(> .wp-block-group__inner-container)) {
        grid-template-columns: 1fr !important;
    }
}

.plan-intro-card {
    background: #ffffff;
    border-radius: 16px;
    border: 1px solid #e2e8f0;
    padding: 30px 24px !important;
    box-shadow: var(--shadow-soft, 0 4px 6px -1px rgba(0,0,0,0.05));
    transition: transform 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
    display: flex;
    flex-direction: column;
    height: 100% !important;
}
.plan-intro-card:hover {
    transform: translateY(-5px);
    border-color: var(--color-brand-celeste, #0f99d6);
    box-shadow: var(--shadow-premium, 0 10px 15px -3px rgba(0,51,137,0.07));
}

.plan-card-icon {
    font-size: 2.2rem;
    margin-bottom: 16px;
}
.plan-intro-card h4 {
    font-family: 'Gazpacho Black', sans-serif;
    font-size: 1.25rem;
    color: var(--color-brand-navy, #00528a);
    margin-bottom: 12px !important;
    font-weight: 700;
}
.plan-intro-card p {
    font-family: 'Futura ICG', sans-serif;
    font-size: 0.95rem;
    color: #4a5568;
    line-height: 1.6;
    margin: 0 !important;
}

/* Tarjeta de Advertencia / Aviso de Expectativas */
.plan-notice-card {
    background: #fffaf0 !important;
    border: 1px solid #feebc8 !important;
    border-left: 5px solid #dd6b20 !important;
    border-radius: 12px;
    padding: 24px !important;
    margin: 40px 0 !important;
    display: flex;
    gap: 16px;
    align-items: flex-start;
}
.plan-notice-icon {
    font-size: 1.5rem;
    line-height: 1;
}
.plan-notice-text {
    font-family: 'Futura ICG', sans-serif;
    font-size: 1rem;
    color: #7b341e;
    line-height: 1.6;
}
.plan-notice-text strong {
    font-weight: 700;
}

/* 2. Pestañas Curriculares */
.plan-tabs-container {
    background: #ffffff;
    border-radius: 20px;
    border: 1px solid #e2e8f0;
    box-shadow: var(--shadow-soft, 0 4px 6px -1px rgba(0,0,0,0.05));
    padding: 30px !important;
    margin-bottom: 40px !important;
}
.plan-tabs-header {
    display: flex;
    gap: 12px;
    border-bottom: 2px solid #edf2f7;
    padding-bottom: 15px;
    margin-bottom: 30px;
}
@media (max-width: 768px) {
    .plan-tabs-header {
        flex-direction: column;
    }
}
.plan-tab-btn {
    font-family: 'Gazpacho Black', sans-serif;
    background: #f7fafc;
    border: 1px solid #e2e8f0;
    color: #4a5568;
    padding: 12px 24px;
    border-radius: 12px;
    cursor: pointer;
    font-weight: 700;
    font-size: 1rem;
    transition: all 0.3s ease;
}
.plan-tab-btn:hover {
    background: #edf2f7;
    color: var(--color-brand-navy, #00528a);
}
.plan-tab-btn.active {
    background: var(--color-brand-navy, #00528a) !important;
    color: #ffffff !important;
    border-color: var(--color-brand-navy, #00528a) !important;
}

.plan-tab-content {
    display: none;
}
.plan-tab-content.active {
    display: block;
    animation: fadeInTab 0.4s ease;
}
@keyframes fadeInTab {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: translateY(0); }
}

.plan-tab-grid {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 24px !important;
    margin-bottom: 30px !important;
}
@media (max-width: 768px) {
    .plan-tab-grid {
        grid-template-columns: 1fr !important;
    }
}

.plan-level-card {
    background: #f8fafc;
    border-radius: 12px;
    padding: 24px !important;
    border-left: 4px solid var(--color-brand-celeste, #0f99d6);
}
.plan-level-card h4 {
    font-family: 'Gazpacho Black', sans-serif;
    font-size: 1.2rem;
    color: var(--color-brand-navy, #00528a);
    margin-bottom: 10px !important;
    font-weight: 700;
}
.plan-level-card p {
    font-family: 'Futura ICG', sans-serif;
    font-size: 0.95rem;
    color: #4a5568;
    line-height: 1.6;
    margin: 0 !important;
}

.plan-lessons-summary {
    background: #ebf8ff;
    border-radius: 12px;
    padding: 20px 24px !important;
    border: 1px solid #bee3f8;
}
.plan-lessons-summary h5 {
    font-family: 'Gazpacho Black', sans-serif;
    font-size: 1.05rem;
    color: var(--color-brand-navy, #00528a);
    margin-bottom: 8px !important;
    font-weight: 700;
}
.plan-lessons-summary p {
    font-family: 'Futura ICG', sans-serif;
    font-size: 0.95rem;
    color: #2b6cb0;
    line-height: 1.6;
    margin: 0 !important;
}

/* 3. Cuadrícula de Estadísticas */
.plan-stats-grid {
    display: block !important;
    margin: 40px 0 !important;
}
.plan-stats-grid > .wp-block-group__inner-container {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 30px !important;
    align-items: stretch !important;
    flex-direction: unset !important;
    flex-wrap: unset !important;
}
.plan-stats-grid:not(:has(> .wp-block-group__inner-container)) {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 30px !important;
    align-items: stretch !important;
}
@media (max-width: 768px) {
    .plan-stats-grid > .wp-block-group__inner-container,
    .plan-stats-grid:not(:has(> .wp-block-group__inner-container)) {
        grid-template-columns: 1fr !important;
    }
}

.plan-stat-card {
    background: linear-gradient(135deg, var(--color-brand-navy, #00528a) 0%, #001f3f 100%) !important;
    border-radius: 20px;
    padding: 40px 30px !important;
    text-align: center;
    color: #ffffff;
    box-shadow: 0 10px 20px -5px rgba(0, 31, 63, 0.15);
    display: flex;
    flex-direction: column;
    align-items: center;
    height: 100% !important;
}
.plan-stat-number {
    font-family: 'Gazpacho Black', sans-serif;
    font-size: 3.5rem;
    font-weight: 900;
    line-height: 1;
    color: var(--color-brand-celeste, #0f99d6);
    margin-bottom: 10px;
}
.plan-stat-label {
    font-family: 'Gazpacho Black', sans-serif;
    font-size: 1.2rem;
    font-weight: 700;
    color: #ffffff;
    margin-bottom: 15px;
    letter-spacing: 0.5px;
}
.plan-stat-card p {
    font-family: 'Futura ICG', sans-serif;
    font-size: 0.95rem;
    color: #cbd5e0;
    line-height: 1.6;
    margin: 0 !important;
}

/* 4. Acordeones de Admisión */
.plan-admission-accordions {
    display: flex;
    flex-direction: column;
    gap: 16px;
    margin-bottom: 40px !important;
}
.plan-admission-item {
    background: #ffffff;
    border-radius: 14px;
    border: 1px solid #e2e8f0;
    box-shadow: var(--shadow-soft, 0 4px 6px -1px rgba(0,0,0,0.05));
    overflow: hidden;
    transition: all 0.3s ease;
}
.plan-admission-item[open] {
    border-color: var(--color-brand-celeste, #0f99d6);
}
.plan-admission-item summary {
    font-family: 'Gazpacho Black', sans-serif;
    font-size: 1.15rem;
    color: var(--color-brand-navy, #00528a);
    font-weight: 700;
    padding: 20px 24px;
    cursor: pointer;
    background: #ffffff;
    user-select: none;
    outline: none;
    transition: background 0.3s ease;
}
.plan-admission-item summary:hover {
    background: #f8fafc;
}
.plan-admission-content {
    padding: 24px;
    border-top: 1px solid #edf2f7;
    background: #f8fafc;
}
.plan-admission-content p {
    font-family: 'Futura ICG', sans-serif;
    font-size: 1rem;
    color: #4a5568;
    line-height: 1.6;
    margin-bottom: 16px !important;
}
.plan-admission-content ul, 
.plan-admission-content ol {
    font-family: 'Futura ICG', sans-serif;
    font-size: 1rem;
    color: #4a5568;
    line-height: 1.6;
    padding-left: 20px;
    margin: 0 !important;
}
.plan-admission-content li {
    margin-bottom: 10px;
}
.plan-admission-content li strong {
    color: var(--color-brand-navy, #00528a);
}

/* 5. Pie de Página (Recursos y Contacto) */
.plan-footer-grid {
    display: block !important;
    margin-top: 40px !important;
}
.plan-footer-grid > .wp-block-group__inner-container {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 30px !important;
    align-items: stretch !important;
    flex-direction: unset !important;
    flex-wrap: unset !important;
}
.plan-footer-grid:not(:has(> .wp-block-group__inner-container)) {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 30px !important;
    align-items: stretch !important;
}
@media (max-width: 900px) {
    .plan-footer-grid > .wp-block-group__inner-container,
    .plan-footer-grid:not(:has(> .wp-block-group__inner-container)) {
        grid-template-columns: 1fr !important;
    }
}

.plan-downloads-card, 
.plan-contacts-card {
    background: #ffffff;
    border-radius: 20px;
    border: 1px solid #e2e8f0;
    padding: 35px 30px !important;
    box-shadow: var(--shadow-soft, 0 4px 6px -1px rgba(0,0,0,0.05));
    height: 100% !important;
}
.plan-downloads-card h4, 
.plan-contacts-card h4 {
    font-family: 'Gazpacho Black', sans-serif;
    font-size: 1.4rem;
    color: var(--color-brand-navy, #00528a);
    margin-bottom: 24px !important;
    font-weight: 700;
}

.plan-download-buttons {
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.plan-btn-download {
    display: flex;
    align-items: center;
    gap: 14px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 16px 20px;
    text-decoration: none !important;
    transition: all 0.3s ease;
}
.plan-btn-download:hover {
    background: #ebf8ff;
    border-color: #bee3f8;
    transform: translateX(5px);
}
.plan-btn-download .btn-icon {
    font-size: 1.3rem;
}
.plan-btn-download .btn-text {
    font-family: 'Futura ICG', sans-serif;
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--color-brand-navy, #00528a);
}

.plan-contact-list {
    display: flex;
    flex-direction: column;
    gap: 20px;
}
.plan-contact-item {
    border-bottom: 1px solid #edf2f7;
    padding-bottom: 16px;
}
.plan-contact-item:last-child {
    border: none;
    padding: 0;
}
.plan-contact-item h5 {
    font-family: 'Gazpacho Black', sans-serif;
    font-size: 1.15rem;
    color: var(--color-brand-navy, #00528a);
    margin-bottom: 4px !important;
    font-weight: 700;
}
.plan-contact-item .role {
    font-family: 'Futura ICG', sans-serif;
    font-size: 0.9rem;
    color: var(--color-brand-celeste, #0f99d6);
    font-weight: 700;
    margin-bottom: 8px !important;
}
.plan-contact-item .desc {
    font-family: 'Futura ICG', sans-serif;
    font-size: 0.95rem;
    color: #4a5568;
    line-height: 1.5;
    margin: 0 !important;
}

/* === Nuevas Secciones de Logos y Talleres Vocacionales === */

/* Sección de Introducción de Identidad/Logo del Plan */
.plan-intro-section {
    background: #ffffff !important;
    border-radius: 20px !important;
    border: 1px solid #e2e8f0 !important;
    margin-bottom: 40px !important;
    overflow: hidden !important;
    display: flex !important;
    flex-direction: column !important;
    box-shadow: var(--shadow-soft, 0 4px 6px -1px rgba(0,0,0,0.05)) !important;
}

.plan-intro-header {
    background: linear-gradient(135deg, var(--color-brand-navy, #00528a) 0%, #001f3f 100%) !important;
    padding: 30px 24px !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
}

.plan-main-logo {
    width: 140px !important;
    height: auto !important;
    object-fit: contain !important;
    filter: brightness(0) invert(1) !important;
    margin-top: 0 !important;
}

.plan-intro-body {
    padding: 35px 30px !important;
}

.plan-intro-title {
    font-family: 'Gazpacho Black', sans-serif !important;
    font-size: 1.5rem !important;
    color: var(--color-brand-navy, #00528a) !important;
    margin-bottom: 15px !important;
    font-weight: 700 !important;
}

.plan-intro-desc {
    font-family: 'Futura ICG', sans-serif !important;
    font-size: 1.05rem !important;
    color: #4a5568 !important;
    line-height: 1.6 !important;
    margin: 0 !important;
}

/* Cuadrícula de Talleres Vocacionales */
.plan-workshops-grid {
    display: block !important;
    margin-bottom: 40px !important;
}
.plan-workshops-grid > .wp-block-group__inner-container {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 24px !important;
    align-items: stretch !important;
    flex-direction: unset !important;
    flex-wrap: unset !important;
}
.plan-workshops-grid:not(:has(> .wp-block-group__inner-container)) {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 24px !important;
    align-items: stretch !important;
}
@media (max-width: 900px) {
    .plan-workshops-grid > .wp-block-group__inner-container,
    .plan-workshops-grid:not(:has(> .wp-block-group__inner-container)) {
        grid-template-columns: 1fr !important;
    }
}

.plan-workshop-card {
    background: #ffffff !important;
    border-radius: 20px !important;
    border: 1px solid #e2e8f0 !important;
    overflow: hidden !important;
    box-shadow: var(--shadow-soft, 0 4px 6px -1px rgba(0,0,0,0.05)) !important;
    transition: transform 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease !important;
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
}
.plan-workshop-card:hover {
    transform: translateY(-5px) !important;
    border-color: var(--color-brand-celeste, #0f99d6) !important;
    box-shadow: var(--shadow-premium, 0 10px 15px -3px rgba(0,51,137,0.07)) !important;
}

.plan-workshop-logo-wrap {
    height: 140px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 20px !important;
}
.plan-workshop-logo-wrap.bg-cocina {
    background: linear-gradient(135deg, #ebf8ff 0%, #bee3f8 100%) !important;
}
.plan-workshop-logo-wrap.bg-maderas {
    background: linear-gradient(135deg, #f0fff4 0%, #c6f6d5 100%) !important;
}
.plan-workshop-logo-wrap.bg-manuales {
    background: linear-gradient(135deg, #faf5ff 0%, #e9d8fd 100%) !important;
}
.plan-workshop-logo-wrap .wp-block-image {
    margin: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}
.plan-workshop-logo {
    height: 90px !important;
    width: auto !important;
    object-fit: contain !important;
}

.plan-workshop-content {
    padding: 24px !important;
    flex-grow: 1 !important;
    display: flex !important;
    flex-direction: column !important;
}
.plan-workshop-content h4 {
    font-family: 'Gazpacho Black', sans-serif !important;
    font-size: 1.25rem !important;
    color: var(--color-brand-navy, #00528a) !important;
    margin-bottom: 12px !important;
    font-weight: 700 !important;
}
.plan-workshop-content p {
    font-family: 'Futura ICG', sans-serif !important;
    font-size: 0.95rem !important;
    color: #4a5568 !important;
    line-height: 1.6 !important;
    margin: 0 !important;
}

/* === Estilos para los Vectores Inline SVG de Iconos Plan Nacional === */
.plan-card-icon-svg {
    width: 42px !important;
    height: 42px !important;
    color: var(--color-brand-celeste, #0f99d6) !important;
    margin-bottom: 20px !important;
    display: inline-block !important;
}

.plan-card-icon-img {
    width: 60px !important;
    height: 60px !important;
    margin-top: -8px !important;
    margin-bottom: 12px !important;
    display: inline-block !important;
    object-fit: contain !important;
    filter: brightness(0) saturate(100%) invert(53%) sepia(87%) saturate(1450%) hue-rotate(170deg) brightness(95%) contrast(92%) !important;
}

.plan-notice-icon-svg {
    width: 28px !important;
    height: 28px !important;
    color: #dd6b20 !important;
    flex-shrink: 0 !important;
    display: inline-block !important;
}

.btn-icon-svg {
    width: 18px !important;
    height: 18px !important;
    color: var(--color-brand-navy, #00528a) !important;
    flex-shrink: 0 !important;
    display: inline-block !important;
    transition: color 0.3s ease !important;
}
.plan-btn-download:hover .btn-icon-svg {
    color: var(--color-brand-celeste, #0f99d6) !important;
}


