/* ===================================
   Variables y Reset
   =================================== */
:root {
    --primary: #0047AB;
    --primary-dark: #002966;
    --primary-light: #1a6fd4;
    --secondary: #C8102E;
    --secondary-light: #e0354a;
    --accent: #C9A227;
    --dark: #1f2937;
    --gray: #6b7280;
    --light-gray: #f3f4f6;
    --white: #ffffff;
    --shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
    --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
    --transition: all 0.3s ease;
}

/* Escala global: reduce todo el sitio ~12% */
html {
    font-size: 14px;
}

@media (max-width: 768px) {
    html { font-size: 13px; }
}

@media (max-width: 480px) {
    html { font-size: 12.5px; }
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    line-height: 1.6;
    color: var(--dark);
    background: var(--white);
    padding-top: 0; /* Sin padding ya que el header no es fijo */
}

/* Responsive body - sin padding adicional */
@media (max-width: 768px) {
    body {
        padding-top: 0;
    }
}

@media (max-width: 480px) {
    body {
        padding-top: 0;
    }
}

img {
    max-width: 100%;
    height: auto;
    display: block;
}

a {
    text-decoration: none;
    color: inherit;
    transition: var(--transition);
}

ul {
    list-style: none;
}

/* ===================================
   Container y Layout
   =================================== */
.container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 1.5rem;
}

.main-content {
    min-height: calc(100vh - 400px);
}

/* ===================================
   Header y NavegaciÃ³n
   =================================== */
/* Estilos movidos a la secciÃ³n principal mÃ¡s abajo */

.navbar {
    padding: 1rem 0;
}

.nav-container {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.logo {
    font-size: 1.5rem;
    font-weight: 700;
    display: flex;
    gap: 0.5rem;
}

.logo-text {
    color: var(--dark);
}

.logo-highlight {
    color: var(--primary);
}

.nav-menu {
    display: flex;
    gap: 2rem;
    align-items: center;
}

.nav-link {
    color: var(--dark);
    font-weight: 500;
    position: relative;
}

.nav-link:hover {
    color: var(--primary);
}

.nav-link::after {
    content: '';
    position: absolute;
    bottom: -5px;
    left: 0;
    width: 0;
    height: 2px;
    background: var(--primary);
    transition: var(--transition);
}

.nav-link:hover::after {
    width: 100%;
}

/* MenÃº activo - pÃ¡gina actual */
.nav-link.active {
    color: var(--primary);
    font-weight: 700;
}

.nav-link.active::after {
    width: 100%;
}

.nav-dropdown.has-active > .nav-link {
    color: var(--primary);
    font-weight: 700;
}

.nav-dropdown.has-active > .nav-link::after {
    width: 100%;
}

.dropdown-menu a.active {
    color: var(--primary);
    font-weight: 700;
    background: var(--light-gray);
    border-radius: 6px;
}

.menu-toggle {
    display: none;
    flex-direction: column;
    gap: 5px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0.5rem;
}

.menu-toggle span {
    width: 25px;
    height: 3px;
    background: var(--dark);
    border-radius: 3px;
    transition: var(--transition);
}

/* Alert Banner - Simple y Fixed */
.alert-banner {
    background: linear-gradient(90deg, var(--secondary) 0%, var(--primary) 100%);
    color: var(--white);
    padding: 0.75rem 0;
    text-align: center;
    position: relative; /* Dentro del header fixed */
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}

.alert-banner .container {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
}

.alert-icon {
    font-size: 1.2rem;
}

.alert-text {
    font-weight: 500;
}

.alert-link {
    color: var(--white);
    text-decoration: underline;
    font-weight: 600;
}

.alert-link:hover {
    opacity: 0.9;
}

/* Responsive Alert Banner */
@media (max-width: 768px) {
    .alert-banner {
        padding: 0.6rem 0;
    }
    
    .alert-banner .container {
        font-size: 0.85rem;
        gap: 0.75rem;
    }
    
    .alert-icon {
        font-size: 1rem;
    }
}

/* ===================================
   Botones
   =================================== */
.btn {
    display: inline-block;
    padding: 0.75rem 1.5rem;
    border-radius: 8px;
    font-weight: 600;
    text-align: center;
    cursor: pointer;
    border: none;
    transition: var(--transition);
}

.btn-primary {
    background: var(--primary);
    color: var(--white);
}

.btn-primary:hover {
    background: var(--primary-dark);
    transform: translateY(-2px);
    box-shadow: var(--shadow-lg);
}

.btn-secondary {
    background: var(--secondary);
    color: var(--white);
    border: 2px solid var(--secondary);
}

.btn-secondary:hover {
    background: var(--secondary-light);
    transform: translateY(-2px);
    box-shadow: var(--shadow-lg);
}

.btn-nav {
    background: var(--primary);
    color: var(--white);
    padding: 0.5rem 1rem;
    font-size: 0.9rem;
}

.btn-large {
    padding: 1rem 2rem;
    font-size: 1.1rem;
}

.btn-link {
    color: var(--primary);
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}

.btn-link:hover {
    gap: 0.75rem;
}

/* ===================================
   Hero Section
   =================================== */
.hero {
    position: relative;
    min-height: 600px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--primary-dark) 0%, var(--primary) 100%);
    color: var(--white);
    text-align: center;
    overflow: hidden;
}

.hero-overlay {
    position: absolute;
    inset: 0;
    background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1440 320"><path fill="%23ffffff" fill-opacity="0.1" d="M0,96L48,112C96,128,192,160,288,160C384,160,480,128,576,122.7C672,117,768,139,864,154.7C960,171,1056,181,1152,165.3C1248,149,1344,107,1392,85.3L1440,64L1440,320L1392,320C1344,320,1248,320,1152,320C1056,320,960,320,864,320C768,320,672,320,576,320C480,320,384,320,288,320C192,320,96,320,48,320L0,320Z"></path></svg>') no-repeat bottom;
    background-size: cover;
}

.hero-content {
    position: relative;
    z-index: 1;
    padding: 4rem 1.5rem;
}

.hero-title {
    font-size: 2.4rem;
    font-weight: 700;
    margin-bottom: 1rem;
    animation: fadeInUp 0.8s ease;
}

.hero-subtitle {
    font-size: 1.5rem;
    margin-bottom: 0.5rem;
    opacity: 0.95;
    animation: fadeInUp 0.8s ease 0.2s backwards;
}

.hero-description {
    font-size: 1.1rem;
    margin-bottom: 2rem;
    opacity: 0.9;
    animation: fadeInUp 0.8s ease 0.4s backwards;
}

.hero-buttons {
    display: flex;
    gap: 1rem;
    justify-content: center;
    flex-wrap: wrap;
    margin-bottom: 2rem;
    animation: fadeInUp 0.8s ease 0.6s backwards;
}

.hero-stats {
    display: flex;
    gap: 2rem;
    justify-content: center;
    flex-wrap: wrap;
    animation: fadeInUp 0.8s ease 0.8s backwards;
}

.stat-badge {
    background: rgba(255, 255, 255, 0.2);
    padding: 0.5rem 1rem;
    border-radius: 50px;
    font-size: 0.9rem;
    backdrop-filter: blur(10px);
}

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

/* ===================================
   Sections
   =================================== */
section {
    padding: 3.5rem 0;
}

.section-title {
    font-size: 1.85rem;
    font-weight: 700;
    text-align: center;
    margin-bottom: 0.75rem;
    color: var(--dark);
}

.section-subtitle {
    text-align: center;
    color: var(--gray);
    font-size: 0.92rem;
    margin-bottom: 2rem;
    max-width: 700px;
    margin-left: auto;
    margin-right: auto;
}

/* ===================================
   Modalidades Modernas - DiseÃ±o Limpio
   =================================== */
.modalidades {
    background: #f8f9fa;
    padding: 5rem 0;
    position: relative;
}

.modalidades-header {
    text-align: center;
    margin-bottom: 4rem;
}

.section-badge {
    display: inline-block;
    background: linear-gradient(135deg, var(--primary), var(--primary-dark));
    color: var(--white);
    padding: 0.6rem 1.5rem;
    border-radius: 50px;
    font-size: 0.875rem;
    font-weight: 600;
    margin-bottom: 1rem;
    letter-spacing: 0.5px;
    box-shadow: 0 4px 16px rgba(0, 71, 171, 0.2);
}

.modalidades-grid-modern {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 2rem;
    margin-bottom: 3rem;
}

.modalidad-card-modern {
    background: var(--white);
    padding: 0;
    border-radius: 16px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.08);
    transition: all 0.3s ease;
    position: relative;
    border: 1px solid #e5e7eb;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.modalidad-card-modern:hover {
    transform: translateY(-8px);
    box-shadow: 0 12px 32px rgba(0,0,0,0.12);
    border-color: var(--primary);
}

.modalidad-card-modern.featured {
    border: 3px solid var(--primary);
    box-shadow: 0 4px 20px rgba(0, 71, 171, 0.15);
}

.modalidad-card-modern.featured:hover {
    transform: translateY(-8px);
    box-shadow: 0 16px 40px rgba(0, 71, 171, 0.25);
}

.badge-popular-modern {
    position: absolute;
    top: 20px;
    right: 20px;
    background: linear-gradient(135deg, var(--accent), #f59e0b);
    color: var(--dark);
    padding: 0.5rem 1rem;
    border-radius: 50px;
    font-size: 0.75rem;
    font-weight: 700;
    box-shadow: 0 4px 12px rgba(251, 191, 36, 0.4);
    z-index: 1;
}

.modalidad-icon-large {
    width: 80px;
    height: 80px;
    background: linear-gradient(135deg, #e3f2fd, #bbdefb);
    border-radius: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2.5rem;
    margin: 2.5rem auto 1.5rem;
    transition: all 0.3s ease;
    color: var(--primary);
}

.modalidad-card-modern:hover .modalidad-icon-large {
    transform: scale(1.1);
    background: linear-gradient(135deg, #bbdefb, #90caf9);
}

.modalidad-icon-large.featured {
    background: linear-gradient(135deg, #bbdefb, #90caf9);
}

.modalidad-header-modern {
    text-align: center;
    padding: 0 2rem;
}

.modalidad-header-modern h3 {
    font-size: 1.75rem;
    font-weight: 700;
    color: #1a1a1a;
    margin-bottom: 0.75rem;
    letter-spacing: -0.5px;
}

.modalidad-tagline {
    color: var(--primary);
    font-size: 0.95rem;
    font-weight: 700;
    margin-bottom: 1.5rem;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.modalidad-description {
    color: #6b7280;
    line-height: 1.7;
    margin-bottom: 2rem;
    padding: 0 2rem;
    text-align: center;
    font-size: 0.95rem;
}

.modalidad-features-modern {
    list-style: none;
    padding: 0 2rem 2rem;
    margin: 0;
    border-top: 1px solid #f3f4f6;
    padding-top: 2rem;
}

.modalidad-features-modern li {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 0.85rem 0;
    color: #374151;
    font-size: 0.95rem;
    font-weight: 500;
}

.feature-icon {
    width: 28px;
    height: 28px;
    background: var(--primary);
    color: var(--white);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.75rem;
    font-weight: 700;
    flex-shrink: 0;
    position: relative;
}

.feature-icon::before {
    content: '';
    position: absolute;
    width: 8px;
    height: 14px;
    border: solid white;
    border-width: 0 2.5px 2.5px 0;
    transform: rotate(45deg);
    margin-top: -2px;
}

.feature-icon i {
    display: none;
}

.btn-modalidad {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    padding: 1rem 2rem;
    background: var(--white);
    color: var(--primary);
    border: 2px solid var(--primary);
    border-radius: 8px;
    font-weight: 700;
    font-size: 0.95rem;
    transition: all 0.3s ease;
    text-align: center;
    margin: 0 2rem 2rem;
}

.btn-modalidad:hover {
    background: var(--primary);
    color: var(--white);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 71, 171, 0.3);
}

.btn-modalidad.featured {
    background: var(--primary);
    color: var(--white);
    border: 2px solid var(--primary);
}

.btn-modalidad.featured:hover {
    background: var(--primary-dark);
    border-color: var(--primary-dark);
    box-shadow: 0 6px 16px rgba(0, 71, 171, 0.4);
}

.arrow-icon {
    transition: transform 0.3s ease;
}

.btn-modalidad:hover .arrow-icon {
    transform: translateX(5px);
}

/* Info Extra */
.modalidades-info-extra {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 2rem;
    margin-top: 3rem;
    padding-top: 3rem;
    border-top: 2px solid #e5e7eb;
}

.info-box-inline {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    padding: 1.75rem;
    background: var(--white);
    border-radius: 12px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.06);
    transition: all 0.3s ease;
    border: 1px solid #e5e7eb;
}

.info-box-inline:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 24px rgba(0,0,0,0.1);
    border-color: var(--primary);
}

.info-icon {
    font-size: 2.8rem;
    flex-shrink: 0;
    color: var(--primary);
}

.info-text strong {
    display: block;
    color: #1a1a1a;
    font-size: 1.1rem;
    margin-bottom: 0.35rem;
    font-weight: 700;
}

.info-text p {
    color: #6b7280;
    font-size: 0.95rem;
    margin: 0;
}

/* Responsive Modalidades */
@media (max-width: 768px) {
    .modalidades {
        padding: 3rem 0;
    }
    
    .modalidades-header {
        margin-bottom: 2.5rem;
    }
    
    .modalidades-grid-modern {
        grid-template-columns: 1fr;
        gap: 2rem;
    }
    
    .modalidad-card-modern.featured {
        border-width: 2px;
    }
    
    .modalidad-icon-large {
        width: 70px;
        height: 70px;
        font-size: 2.2rem;
        margin: 2rem auto 1.25rem;
    }
    
    .modalidad-header-modern h3 {
        font-size: 1.5rem;
    }
    
    .modalidad-description,
    .modalidad-features-modern,
    .btn-modalidad {
        padding-left: 1.5rem;
        padding-right: 1.5rem;
    }
    
    .modalidades-info-extra {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }
}

/* ===================================
   Beneficios
   =================================== */
.beneficios-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 2rem;
}

.beneficio-item {
    text-align: center;
    padding: 2rem;
    border-radius: 12px;
    transition: var(--transition);
}

.beneficio-item:hover {
    background: var(--light-gray);
}

.beneficio-icon {
    font-size: 3rem;
    margin-bottom: 1rem;
}

.beneficio-item h4 {
    font-size: 1.2rem;
    margin-bottom: 0.75rem;
    color: var(--dark);
}

.beneficio-item p {
    color: var(--gray);
    font-size: 0.95rem;
}

/* ===================================
   CTA Section Limpia y Profesional
   =================================== */
.cta-section-clean {
    background: #ffffff;
    padding: 6rem 0;
    position: relative;
}

.cta-section-clean::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, #e5e7eb, transparent);
}

.cta-clean-content {
    text-align: center;
    max-width: 1100px;
    margin: 0 auto;
}

/* Badge limpio */
.cta-badge-clean {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    background: linear-gradient(135deg, #eff6ff, #dbeafe);
    border: 2px solid #0047AB;
    border-radius: 50px;
    padding: 0.75rem 1.5rem;
    font-size: 0.9rem;
    font-weight: 700;
    color: #0047AB;
    margin-bottom: 2rem;
    box-shadow: 0 4px 12px rgba(0,71,171,0.1);
}

.badge-dot {
    width: 8px;
    height: 8px;
    background: #0047AB;
    border-radius: 50%;
    animation: pulse 2s infinite;
}

@keyframes pulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.5; transform: scale(1.2); }
}

/* TÃ­tulo limpio */
.cta-title-clean {
    font-size: 2.4rem;
    font-weight: 900;
    color: #1a1a1a;
    margin-bottom: 1rem;
    line-height: 1.15;
}

.highlight-blue {
    color: #0047AB;
    position: relative;
}

.highlight-blue::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 12px;
    background: linear-gradient(135deg, rgba(0,71,171,0.2), rgba(217,16,35,0.2));
    z-index: -1;
    border-radius: 4px;
}

/* SubtÃ­tulo */
.cta-subtitle-clean {
    font-size: 0.95rem;
    color: #6b7280;
    margin-bottom: 2rem;
    font-weight: 500;
}

/* EstadÃ­sticas limpias */
.cta-stats-clean {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 1.5rem;
    margin-bottom: 3rem;
}

.stat-clean-card {
    background: #ffffff;
    border: 2px solid #e5e7eb;
    border-radius: 14px;
    padding: 1.4rem 1.2rem;
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
}

.stat-clean-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, #002966, #0047AB);
    transform: scaleX(0);
    transition: transform 0.3s ease;
}

.stat-clean-card:hover {
    border-color: #0047AB;
    box-shadow: 0 12px 32px rgba(0,71,171,0.15);
    transform: translateY(-5px);
}

.stat-clean-card:hover::before {
    transform: scaleX(1);
}

.stat-clean-card.featured {
    background: linear-gradient(135deg, #f5eed6, #e8dcc0);
    border-color: rgba(201, 162, 39, 0.45);
}

.stat-clean-icon {
    width: 48px;
    height: 48px;
    background: linear-gradient(135deg, #dbeafe, #bfdbfe);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.4rem;
    color: #0047AB;
    margin: 0 auto 0.75rem;
    transition: all 0.3s ease;
}

.stat-clean-card:hover .stat-clean-icon {
    transform: scale(1.1) rotate(5deg);
}

.stat-clean-icon.gold {
    background: linear-gradient(135deg, #f5eed6, #e8dcc0);
    color: #f59e0b;
}

.stat-clean-number {
    font-size: 1.9rem;
    font-weight: 900;
    color: #0047AB;
    line-height: 1;
    margin-bottom: 0.35rem;
}

.stat-clean-label {
    font-size: 0.95rem;
    color: #6b7280;
    font-weight: 600;
    margin-bottom: 0.75rem;
}

.stat-clean-live {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    font-size: 0.85rem;
    color: #10b981;
    font-weight: 600;
}

.live-dot {
    width: 8px;
    height: 8px;
    background: #10b981;
    border-radius: 50%;
    animation: blink 1.5s infinite;
}

@keyframes blink {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.3; }
}

.stat-clean-badge {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    font-size: 0.85rem;
    color: #f59e0b;
    font-weight: 600;
}

/* Botones limpios */
.cta-actions-clean {
    display: flex;
    justify-content: center;
    gap: 1.5rem;
    flex-wrap: wrap;
    margin-bottom: 2.5rem;
}

.btn-clean {
    display: inline-flex;
    align-items: center;
    gap: 1rem;
    padding: 1.25rem 2.5rem;
    border-radius: 12px;
    font-size: 1.1rem;
    font-weight: 700;
    text-decoration: none;
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
}

.btn-clean-primary {
    background: linear-gradient(135deg, #0047AB, #003380);
    color: white;
    box-shadow: 0 8px 24px rgba(0,71,171,0.25);
}

.btn-clean-primary::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent);
    transition: left 0.5s ease;
}

.btn-clean-primary:hover::before {
    left: 100%;
}

.btn-clean-primary:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 32px rgba(0,71,171,0.35);
}

.btn-clean-secondary {
    background: white;
    color: #0047AB;
    border: 2px solid #0047AB;
    box-shadow: 0 4px 12px rgba(0,0,0,0.08);
}

.btn-clean-secondary:hover {
    background: #0047AB;
    color: white;
    transform: translateY(-3px);
    box-shadow: 0 12px 32px rgba(0,71,171,0.25);
}

.btn-clean i {
    font-size: 1.3rem;
}

.btn-clean .fa-arrow-right {
    transition: transform 0.3s ease;
}

.btn-clean:hover .fa-arrow-right {
    transform: translateX(5px);
}

/* InformaciÃ³n de urgencia */
.cta-info-clean {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.5rem;
    flex-wrap: wrap;
    padding: 1.25rem 2rem;
    background: linear-gradient(135deg, #fef2f2, #fee2e2);
    border: 2px solid #fecaca;
    border-radius: 12px;
    font-size: 0.95rem;
    color: #991b1b;
    font-weight: 600;
}

.info-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.info-item i {
    color: #dc2626;
    font-size: 1.1rem;
}

.info-item strong {
    color: #dc2626;
    font-size: 1.2rem;
}

.info-separator {
    color: #fca5a5;
    font-size: 1.2rem;
}

/* Responsive */
@media (max-width: 768px) {
    .cta-section-clean {
        padding: 4rem 0;
    }
    
    .cta-title-clean {
        font-size: 2.2rem;
    }
    
    .cta-subtitle-clean {
        font-size: 1rem;
    }
    
    .cta-stats-clean {
        grid-template-columns: 1fr;
        gap: 1rem;
    }
    
    .cta-actions-clean {
        flex-direction: column;
        align-items: stretch;
    }
    
    .btn-clean {
        justify-content: center;
    }
    
    .cta-info-clean {
        flex-direction: column;
        gap: 0.75rem;
        text-align: center;
    }
    
    .info-separator {
        display: none;
    }
}

/* ===================================
   Footer
   =================================== */
.footer {
    background: var(--primary);
    color: var(--white);
    padding: 4rem 0 2rem;
}

.footer-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 3rem;
    margin-bottom: 3rem;
}

.footer-title {
    font-size: 1.5rem;
    margin-bottom: 1rem;
    color: var(--white);
}

.footer-subtitle {
    font-size: 1.1rem;
    margin-bottom: 1rem;
    color: var(--white);
}

.footer-text {
    color: rgba(255, 255, 255, 0.8);
    line-height: 1.7;
    margin-bottom: 1.5rem;
}

.footer-social {
    display: flex;
    gap: 1rem;
}

.social-link {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.1);
    border-radius: 50%;
    font-size: 1.2rem;
    transition: var(--transition);
}

.social-link:hover {
    background: var(--primary);
    transform: translateY(-3px);
}

.footer-links {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.footer-links a {
    color: rgba(255, 255, 255, 0.8);
    transition: var(--transition);
}

.footer-links a:hover {
    color: var(--white);
    padding-left: 5px;
}

.footer-contact {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.footer-contact li {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    color: rgba(255, 255, 255, 0.8);
}

.contact-icon {
    font-size: 1.2rem;
}

.footer-contact a {
    color: rgba(255, 255, 255, 0.8);
}

.footer-contact a:hover {
    color: var(--white);
}

.footer-bottom {
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    padding-top: 2rem;
    text-align: center;
    color: rgba(255, 255, 255, 0.7);
}

.footer-legal {
    margin-top: 0.5rem;
}

.footer-legal a {
    color: rgba(255, 255, 255, 0.7);
    margin: 0 0.5rem;
}

.footer-legal a:hover {
    color: var(--white);
}

/* ===================================
   Footer Mejorado - Nuevos estilos
   =================================== */

/* CTA Banner */
.footer-cta-banner {
    background: linear-gradient(135deg, #0047AB 0%, #003080 100%);
    border-top: 3px solid var(--secondary);
    padding: 1.5rem 0;
}

.footer-cta-content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.25rem;
    flex-wrap: wrap;
}

.footer-cta-title {
    font-size: 1.15rem;
    font-weight: 700;
    color: #fff;
    margin: 0 0 0.2rem;
}

.footer-cta-desc {
    color: rgba(255,255,255,0.8);
    font-size: 0.82rem;
    margin: 0;
}

.footer-cta-actions {
    display: flex;
    gap: 0.6rem;
    flex-wrap: wrap;
    flex-shrink: 0;
}

.btn-footer-primary {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    background: var(--secondary);
    color: #1a1a2e;
    font-weight: 700;
    padding: 0.5rem 1.1rem;
    border-radius: 50px;
    font-size: 0.82rem;
    transition: transform 0.2s, box-shadow 0.2s;
    white-space: nowrap;
}

.btn-footer-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 14px rgba(0,0,0,0.25);
    color: #1a1a2e;
}

.btn-footer-whatsapp {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    background: #25D366;
    color: #fff;
    font-weight: 600;
    padding: 0.5rem 1.1rem;
    border-radius: 50px;
    font-size: 0.82rem;
    transition: transform 0.2s, box-shadow 0.2s;
    white-space: nowrap;
}

.btn-footer-whatsapp:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 14px rgba(37,211,102,0.4);
    color: #fff;
}

/* Footer body */
.footer-body {
    background: #0d1b3e;
    padding: 2.5rem 0 1.5rem;
}

.footer {
    background: #0d1b3e;
    padding: 0;
}

.footer-grid {
    grid-template-columns: 1.4fr 1fr 1fr 1.2fr;
    gap: 2rem;
    margin-bottom: 0;
}

/* Columna brand */
.footer-col-brand .footer-logo {
    height: 46px;
    width: auto;
    margin-bottom: 0.8rem;
    display: block;
}

.footer-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin: 0.6rem 0 1rem;
}

.footer-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    background: rgba(255,255,255,0.08);
    border: 1px solid rgba(255,255,255,0.15);
    color: rgba(255,255,255,0.85);
    font-size: 0.72rem;
    padding: 0.2rem 0.55rem;
    border-radius: 20px;
    font-weight: 500;
}

/* SubtÃ­tulos con icono */
.footer-subtitle {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: rgba(255,255,255,0.45);
    margin-bottom: 0.7rem;
    padding-bottom: 0.4rem;
    border-bottom: 1px solid rgba(255,255,255,0.08);
}

.footer-subtitle-mt {
    margin-top: 1.5rem;
}

.footer-subtitle-icon {
    color: var(--secondary);
    font-size: 0.72rem;
}

/* Texto descripciÃ³n */
.footer-text {
    color: rgba(255,255,255,0.65);
    font-size: 0.82rem;
    line-height: 1.6;
    margin-bottom: 0.8rem;
}

/* Links del footer */
.footer-links {
    gap: 0.4rem;
}

.footer-links a {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    color: rgba(255,255,255,0.7);
    font-size: 0.83rem;
    transition: color 0.2s, padding-left 0.2s;
}

.footer-links a i {
    font-size: 0.68rem;
    color: rgba(255,255,255,0.35);
    width: 12px;
    flex-shrink: 0;
}

.footer-links a:hover {
    color: #fff;
    padding-left: 5px;
}

.footer-links a:hover i {
    color: var(--secondary);
}

/* Contacto */
.footer-contact {
    gap: 0.65rem;
}

.footer-contact li {
    align-items: flex-start;
    gap: 0.6rem;
    font-size: 0.82rem;
}

.footer-contact strong {
    display: block;
    font-size: 0.68rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: rgba(255,255,255,0.45);
    margin-bottom: 0.05rem;
}

.footer-contact a {
    color: rgba(255,255,255,0.82);
    font-weight: 500;
    font-size: 0.82rem;
}

.footer-contact a:hover { color: #fff; }

.contact-icon {
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255,255,255,0.08);
    border-radius: 7px;
    font-size: 0.8rem;
    flex-shrink: 0;
    margin-top: 1px;
}

.contact-icon-wa {
    background: rgba(37,211,102,0.18);
    color: #25D366;
}

/* Mapa */
.footer-map {
    margin-top: 0.8rem;
    border-radius: 7px;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,0.08);
}

/* Redes sociales */
.footer-social {
    display: flex;
    gap: 0.6rem;
    margin-top: 0.8rem;
}

.social-link {
    width: 32px;
    height: 32px;
    background: rgba(255,255,255,0.08);
    border-radius: 8px;
    font-size: 0.88rem;
    transition: background 0.2s, transform 0.2s;
    display: flex;
    align-items: center;
    justify-content: center;
    color: rgba(255,255,255,0.75);
}

.social-link:hover {
    background: rgba(255,255,255,0.2);
    transform: translateY(-2px);
    color: #fff;
}

.social-link-wa {
    background: rgba(37,211,102,0.18);
    color: #25D366;
}

.social-link-wa:hover {
    background: #25D366;
    color: #fff;
}

/* Footer bottom */
.footer-bottom {
    background: #080f24;
    border-top: 1px solid rgba(255,255,255,0.06);
    padding: 0.9rem 0;
    text-align: left;
}

.footer-bottom-content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.footer-copyright {
    color: rgba(255,255,255,0.45);
    font-size: 0.78rem;
    margin: 0;
}

.footer-ruc {
    margin-left: 0.75rem;
    opacity: 0.7;
}

.footer-legal-links {
    display: flex;
    align-items: center;
    gap: 0.6rem;
}

.footer-legal-links a {
    color: rgba(255,255,255,0.45);
    font-size: 0.76rem;
    transition: color 0.2s;
}

.footer-legal-links a:hover { color: #fff; }

.footer-legal-links span {
    color: rgba(255,255,255,0.2);
    font-size: 0.65rem;
}

.footer-made {
    color: rgba(255,255,255,0.35);
    font-size: 0.75rem;
    margin: 0;
}
.footer-dev-link {
    color: rgba(255,255,255,0.55);
    text-decoration: none;
    transition: color .2s ease;
    display: inline-flex;
    align-items: center;
    gap: .35rem;
}
.footer-dev-link:hover {
    color: #25d366;
}
.footer-dev-link .fa-whatsapp {
    color: #25d366;
}

/* ===================================
   Banner PWA - Instalar App
   =================================== */
.pwa-install-banner {
    position: fixed;
    bottom: 1.25rem;
    left: 1.25rem;
    right: auto;
    width: min(340px, calc(100vw - 2.5rem));
    z-index: 9990;
    background: linear-gradient(135deg, #0d1b3e 0%, #1e3a5f 100%);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-left: 3px solid var(--secondary);
    padding: 0.75rem 0.85rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.65rem;
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.35);
    border-radius: 14px;
    flex-wrap: nowrap;
    transform: translateY(120%);
    opacity: 0;
    pointer-events: none;
    transition: transform 0.35s ease, opacity 0.35s ease;
}

.pwa-install-banner.is-visible {
    transform: translateY(0);
    opacity: 1;
    pointer-events: auto;
}

.pwa-banner-content {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex: 1;
    min-width: 0;
}

.pwa-banner-logo {
    height: 34px;
    width: auto;
    flex-shrink: 0;
}

.pwa-banner-text {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.pwa-banner-text strong {
    color: #fff;
    font-size: 0.88rem;
    font-weight: 700;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.pwa-banner-text span {
    color: rgba(255,255,255,0.6);
    font-size: 0.75rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.pwa-banner-actions {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-shrink: 0;
}

.pwa-btn-install {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    background: var(--secondary);
    color: #1a1a2e;
    font-weight: 700;
    font-size: 0.82rem;
    padding: 0.45rem 1rem;
    border-radius: 50px;
    border: none;
    cursor: pointer;
    transition: transform 0.2s, box-shadow 0.2s;
    white-space: nowrap;
}

.pwa-btn-install:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(0,0,0,0.2);
}

.pwa-btn-close {
    background: rgba(255,255,255,0.1);
    border: none;
    color: rgba(255,255,255,0.6);
    width: 30px;
    height: 30px;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.8rem;
    transition: background 0.2s, color 0.2s;
    flex-shrink: 0;
}

.pwa-btn-close:hover {
    background: rgba(255,255,255,0.2);
    color: #fff;
}

/* Responsive footer */
@media (max-width: 1024px) {
    .footer-grid {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 640px) {
    .footer-cta-content {
        flex-direction: column;
        text-align: center;
    }
    .footer-cta-actions {
        justify-content: center;
    }
    .footer-cta-title {
        font-size: 1rem;
    }
    .footer-grid {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }
    .footer-bottom-content {
        flex-direction: column;
        text-align: center;
    }
    .footer-legal-links {
        justify-content: center;
    }
    .pwa-install-banner {
        bottom: 0.85rem;
        left: 0.85rem;
        width: min(320px, calc(100vw - 1.7rem));
        padding: 0.65rem 0.75rem;
    }
    .pwa-banner-text span {
        font-size: 0.7rem;
    }
}

/* ===================================
   Responsive
   =================================== */
@media (max-width: 768px) {
    .menu-toggle {
        display: flex;
        z-index: 1001;
    }
    
    .logo-ceba {
        height: 42px;
    }
    
    .logos-oficiales-header {
        padding-left: 0.4rem;
        border-left-width: 1.5px;
    }
    
    .logo-minedu-header {
        height: 32px;
    }
    
    .logo-section {
        gap: 0.4rem;
    }
    
    .nav-menu {
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        background: var(--white);
        flex-direction: column;
        padding: 3rem 1.5rem 2rem; /* Reducido el padding superior */
        box-shadow: none;
        transform: translateX(-100%);
        opacity: 0;
        visibility: hidden;
        transition: all 0.3s ease;
        gap: 0;
        z-index: 1000;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }
    
    .nav-menu.active {
        transform: translateX(0);
        opacity: 1;
        visibility: visible;
    }
    
    .nav-menu li {
        width: 100%;
        border-bottom: 1px solid var(--light-gray);
    }
    
    .nav-link {
        width: 100%;
        padding: 1rem;
        justify-content: space-between;
        font-size: 1rem;
        font-weight: 600;
        color: var(--dark);
        border-radius: 8px;
        margin-bottom: 0.25rem;
        transition: all 0.3s ease;
    }
    
    .nav-link:hover {
        background: var(--light-gray);
        color: var(--primary);
    }
    
    .dropdown-menu {
        position: static;
        opacity: 1;
        visibility: visible;
        transform: none;
        box-shadow: none;
        background: var(--light-gray);
        margin: 0.5rem 0 1rem 1rem;
        display: none;
        border: none;
        border-radius: 8px;
        padding: 0.5rem 0;
    }
    
    .dropdown-menu li {
        border-bottom: none;
    }
    
    .dropdown-menu .nav-link {
        padding: 0.75rem 1rem;
        font-size: 0.9rem;
        font-weight: 500;
        margin-bottom: 0;
    }
    
    .nav-dropdown.active .dropdown-menu {
        display: block;
        animation: slideDown 0.3s ease;
    }
    
    @keyframes slideDown {
        from {
            opacity: 0;
            transform: translateY(-10px);
        }
        to {
            opacity: 1;
            transform: translateY(0);
        }
    }
    
    .btn-aula-virtual {
        width: 100%;
        justify-content: center;
        margin-top: 1rem;
        padding: 1rem;
        font-size: 1rem;
        font-weight: 700;
    }
    
    /* Mejorar el botÃ³n hamburguesa */
    .menu-toggle {
        width: 40px;
        height: 40px;
        border-radius: 8px;
        background: transparent;
        border: 2px solid var(--primary);
        justify-content: center;
        align-items: center;
        cursor: pointer;
        transition: all 0.3s ease;
    }
    
    .menu-toggle:hover {
        background: var(--primary);
    }
    
    .menu-toggle span {
        background: var(--primary);
        transition: all 0.3s ease;
    }
    
    .menu-toggle:hover span {
        background: var(--white);
    }
    
    .menu-toggle.active span:nth-child(1) {
        transform: rotate(45deg) translate(5px, 5px);
    }
    
    .menu-toggle.active span:nth-child(2) {
        opacity: 0;
    }
    
    .menu-toggle.active span:nth-child(3) {
        transform: rotate(-45deg) translate(7px, -6px);
    }
    
    .top-bar {
        padding: 0.5rem 0;
    }
    
    .top-bar-content {
        flex-direction: column;
        text-align: center;
        gap: 0.6rem;
    }
    
    .top-bar-left,
    .top-bar-right {
        justify-content: center;
        gap: 0.85rem;
        font-size: 0.8rem;
    }
    
    .navbar {
        padding: 0.65rem 0;
    }
    
    .hero-title {
        font-size: 2rem;
    }
    
    .hero-subtitle {
        font-size: 1.2rem;
    }
    
    .section-title {
        font-size: 2rem;
    }
    
    .hero-buttons {
        flex-direction: column;
    }
    
    .btn {
        width: 100%;
    }
}

/* ===================================
   PÃ¡ginas Internas
   =================================== */
.page-header {
    background: linear-gradient(135deg, var(--primary-dark) 0%, var(--primary) 100%);
    color: var(--white);
    padding: 2.5rem 0 2rem;
    text-align: center;
}

.page-header h1 {
    font-size: 1.8rem;
    margin-bottom: 0.4rem;
}

.page-header p {
    font-size: 0.95rem;
    opacity: 0.95;
}

/* ===================================
   NOSOTROS PAGE - COMPLETE STYLES
   =================================== */

/* Hero Section */
.nosotros-hero {
    background: linear-gradient(135deg, #0047AB 0%, #003380 100%);
    color: white;
    padding: 3rem 0 2.5rem;
    position: relative;
    overflow: hidden;
}

.nosotros-hero::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><defs><pattern id="grid" width="10" height="10" patternUnits="userSpaceOnUse"><path d="M 10 0 L 0 0 0 10" fill="none" stroke="rgba(255,255,255,0.1)" stroke-width="0.5"/></pattern></defs><rect width="100" height="100" fill="url(%23grid)"/></svg>');
    opacity: 0.3;
}

.nosotros-hero-content {
    position: relative;
    z-index: 2;
    text-align: center;
    max-width: 800px;
    margin: 0 auto;
}

.nosotros-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 0.5rem;
    max-width: 100%;
    background: rgba(255, 255, 255, 0.15);
    backdrop-filter: blur(10px);
    padding: 0.75rem 1.25rem;
    border-radius: 16px;
    border: 1px solid rgba(255, 255, 255, 0.2);
    margin-bottom: 2rem;
    font-weight: 600;
    font-size: 0.95rem;
    line-height: 1.5;
    text-align: center;
}
.nosotros-badge span {
    white-space: normal;
    word-wrap: break-word;
}

.nosotros-hero h1 {
    font-size: 2.4rem;
    font-weight: 900;
    margin-bottom: 1.5rem;
    line-height: 1.1;
}

.nosotros-hero p {
    font-size: 1.3rem;
    margin-bottom: 3rem;
    opacity: 0.9;
    line-height: 1.6;
}

.nosotros-hero-stats {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 2rem;
    flex-wrap: wrap;
}

.hero-stat {
    text-align: center;
}

.hero-stat strong {
    display: block;
    font-size: 1.7rem;
    font-weight: 900;
    color: #C9A227;
    margin-bottom: 0.25rem;
}

.hero-stat span {
    font-size: 0.9rem;
    opacity: 0.8;
    font-weight: 500;
}

.hero-stat-divider {
    width: 1px;
    height: 40px;
    background: rgba(255, 255, 255, 0.3);
}

/* QuiÃ©nes Somos Section */
.quienes-somos {
    padding: 5rem 0;
    background: #fafbfc;
}

.quienes-grid {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 4rem;
    align-items: center;
}

.quienes-text h2 {
    font-size: 2rem;
    font-weight: 900;
    color: #1a1a1a;
    margin-bottom: 2rem;
    line-height: 1.2;
}

.quienes-text p {
    font-size: 1.1rem;
    line-height: 1.8;
    color: #4b5563;
    margin-bottom: 1.5rem;
}

.quienes-text strong {
    color: #0047AB;
    font-weight: 700;
}

.quienes-features {
    margin-top: 2.5rem;
}

.feature-item {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1rem;
    padding: 0.75rem 0;
}

.feature-item i {
    color: #10b981;
    font-size: 1.2rem;
    width: 20px;
}

.feature-item span {
    color: #374151;
    font-weight: 500;
}

.quienes-visual {
    display: flex;
    justify-content: center;
}

.visual-card-main {
    background: white;
    padding: 2.5rem;
    border-radius: 20px;
    box-shadow: 0 10px 40px rgba(0, 71, 171, 0.1);
    text-align: center;
    border: 1px solid #e5e7eb;
    max-width: 350px;
    width: 100%;
}

.visual-icon-big {
    width: 80px;
    height: 80px;
    background: linear-gradient(135deg, #0047AB, #003380);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 1.5rem;
}

.visual-icon-big i {
    font-size: 2.5rem;
    color: white;
}

.visual-card-main h3 {
    font-size: 1.5rem;
    font-weight: 800;
    color: #1a1a1a;
    margin-bottom: 1rem;
}

.visual-card-main p {
    color: #6b7280;
    margin-bottom: 1.5rem;
}

.visual-badges {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.v-badge {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    background: #f3f4f6;
    padding: 0.5rem 1rem;
    border-radius: 8px;
    font-size: 0.85rem;
    font-weight: 600;
    color: #374151;
}

.v-badge i {
    color: #0047AB;
}

/* Datos Oficiales Section */
.datos-oficiales {
    padding: 5rem 0;
    background: white;
}

/* MisiÃ³n y VisiÃ³n Section */
.mision-vision-nueva {
    padding: 5rem 0;
    background: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%);
}

.mv-nueva-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
    max-width: 1100px;
    margin: 0 auto;
}

.mv-nueva-card {
    background: white;
    padding: 2.25rem 2rem;
    border-radius: 20px;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.08);
    text-align: center;
    position: relative;
    overflow: visible;
    border: 1px solid #e5e7eb;
    height: auto;
    min-height: 0;
}

.mv-nueva-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, #0047AB, #003380);
}

.mv-nueva-card.vision::before {
    background: linear-gradient(90deg, #C8102E, #b91c1c);
}

.mv-nueva-icon {
    width: 80px;
    height: 80px;
    background: linear-gradient(135deg, #0047AB, #003380);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 2rem;
}

.mv-nueva-card.vision .mv-nueva-icon {
    background: linear-gradient(135deg, #C8102E, #b91c1c);
}

.mv-nueva-icon i {
    font-size: 2.2rem;
    color: white;
}

.mv-nueva-card h3 {
    font-size: 1.4rem;
    font-weight: 900;
    color: #1a1a1a;
    margin-bottom: 1.5rem;
}

.mv-nueva-card p {
    font-size: 1.05rem;
    line-height: 1.8;
    color: #4b5563;
}

.mv-nueva-texto {
    text-align: left;
    font-size: 1rem;
    line-height: 1.85;
    color: #374151;
    word-wrap: break-word;
    overflow-wrap: break-word;
    hyphens: manual;
}
.mv-nueva-texto p {
    margin: 0 0 1rem;
    font-size: 1rem;
    line-height: 1.85;
    color: #374151;
}
.mv-nueva-texto p:last-child {
    margin-bottom: 0;
}
.mv-nueva-texto strong {
    color: #0047AB;
    font-weight: 700;
}
.mv-lista {
    margin: 0 0 1rem 1.1rem;
    padding: 0;
    color: #374151;
    line-height: 1.7;
}
.mv-lista li {
    margin-bottom: 0.35rem;
}

.nosotros-hero-lead {
    font-size: 1.15rem;
    margin-bottom: 2.5rem;
    opacity: 0.95;
    line-height: 1.75;
    max-width: 720px;
    margin-left: auto;
    margin-right: auto;
}

/* Equipo directivo — Nosotros */
.nosotros-equipo {
    padding: 4rem 0;
    background: #fff;
}
.nosotros-equipo-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1.25rem;
    margin-bottom: 1.5rem;
}
.nosotros-equipo-card {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    padding: 1.25rem;
    text-align: center;
}
.nosotros-equipo-iniciales {
    width: 48px;
    height: 48px;
    margin: 0 auto 0.75rem;
    border-radius: 50%;
    background: #dbeafe;
    color: #0047AB;
    font-weight: 800;
    font-size: 0.85rem;
    display: flex;
    align-items: center;
    justify-content: center;
}
.nosotros-equipo-card h3 {
    font-size: 0.92rem;
    margin: 0 0 0.35rem;
    color: #1f2937;
    line-height: 1.35;
    word-wrap: break-word;
}
.nosotros-equipo-cargo {
    font-size: 0.78rem;
    font-weight: 700;
    color: #0047AB;
    margin: 0 0 0.5rem;
}
.nosotros-equipo-desc {
    font-size: 0.76rem;
    line-height: 1.5;
    color: #6b7280;
    margin: 0;
    word-wrap: break-word;
}
.nosotros-equipo-link {
    text-align: center;
    margin: 0;
}
.nosotros-equipo-link a {
    color: #0047AB;
    font-weight: 600;
    text-decoration: none;
}
.nosotros-equipo-link a:hover {
    text-decoration: underline;
}
@media (max-width: 992px) {
    .nosotros-equipo-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 520px) {
    .nosotros-equipo-grid {
        grid-template-columns: 1fr;
    }
}

/* Valores Section */
.valores-nueva {
    padding: 5rem 0;
    background: white;
}

.valores-nueva-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
    max-width: 1200px;
    margin: 0 auto;
}

.valor-nueva-card {
    background: white;
    padding: 2.5rem 2rem;
    border-radius: 16px;
    text-align: center;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
    border: 1px solid #e5e7eb;
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
}

.valor-nueva-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.15);
}

.valor-nueva-icon {
    width: 70px;
    height: 70px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 1.5rem;
}

.valor-nueva-icon i {
    font-size: 2rem;
    color: white;
}

.valor-nueva-card h4 {
    font-size: 1.4rem;
    font-weight: 800;
    color: #1a1a1a;
    margin-bottom: 1rem;
}

.valor-nueva-card p {
    color: #6b7280;
    line-height: 1.6;
    font-size: 0.95rem;
}

/* CTA Final Section */
.nosotros-cta {
    padding: 5rem 0;
    background: linear-gradient(135deg, #0047AB 0%, #003380 100%);
    color: white;
    text-align: center;
}

.nosotros-cta-content h2 {
    font-size: 2rem;
    font-weight: 900;
    margin-bottom: 1.5rem;
    line-height: 1.2;
}

.nosotros-cta-content p {
    font-size: 1.2rem;
    margin-bottom: 3rem;
    opacity: 0.9;
}

.nosotros-cta-buttons {
    display: flex;
    justify-content: center;
    gap: 1.5rem;
    flex-wrap: wrap;
}

.btn-nosotros-primary,
.btn-nosotros-secondary {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    padding: 1rem 2rem;
    border-radius: 12px;
    font-weight: 700;
    font-size: 1.1rem;
    text-decoration: none;
    transition: all 0.3s ease;
    min-width: 200px;
    justify-content: center;
}

.btn-nosotros-primary {
    background: #C9A227;
    color: #1a1a1a;
    border: 2px solid #C9A227;
}

.btn-nosotros-primary:hover {
    background: #FFC107;
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(255, 215, 0, 0.3);
}

.btn-nosotros-secondary {
    background: transparent;
    color: white;
    border: 2px solid rgba(255, 255, 255, 0.3);
}

.btn-nosotros-secondary:hover {
    background: rgba(255, 255, 255, 0.1);
    border-color: rgba(255, 255, 255, 0.5);
    transform: translateY(-2px);
}

/* Responsive Design */
@media (max-width: 768px) {
    .nosotros-hero h1 {
        font-size: 2.5rem;
    }
    
    .nosotros-hero p {
        font-size: 1.1rem;
    }
    
    .nosotros-hero-stats {
        gap: 1rem;
    }
    
    .hero-stat-divider {
        display: none;
    }
    
    .quienes-grid {
        grid-template-columns: 1fr;
        gap: 3rem;
    }
    
    .quienes-text h2 {
        font-size: 2.2rem;
    }
    
    .mv-nueva-grid {
        grid-template-columns: 1fr;
        gap: 2rem;
    }
    
    .valores-nueva-grid {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }
    
    .nosotros-cta-content h2 {
        font-size: 2.2rem;
    }
    
    .nosotros-cta-buttons {
        flex-direction: column;
        align-items: center;
    }
}

/* ===================================
   AutorizaciÃ³n Nueva - Nosotros
   =================================== */
.autorizacion-nueva {
    background: white;
    border: 2px solid #e5e7eb;
    border-radius: 20px;
    padding: 2.5rem;
    max-width: 860px;
    margin: 0 auto;
    box-shadow: 0 4px 24px rgba(0,0,0,0.06);
}

.autorizacion-header-nueva {
    display: flex;
    align-items: center;
    gap: 2rem;
    padding-bottom: 2rem;
    border-bottom: 2px solid #f3f4f6;
    margin-bottom: 2rem;
    flex-wrap: wrap;
}

.autorizacion-logo {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.autorizacion-logo img {
    height: 60px;
    width: auto;
}

.autorizacion-logo-text {
    display: flex;
    flex-direction: column;
    border-left: 3px solid #C8102E;
    padding-left: 0.75rem;
}

.logo-peru {
    font-size: 1.1rem;
    font-weight: 900;
    color: #C8102E;
    letter-spacing: 2px;
}

.logo-minedu-text {
    font-size: 0.85rem;
    color: #374151;
    font-weight: 600;
    line-height: 1.3;
}

.autorizacion-titulo {
    flex: 1;
}

.autorizacion-titulo h3 {
    font-size: 1.8rem;
    font-weight: 900;
    color: #1a1a1a;
    margin-bottom: 0.25rem;
}

.autorizacion-titulo p {
    color: #6b7280;
    font-size: 0.95rem;
}

/* Tabla de datos */
.datos-tabla {
    display: flex;
    flex-direction: column;
    gap: 0;
    margin-bottom: 2rem;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    overflow: hidden;
}

.dato-fila {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 1.5rem;
    border-bottom: 1px solid #f3f4f6;
    transition: background 0.2s ease;
}

.dato-fila:last-child {
    border-bottom: none;
}

.dato-fila:hover {
    background: #f9fafb;
}

.dato-fila-label {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    font-weight: 700;
    color: #0047AB;
    font-size: 0.95rem;
}

.dato-fila-label i {
    width: 20px;
    text-align: center;
    color: #0047AB;
}

.dato-fila-valor {
    font-size: 0.95rem;
    color: #374151;
    font-weight: 500;
    text-align: right;
}

.dato-fila-valor.destacado {
    font-size: 1.1rem;
    font-weight: 900;
    color: #0047AB;
    background: #eff6ff;
    padding: 0.3rem 0.75rem;
    border-radius: 6px;
    border: 1px solid #bfdbfe;
}

.autorizacion-nota {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    background: #f0fdf4;
    border: 1px solid #bbf7d0;
    border-radius: 10px;
    padding: 1rem 1.25rem;
    color: #166534;
    font-size: 0.9rem;
    line-height: 1.6;
    margin-bottom: 2rem;
}

.autorizacion-nota i {
    color: #16a34a;
    font-size: 1.1rem;
    flex-shrink: 0;
    margin-top: 0.1rem;
}

.autorizacion-btns {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
}

.autorizacion-btns .btn-verificar {
    flex: 1;
    justify-content: center;
    min-width: 200px;
}

@media (max-width: 768px) {
    .autorizacion-header-nueva {
        flex-direction: column;
        align-items: flex-start;
        gap: 1rem;
    }

    .dato-fila {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.5rem;
    }

    .dato-fila-valor {
        text-align: left;
    }

    .autorizacion-btns {
        flex-direction: column;
    }
}

/* Modalidades Detalle */
.modalidad-detalle {
    padding: 4rem 0;
}

.modalidad-detalle.alt {
    background: var(--light-gray);
}

.modalidad-content {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
    align-items: center;
}

.modalidad-content.reverse {
    direction: rtl;
}

.modalidad-content.reverse > * {
    direction: ltr;
}

/* ===================================
   MODALIDADES PAGES - FIXED STYLES
   =================================== */

/* Page Header */
.page-header {
    background: linear-gradient(135deg, #0047AB 0%, #003380 100%);
    color: white;
    padding: 3rem 0 2rem;
    position: relative;
}

.page-header::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><defs><pattern id="grid" width="10" height="10" patternUnits="userSpaceOnUse"><path d="M 10 0 L 0 0 0 10" fill="none" stroke="rgba(255,255,255,0.1)" stroke-width="0.5"/></pattern></defs><rect width="100" height="100" fill="url(%23grid)"/></svg>');
    opacity: 0.3;
}

.page-header .container {
    position: relative;
    z-index: 2;
}

.breadcrumb {
    margin-bottom: 1rem;
    font-size: 0.9rem;
    opacity: 0.9;
}

.breadcrumb a {
    color: #C9A227;
    text-decoration: none;
    transition: opacity 0.3s ease;
}

.breadcrumb a:hover {
    opacity: 0.8;
}

.breadcrumb span {
    color: rgba(255, 255, 255, 0.7);
}

.page-header h1 {
    font-size: 2.8rem;
    font-weight: 900;
    margin-bottom: 1rem;
    line-height: 1.2;
}

.page-header p {
    font-size: 1.2rem;
    opacity: 0.9;
    line-height: 1.5;
}

/* Modalidad Detalle - Fixed Layout */
.modalidad-detalle {
    padding: 5rem 0;
    background: white;
}

.modalidad-detalle.virtual-section {
    background: linear-gradient(135deg, #f0fdf4 0%, #ecfdf5 100%);
}

.modalidad-detalle.semipresencial-section {
    background: linear-gradient(135deg, #faf5ff 0%, #f3e8ff 100%);
}

.modalidad-content {
    display: grid;
    grid-template-columns: 1fr 400px;
    gap: 4rem;
    align-items: start;
    max-width: 1200px;
    margin: 0 auto;
}

.modalidad-content.reverse {
    grid-template-columns: 400px 1fr;
}

.modalidad-info {
    order: 1;
}

.modalidad-image {
    order: 2;
    position: sticky;
    top: 2rem;
}

.modalidad-content.reverse .modalidad-info {
    order: 2;
}

.modalidad-content.reverse .modalidad-image {
    order: 1;
}

/* Modalidad Badge */
.modalidad-badge {
    display: inline-block;
    background: linear-gradient(135deg, #0047AB, #003380);
    color: white;
    padding: 0.5rem 1.5rem;
    border-radius: 25px;
    font-size: 0.9rem;
    font-weight: 600;
    margin-bottom: 1.5rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.modalidad-badge.popular {
    background: linear-gradient(135deg, #fbbf24, #f59e0b);
    color: white;
}

.modalidad-badge.equilibrio {
    background: linear-gradient(135deg, #8b5cf6, #7c3aed);
    color: white;
}

/* Modalidad Info */
.modalidad-info h2 {
    font-size: 2rem;
    font-weight: 900;
    color: #1a1a1a;
    margin-bottom: 1.5rem;
    line-height: 1.1;
}

.modalidad-desc {
    font-size: 1.2rem;
    color: #4b5563;
    line-height: 1.7;
    margin-bottom: 3rem;
}

/* Modalidad Highlight - Fixed */
.modalidad-highlight {
    background: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%);
    border: 1px solid #e5e7eb;
    border-left: 4px solid #0047AB;
    border-radius: 16px;
    padding: 2.5rem;
    margin: 3rem 0;
}

.virtual-highlight {
    background: linear-gradient(135deg, #ecfdf5 0%, #d1fae5 100%);
    border-left-color: #10b981;
}

.semipresencial-highlight {
    background: linear-gradient(135deg, #f3e8ff 0%, #e9d5ff 100%);
    border-left-color: #8b5cf6;
}

.highlight-item {
    display: flex;
    align-items: flex-start;
    gap: 1.5rem;
    margin-bottom: 2rem;
}

.highlight-item:last-child {
    margin-bottom: 0;
}

.highlight-item i {
    width: 50px;
    height: 50px;
    background: linear-gradient(135deg, #0047AB, #003380);
    color: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.3rem;
    flex-shrink: 0;
    margin-top: 0.25rem;
}

.virtual-highlight .highlight-item i {
    background: linear-gradient(135deg, #10b981, #059669);
}

.semipresencial-highlight .highlight-item i {
    background: linear-gradient(135deg, #8b5cf6, #7c3aed);
}

.highlight-item div {
    flex: 1;
}

.highlight-item strong {
    display: block;
    font-size: 1.2rem;
    font-weight: 700;
    color: #1a1a1a;
    margin-bottom: 0.5rem;
}

.highlight-item span {
    color: #6b7280;
    font-size: 1rem;
    line-height: 1.5;
}

/* Feature List - Fixed */
.modalidad-info h3 {
    font-size: 1.8rem;
    font-weight: 800;
    color: #1a1a1a;
    margin: 3rem 0 1.5rem;
    padding-bottom: 0.5rem;
    border-bottom: 2px solid #f3f4f6;
}

.feature-list {
    list-style: none;
    margin: 2rem 0;
    padding: 0;
}

.feature-list li {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem 0;
    color: #374151;
    font-size: 1rem;
    border-bottom: 1px solid #f1f5f9;
    transition: all 0.3s ease;
}

.feature-list li:hover {
    background: #f9fafb;
    padding-left: 1rem;
    border-radius: 8px;
}

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

.feature-list li i {
    color: #0047AB;
    font-size: 1.1rem;
    width: 20px;
    text-align: center;
    flex-shrink: 0;
}

/* Ventajas Grid - Fixed */
.ventajas-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.5rem;
    margin: 2rem 0 3rem;
}

.ventaja-item {
    background: white;
    padding: 2rem;
    border-radius: 16px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
    border: 1px solid #e5e7eb;
    text-align: center;
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
}

.ventaja-item::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, #0047AB, #003380);
}

.virtual-ventaja::before {
    background: linear-gradient(90deg, #10b981, #059669);
}

.semipresencial-ventaja::before {
    background: linear-gradient(90deg, #8b5cf6, #7c3aed);
}

.ventaja-item:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 40px rgba(0, 71, 171, 0.15);
}

.ventaja-item i {
    font-size: 2.5rem;
    color: #0047AB;
    margin-bottom: 1.5rem;
}

.virtual-ventaja i {
    color: #10b981;
}

.semipresencial-ventaja i {
    color: #8b5cf6;
}

.ventaja-item h4 {
    font-size: 1.2rem;
    font-weight: 700;
    color: #1a1a1a;
    margin-bottom: 1rem;
}

.ventaja-item p {
    color: #6b7280;
    font-size: 0.95rem;
    line-height: 1.6;
}

/* Niveles Tags - Fixed */
.niveles-tags {
    display: flex;
    gap: 1rem;
    margin: 2rem 0 3rem;
    flex-wrap: wrap;
}

.nivel-tag {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    background: white;
    padding: 1rem 1.5rem;
    border-radius: 12px;
    font-weight: 600;
    color: #1a1a1a;
    border: 2px solid #e5e7eb;
    transition: all 0.3s ease;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
}

.nivel-tag:hover {
    border-color: #0047AB;
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(0, 71, 171, 0.15);
}

.nivel-tag.primaria {
    background: linear-gradient(135deg, #f5eed6, #e8dcc0);
    color: #92400e;
    border-color: #fbbf24;
}

.nivel-tag.secundaria {
    background: linear-gradient(135deg, #dbeafe, #bfdbfe);
    color: #0047AB;
    border-color: #3b82f6;
}

.nivel-tag i {
    font-size: 1.2rem;
}

/* Modalidad CTA - Fixed */
.modalidad-cta {
    background: linear-gradient(135deg, #0047AB, #003380);
    color: white;
    padding: 3rem;
    border-radius: 20px;
    margin-top: 4rem;
    text-align: center;
    position: relative;
    overflow: hidden;
}

.modalidad-cta::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><defs><pattern id="grid" width="10" height="10" patternUnits="userSpaceOnUse"><path d="M 10 0 L 0 0 0 10" fill="none" stroke="rgba(255,255,255,0.1)" stroke-width="0.5"/></pattern></defs><rect width="100" height="100" fill="url(%23grid)"/></svg>');
    opacity: 0.3;
}

.virtual-cta {
    background: linear-gradient(135deg, #10b981, #059669);
}

.semipresencial-cta {
    background: linear-gradient(135deg, #8b5cf6, #7c3aed);
}

.cta-info {
    position: relative;
    z-index: 2;
    margin-bottom: 2rem;
}

.cta-info h4 {
    font-size: 1.8rem;
    font-weight: 800;
    margin-bottom: 1rem;
    line-height: 1.3;
}

.cta-info p {
    font-size: 1.1rem;
    opacity: 0.9;
    line-height: 1.6;
}

.cta-buttons {
    display: flex;
    gap: 1rem;
    justify-content: center;
    flex-wrap: wrap;
    position: relative;
    z-index: 2;
}

.cta-buttons .btn {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 1rem 2rem;
    border-radius: 12px;
    font-weight: 600;
    text-decoration: none;
    transition: all 0.3s ease;
    min-width: 200px;
    justify-content: center;
    font-size: 1rem;
}

.cta-buttons .btn-primary {
    background: #C9A227;
    color: #1a1a1a;
    border: 2px solid #C9A227;
}

.cta-buttons .btn-primary:hover {
    background: #FFC107;
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(255, 215, 0, 0.4);
}

.cta-buttons .btn-secondary {
    background: transparent;
    color: white;
    border: 2px solid rgba(255, 255, 255, 0.3);
}

.cta-buttons .btn-secondary:hover {
    background: rgba(255, 255, 255, 0.1);
    border-color: rgba(255, 255, 255, 0.6);
    transform: translateY(-2px);
}

/* Image Placeholder - Fixed */
.image-placeholder {
    width: 100%;
    height: 500px;
    border-radius: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    position: relative;
    overflow: hidden;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.15);
}

.image-placeholder.presencial {
    background: linear-gradient(135deg, #0047AB 0%, #003380 100%);
}

.image-placeholder.virtual {
    background: linear-gradient(135deg, #10b981 0%, #059669 100%);
}

.image-placeholder.semipresencial {
    background: linear-gradient(135deg, #8b5cf6 0%, #7c3aed 100%);
}

.image-placeholder::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><defs><pattern id="grid" width="10" height="10" patternUnits="userSpaceOnUse"><path d="M 10 0 L 0 0 0 10" fill="none" stroke="rgba(255,255,255,0.1)" stroke-width="0.5"/></pattern></defs><rect width="100" height="100" fill="url(%23grid)"/></svg>');
    opacity: 0.3;
}

.image-content {
    position: relative;
    z-index: 2;
    text-align: center;
    padding: 2rem;
}

.image-content i {
    font-size: 4rem;
    margin-bottom: 1.5rem;
    opacity: 0.9;
}

.image-content h3 {
    font-size: 2rem;
    font-weight: 800;
    margin-bottom: 0.75rem;
    line-height: 1.2;
}

.image-content p {
    font-size: 1.1rem;
    opacity: 0.8;
    margin-bottom: 2rem;
    line-height: 1.4;
}

.image-stats {
    display: flex;
    justify-content: center;
    gap: 2rem;
    flex-wrap: wrap;
}

.image-stats .stat {
    text-align: center;
}

.image-stats .stat strong {
    display: block;
    font-size: 2rem;
    font-weight: 900;
    color: #C9A227;
    margin-bottom: 0.25rem;
}

.image-stats .stat span {
    font-size: 0.9rem;
    opacity: 0.8;
    font-weight: 500;
}

/* Responsive Design - Fixed */
@media (max-width: 1024px) {
    .modalidad-content {
        grid-template-columns: 1fr;
        gap: 3rem;
    }
    
    .modalidad-content.reverse {
        grid-template-columns: 1fr;
    }
    
    .modalidad-info,
    .modalidad-content.reverse .modalidad-info {
        order: 1;
    }
    
    .modalidad-image,
    .modalidad-content.reverse .modalidad-image {
        order: 2;
        position: static;
    }
}

@media (max-width: 768px) {
    .page-header h1 {
        font-size: 2.2rem;
    }
    
    .page-header p {
        font-size: 1rem;
    }
    
    .modalidad-info h2 {
        font-size: 2.2rem;
    }
    
    .modalidad-desc {
        font-size: 1.1rem;
    }
    
    .modalidad-highlight {
        padding: 2rem;
    }
    
    .highlight-item {
        flex-direction: column;
        text-align: center;
        gap: 1rem;
    }
    
    .highlight-item i {
        margin-top: 0;
    }
    
    .ventajas-grid {
        grid-template-columns: 1fr;
        gap: 1rem;
    }
    
    .cta-buttons {
        flex-direction: column;
        align-items: center;
    }
    
    .image-stats {
        gap: 1rem;
    }
    
    .image-stats .stat strong {
        font-size: 1.5rem;
    }
    
    .image-placeholder {
        height: 400px;
    }
    
    .modalidad-cta {
        padding: 2rem;
    }
}

.modalidad-badge {
    display: inline-block;
    background: var(--primary);
    color: var(--white);
    padding: 0.4rem 1rem;
    border-radius: 50px;
    font-size: 0.85rem;
    font-weight: 600;
    margin-bottom: 1rem;
}

.modalidad-badge.popular {
    background: var(--accent);
    color: var(--dark);
}

.modalidad-info h2 {
    font-size: 2.5rem;
    margin-bottom: 1rem;
    color: var(--dark);
}

.modalidad-desc {
    font-size: 1.1rem;
    color: var(--gray);
    margin-bottom: 2rem;
    line-height: 1.8;
}

.modalidad-info h3 {
    font-size: 1.3rem;
    margin: 2rem 0 1rem;
    color: var(--dark);
}

.feature-list {
    list-style: none;
    margin-bottom: 2rem;
}

.feature-list li {
    padding: 0.75rem 0;
    color: var(--gray);
    font-size: 1.05rem;
}

.niveles-tags {
    display: flex;
    gap: 1rem;
    margin-bottom: 2rem;
}

.nivel-tag {
    background: var(--light-gray);
    padding: 0.5rem 1rem;
    border-radius: 8px;
    font-weight: 600;
    color: var(--dark);
}

.modalidad-image {
    display: flex;
    align-items: center;
    justify-content: center;
}

.image-placeholder {
    width: 100%;
    height: 280px;
    background: var(--light-gray);
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 5rem;
}

/* ComparaciÃ³n */
.comparacion {
    padding: 2.5rem 0;
    background: var(--light-gray);
}

.tabla-responsive {
    overflow-x: auto;
}

.tabla-comparacion {
    width: 100%;
    border-collapse: collapse;
    background: var(--white);
    border-radius: 10px;
    overflow: hidden;
    box-shadow: var(--shadow);
}

.tabla-comparacion th,
.tabla-comparacion td {
    padding: 0.75rem 1rem;
    text-align: left;
    border-bottom: 1px solid var(--light-gray);
    font-size: 0.88rem;
}

.tabla-comparacion th {
    background: var(--primary);
    color: var(--white);
    font-weight: 600;
    font-size: 0.88rem;
}

.tabla-comparacion tr:last-child td {
    border-bottom: none;
}

.tabla-comparacion tr:hover {
    background: var(--light-gray);
}

/* Formularios */
.matricula-info,
.certificados-content {
    padding: 2rem 0;
}

.alert {
    display: flex;
    gap: 1rem;
    padding: 1.5rem;
    border-radius: 12px;
    margin-bottom: 2rem;
}

.alert-success {
    background: #d1fae5;
    color: #065f46;
}

.alert-warning {
    background: #fef3c7;
    color: #92400e;
}

.alert-icon {
    font-size: 1.5rem;
}

.formulario-matricula {
    padding: 3rem 0;
}

.form-container {
    max-width: 900px;
    margin: 0 auto;
}

.matricula-form,
.contacto-form,
.certificado-form {
    background: var(--white);
    padding: 2.5rem;
    border-radius: 16px;
    box-shadow: var(--shadow);
    margin-bottom: 2rem;
}

.matricula-form h2,
.contacto-form h3,
.certificado-form h3 {
    margin-bottom: 0.5rem;
}

.form-subtitle {
    color: var(--gray);
    margin-bottom: 2rem;
}

.form-section {
    margin-bottom: 2.5rem;
}

.form-section h3 {
    font-size: 1.3rem;
    margin-bottom: 1.5rem;
    color: var(--dark);
    padding-bottom: 0.5rem;
    border-bottom: 2px solid var(--light-gray);
}

.form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.5rem;
}

.form-group {
    margin-bottom: 1.5rem;
}

.form-group label {
    display: block;
    margin-bottom: 0.5rem;
    font-weight: 500;
    color: var(--dark);
}

.form-group input,
.form-group select,
.form-group textarea {
    width: 100%;
    padding: 0.75rem;
    border: 2px solid var(--light-gray);
    border-radius: 8px;
    font-family: inherit;
    font-size: 1rem;
    transition: var(--transition);
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
    outline: none;
    border-color: var(--primary);
}

.checkbox-group label {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.checkbox-group input[type="checkbox"] {
    width: auto;
}

.form-actions {
    text-align: center;
}

.form-note {
    margin-top: 1rem;
    color: var(--gray);
    font-size: 0.9rem;
}

.form-help {
    display: block;
    margin-top: 0.5rem;
    color: #6b7280;
    font-size: 0.875rem;
    font-style: italic;
}

.form-help i {
    margin-right: 0.25rem;
    color: var(--primary);
}

.contacto-directo {
    background: var(--light-gray);
    padding: 2rem;
    border-radius: 16px;
    text-align: center;
}

.contacto-directo h3 {
    margin-bottom: 1.5rem;
}

.contacto-opciones {
    display: flex;
    gap: 1rem;
    justify-content: center;
    flex-wrap: wrap;
}

.contacto-btn {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    padding: 1.5rem;
    background: var(--white);
    border-radius: 12px;
    min-width: 150px;
    transition: var(--transition);
}

.contacto-btn:hover {
    transform: translateY(-5px);
    box-shadow: var(--shadow-lg);
}

.contacto-btn .icon {
    font-size: 2rem;
}

.contacto-btn.whatsapp:hover {
    background: #25d366;
    color: var(--white);
}

.contacto-btn.telefono:hover {
    background: var(--secondary);
    color: var(--white);
}

.contacto-btn.email:hover {
    background: var(--accent);
    color: var(--dark);
}

/* Requisitos */
.requisitos-content {
    padding: 3rem 0;
}

.info-box {
    background: var(--light-gray);
    padding: 2rem;
    border-radius: 12px;
    margin-bottom: 3rem;
}

.info-box h2 {
    margin-bottom: 1rem;
}

.info-box ul {
    list-style: disc;
    margin-left: 2rem;
}

.info-box ul li {
    margin-bottom: 0.5rem;
    color: var(--gray);
}

.requisitos-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 2rem;
    margin-bottom: 3rem;
}

.requisito-card {
    background: var(--white);
    padding: 2rem;
    border-radius: 12px;
    box-shadow: var(--shadow);
    position: relative;
    padding-top: 3rem;
}

.requisito-number {
    position: absolute;
    top: -15px;
    left: 20px;
    width: 50px;
    height: 50px;
    background: var(--primary);
    color: var(--white);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    font-weight: 700;
}

.requisito-card h3 {
    margin-bottom: 1rem;
    color: var(--dark);
}

.requisito-card p {
    color: var(--gray);
    line-height: 1.7;
}

.requisitos-especiales {
    padding: 4rem 0;
    background: var(--light-gray);
}

.especiales-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 2rem;
}

.especial-card {
    background: var(--white);
    padding: 2rem;
    border-radius: 12px;
    box-shadow: var(--shadow);
}

.especial-card h3 {
    margin-bottom: 1rem;
    color: var(--dark);
}

.especial-card ul {
    list-style: none;
}

.especial-card ul li {
    padding: 0.5rem 0;
    color: var(--gray);
    padding-left: 1.5rem;
    position: relative;
}

.especial-card ul li::before {
    content: 'â€¢';
    position: absolute;
    left: 0;
    color: var(--primary);
    font-weight: 700;
}

.proceso-matricula {
    padding: 4rem 0;
}

.proceso-timeline {
    max-width: 800px;
    margin: 0 auto;
}

.timeline-item {
    display: flex;
    gap: 2rem;
    margin-bottom: 2rem;
    padding-bottom: 2rem;
    border-bottom: 2px solid var(--light-gray);
}

.timeline-item:last-child {
    border-bottom: none;
}

.timeline-icon {
    font-size: 2rem;
    flex-shrink: 0;
}

.timeline-content h3 {
    margin-bottom: 0.5rem;
    color: var(--dark);
}

.timeline-content p {
    color: var(--gray);
    line-height: 1.7;
}

.preguntas-frecuentes {
    padding: 4rem 0;
    background: var(--light-gray);
}

.faq-list {
    max-width: 800px;
    margin: 0 auto;
}

.faq-item {
    background: var(--white);
    padding: 2rem;
    border-radius: 12px;
    margin-bottom: 1.5rem;
    box-shadow: var(--shadow);
}

.faq-item h3 {
    margin-bottom: 1rem;
    color: var(--dark);
}

.faq-item p {
    color: var(--gray);
    line-height: 1.8;
}

/* Contacto */
.contacto-content {
    padding: 3rem 0;
}

.contacto-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
}

.contacto-info h2 {
    margin-bottom: 1rem;
}

.contacto-info > p {
    margin-bottom: 2rem;
    color: var(--gray);
}

.info-item {
    display: flex;
    gap: 1rem;
    margin-bottom: 1.5rem;
    padding: 1rem;
    background: var(--light-gray);
    border-radius: 8px;
}

.info-icon {
    font-size: 1.5rem;
}

.info-item h4 {
    margin-bottom: 0.25rem;
    color: var(--dark);
}

.info-item a {
    color: var(--primary);
}

.horarios,
.redes-sociales {
    margin-top: 2rem;
    padding: 1.5rem;
    background: var(--light-gray);
    border-radius: 12px;
}

.horarios h3,
.redes-sociales h3 {
    margin-bottom: 1rem;
}

.horarios p {
    margin-bottom: 0.5rem;
    color: var(--gray);
}

.social-buttons {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
}

.social-btn {
    padding: 0.75rem 1.5rem;
    border-radius: 8px;
    color: var(--white);
    font-weight: 600;
    transition: var(--transition);
}

.social-btn.facebook {
    background: #1877f2;
}

.social-btn.instagram {
    background: #e4405f;
}

.social-btn.youtube {
    background: #ff0000;
}

.social-btn:hover {
    opacity: 0.9;
    transform: translateY(-2px);
}

.mapa {
    padding: 4rem 0;
    background: var(--light-gray);
}

.mapa-container {
    border-radius: 16px;
    overflow: hidden;
    box-shadow: var(--shadow-lg);
}

/* ===================================
   GalerÃ­a Moderna
   =================================== */

/* CTA Motivacional */
.galeria-cta {
    background: linear-gradient(135deg, #0047AB, #003380);
    color: white;
    padding: 4rem 0;
    text-align: center;
}

.galeria-cta-content h2 {
    font-size: 1.9rem;
    font-weight: 900;
    margin-bottom: 1rem;
    color: white;
}

.galeria-cta-content p {
    font-size: 1.2rem;
    margin-bottom: 2rem;
    opacity: 0.95;
}

.galeria-cta-buttons {
    display: flex;
    gap: 1rem;
    justify-content: center;
    flex-wrap: wrap;
}

.btn-galeria-primary,
.btn-galeria-secondary {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    padding: 1rem 2rem;
    border-radius: 12px;
    font-size: 1.1rem;
    font-weight: 700;
    text-decoration: none;
    transition: all 0.3s ease;
}

.btn-galeria-primary {
    background: linear-gradient(135deg, #fbbf24, #f59e0b);
    color: #1a1a1a;
    box-shadow: 0 8px 24px rgba(251,191,36,0.4);
}

.btn-galeria-primary:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 32px rgba(251,191,36,0.6);
}

.btn-galeria-secondary {
    background: white;
    color: #0047AB;
    box-shadow: 0 4px 16px rgba(255,255,255,0.3);
}

.btn-galeria-secondary:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 24px rgba(255,255,255,0.5);
}

/* Filtros */
.galeria-filters {
    padding: 2rem 0;
    background: #f9fafb;
}

.filter-buttons {
    display: flex;
    gap: 1rem;
    justify-content: center;
    flex-wrap: wrap;
}

.filter-btn {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1.5rem;
    background: white;
    border: 2px solid #e5e7eb;
    border-radius: 50px;
    font-size: 0.95rem;
    font-weight: 600;
    color: #6b7280;
    cursor: pointer;
    transition: all 0.3s ease;
}

.filter-btn:hover {
    border-color: #0047AB;
    color: #0047AB;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0,71,171,0.15);
}

.filter-btn.active {
    background: linear-gradient(135deg, #0047AB, #003380);
    border-color: #0047AB;
    color: white;
    box-shadow: 0 4px 16px rgba(0,71,171,0.3);
}

/* Grid de GalerÃ­a */
.galeria-content {
    padding: 3rem 0;
}

.galeria-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 1.5rem;
    margin-bottom: 3rem;
}

.galeria-item {
    border-radius: 16px;
    overflow: hidden;
    background: white;
    border: 1px solid #e5e7eb;
    transition: all 0.3s ease;
    animation: fadeInUp 0.5s ease;
}

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

.galeria-item:hover {
    transform: translateY(-8px);
    box-shadow: 0 12px 32px rgba(0,0,0,0.15);
    border-color: #0047AB;
}

.galeria-image {
    position: relative;
    aspect-ratio: 4/3;
    overflow: hidden;
    background: #f3f4f6;
}

.galeria-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.galeria-item:hover .galeria-image img {
    transform: scale(1.1);
}

.galeria-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0,0,0,0.6);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.galeria-item:hover .galeria-overlay {
    opacity: 1;
}

.btn-zoom {
    background: white;
    border: none;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.2rem;
    color: #0047AB;
    cursor: pointer;
    transition: all 0.3s ease;
}

.btn-zoom:hover {
    transform: scale(1.1);
    box-shadow: 0 4px 16px rgba(255,255,255,0.5);
}

.galeria-info {
    padding: 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.galeria-category {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 1rem;
    background: linear-gradient(135deg, #eff6ff, #dbeafe);
    border: 1px solid #0047AB;
    border-radius: 50px;
    font-size: 0.85rem;
    font-weight: 600;
    color: #0047AB;
    width: fit-content;
}

.galeria-folder {
    font-size: 0.8rem;
    color: #6b7280;
    font-weight: 500;
    padding-left: 0.5rem;
}

/* Mensaje vacÃ­o */
.galeria-empty {
    text-align: center;
    padding: 4rem 2rem;
}

.empty-icon {
    font-size: 4rem;
    color: #d1d5db;
    margin-bottom: 1rem;
}

.galeria-empty h3 {
    font-size: 1.5rem;
    color: #6b7280;
    margin-bottom: 0.5rem;
}

.galeria-empty p {
    color: #9ca3af;
}

/* Instrucciones */
.galeria-instrucciones {
    margin-top: 3rem;
}

.instrucciones-card {
    background: linear-gradient(135deg, #f5eed6, #e8dcc0);
    border: 2px solid #fbbf24;
    border-radius: 16px;
    padding: 2rem;
    display: flex;
    gap: 1.5rem;
    align-items: flex-start;
}

.instrucciones-icon {
    width: 60px;
    height: 60px;
    background: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    color: #f59e0b;
    flex-shrink: 0;
}

.instrucciones-content h3 {
    font-size: 1.3rem;
    color: #78350f;
    margin-bottom: 1rem;
}

.instrucciones-content p {
    color: #92400e;
    margin-bottom: 1rem;
    font-weight: 600;
}

.instrucciones-content ol {
    margin-left: 1.5rem;
    color: #92400e;
}

.instrucciones-content li {
    margin-bottom: 0.75rem;
    line-height: 1.6;
}

.instrucciones-content ul {
    margin-left: 1.5rem;
    margin-top: 0.5rem;
}

.instrucciones-content code {
    background: white;
    padding: 0.25rem 0.5rem;
    border-radius: 4px;
    font-family: 'Courier New', monospace;
    font-size: 0.9rem;
    color: #0047AB;
    border: 1px solid #e5e7eb;
}

/* Modal */
.galeria-modal {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 9999;
    display: none;
    align-items: center;
    justify-content: center;
    background: rgba(0,0,0,0.95);
    cursor: pointer;
}

.galeria-modal.active {
    display: flex;
}

.modal-image-container {
    position: relative;
    max-width: 90vw;
    max-height: 85vh;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: default;
}

.modal-image-container img {
    max-width: 100%;
    max-height: 85vh;
    width: auto;
    height: auto;
    border-radius: 12px;
    box-shadow: 0 8px 40px rgba(0,0,0,0.8);
    object-fit: contain;
}

.modal-close-btn {
    position: fixed;
    top: 20px;
    right: 20px;
    background: white;
    border: none;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    color: #1a1a1a;
    cursor: pointer;
    transition: all 0.3s ease;
    z-index: 10001;
    box-shadow: 0 4px 16px rgba(0,0,0,0.5);
    pointer-events: all;
}

.modal-close-btn:hover {
    transform: scale(1.15) rotate(90deg);
    background: #ef4444;
    color: white;
}

.modal-nav-btn {
    position: fixed;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(255,255,255,0.95);
    border: none;
    width: 55px;
    height: 55px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.6rem;
    color: #0047AB;
    cursor: pointer;
    transition: all 0.3s ease;
    box-shadow: 0 4px 16px rgba(0,0,0,0.5);
    z-index: 10001;
    pointer-events: all;
}

.modal-nav-btn.modal-prev {
    left: 30px;
}

.modal-nav-btn.modal-next {
    right: 30px;
}

.modal-nav-btn:hover {
    transform: translateY(-50%) scale(1.15);
    background: #0047AB;
    color: white;
}

.modal-info-bottom {
    position: fixed;
    bottom: 30px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 10001;
    pointer-events: none;
}

.modal-category-badge {
    display: inline-block;
    padding: 0.75rem 1.5rem;
    background: white;
    border-radius: 50px;
    font-weight: 600;
    color: #0047AB;
    box-shadow: 0 4px 16px rgba(0,0,0,0.5);
    font-size: 0.95rem;
}

/* Responsive */
@media (max-width: 768px) {
    .galeria-cta-content h2 {
        font-size: 1.8rem;
    }
    
    .galeria-cta-buttons {
        flex-direction: column;
        align-items: stretch;
    }
    
    .galeria-grid {
        grid-template-columns: 1fr;
    }
    
    .filter-buttons {
        gap: 0.5rem;
    }
    
    .filter-btn {
        padding: 0.6rem 1rem;
        font-size: 0.85rem;
    }
    
    .instrucciones-card {
        flex-direction: column;
        text-align: center;
    }
    
    .instrucciones-icon {
        margin: 0 auto;
    }
    
    .modal-image-container {
        max-width: 95vw;
        max-height: 75vh;
    }
    
    .modal-image-container img {
        max-width: 95vw;
        max-height: 75vh;
    }
    
    .modal-close-btn {
        top: 10px;
        right: 10px;
        width: 45px;
        height: 45px;
        font-size: 1.3rem;
    }
    
    .modal-nav-btn {
        width: 45px;
        height: 45px;
        font-size: 1.3rem;
    }
    
    .modal-nav-btn.modal-prev {
        left: 10px;
    }
    
    .modal-nav-btn.modal-next {
        right: 10px;
    }
    
    .modal-info-bottom {
        bottom: 15px;
    }
    
    .modal-category-badge {
        padding: 0.6rem 1.2rem;
        font-size: 0.85rem;
    }
}

/* Responsive para pÃ¡ginas internas */
@media (max-width: 768px) {
    .nosotros-grid,
    .mv-grid,
    .modalidad-content,
    .contacto-grid {
        grid-template-columns: 1fr;
    }
    
    .form-row {
        grid-template-columns: 1fr;
    }
    
    .tabla-comparacion {
        font-size: 0.9rem;
    }
    
    .tabla-comparacion th,
    .tabla-comparacion td {
        padding: 0.75rem;
    }
}

/* Legal Pages */
.legal-content {
    padding: 4rem 0;
}

.legal-text {
    max-width: 800px;
    margin: 0 auto;
}

.legal-text h2 {
    font-size: 1.5rem;
    margin: 2rem 0 1rem;
    color: var(--dark);
}

.legal-text p {
    margin-bottom: 1rem;
    line-height: 1.8;
    color: var(--gray);
}

.legal-text ul {
    margin: 1rem 0 1rem 2rem;
    list-style: disc;
}

.legal-text ul li {
    margin-bottom: 0.5rem;
    color: var(--gray);
    line-height: 1.7;
}

/* ===================================
   Logo y NavegaciÃ³n Mejorada
   =================================== */
.logo {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.logo-img {
    height: 50px;
    width: auto;
}

.logo-minedu {
    height: 45px;
    width: auto;
    margin-left: 0.5rem;
    opacity: 0.9;
    transition: var(--transition);
}

.logo:hover .logo-minedu {
    opacity: 1;
}

.logo-text-container {
    display: flex;
    gap: 0.5rem;
}

.btn-aula {
    background: var(--secondary);
    animation: pulse 2s infinite;
}

@keyframes pulse {
    0%, 100% {
        box-shadow: 0 0 0 0 rgba(30, 64, 175, 0.7);
    }
    50% {
        box-shadow: 0 0 0 10px rgba(30, 64, 175, 0);
    }
}

/* Dropdown Menu */
.nav-dropdown {
    position: relative;
}

.dropdown-menu {
    position: absolute;
    top: 100%;
    left: 0;
    background: var(--white);
    min-width: 200px;
    box-shadow: var(--shadow-lg);
    border-radius: 8px;
    padding: 0.5rem 0;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-10px);
    transition: var(--transition);
    z-index: 1000;
}

.nav-dropdown:hover .dropdown-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.dropdown-menu li {
    list-style: none;
}

.dropdown-menu a {
    display: block;
    padding: 0.75rem 1.5rem;
    color: var(--dark);
    transition: var(--transition);
}

.dropdown-menu a:hover {
    background: var(--light-gray);
    color: var(--primary);
    padding-left: 2rem;
}

/* ===================================
   Niveles Educativos
   =================================== */
.nivel-info {
    padding: 4rem 0;
}

.nivel-descripcion h2 {
    font-size: 2rem;
    margin-bottom: 1rem;
    color: var(--dark);
}

.nivel-descripcion > p {
    font-size: 1.1rem;
    color: var(--gray);
    line-height: 1.8;
    margin-bottom: 2rem;
}

.nivel-caracteristicas {
    background: var(--light-gray);
    padding: 2rem;
    border-radius: 12px;
    margin-bottom: 2rem;
}

.nivel-caracteristicas h3 {
    margin-bottom: 1rem;
    color: var(--dark);
}

.caracteristicas-list {
    list-style: none;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 1rem;
}

.caracteristicas-list li {
    padding: 0.75rem;
    background: var(--white);
    border-radius: 8px;
    color: var(--gray);
    font-weight: 500;
}

/* Ciclos y Grados */
.ciclos-primaria,
.grados-secundaria {
    margin: 3rem 0;
}

.ciclos-primaria h3 {
    margin-bottom: 1.5rem;
    color: var(--dark);
}

.ciclos-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 1.5rem;
}

.ciclo-card {
    background: var(--white);
    padding: 2rem;
    border-radius: 12px;
    box-shadow: var(--shadow);
    text-align: center;
    border-top: 4px solid var(--primary);
    transition: var(--transition);
}

.ciclo-card:hover {
    transform: translateY(-5px);
    box-shadow: var(--shadow-lg);
}

.ciclo-card h4 {
    font-size: 1.3rem;
    margin-bottom: 0.5rem;
    color: var(--primary);
}

.ciclo-card p {
    color: var(--gray);
    margin-bottom: 1rem;
}

.ciclo-duracion {
    display: inline-block;
    background: var(--light-gray);
    padding: 0.5rem 1rem;
    border-radius: 50px;
    font-size: 0.9rem;
    color: var(--dark);
    font-weight: 600;
}

/* Grados Secundaria */
.grados-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 1.5rem;
}

.grado-card {
    background: var(--white);
    padding: 1.5rem;
    border-radius: 12px;
    box-shadow: var(--shadow);
    text-align: center;
    position: relative;
    transition: var(--transition);
}

.grado-card:hover {
    transform: translateY(-5px);
    box-shadow: var(--shadow-lg);
}

.grado-card.featured {
    border: 3px solid var(--accent);
    background: linear-gradient(to bottom, #ffffff 0%, #fffbeb 100%);
}

.grado-numero {
    width: 60px;
    height: 60px;
    background: linear-gradient(135deg, var(--primary), var(--primary-dark));
    color: var(--white);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.8rem;
    font-weight: 700;
    margin: 0 auto 1rem;
}

.grado-card h4 {
    font-size: 1.1rem;
    margin-bottom: 0.5rem;
    color: var(--dark);
}

.grado-card p {
    color: var(--gray);
    font-size: 0.9rem;
}

.grado-badge {
    position: absolute;
    top: -10px;
    right: -10px;
    background: var(--accent);
    color: var(--dark);
    padding: 0.3rem 0.8rem;
    border-radius: 50px;
    font-size: 0.75rem;
    font-weight: 700;
}

/* Beneficios Secundaria */
.beneficios-secundaria {
    margin-top: 3rem;
}

.beneficios-secundaria h3 {
    margin-bottom: 1.5rem;
    color: var(--dark);
}

.beneficios-grid-small {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 1rem;
}

.beneficio-small {
    background: linear-gradient(135deg, var(--primary), var(--secondary));
    color: var(--white);
    padding: 1rem;
    border-radius: 8px;
    text-align: center;
    font-weight: 600;
    box-shadow: var(--shadow);
    transition: var(--transition);
}

.beneficio-small:hover {
    transform: scale(1.05);
    box-shadow: var(--shadow-lg);
}

/* ===================================
   Aula Virtual
   =================================== */
.aula-virtual-content {
    padding: 4rem 0;
}

.aula-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
    margin-bottom: 4rem;
}

.aula-info h2 {
    font-size: 2rem;
    margin-bottom: 1rem;
    color: var(--dark);
}

.aula-info > p {
    font-size: 1.1rem;
    color: var(--gray);
    line-height: 1.8;
    margin-bottom: 2rem;
}

.aula-features {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.feature-item {
    display: flex;
    gap: 1rem;
    padding: 1.5rem;
    background: var(--light-gray);
    border-radius: 12px;
    transition: var(--transition);
}

.feature-item:hover {
    background: var(--white);
    box-shadow: var(--shadow);
    transform: translateX(10px);
}

.feature-icon {
    font-size: 2.5rem;
    flex-shrink: 0;
}

.feature-item h4 {
    margin-bottom: 0.25rem;
    color: var(--dark);
}

.feature-item p {
    color: var(--gray);
    font-size: 0.95rem;
}

/* Login Box */
.login-container {
    display: flex;
    justify-content: center;
    align-items: flex-start;
}

.login-box {
    background: var(--white);
    padding: 2.5rem;
    border-radius: 16px;
    box-shadow: var(--shadow-lg);
    width: 100%;
    max-width: 450px;
}

.login-header {
    text-align: center;
    margin-bottom: 2rem;
}

.login-header h3 {
    font-size: 1.8rem;
    margin-bottom: 0.5rem;
    color: var(--dark);
}

.login-header p {
    color: var(--gray);
}

.login-form .form-group {
    margin-bottom: 1.5rem;
}

.btn-block {
    width: 100%;
    margin-top: 1rem;
}

.login-links {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin-top: 1.5rem;
    text-align: center;
}

.login-links a {
    color: var(--primary);
    font-size: 0.9rem;
}

.login-links a:hover {
    text-decoration: underline;
}

.login-help {
    margin-top: 2rem;
    padding-top: 2rem;
    border-top: 2px solid var(--light-gray);
    text-align: center;
}

.login-help h4 {
    margin-bottom: 0.5rem;
    color: var(--dark);
}

.login-help p {
    color: var(--gray);
    margin-bottom: 1rem;
    font-size: 0.9rem;
}

.btn-sm {
    padding: 0.5rem 1rem;
    font-size: 0.9rem;
}

/* Requisitos TÃ©cnicos */
.requisitos-tecnicos {
    background: var(--light-gray);
    padding: 3rem;
    border-radius: 16px;
}

.requisitos-tecnicos h3 {
    text-align: center;
    margin-bottom: 2rem;
    color: var(--dark);
}

.requisitos-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 2rem;
}

.requisito-tech {
    text-align: center;
    padding: 1.5rem;
    background: var(--white);
    border-radius: 12px;
}

.tech-icon {
    font-size: 3rem;
    display: block;
    margin-bottom: 1rem;
}

.requisito-tech h4 {
    margin-bottom: 0.5rem;
    color: var(--dark);
}

.requisito-tech p {
    color: var(--gray);
    font-size: 0.9rem;
}

/* ===================================
   Logos Oficiales
   =================================== */
.logos-oficiales {
    background: var(--white);
    padding: 3rem 0;
    border-top: 1px solid var(--light-gray);
    border-bottom: 1px solid var(--light-gray);
}

.logos-container {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 3rem;
    flex-wrap: wrap;
}

.logo-oficial {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
}

.logo-oficial img {
    height: 80px;
    width: auto;
    filter: grayscale(100%);
    opacity: 0.7;
    transition: var(--transition);
}

.logo-oficial:hover img {
    filter: grayscale(0%);
    opacity: 1;
}

.logo-oficial span {
    font-size: 0.85rem;
    color: var(--gray);
    font-weight: 600;
}

/* Responsive Niveles */
@media (max-width: 768px) {
    .aula-grid {
        grid-template-columns: 1fr;
    }
    
    .login-box {
        padding: 2rem;
    }
    
    .grados-grid {
        grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    }
    
    .dropdown-menu {
        position: static;
        opacity: 1;
        visibility: visible;
        transform: none;
        box-shadow: none;
        background: var(--light-gray);
        margin-top: 0.5rem;
    }
    
    .nav-dropdown:hover .dropdown-menu {
        display: block;
    }
}

/* Autorizacion MINEDU Mejorada */
.autorizacion-header {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.5rem;
    margin-bottom: 2rem;
}

.minedu-logo {
    height: 80px;
    width: auto;
}

.autorizacion-detalles {
    background: var(--white);
    padding: 2rem;
    border-radius: 12px;
    margin: 2rem 0;
    box-shadow: var(--shadow);
}

.detalle-item {
    display: flex;
    justify-content: space-between;
    padding: 1rem 0;
    border-bottom: 1px solid var(--light-gray);
}

.detalle-item:last-child {
    border-bottom: none;
}

.detalle-item strong {
    color: var(--dark);
}

.detalle-item span {
    color: var(--primary);
    font-weight: 600;
}

.autorizacion-buttons {
    display: flex;
    gap: 1rem;
    justify-content: center;
    margin-top: 2rem;
    flex-wrap: wrap;
}

/* Recuperar Password */
.recuperar-content {
    padding: 4rem 0;
}

.recuperar-container {
    max-width: 500px;
    margin: 0 auto;
}

.recuperar-box {
    background: var(--white);
    padding: 2.5rem;
    border-radius: 16px;
    box-shadow: var(--shadow-lg);
}

.recuperar-box h2 {
    margin-bottom: 1rem;
    color: var(--dark);
}

.recuperar-box > p {
    color: var(--gray);
    margin-bottom: 2rem;
    line-height: 1.7;
}

.recuperar-form {
    margin-bottom: 2rem;
}

.form-links {
    text-align: center;
    margin-top: 1.5rem;
}

.form-links a {
    color: var(--primary);
    font-size: 0.9rem;
}

.form-links a:hover {
    text-decoration: underline;
}

.ayuda-directa {
    padding-top: 2rem;
    border-top: 2px solid var(--light-gray);
    text-align: center;
}

.ayuda-directa h3 {
    margin-bottom: 0.5rem;
    color: var(--dark);
}

.ayuda-directa p {
    color: var(--gray);
    margin-bottom: 1rem;
    font-size: 0.9rem;
}

/* Responsive adicional */
@media (max-width: 768px) {
    .autorizacion-header {
        flex-direction: column;
    }
    
    .detalle-item {
        flex-direction: column;
        gap: 0.5rem;
    }
    
    .logos-container {
        gap: 2rem;
    }
    
    .logo-oficial img {
        height: 60px;
    }
}

/* ===================================
   Loading Screen
   =================================== */
.loading-screen {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, var(--primary-dark) 0%, var(--primary) 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 9999;
    transition: opacity 0.5s, visibility 0.5s;
}

.loading-screen.hidden {
    opacity: 0;
    visibility: hidden;
}

.loading-content {
    text-align: center;
}

.loading-logo {
    margin-bottom: 2rem;
    animation: logoFloat 2s ease-in-out infinite;
}

.loading-logo-img {
    height: 100px;
    width: auto;
    filter: drop-shadow(0 10px 20px rgba(0,0,0,0.3));
}

@keyframes logoFloat {
    0%, 100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-20px);
    }
}

.loading-spinner {
    width: 60px;
    height: 60px;
    border: 5px solid rgba(255,255,255,0.3);
    border-top-color: white;
    border-radius: 50%;
    margin: 0 auto 1rem;
    animation: spin 1s linear infinite;
}

@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}

.loading-text {
    color: white;
    font-size: 1.2rem;
    font-weight: 600;
    animation: pulse 1.5s ease-in-out infinite;
}

/* ===================================
   Top Bar - Azul CEBA sin Logos - NORMAL (NO FIXED)
   =================================== */
.top-bar {
    background: var(--primary);
    color: var(--white);
    padding: 0.75rem 0;
    font-size: 0.85rem;
    position: relative;
    z-index: 100;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}

.top-bar-content {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 1rem;
}

.top-bar-left,
.top-bar-right {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    flex-wrap: wrap;
}

.top-bar-link {
    color: rgba(255,255,255,0.95);
    display: flex;
    align-items: center;
    gap: 0.5rem;
    transition: var(--transition);
    font-size: 0.85rem;
    font-weight: 500;
}

.top-bar-link:hover {
    color: var(--white);
}

.top-bar-link i {
    font-size: 0.95rem;
}

.top-bar-separator {
    color: rgba(255,255,255,0.3);
    font-size: 1rem;
}

.top-bar-info {
    color: rgba(255,255,255,0.95);
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.85rem;
    font-weight: 500;
}

.top-bar-info i {
    font-size: 0.95rem;
}

.social-icon {
    font-size: 1.2rem;
    transition: var(--transition);
    color: rgba(255,255,255,0.95);
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: rgba(255,255,255,0.1);
}

.social-icon:hover {
    transform: scale(1.1);
    color: var(--white);
    background: rgba(255,255,255,0.2);
}

.btn-whatsapp-top {
    background: #25d366;
    color: white;
    padding: 0.5rem 1.25rem;
    border-radius: 50px;
    font-weight: 600;
    font-size: 0.85rem;
    transition: var(--transition);
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.btn-whatsapp-top:hover {
    background: #20ba5a;
    transform: scale(1.05);
}

/* ===================================
   Modal de MatrÃ­cula (compacto)
   =================================== */
.modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, 0.72);
    backdrop-filter: blur(6px);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 9999;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.25s ease, visibility 0.25s ease;
    padding: 0.75rem;
}

.modal-overlay.active {
    opacity: 1;
    visibility: visible;
}

.modal-container {
    background: var(--white);
    border-radius: 16px;
    max-width: 650px;
    width: 100%;
    max-height: 90vh;
    overflow-y: auto;
    position: relative;
    box-shadow: 0 16px 48px rgba(0, 0, 0, 0.28);
    transform: scale(0.96) translateY(12px);
    transition: transform 0.25s ease;
}

.modal-overlay.active .modal-container {
    transform: scale(1) translateY(0);
}

#modalMatricula .modal-container.modal-matricula {
    max-width: 440px;
    max-height: none;
    overflow: hidden;
    padding: 0 1.15rem 1.15rem;
}

#modalMatricula .modal-matricula__close {
    top: 0.55rem;
    right: 0.55rem;
    z-index: 12;
    background: rgba(255, 255, 255, 0.18);
    color: #fff;
    border: 1px solid rgba(255, 255, 255, 0.35);
    backdrop-filter: blur(4px);
}

#modalMatricula .modal-matricula__close:hover {
    background: rgba(255, 255, 255, 0.32);
    color: #fff;
}

.modal-matricula__banner {
    position: relative;
    margin: 0 -1.15rem 0.85rem;
    padding: 2.35rem 1.15rem 1.05rem;
    text-align: center;
    color: #fff;
    background: linear-gradient(145deg, #001a4d 0%, #0047AB 48%, #0066cc 100%);
    overflow: hidden;
}

.modal-matricula__banner-glow {
    position: absolute;
    top: -50px;
    right: -40px;
    width: 160px;
    height: 160px;
    background: radial-gradient(circle, rgba(255, 215, 0, 0.38) 0%, transparent 68%);
    pointer-events: none;
}

.modal-matricula__banner-glow--2 {
    top: auto;
    right: auto;
    bottom: -60px;
    left: -50px;
    width: 180px;
    height: 180px;
    background: radial-gradient(circle, rgba(255, 255, 255, 0.14) 0%, transparent 70%);
}

.modal-matricula__banner-top {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.55rem;
    margin-bottom: 0.7rem;
}

.modal-matricula__logo {
    width: 38px;
    height: 38px;
    object-fit: contain;
    filter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0.25));
}

.modal-matricula__brand {
    font-size: 0.8rem;
    font-weight: 800;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    line-height: 1.2;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.15);
}

.modal-matricula__headline {
    position: relative;
    z-index: 1;
    margin: 0 0 0.65rem;
    font-size: 1.12rem;
    font-weight: 800;
    line-height: 1.28;
    color: #fff;
}

.modal-matricula__headline span {
    color: #FFD700;
    text-shadow: 0 0 20px rgba(255, 215, 0, 0.35);
}

.modal-matricula__minedu {
    position: relative;
    z-index: 1;
    margin: 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.7rem;
    font-weight: 700;
    line-height: 1.3;
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.28);
    padding: 0.38rem 0.8rem;
    border-radius: 99px;
    backdrop-filter: blur(4px);
}

.modal-matricula__minedu i {
    color: #FFD700;
    font-size: 0.82rem;
}

.modal-close {
    position: absolute;
    top: 0.65rem;
    right: 0.65rem;
    width: 32px;
    height: 32px;
    border-radius: 8px;
    background: #f1f5f9;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.95rem;
    color: #64748b;
    transition: background 0.15s ease, color 0.15s ease;
    z-index: 10;
}

.modal-close:hover {
    background: #e2e8f0;
    color: #334155;
    transform: none;
}

.modal-matricula__hero {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 0.85rem;
    padding-right: 2rem;
}

.modal-matricula__icon {
    width: 44px;
    height: 44px;
    flex-shrink: 0;
    background: linear-gradient(135deg, var(--primary), var(--primary-dark));
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.15rem;
    color: #fff;
}

.modal-matricula__title {
    margin: 0 0 0.15rem;
    font-size: 1.05rem;
    font-weight: 800;
    color: var(--dark);
    line-height: 1.25;
}

.modal-matricula__subtitle {
    margin: 0;
    font-size: 0.78rem;
    color: #64748b;
    line-height: 1.35;
}

.modal-matricula__promo {
    background: linear-gradient(135deg, #fff5f5, #ffe8e8);
    border: 1px solid #fecaca;
    border-radius: 10px;
    padding: 0.55rem 0.7rem;
    margin-bottom: 0.85rem;
}

.modal-matricula__badge {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    background: var(--secondary);
    color: #fff;
    font-size: 0.62rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    padding: 0.2rem 0.5rem;
    border-radius: 99px;
    margin-bottom: 0.35rem;
}

.modal-matricula__fecha {
    font-size: 0.82rem;
    color: #991b1b;
    line-height: 1.35;
}

.modal-matricula__fecha strong {
    font-weight: 700;
    color: #7f1d1d;
}

.modal-matricula__promo-note {
    margin: 0.35rem 0 0;
    font-size: 0.72rem;
    color: #475569;
    line-height: 1.4;
}

.modal-matricula__promo--highlight {
    background: linear-gradient(135deg, #eff6ff, #f0fdf4);
    border-color: #bfdbfe;
    border-radius: 12px;
    padding: 0.65rem 0.75rem;
}

.modal-matricula__opt-meta {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    margin-top: 0.35rem;
}

.modal-matricula__opt-date {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.68rem;
    color: #334155;
    font-weight: 600;
}

.modal-matricula__opt-date strong {
    color: #0047AB;
    font-weight: 800;
}

.modal-matricula__opt-cta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.5rem;
    font-size: 0.66rem;
    font-weight: 800;
    color: #0047AB;
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

.modal-matricula__opt-cta > span:first-child {
    color: inherit;
}

.modal-matricula__opt-online {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    background: #dcfce7;
    color: #166534;
    padding: 0.12rem 0.45rem;
    border-radius: 99px;
    font-size: 0.62rem;
    font-weight: 800;
    text-transform: none;
    letter-spacing: 0;
}

.modal-matricula__opt-cta--gold > span:first-child {
    color: #b45309;
}

.modal-matricula__opt--menor:hover {
    border-color: #93c5fd;
    background: #f8fbff;
}

.modal-matricula__opt--mayor:hover {
    border-color: #fcd34d;
    background: #fffbeb;
}

.modal-matricula__label {
    margin: 0 0 0.45rem;
    font-size: 0.68rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #94a3b8;
}

.modal-matricula__options {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    margin-bottom: 0.75rem;
}

.modal-matricula__opt {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    width: 100%;
    text-align: left;
    padding: 0.55rem 0.65rem;
    border: 1.5px solid #e2e8f0;
    border-radius: 10px;
    background: #f8fafc;
    cursor: pointer;
    transition: border-color 0.15s ease, background 0.15s ease, transform 0.12s ease;
}

.modal-matricula__opt:hover {
    border-color: var(--primary);
    background: #eff6ff;
    transform: translateY(-1px);
}

.modal-matricula__opt-icon {
    width: 36px;
    height: 36px;
    flex-shrink: 0;
    border-radius: 9px;
    background: linear-gradient(135deg, var(--primary), var(--primary-dark));
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.95rem;
}

.modal-matricula__opt-icon--adult {
    background: linear-gradient(135deg, #7c3aed, #5b21b6);
}

.modal-matricula__opt-text {
    flex: 1;
    min-width: 0;
}

.modal-matricula__opt-text strong {
    display: block;
    font-size: 0.82rem;
    font-weight: 800;
    color: #1e293b;
    line-height: 1.2;
}

.modal-matricula__opt-text small {
    display: block;
    font-size: 0.7rem;
    color: #64748b;
    margin-top: 0.1rem;
}

.modal-matricula__opt-arrow {
    font-size: 0.72rem;
    color: #94a3b8;
    flex-shrink: 0;
}

.modal-matricula__opt:hover .modal-matricula__opt-arrow {
    color: var(--primary);
}

.modal-matricula__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-bottom: 0.75rem;
}

.modal-matricula__chips span {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.68rem;
    font-weight: 600;
    color: #166534;
    background: #ecfdf5;
    border: 1px solid #bbf7d0;
    padding: 0.2rem 0.45rem;
    border-radius: 99px;
}

.modal-matricula__chips i {
    font-size: 0.62rem;
}

.modal-matricula__actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.45rem;
}

.modal-matricula__wa {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    padding: 0.5rem 0.55rem;
    border-radius: 8px;
    background: #25d366;
    color: #fff;
    font-size: 0.78rem;
    font-weight: 700;
    text-decoration: none;
    transition: background 0.15s ease;
}

.modal-matricula__wa:hover {
    background: #20ba5a;
    color: #fff;
}

.modal-matricula__info {
    grid-column: 1 / -1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    padding: 0.48rem 0.65rem;
    border-radius: 8px;
    background: var(--primary);
    color: #fff;
    font-size: 0.78rem;
    font-weight: 700;
    text-decoration: none;
    transition: background 0.15s ease;
}

.modal-matricula__info:hover {
    background: var(--primary-dark);
    color: #fff;
}

/* Legacy modal classes (otros modales / compat) */
.modal-content { padding: 3rem 2.5rem; }
.modal-header { text-align: center; margin-bottom: 2rem; }
.modal-icon-badge {
    width: 80px; height: 80px;
    background: linear-gradient(135deg, var(--primary), var(--primary-dark));
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    margin: 0 auto 1.5rem; font-size: 2.5rem; color: var(--white);
}
.modal-title { font-size: 2rem; font-weight: 800; color: var(--dark); margin-bottom: 0.5rem; }
.modal-subtitle { font-size: 1.1rem; color: var(--gray); font-weight: 500; }
.modal-body { margin-top: 2rem; }
.modal-promo {
    background: linear-gradient(135deg, #fff5f5, #ffe5e5);
    border: 2px solid var(--secondary); border-radius: 16px;
    padding: 1.5rem; text-align: center; margin-bottom: 2rem;
}
.promo-badge {
    display: inline-block; background: var(--secondary); color: var(--white);
    padding: 0.5rem 1.25rem; border-radius: 50px; font-size: 0.85rem; font-weight: 700;
}
.modal-divider { text-align: center; margin: 2rem 0; position: relative; }
.modal-options { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-bottom: 2rem; }
.option-card {
    background: var(--light-gray); border: 2px solid transparent; border-radius: 16px;
    padding: 1.5rem; text-align: center; cursor: pointer; transition: all 0.3s ease;
}
.modal-benefits {
    display: grid; grid-template-columns: 1fr; gap: 0.75rem; margin-bottom: 2rem;
    padding: 1.5rem; background: var(--light-gray); border-radius: 12px;
}
.benefit-item { display: flex; align-items: center; gap: 0.75rem; font-weight: 500; font-size: 0.95rem; }
.modal-cta { display: flex; flex-direction: column; gap: 1rem; margin-bottom: 1.5rem; }
.btn-modal-primary, .btn-modal-secondary {
    display: flex; align-items: center; justify-content: center; gap: 0.75rem;
    padding: 1rem 2rem; border-radius: 12px; font-weight: 700; font-size: 1rem;
}
.btn-modal-primary { background: #25d366; color: var(--white); }
.btn-modal-secondary { background: var(--primary); color: var(--white); }
.modal-footer-text { text-align: center; color: var(--gray); font-size: 0.9rem; margin: 0; }

@media (max-width: 768px) {
    #modalMatricula .modal-container.modal-matricula {
        max-width: 100%;
        padding: 0 0.95rem 1rem;
    }

    .modal-matricula__banner {
        margin: 0 -0.95rem 0.75rem;
        padding: 2.2rem 0.85rem 0.95rem;
    }

    .modal-matricula__headline { font-size: 1rem; }
    .modal-matricula__brand { font-size: 0.72rem; }
    .modal-matricula__minedu { font-size: 0.65rem; padding: 0.32rem 0.65rem; }

    .modal-matricula__hero { padding-right: 1.75rem; }
    .modal-matricula__title { font-size: 0.98rem; }
}

@media (max-width: 420px) {
    .modal-matricula__actions { grid-template-columns: 1fr; }
}

/* ===================================
   Header y NavegaciÃ³n - NORMAL (NO FIXED)
   =================================== */
.header {
    position: relative;
    z-index: 99;
    background: var(--white);
    box-shadow: 0 2px 8px rgba(0,0,0,0.06);
    transition: var(--transition);
    width: 100%;
}

.header.scrolled {
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}

/* Ajustar el padding del body para compensar header + top-bar */
/* Removido para usar una soluciÃ³n mÃ¡s especÃ­fica */

/* Contenedor principal con padding para header fixed */
.main-content {
    padding-top: 0; /* El hero maneja su propio espaciado */
}

/* Secciones despuÃ©s del hero con padding */
section:not(.hero-carousel) {
    margin-top: 0;
}

/* Primera secciÃ³n despuÃ©s del hero */
.hero-carousel + section {
    margin-top: 0;
}

.navbar {
    padding: 0.75rem 0;
}

.nav-container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 2rem;
}

/* Logo Section - MÃ¡s compacto */
.logo-section {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.logo-main {
    display: flex;
    align-items: center;
}

.logo-ceba {
    height: 50px;
    width: auto;
    transition: var(--transition);
}

.logo-main:hover .logo-ceba {
    transform: scale(1.05);
}

.logos-oficiales-header {
    display: flex;
    align-items: center;
    padding-left: 0.5rem;
    border-left: 2px solid rgba(0, 71, 171, 0.2);
}

.logo-minedu-header {
    height: 38px;
    width: auto;
    opacity: 0.9;
    transition: var(--transition);
}

.logo-minedu-header:hover {
    opacity: 1;
    transform: scale(1.05);
}

/* Navigation Menu - MÃ¡s elegante */
.nav-menu {
    display: flex;
    gap: 0.25rem;
    align-items: center;
    margin: 0;
    padding: 0;
    list-style: none;
}

.nav-link {
    color: var(--dark);
    font-weight: 500;
    font-size: 0.925rem;
    padding: 0.6rem 0.95rem;
    border-radius: 6px;
    position: relative;
    transition: var(--transition);
    display: flex;
    align-items: center;
    gap: 0.25rem;
}

.nav-link:hover {
    color: var(--primary);
    background: rgba(0, 71, 171, 0.06);
}

.nav-link .arrow {
    font-size: 0.65rem;
    transition: var(--transition);
    margin-left: 0.15rem;
}

.nav-dropdown:hover .arrow {
    transform: rotate(180deg);
}

/* Dropdown Menu - MÃ¡s moderno */
.nav-dropdown {
    position: relative;
}

.dropdown-menu {
    position: absolute;
    top: 100%;
    left: 0;
    background: var(--white);
    min-width: 210px;
    box-shadow: 0 8px 24px rgba(0,0,0,0.12);
    border-radius: 8px;
    padding: 0.4rem 0;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-8px);
    transition: all 0.25s ease;
    z-index: 1000;
    margin-top: 0.4rem;
    border: 1px solid rgba(0,0,0,0.05);
}

.nav-dropdown:hover .dropdown-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.dropdown-menu li {
    list-style: none;
}

.dropdown-menu a {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.7rem 1.15rem;
    color: var(--dark);
    transition: var(--transition);
    font-size: 0.875rem;
}

.dropdown-menu a:hover {
    background: rgba(0, 71, 171, 0.06);
    color: var(--primary);
    padding-left: 1.35rem;
}

/* Aula Virtual Button - MÃ¡s destacado */
.btn-aula-virtual {
    background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
    color: var(--white);
    padding: 0.65rem 1.35rem;
    border-radius: 50px;
    font-weight: 600;
    font-size: 0.875rem;
    transition: var(--transition);
    display: flex;
    align-items: center;
    gap: 0.4rem;
    box-shadow: 0 4px 12px rgba(0, 71, 171, 0.2);
    border: none;
}

.btn-aula-virtual:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(0, 71, 171, 0.3);
}

/* Acceso rÃ¡pido â€” Â¿Ya matriculado? Ingresa tu DNI */
.top-bar-link--dni {
    margin-left: 0.65rem;
    padding: 0.35rem 0.75rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.22);
    font-weight: 600;
    white-space: nowrap;
}

.top-bar-link--dni:hover {
    background: rgba(255, 255, 255, 0.2);
    color: #fff;
}

.btn-nav-matriculado {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.55rem 1rem;
    border-radius: 999px;
    background: #fff;
    color: var(--primary);
    border: 2px solid rgba(0, 71, 171, 0.25);
    font-weight: 700;
    font-size: 0.82rem;
    line-height: 1.2;
    text-decoration: none;
    transition: var(--transition);
    box-shadow: 0 2px 8px rgba(0, 71, 171, 0.08);
    white-space: nowrap;
}

.btn-nav-matriculado:hover,
.btn-nav-matriculado.active {
    background: linear-gradient(135deg, #eff6ff 0%, #fff 100%);
    border-color: var(--primary);
    color: var(--primary-dark);
    transform: translateY(-1px);
    box-shadow: 0 4px 14px rgba(0, 71, 171, 0.15);
}

.nav-item-matriculado {
    display: flex;
    align-items: center;
}

@media (max-width: 1200px) {
    .btn-nav-matriculado span {
        max-width: 9.5rem;
        white-space: normal;
        text-align: left;
    }
}

@media (max-width: 991px) {
    .top-bar-link--dni {
        display: none;
    }

    .nav-item-matriculado {
        width: 100%;
    }

    .btn-nav-matriculado {
        width: 100%;
        justify-content: center;
        padding: 0.85rem 1rem;
        font-size: 0.95rem;
    }
}

/* Menu Toggle — visible solo en móvil (reglas desktop más abajo) */
.menu-toggle {
    display: none;
    flex-direction: column;
    gap: 4px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0.5rem;
    flex-shrink: 0;
}

.menu-toggle span {
    width: 24px;
    height: 2.5px;
    background: var(--dark);
    border-radius: 3px;
    transition: var(--transition);
}

/* Alert Banner - MÃ¡s elegante */
.alert-banner {
    background: linear-gradient(90deg, var(--secondary) 0%, var(--primary) 100%);
    color: var(--white);
    padding: 0.7rem 0;
    text-align: center;
}

.alert-banner .container {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0.85rem;
    flex-wrap: wrap;
}

.alert-icon {
    font-size: 1.15rem;
    animation: pulse 2s infinite;
}

@keyframes pulse {
    0%, 100% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.1);
    }
}

.alert-text {
    font-weight: 500;
    font-size: 0.925rem;
}

.alert-link {
    color: var(--white);
    text-decoration: underline;
    font-weight: 600;
    transition: var(--transition);
}

.alert-link:hover {
    opacity: 0.85;
    text-decoration: none;
}

/* ===================================
   WhatsApp Floating Button
   =================================== */
.whatsapp-float {
    position: fixed;
    bottom: 30px;
    right: 30px;
    width: 60px;
    height: 60px;
    background: #25d366;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 12px rgba(37, 211, 102, 0.4);
    z-index: 1000;
    transition: var(--transition);
    animation: floatPulse 2s ease-in-out infinite;
}

.whatsapp-float:hover {
    transform: scale(1.1);
    box-shadow: 0 6px 20px rgba(37, 211, 102, 0.6);
}

/* Botón flotante — reabrir modal de matrícula */
.matricula-float-btn {
    position: fixed;
    bottom: 96px;
    left: 24px;
    z-index: 9997;
    width: 56px;
    height: 56px;
    border: none;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 1.35rem;
    background: linear-gradient(145deg, #FFD700, #f59e0b);
    box-shadow: 0 6px 18px rgba(245, 158, 11, 0.45);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    animation: matriculaFloatPulse 2.4s ease-in-out infinite;
}

.matricula-float-btn:hover {
    transform: scale(1.08);
    box-shadow: 0 8px 22px rgba(245, 158, 11, 0.55);
}

.matricula-float-btn__tag {
    position: absolute;
    left: calc(100% + 10px);
    top: 50%;
    transform: translateY(-50%);
    background: #0047AB;
    color: #fff;
    font-size: 0.72rem;
    font-weight: 800;
    padding: 0.35rem 0.65rem;
    border-radius: 99px;
    white-space: nowrap;
    box-shadow: 0 4px 12px rgba(0, 71, 171, 0.25);
    pointer-events: none;
}

.matricula-float-btn__tag::before {
    content: '';
    position: absolute;
    right: 100%;
    top: 50%;
    transform: translateY(-50%);
    border: 6px solid transparent;
    border-right-color: #0047AB;
}

@keyframes matriculaFloatPulse {
    0%, 100% { box-shadow: 0 6px 18px rgba(245, 158, 11, 0.45); }
    50% { box-shadow: 0 6px 24px rgba(245, 158, 11, 0.65); }
}

@media (max-width: 768px) {
    .matricula-float-btn {
        bottom: calc(78px + env(safe-area-inset-bottom, 0px));
        left: 16px;
        width: 52px;
        height: 52px;
        font-size: 1.2rem;
    }

    .matricula-float-btn__tag {
        display: none;
    }
}

.whatsapp-icon {
    width: 35px;
    height: 35px;
    color: white;
}

@keyframes floatPulse {
    0%, 100% {
        box-shadow: 0 4px 12px rgba(37, 211, 102, 0.4);
    }
    50% {
        box-shadow: 0 4px 20px rgba(37, 211, 102, 0.8);
    }
}

/* ===================================
   Hero Carousel - Mejorado con Header Fixed
   =================================== */
.hero-carousel {
    position: relative;
    height: 730px; /* Aumentado para compensar el header */
    overflow: hidden;
    margin-top: 0;
    padding-top: 0;
}

/* Ajustar el contenedor del carousel para compensar el header */
.carousel-container {
    position: relative;
    height: 100%;
    padding-top: 0; /* Removido el padding */
}

.carousel-slide {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    transition: opacity 1s ease-in-out;
    background-size: cover;
    background-position: center;
    display: flex;
    align-items: center;
    justify-content: center;
}

.carousel-slide.active {
    opacity: 1;
}

.carousel-content {
    text-align: center;
    color: white;
    z-index: 2;
    animation: fadeInUp 1s ease;
    max-width: 900px;
    padding: 2rem;
    margin-top: 130px; /* Espacio para el header fixed */
}

.carousel-title {
    font-size: 3.5rem;
    font-weight: 800;
    margin-bottom: 1.5rem;
    text-shadow: 3px 3px 15px rgba(0,0,0,0.7);
    line-height: 1.2;
    letter-spacing: -1px;
}

.carousel-subtitle {
    font-size: 1.8rem;
    margin-bottom: 2.5rem;
    text-shadow: 2px 2px 10px rgba(0,0,0,0.7);
    font-weight: 500;
    opacity: 0.95;
}

.carousel-buttons {
    display: flex;
    gap: 1.5rem;
    justify-content: center;
    flex-wrap: wrap;
}

.carousel-buttons .btn {
    padding: 1.2rem 2.5rem;
    font-size: 1.1rem;
    font-weight: 700;
    border-radius: 50px;
    box-shadow: 0 8px 24px rgba(0,0,0,0.3);
    transition: all 0.3s ease;
}

.carousel-buttons .btn:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 32px rgba(0,0,0,0.4);
}

.carousel-btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(255,255,255,0.25);
    color: white;
    border: 2px solid rgba(255,255,255,0.5);
    width: 55px;
    height: 55px;
    border-radius: 50%;
    font-size: 1.8rem;
    cursor: pointer;
    transition: all 0.3s ease;
    z-index: 3;
    backdrop-filter: blur(10px);
}

.carousel-btn:hover {
    background: rgba(255,255,255,0.4);
    transform: translateY(-50%) scale(1.1);
}

.carousel-prev {
    left: 30px;
}

.carousel-next {
    right: 30px;
}

.carousel-dots {
    position: absolute;
    bottom: 40px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 12px;
    z-index: 3;
}

.dot {
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: rgba(255,255,255,0.4);
    cursor: pointer;
    transition: all 0.3s ease;
    border: 2px solid rgba(255,255,255,0.6);
}

.dot.active {
    background: white;
    transform: scale(1.3);
    box-shadow: 0 0 15px rgba(255,255,255,0.8);
}

.dot:hover {
    background: rgba(255,255,255,0.7);
    transform: scale(1.2);
}

/* Responsive Hero Carousel */
@media (max-width: 768px) {
    .hero-carousel {
        height: 500px;
    }
    
    .carousel-title {
        font-size: 2.2rem;
    }
    
    .carousel-subtitle {
        font-size: 1.3rem;
        margin-bottom: 2rem;
    }
    
    .carousel-buttons {
        flex-direction: column;
        gap: 1rem;
    }
    
    .carousel-buttons .btn {
        width: 100%;
        max-width: 300px;
    }
    
    .carousel-btn {
        width: 45px;
        height: 45px;
        font-size: 1.5rem;
    }
    
    .carousel-prev {
        left: 15px;
    }
    
    .carousel-next {
        right: 15px;
    }
    
    .carousel-dots {
        bottom: 25px;
    }
}

/* ===================================
   Modalidades con ImÃ¡genes
   =================================== */
.modalidad-image-container {
    width: 100%;
    height: 250px;
    overflow: hidden;
    border-radius: 12px 12px 0 0;
}

.modalidad-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: var(--transition);
}

.modalidad-card:hover .modalidad-img {
    transform: scale(1.1);
}

.modalidad-content {
    padding: 2rem;
}

.modalidad-features {
    list-style: none;
    margin: 1.5rem 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.modalidad-features li {
    color: var(--gray);
    font-size: 0.95rem;
}

/* ===================================
   Convenios
   =================================== */
.convenios-intro {
    padding: 4rem 0 2rem;
}

.intro-content {
    max-width: 800px;
    margin: 0 auto;
    text-align: center;
}

.intro-content h2 {
    font-size: 2.5rem;
    margin-bottom: 1rem;
    color: var(--dark);
}

.intro-content p {
    font-size: 1.1rem;
    color: var(--gray);
    line-height: 1.8;
}

.convenios-grid-section {
    padding: 2rem 0 4rem;
}

.convenios-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 2rem;
}

.convenio-card {
    background: var(--white);
    padding: 2.5rem;
    border-radius: 16px;
    box-shadow: var(--shadow);
    text-align: center;
    transition: var(--transition);
}

.convenio-card:hover {
    transform: translateY(-10px);
    box-shadow: var(--shadow-lg);
}

.convenio-logo {
    margin-bottom: 1.5rem;
}

.convenio-logo img {
    height: 120px;
    width: auto;
    margin: 0 auto;
}

.convenio-card h3 {
    font-size: 1.5rem;
    margin-bottom: 1rem;
    color: var(--dark);
}

.convenio-card > p {
    color: var(--gray);
    margin-bottom: 1.5rem;
    line-height: 1.7;
}

.convenio-beneficios {
    list-style: none;
    text-align: left;
    background: var(--light-gray);
    padding: 1.5rem;
    border-radius: 8px;
}

.convenio-beneficios li {
    padding: 0.5rem 0;
    color: var(--gray);
}

.beneficios-convenios {
    background: var(--light-gray);
    padding: 4rem 0;
}

.beneficio-convenio {
    text-align: center;
    padding: 2rem;
    background: var(--white);
    border-radius: 12px;
    transition: var(--transition);
}

.beneficio-convenio:hover {
    transform: translateY(-5px);
    box-shadow: var(--shadow);
}

.beneficio-icon {
    font-size: 3rem;
    display: block;
    margin-bottom: 1rem;
}

.beneficio-convenio h4 {
    font-size: 1.2rem;
    margin-bottom: 0.5rem;
    color: var(--dark);
}

.beneficio-convenio p {
    color: var(--gray);
    font-size: 0.95rem;
}

/* Responsive Mejoras */
@media (max-width: 768px) {
    .top-bar-content {
        flex-direction: column;
        text-align: center;
    }
    
    .top-bar-left,
    .top-bar-right {
        justify-content: center;
    }
    
    .carousel-title {
        font-size: 2rem;
    }
    
    .carousel-subtitle {
        font-size: 1.2rem;
    }
    
    .carousel-btn {
        width: 40px;
        height: 40px;
        font-size: 1.2rem;
    }
    
    .whatsapp-float {
        bottom: 20px;
        right: 20px;
        width: 50px;
        height: 50px;
    }
    
    .whatsapp-icon {
        width: 28px;
        height: 28px;
    }
}

/* ===================================
   EstadÃ­sticas Animadas
   =================================== */
.stats-section {
    background: linear-gradient(135deg, var(--primary-dark) 0%, var(--primary) 100%);
    padding: 5rem 0;
    position: relative;
    overflow: hidden;
}

.stats-section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1440 320"><path fill="%23ffffff" fill-opacity="0.1" d="M0,96L48,112C96,128,192,160,288,160C384,160,480,128,576,122.7C672,117,768,139,864,154.7C960,171,1056,181,1152,165.3C1248,149,1344,107,1392,85.3L1440,64L1440,320L1392,320C1344,320,1248,320,1152,320C1056,320,960,320,864,320C768,320,672,320,576,320C480,320,384,320,288,320C192,320,96,320,48,320L0,320Z"></path></svg>') no-repeat bottom;
    background-size: cover;
    opacity: 0.3;
}

.stats-grid-animated {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 3rem;
    position: relative;
    z-index: 1;
}

.stat-box {
    text-align: center;
    color: white;
    padding: 2rem;
    background: rgba(255,255,255,0.1);
    border-radius: 16px;
    backdrop-filter: blur(10px);
    border: 2px solid rgba(255,255,255,0.2);
    transition: var(--transition);
}

.stat-box:hover {
    transform: translateY(-10px);
    background: rgba(255,255,255,0.2);
    box-shadow: 0 20px 40px rgba(0,0,0,0.3);
}

.stat-icon-circle {
    width: 80px;
    height: 80px;
    background: rgba(255,255,255,0.2);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2.5rem;
    margin: 0 auto 1.5rem;
    border: 3px solid rgba(255,255,255,0.3);
}

.stat-number {
    font-size: 3.5rem;
    font-weight: 800;
    margin-bottom: 0.5rem;
    text-shadow: 2px 2px 10px rgba(0,0,0,0.3);
}

.stat-label {
    font-size: 1.1rem;
    opacity: 0.95;
    font-weight: 500;
}

/* ===================================
   Beneficios Mejorados
   =================================== */
.beneficio-icon-wrapper {
    width: 100px;
    height: 100px;
    background: linear-gradient(135deg, #002966, #0047AB);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 1.5rem;
    position: relative;
    transition: var(--transition);
}

.beneficio-icon-wrapper::before {
    content: '';
    position: absolute;
    inset: -5px;
    background: linear-gradient(135deg, #002966, #0047AB);
    border-radius: 50%;
    opacity: 0;
    transition: var(--transition);
    z-index: -1;
}

.beneficio-item:hover .beneficio-icon-wrapper::before {
    opacity: 0.3;
    inset: -10px;
}

.beneficio-icon-wrapper .beneficio-icon {
    font-size: 3rem;
    filter: drop-shadow(2px 2px 4px rgba(0,0,0,0.2));
}

.beneficio-item {
    background: var(--white);
    padding: 2.5rem;
    border-radius: 16px;
    box-shadow: var(--shadow);
    transition: var(--transition);
    text-align: center;
    border: 2px solid transparent;
}

.beneficio-item:hover {
    transform: translateY(-10px);
    box-shadow: var(--shadow-lg);
    border-color: var(--primary);
}

/* ===================================
   Testimonios
   =================================== */
.testimonios {
    background: var(--light-gray);
    padding: 5rem 0;
}

.testimonios-slider {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 2rem;
    margin-top: 3rem;
}

.testimonio-card {
    background: var(--white);
    padding: 2.5rem;
    border-radius: 16px;
    box-shadow: var(--shadow);
    position: relative;
    transition: var(--transition);
}

.testimonio-card::before {
    content: '"';
    position: absolute;
    top: -20px;
    left: 30px;
    font-size: 6rem;
    color: var(--primary);
    opacity: 0.2;
    font-family: Georgia, serif;
}

.testimonio-card:hover {
    transform: translateY(-5px);
    box-shadow: var(--shadow-lg);
}

.testimonio-stars {
    color: #fbbf24;
    font-size: 1.2rem;
    margin-bottom: 1rem;
}

.testimonio-text {
    font-size: 1.05rem;
    line-height: 1.8;
    color: var(--gray);
    margin-bottom: 2rem;
    font-style: italic;
}

.testimonio-author {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding-top: 1.5rem;
    border-top: 2px solid var(--light-gray);
}

.author-avatar {
    width: 60px;
    height: 60px;
    background: linear-gradient(135deg, #002966, #0047AB);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    flex-shrink: 0;
}

.author-info h4 {
    margin: 0 0 0.25rem;
    color: var(--dark);
    font-size: 1.1rem;
}

.author-info p {
    margin: 0;
    color: var(--gray);
    font-size: 0.9rem;
}

/* ===================================
   Por quÃ© elegirnos
   =================================== */
.why-choose-us {
    padding: 5rem 0;
    background: var(--white);
}

.why-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4rem;
    align-items: center;
}

.why-content h2 {
    font-size: 2.5rem;
    margin-bottom: 2rem;
    color: var(--dark);
}

.why-items {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

.why-item {
    display: flex;
    gap: 1.5rem;
    align-items: flex-start;
}

.why-number {
    width: 60px;
    height: 60px;
    background: linear-gradient(135deg, #002966, #0047AB);
    color: white;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    font-weight: 700;
    flex-shrink: 0;
    box-shadow: 0 4px 12px rgba(217, 16, 35, 0.3);
}

.why-text h4 {
    margin: 0 0 0.5rem;
    color: var(--dark);
    font-size: 1.2rem;
}

.why-text p {
    margin: 0;
    color: var(--gray);
    line-height: 1.7;
}

.why-image {
    position: relative;
}

.why-image img {
    width: 100%;
    height: auto;
    border-radius: 20px;
    box-shadow: 0 20px 60px rgba(0,0,0,0.2);
}

.why-image::before {
    content: '';
    position: absolute;
    top: -20px;
    right: -20px;
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, #002966, #0047AB);
    border-radius: 20px;
    z-index: -1;
    opacity: 0.2;
}

/* ===================================
   Animaciones Avanzadas
   =================================== */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes fadeInLeft {
    from {
        opacity: 0;
        transform: translateX(-30px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

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

@keyframes scaleIn {
    from {
        opacity: 0;
        transform: scale(0.8);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}

[data-aos] {
    opacity: 0;
    transition: opacity 0.6s ease, transform 0.6s ease;
}

[data-aos].aos-animate {
    opacity: 1;
}

[data-aos="fade-up"].aos-animate {
    animation: fadeInUp 0.6s ease forwards;
}

[data-aos="fade-left"].aos-animate {
    animation: fadeInLeft 0.6s ease forwards;
}

[data-aos="fade-right"].aos-animate {
    animation: fadeInRight 0.6s ease forwards;
}

[data-aos="scale-in"].aos-animate {
    animation: scaleIn 0.6s ease forwards;
}

/* ===================================
   Scroll Reveal
   =================================== */
.reveal {
    opacity: 0;
    transform: translateY(50px);
    transition: all 0.8s ease;
}

.reveal.active {
    opacity: 1;
    transform: translateY(0);
}

/* ===================================
   Responsive Avanzado
   =================================== */
@media (max-width: 992px) {
    .why-grid {
        grid-template-columns: 1fr;
    }
    
    .why-image {
        order: -1;
    }
    
    .stat-number {
        font-size: 2.5rem;
    }
}

@media (max-width: 768px) {
    .stats-grid-animated {
        grid-template-columns: repeat(2, 1fr);
        gap: 1.5rem;
    }
    
    .testimonios-slider {
        grid-template-columns: 1fr;
    }
    
    .why-number {
        width: 50px;
        height: 50px;
        font-size: 1.2rem;
    }
    
    .stat-icon-circle {
        width: 60px;
        height: 60px;
        font-size: 2rem;
    }
}

@media (max-width: 480px) {
    .stats-grid-animated {
        grid-template-columns: 1fr;
    }
}

/* Header Scrolled Effect */
.header.scrolled {
    box-shadow: 0 4px 20px rgba(0,0,0,0.1);
    background: rgba(255,255,255,0.98);
    backdrop-filter: blur(10px);
}

.header.scrolled .navbar {
    padding: 0.5rem 0;
}

/* Botones con efecto ripple */
.btn {
    position: relative;
    overflow: hidden;
}

.btn::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 0;
    height: 0;
    border-radius: 50%;
    background: rgba(255,255,255,0.3);
    transform: translate(-50%, -50%);
    transition: width 0.6s, height 0.6s;
}

.btn:hover::before {
    width: 300px;
    height: 300px;
}

/* Gradientes de texto */
.gradient-text {
    background: linear-gradient(135deg, #002966, #0047AB);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* Tarjetas con efecto glass */
.glass-card {
    background: rgba(255,255,255,0.1);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255,255,255,0.2);
    box-shadow: 0 8px 32px rgba(0,0,0,0.1);
}

/* Iconos animados */
.icon-bounce {
    animation: bounce 2s infinite;
}

@keyframes bounce {
    0%, 100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-10px);
    }
}

/* Sombras personalizadas */
.shadow-primary {
    box-shadow: 0 10px 30px rgba(217, 16, 35, 0.3);
}

.shadow-secondary {
    box-shadow: 0 10px 30px rgba(30, 64, 175, 0.3);
}

/* Bordes animados */
.border-animated {
    position: relative;
    border: 2px solid transparent;
}

.border-animated::before {
    content: '';
    position: absolute;
    inset: -2px;
    background: linear-gradient(45deg, #002966, #0047AB, #002966);
    border-radius: inherit;
    opacity: 0;
    transition: opacity 0.3s;
    z-index: -1;
    background-size: 200% 200%;
    animation: gradientMove 3s ease infinite;
}

.border-animated:hover::before {
    opacity: 1;
}

@keyframes gradientMove {
    0% {
        background-position: 0% 50%;
    }
    50% {
        background-position: 100% 50%;
    }
    100% {
        background-position: 0% 50%;
    }
}

/* ===================================
   Blog y Noticias
   =================================== */
.blog-section {
    padding: 4rem 0;
}

.blog-filters {
    display: flex;
    justify-content: center;
    gap: 1rem;
    margin-bottom: 3rem;
    flex-wrap: wrap;
}

.filter-btn {
    padding: 0.75rem 1.5rem;
    border: 2px solid var(--light-gray);
    background: var(--white);
    border-radius: 50px;
    cursor: pointer;
    transition: var(--transition);
    font-weight: 600;
    color: var(--dark);
}

.filter-btn:hover,
.filter-btn.active {
    background: var(--primary);
    color: var(--white);
    border-color: var(--primary);
}

.blog-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));
    gap: 2rem;
    margin-bottom: 3rem;
}

.blog-card {
    background: var(--white);
    border-radius: 16px;
    overflow: hidden;
    box-shadow: var(--shadow);
    transition: var(--transition);
}

.blog-card:hover {
    transform: translateY(-10px);
    box-shadow: var(--shadow-lg);
}

.blog-image {
    position: relative;
    height: 250px;
    overflow: hidden;
}

.blog-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: var(--transition);
}

.blog-card:hover .blog-image img {
    transform: scale(1.1);
}

.blog-category {
    position: absolute;
    top: 15px;
    right: 15px;
    background: var(--primary);
    color: var(--white);
    padding: 0.5rem 1rem;
    border-radius: 50px;
    font-size: 0.85rem;
    font-weight: 600;
}

.blog-category.eventos {
    background: var(--secondary);
}

.blog-category.educacion {
    background: #10b981;
}

.blog-category.logros {
    background: var(--accent);
    color: var(--dark);
}

.blog-content {
    padding: 2rem;
}

.blog-meta {
    display: flex;
    gap: 1.5rem;
    margin-bottom: 1rem;
    font-size: 0.9rem;
    color: var(--gray);
}

.blog-content h3 {
    font-size: 1.4rem;
    margin-bottom: 1rem;
    color: var(--dark);
}

.blog-content p {
    color: var(--gray);
    line-height: 1.7;
    margin-bottom: 1.5rem;
}

.pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 2rem;
}

.pagination-btn {
    padding: 0.75rem 1.5rem;
    border: 2px solid var(--primary);
    background: var(--white);
    color: var(--primary);
    border-radius: 8px;
    cursor: pointer;
    transition: var(--transition);
    font-weight: 600;
}

.pagination-btn:hover:not(:disabled) {
    background: var(--primary);
    color: var(--white);
}

.pagination-btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.pagination-info {
    color: var(--gray);
    font-weight: 500;
}

/* Newsletter */
.newsletter-section {
    background: linear-gradient(135deg, #002966, #0047AB);
    padding: 4rem 0;
}

.newsletter-box {
    text-align: center;
    color: var(--white);
}

.newsletter-box h2 {
    font-size: 2rem;
    margin-bottom: 1rem;
}

.newsletter-box p {
    font-size: 1.1rem;
    margin-bottom: 2rem;
    opacity: 0.95;
}

.newsletter-form {
    display: flex;
    gap: 1rem;
    max-width: 600px;
    margin: 0 auto;
    flex-wrap: wrap;
    justify-content: center;
}

.newsletter-form input {
    flex: 1;
    min-width: 250px;
    padding: 1rem 1.5rem;
    border: none;
    border-radius: 50px;
    font-size: 1rem;
}

.newsletter-form button {
    border-radius: 50px;
}

/* ===================================
   FAQ
   =================================== */
.faq-section {
    padding: 4rem 0;
}

.faq-search {
    max-width: 600px;
    margin: 0 auto 3rem;
}

.faq-search-input {
    width: 100%;
    padding: 1rem 1.5rem;
    border: 2px solid var(--light-gray);
    border-radius: 50px;
    font-size: 1rem;
    transition: var(--transition);
}

.faq-search-input:focus {
    outline: none;
    border-color: var(--primary);
}

.faq-categories {
    display: flex;
    justify-content: center;
    gap: 1rem;
    margin-bottom: 3rem;
    flex-wrap: wrap;
}

.faq-cat-btn {
    padding: 0.75rem 1.5rem;
    border: 2px solid var(--light-gray);
    background: var(--white);
    border-radius: 50px;
    cursor: pointer;
    transition: var(--transition);
    font-weight: 600;
}

.faq-cat-btn:hover,
.faq-cat-btn.active {
    background: var(--primary);
    color: var(--white);
    border-color: var(--primary);
}

.faq-container {
    max-width: 900px;
    margin: 0 auto;
}

.faq-item {
    background: var(--white);
    border-radius: 12px;
    margin-bottom: 1rem;
    box-shadow: var(--shadow);
    overflow: hidden;
}

.faq-question {
    width: 100%;
    padding: 1.5rem 2rem;
    background: none;
    border: none;
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--dark);
    text-align: left;
    transition: var(--transition);
}

.faq-question:hover {
    background: var(--light-gray);
}

.faq-icon {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--primary);
    transition: var(--transition);
}

.faq-item.active .faq-icon {
    transform: rotate(45deg);
}

.faq-answer {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease;
}

.faq-item.active .faq-answer {
    max-height: 500px;
}

.faq-answer p,
.faq-answer ul {
    padding: 0 2rem 1.5rem;
    color: var(--gray);
    line-height: 1.8;
}

.faq-answer ul {
    list-style: disc;
    margin-left: 2rem;
}

.faq-answer li {
    margin-bottom: 0.5rem;
}

.faq-cta {
    text-align: center;
    margin-top: 4rem;
    padding: 3rem;
    background: var(--light-gray);
    border-radius: 16px;
}

.faq-cta h3 {
    font-size: 2rem;
    margin-bottom: 1rem;
}

.faq-cta p {
    color: var(--gray);
    margin-bottom: 2rem;
}

.faq-cta-buttons {
    display: flex;
    gap: 1rem;
    justify-content: center;
    flex-wrap: wrap;
}

/* ===================================
   Calendario
   =================================== */
.calendario-section {
    padding: 4rem 0;
}

.calendario-info {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 2rem;
    margin-bottom: 4rem;
}

.info-card {
    background: var(--white);
    padding: 2rem;
    border-radius: 16px;
    box-shadow: var(--shadow);
    text-align: center;
    transition: var(--transition);
}

.info-card:hover {
    transform: translateY(-5px);
    box-shadow: var(--shadow-lg);
}

.info-icon {
    font-size: 3rem;
    margin-bottom: 1rem;
}

.info-card h3 {
    font-size: 1.2rem;
    margin-bottom: 0.5rem;
    color: var(--dark);
}

.info-card p {
    color: var(--gray);
    font-weight: 600;
}

/* Timeline */
.timeline-container {
    margin: 4rem 0;
}

.timeline {
    position: relative;
    max-width: 800px;
    margin: 3rem auto;
    padding-left: 50px;
}

.timeline::before {
    content: '';
    position: absolute;
    left: 20px;
    top: 0;
    bottom: 0;
    width: 4px;
    background: linear-gradient(to bottom, #002966, #0047AB);
}

.timeline-item {
    position: relative;
    margin-bottom: 3rem;
}

.timeline-marker {
    position: absolute;
    left: -38px;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    border: 4px solid var(--white);
    box-shadow: 0 0 0 4px var(--primary);
}

.timeline-marker.matricula {
    box-shadow: 0 0 0 4px #C8102E;
}

.timeline-marker.inicio {
    box-shadow: 0 0 0 4px #10b981;
}

.timeline-marker.evaluacion {
    box-shadow: 0 0 0 4px #fbbf24;
}

.timeline-marker.vacaciones {
    box-shadow: 0 0 0 4px #8b5cf6;
}

.timeline-marker.graduacion {
    box-shadow: 0 0 0 4px #ec4899;
}

.timeline-content {
    background: var(--white);
    padding: 1.5rem 2rem;
    border-radius: 12px;
    box-shadow: var(--shadow);
}

.timeline-date {
    color: var(--primary);
    font-weight: 700;
    font-size: 0.9rem;
    margin-bottom: 0.5rem;
}

.timeline-content h4 {
    font-size: 1.3rem;
    margin-bottom: 0.5rem;
    color: var(--dark);
}

.timeline-content p {
    color: var(--gray);
    line-height: 1.7;
}

/* Eventos PrÃ³ximos */
.eventos-proximos {
    margin: 4rem 0;
}

.eventos-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 2rem;
    margin-top: 2rem;
}

.evento-card {
    background: var(--white);
    padding: 2rem;
    border-radius: 16px;
    box-shadow: var(--shadow);
    display: flex;
    gap: 1.5rem;
    transition: var(--transition);
}

.evento-card:hover {
    transform: translateY(-5px);
    box-shadow: var(--shadow-lg);
}

.evento-fecha {
    background: linear-gradient(135deg, #002966, #0047AB);
    color: var(--white);
    padding: 1rem;
    border-radius: 12px;
    text-align: center;
    min-width: 80px;
}

.fecha-dia {
    font-size: 2rem;
    font-weight: 700;
    line-height: 1;
}

.fecha-mes {
    font-size: 0.9rem;
    font-weight: 600;
    margin-top: 0.25rem;
}

.evento-info h4 {
    font-size: 1.2rem;
    margin-bottom: 0.5rem;
    color: var(--dark);
}

.evento-info p {
    color: var(--gray);
    margin-bottom: 0.75rem;
    font-size: 0.95rem;
}

.evento-hora {
    color: var(--primary);
    font-weight: 600;
    font-size: 0.9rem;
}

/* Descargas */
.descargas-section {
    margin-top: 4rem;
    padding: 2rem;
    background: var(--light-gray);
    border-radius: 16px;
    text-align: center;
}

.descargas-section h3 {
    margin-bottom: 1.5rem;
    font-size: 1.5rem;
}

.descargas-grid {
    display: flex;
    gap: 1rem;
    justify-content: center;
    flex-wrap: wrap;
}

.descarga-btn {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 1rem 2rem;
    background: var(--white);
    border-radius: 12px;
    box-shadow: var(--shadow);
    transition: var(--transition);
    font-weight: 600;
}

.descarga-btn:hover {
    transform: translateY(-3px);
    box-shadow: var(--shadow-lg);
    background: var(--primary);
    color: var(--white);
}

.descarga-icon {
    font-size: 1.5rem;
}

/* Responsive */
@media (max-width: 768px) {
    .blog-grid {
        grid-template-columns: 1fr;
    }
    
    .timeline {
        padding-left: 30px;
    }
    
    .timeline-marker {
        left: -33px;
    }
    
    .evento-card {
        flex-direction: column;
        text-align: center;
    }
    
    .evento-fecha {
        margin: 0 auto;
    }
}

/* Back to Top Button */
.back-to-top {
    position: fixed;
    bottom: 100px;
    right: 30px;
    width: 50px;
    height: 50px;
    background: var(--primary);
    color: var(--white);
    border: none;
    border-radius: 50%;
    font-size: 1.5rem;
    cursor: pointer;
    opacity: 0;
    visibility: hidden;
    transition: var(--transition);
    z-index: 9990;
    box-shadow: 0 4px 12px rgba(217, 16, 35, 0.4);
}

.back-to-top.show {
    opacity: 1;
    visibility: visible;
}

.back-to-top:hover {
    background: var(--primary-dark);
    transform: translateY(-5px);
}

/* ===================================
   Live Stats Bar
   =================================== */
.live-stats-bar {
    background: transparent;
    padding: 0;
    position: relative;
    z-index: 998;
    box-shadow: none;
}

.live-stats-content {
    display: none;
}

.stat-item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    color: var(--white);
    font-size: 0.95rem;
}

.stat-icon {
    font-size: 1.3rem;
}

.stat-icon.pulse {
    animation: pulse 2s infinite;
}

.stat-text strong {
    font-size: 1.2rem;
    font-weight: 700;
}

.cta-item {
    margin-left: auto;
}

.btn-matricula-now {
    background: var(--accent);
    color: var(--dark);
    padding: 0.75rem 1.5rem;
    border-radius: 50px;
    font-weight: 700;
    text-transform: uppercase;
    animation: pulse 2s infinite;
    box-shadow: 0 4px 12px rgba(251, 191, 36, 0.4);
}

.btn-matricula-now:hover {
    transform: scale(1.05);
    box-shadow: 0 6px 20px rgba(251, 191, 36, 0.6);
}

/* Footer CTA */
.footer-cta-box {
    margin-top: 1.5rem;
    padding: 1.5rem;
    background: rgba(255,255,255,0.1);
    border-radius: 12px;
    text-align: center;
}

.btn-footer-cta {
    display: inline-block;
    background: #25d366;
    color: var(--white);
    padding: 1rem 2rem;
    border-radius: 50px;
    font-weight: 700;
    transition: var(--transition);
}

.btn-footer-cta:hover {
    background: #20ba5a;
    transform: scale(1.05);
}

/* User Type Selector */
.user-type-selector {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
    margin-bottom: 2rem;
}

.user-type-btn {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    padding: 1.5rem 1rem;
    background: var(--light-gray);
    border: 2px solid transparent;
    border-radius: 12px;
    cursor: pointer;
    transition: var(--transition);
    font-weight: 600;
}

.user-type-btn:hover {
    background: var(--white);
    border-color: var(--primary);
}

.user-type-btn.active {
    background: var(--primary);
    color: var(--white);
    border-color: var(--primary);
}

.type-icon {
    font-size: 2rem;
}

/* ===================================
   Dashboard Estudiante
   =================================== */
.dashboard-header {
    background: linear-gradient(135deg, #002966, #0047AB);
    color: var(--white);
    padding: 2rem 0;
}

.dashboard-welcome h1 {
    font-size: 2rem;
    margin-bottom: 0.5rem;
}

.dashboard-welcome p {
    opacity: 0.95;
}

.dashboard-content {
    padding: 2rem 0;
    background: var(--light-gray);
    min-height: calc(100vh - 200px);
}

.dashboard-grid {
    display: grid;
    grid-template-columns: 250px 1fr;
    gap: 2rem;
}

.dashboard-sidebar {
    background: var(--white);
    border-radius: 16px;
    padding: 1.5rem;
    height: fit-content;
    position: sticky;
    top: 100px;
}

.dashboard-nav {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.nav-item {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem;
    border-radius: 8px;
    color: var(--dark);
    transition: var(--transition);
}

.nav-item:hover,
.nav-item.active {
    background: var(--primary);
    color: var(--white);
}

.nav-icon {
    font-size: 1.3rem;
}

.dashboard-main {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

.stats-cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 1.5rem;
}

.stat-card-dash {
    background: var(--white);
    padding: 1.5rem;
    border-radius: 12px;
    display: flex;
    align-items: center;
    gap: 1rem;
    box-shadow: var(--shadow);
    transition: var(--transition);
}

.stat-card-dash:hover {
    transform: translateY(-5px);
    box-shadow: var(--shadow-lg);
}

.stat-icon-dash {
    font-size: 2.5rem;
}

.stat-info-dash h3 {
    font-size: 0.9rem;
    color: var(--gray);
    margin-bottom: 0.25rem;
}

.stat-number-dash {
    font-size: 2rem;
    font-weight: 700;
    color: var(--primary);
    margin: 0;
}

.section-card {
    background: var(--white);
    padding: 2rem;
    border-radius: 16px;
    box-shadow: var(--shadow);
}

.section-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1.5rem;
    padding-bottom: 1rem;
    border-bottom: 2px solid var(--light-gray);
}

.section-header h2 {
    font-size: 1.5rem;
    margin: 0;
}

.live-badge {
    background: #ef4444;
    color: var(--white);
    padding: 0.5rem 1rem;
    border-radius: 50px;
    font-size: 0.85rem;
    font-weight: 700;
    animation: pulse 2s infinite;
}

.live-classes-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 1.5rem;
}

.live-class-card {
    background: var(--light-gray);
    padding: 1.5rem;
    border-radius: 12px;
    position: relative;
}

.live-indicator {
    position: absolute;
    top: 10px;
    right: 10px;
    background: #ef4444;
    color: var(--white);
    padding: 0.3rem 0.8rem;
    border-radius: 50px;
    font-size: 0.75rem;
    font-weight: 700;
    animation: pulse 2s infinite;
}

.live-class-card h4 {
    font-size: 1.2rem;
    margin-bottom: 1rem;
    color: var(--dark);
}

.live-class-card p {
    margin: 0.5rem 0;
    color: var(--gray);
    font-size: 0.95rem;
}

.teacher,
.students,
.topic {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.courses-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 1.5rem;
}

.course-card {
    background: var(--light-gray);
    padding: 1.5rem;
    border-radius: 12px;
}

.course-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1rem;
}

.course-header h4 {
    font-size: 1.2rem;
    margin: 0;
}

.course-badge {
    background: var(--primary);
    color: var(--white);
    padding: 0.3rem 0.8rem;
    border-radius: 50px;
    font-size: 0.75rem;
    font-weight: 600;
}

.course-progress {
    margin-bottom: 1rem;
}

.progress-bar {
    width: 100%;
    height: 8px;
    background: var(--white);
    border-radius: 50px;
    overflow: hidden;
    margin-bottom: 0.5rem;
}

.progress-fill {
    height: 100%;
    background: linear-gradient(90deg, #002966, #0047AB);
    border-radius: 50px;
    transition: width 0.3s ease;
}

.progress-text {
    font-size: 0.85rem;
    color: var(--gray);
    font-weight: 600;
}

.course-info {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin-bottom: 1rem;
    font-size: 0.9rem;
    color: var(--gray);
}

.tasks-list {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.task-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1.5rem;
    background: var(--light-gray);
    border-radius: 12px;
    gap: 1rem;
}

.task-info h4 {
    font-size: 1.1rem;
    margin-bottom: 0.25rem;
}

.task-info p {
    color: var(--gray);
    font-size: 0.9rem;
    margin: 0;
}

.task-meta {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-shrink: 0;
}

.task-date {
    color: var(--gray);
    font-size: 0.9rem;
    font-weight: 600;
}

/* Responsive Dashboard */
@media (max-width: 992px) {
    .dashboard-grid {
        grid-template-columns: 1fr;
    }
    
    .dashboard-sidebar {
        position: static;
    }
    
    .user-type-selector {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 768px) {
    .live-stats-bar .stat-item--status {
        grid-column: 1 / -1;
    }

    .cta-item {
        margin-left: 0;
    }
    
    .task-item {
        flex-direction: column;
        align-items: flex-start;
    }
    
    .task-meta {
        width: 100%;
        justify-content: space-between;
    }
}

/* ===================================
   Loading Screen Moderno Mejorado
   =================================== */
.loading-screen-modern {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, #C8102E 0%, #B00A1C 50%, #8B0716 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 99999;
    transition: opacity 0.5s, visibility 0.5s;
}

.loading-screen-modern.hidden {
    opacity: 0;
    visibility: hidden;
}

.loading-content-modern {
    text-align: center;
    max-width: 400px;
    padding: 2rem;
}

.loading-logo-modern {
    margin-bottom: 3rem;
    animation: logoFloat 3s ease-in-out infinite;
}

.logo-circle {
    width: 150px;
    height: 150px;
    background: rgba(255,255,255,0.1);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto;
    border: 5px solid rgba(255,255,255,0.2);
    box-shadow: 0 20px 60px rgba(0,0,0,0.3);
    position: relative;
    overflow: hidden;
}

.logo-circle::before {
    content: '';
    position: absolute;
    top: -50%;
    left: -50%;
    width: 200%;
    height: 200%;
    background: linear-gradient(45deg, transparent, rgba(255,255,255,0.1), transparent);
    animation: shine 3s infinite;
}

@keyframes shine {
    0% {
        transform: rotate(0deg);
    }
    100% {
        transform: rotate(360deg);
    }
}

.loading-logo-img {
    width: 100px;
    height: auto;
    filter: brightness(0) invert(1);
    position: relative;
    z-index: 1;
}

.loading-bar-container {
    margin-bottom: 2rem;
}

.loading-bar {
    width: 100%;
    height: 6px;
    background: rgba(255,255,255,0.2);
    border-radius: 50px;
    overflow: hidden;
    margin-bottom: 1rem;
}

.loading-bar-fill {
    height: 100%;
    background: linear-gradient(90deg, #ffffff, #fbbf24, #ffffff);
    background-size: 200% 100%;
    border-radius: 50px;
    animation: shimmer 1.5s infinite;
    width: 0%;
    transition: width 0.3s ease;
}

@keyframes loadingProgress {
    0% {
        width: 0%;
    }
    100% {
        width: 100%;
    }
}

@keyframes shimmer {
    0% {
        background-position: -200% 0;
    }
    100% {
        background-position: 200% 0;
    }
}

.loading-percentage {
    color: var(--white);
    font-size: 1.5rem;
    font-weight: 700;
    margin: 0;
}

.loading-text {
    color: var(--white);
    font-size: 1.2rem;
    font-weight: 500;
    margin: 0;
    opacity: 0.9;
}

/* ===================================
   MatrÃ­cula DinÃ¡mica
   =================================== */
.matricula-dinamica {
    padding: 4rem 0;
    background: var(--light-gray);
}

.paso-container {
    background: var(--white);
    padding: 3rem;
    border-radius: 20px;
    box-shadow: 0 10px 40px rgba(217, 16, 35, 0.1);
    max-width: 900px;
    margin: 0 auto;
}

.paso-header {
    text-align: center;
    margin-bottom: 3rem;
}

.paso-header h2 {
    font-size: 2rem;
    color: var(--dark);
    margin-bottom: 0.5rem;
}

.paso-header p {
    color: var(--gray);
    font-size: 1.1rem;
}

.edad-selector {
    max-width: 500px;
    margin: 0 auto;
    text-align: center;
}

.form-group-large {
    margin-bottom: 2rem;
}

.form-group-large label {
    display: block;
    font-size: 1.3rem;
    font-weight: 600;
    color: var(--dark);
    margin-bottom: 1rem;
}

.input-large {
    width: 100%;
    padding: 1.5rem;
    font-size: 2rem;
    text-align: center;
    border: 3px solid var(--light-gray);
    border-radius: 15px;
    transition: var(--transition);
    font-weight: 700;
    color: #C8102E;
}

.input-large:focus {
    outline: none;
    border-color: #C8102E;
    box-shadow: 0 0 0 4px rgba(217, 16, 35, 0.1);
}

.plan-card-grande {
    background: linear-gradient(135deg, #C8102E 0%, #B00A1C 100%);
    color: var(--white);
    padding: 3rem;
    border-radius: 20px;
    position: relative;
    overflow: hidden;
}

.plan-card-grande::before {
    content: '';
    position: absolute;
    top: -50%;
    right: -50%;
    width: 200%;
    height: 200%;
    background: radial-gradient(circle, rgba(255,255,255,0.1) 0%, transparent 70%);
    animation: rotate 20s linear infinite;
}

@keyframes rotate {
    0% {
        transform: rotate(0deg);
    }
    100% {
        transform: rotate(360deg);
    }
}

.plan-badge {
    position: absolute;
    top: 20px;
    right: 20px;
    background: #fbbf24;
    color: var(--dark);
    padding: 0.5rem 1.5rem;
    border-radius: 50px;
    font-weight: 700;
    font-size: 0.9rem;
    z-index: 1;
}

.plan-card-grande h3 {
    font-size: 2.5rem;
    margin-bottom: 0.5rem;
    position: relative;
    z-index: 1;
}

.plan-edad {
    font-size: 1.2rem;
    opacity: 0.9;
    margin-bottom: 2rem;
    position: relative;
    z-index: 1;
}

.plan-precios {
    background: rgba(255,255,255,0.1);
    padding: 2rem;
    border-radius: 15px;
    margin-bottom: 2rem;
    position: relative;
    z-index: 1;
}

.precio-item {
    display: flex;
    justify-content: space-between;
    padding: 1rem 0;
    border-bottom: 1px solid rgba(255,255,255,0.2);
}

.precio-item:last-child {
    border-bottom: none;
}

.precio-item.destacado {
    background: rgba(255,255,255,0.1);
    padding: 1.5rem;
    margin: 1rem -1rem -1rem;
    border-radius: 0 0 15px 15px;
}

.precio-label {
    font-size: 1.1rem;
    opacity: 0.9;
}

.precio-valor {
    font-size: 1.5rem;
    font-weight: 700;
}

.plan-beneficios {
    position: relative;
    z-index: 1;
}

.plan-beneficios h4 {
    font-size: 1.3rem;
    margin-bottom: 1rem;
}

.plan-beneficios ul {
    list-style: none;
    padding: 0;
}

.plan-beneficios li {
    padding: 0.75rem 0;
    font-size: 1.1rem;
    opacity: 0.95;
}

.paso-acciones {
    display: flex;
    gap: 1rem;
    justify-content: center;
    margin-top: 2rem;
}

.resumen-pago {
    background: var(--light-gray);
    padding: 2rem;
    border-radius: 15px;
    margin: 2rem 0;
}

.resumen-pago h3 {
    margin-bottom: 1.5rem;
    color: var(--dark);
}

.resumen-detalle {
    background: var(--white);
    padding: 1.5rem;
    border-radius: 10px;
}

.resumen-row {
    display: flex;
    justify-content: space-between;
    padding: 1rem 0;
    border-bottom: 1px solid var(--light-gray);
}

.resumen-row:last-child {
    border-bottom: none;
}

.resumen-row.total {
    background: #C8102E;
    color: var(--white);
    padding: 1.5rem;
    margin: 1rem -1.5rem -1.5rem;
    border-radius: 0 0 10px 10px;
    font-size: 1.2rem;
}

/* ===================================
   Verificar MatrÃ­cula
   =================================== */
.verificar-section {
    padding: 4rem 0;
    background: var(--light-gray);
}

.verificar-container {
    max-width: 600px;
    margin: 0 auto;
}

.verificar-box {
    background: var(--white);
    padding: 3rem;
    border-radius: 20px;
    box-shadow: 0 10px 40px rgba(217, 16, 35, 0.1);
    text-align: center;
}

.verificar-icon {
    font-size: 5rem;
    margin-bottom: 1.5rem;
}

.verificar-box h2 {
    font-size: 2rem;
    margin-bottom: 1rem;
    color: var(--dark);
}

.verificar-box > p {
    color: var(--gray);
    margin-bottom: 2rem;
    font-size: 1.1rem;
}

.verificar-form {
    margin-bottom: 2rem;
}

.resultado-busqueda {
    margin-top: 2rem;
    padding: 2rem;
    border-radius: 15px;
    animation: fadeInUp 0.5s ease;
}

.loading-result {
    text-align: center;
    padding: 2rem;
}

.loading-result .spinner {
    width: 50px;
    height: 50px;
    border: 5px solid var(--light-gray);
    border-top-color: #C8102E;
    border-radius: 50%;
    margin: 0 auto 1rem;
    animation: spin 1s linear infinite;
}

.resultado-encontrado {
    background: linear-gradient(135deg, #10b981 0%, #059669 100%);
    color: var(--white);
    padding: 2rem;
    border-radius: 15px;
}

.resultado-no-encontrado {
    background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%);
    color: var(--white);
    padding: 2rem;
    border-radius: 15px;
}

.resultado-icon {
    font-size: 4rem;
    margin-bottom: 1rem;
}

.resultado-info {
    background: rgba(255,255,255,0.1);
    padding: 1.5rem;
    border-radius: 10px;
    margin: 1.5rem 0;
    text-align: left;
}

.info-row {
    display: flex;
    justify-content: space-between;
    padding: 0.75rem 0;
    border-bottom: 1px solid rgba(255,255,255,0.2);
}

.info-row:last-child {
    border-bottom: none;
}

.badge-activo {
    background: #10b981;
    padding: 0.3rem 1rem;
    border-radius: 50px;
    font-weight: 700;
    font-size: 0.9rem;
}

.resultado-acciones {
    display: flex;
    gap: 1rem;
    margin-top: 1.5rem;
    flex-wrap: wrap;
    justify-content: center;
}

.verificar-help {
    margin-top: 2rem;
    padding-top: 2rem;
    border-top: 2px solid var(--light-gray);
}

.verificar-help p {
    color: var(--gray);
    margin-bottom: 1rem;
}

/* Responsive */
@media (max-width: 768px) {
    .paso-container {
        padding: 2rem 1.5rem;
    }
    
    .input-large {
        font-size: 1.5rem;
    }
    
    .plan-card-grande {
        padding: 2rem;
    }
    
    .paso-acciones {
        flex-direction: column;
    }
    
    .paso-acciones .btn {
        width: 100%;
    }
}

/* ===================================
   Convenios Modernos
   =================================== */
.convenios-grid-modern {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 2rem;
}

.convenio-card-modern {
    background: var(--white);
    padding: 2.5rem;
    border-radius: 20px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.06);
    transition: var(--transition);
    position: relative;
    border: 2px solid transparent;
    display: flex;
    flex-direction: column;
}

.convenio-card-modern:hover {
    transform: translateY(-8px);
    box-shadow: 0 12px 40px rgba(0,0,0,0.12);
    border-color: var(--primary);
}

.convenio-card-modern.featured {
    background: linear-gradient(135deg, rgba(0, 71, 171, 0.03) 0%, rgba(0, 71, 171, 0.08) 100%);
    border-color: var(--primary);
    transform: scale(1.02);
}

.convenio-card-modern.featured:hover {
    transform: scale(1.05) translateY(-8px);
}

.badge-convenio {
    position: absolute;
    top: -12px;
    right: 20px;
    background: linear-gradient(135deg, var(--accent), #f59e0b);
    color: var(--dark);
    padding: 0.5rem 1.25rem;
    border-radius: 50px;
    font-size: 0.8rem;
    font-weight: 700;
    box-shadow: 0 4px 12px rgba(251, 191, 36, 0.4);
    z-index: 1;
    display: flex;
    align-items: center;
    gap: 0.35rem;
}

.convenio-icon-modern {
    width: 80px;
    height: 80px;
    background: linear-gradient(135deg, rgba(0, 71, 171, 0.08), rgba(0, 71, 171, 0.03));
    border-radius: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    margin-bottom: 1.5rem;
    transition: var(--transition);
    color: var(--primary);
}

.convenio-card-modern:hover .convenio-icon-modern {
    transform: scale(1.08);
    background: linear-gradient(135deg, rgba(0, 71, 171, 0.15), rgba(0, 71, 171, 0.08));
}

.convenio-card-modern h3 {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--dark);
    margin-bottom: 0.5rem;
}

.convenio-subtitle {
    color: var(--primary);
    font-size: 0.9rem;
    font-weight: 600;
    margin-bottom: 1rem;
}

.convenio-description {
    color: var(--gray);
    line-height: 1.7;
    margin-bottom: 1.5rem;
    flex-grow: 1;
}

.convenio-beneficios-modern {
    list-style: none;
    padding: 0;
    margin: 0 0 1.5rem 0;
}

.convenio-beneficios-modern li {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.65rem 0;
    color: var(--dark);
    font-size: 0.95rem;
}

.convenio-beneficios-modern li i {
    color: var(--primary);
    font-size: 1rem;
}

/* Beneficios para Egresados */
.beneficios-grid-modern {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 2rem;
}

.beneficio-convenio-modern {
    text-align: center;
    padding: 2rem;
    background: var(--white);
    border-radius: 16px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.06);
    transition: var(--transition);
}

.beneficio-convenio-modern:hover {
    transform: translateY(-8px);
    box-shadow: 0 12px 40px rgba(0,0,0,0.12);
}

.beneficio-icon-circle {
    width: 80px;
    height: 80px;
    background: linear-gradient(135deg, var(--primary), var(--primary-dark));
    color: var(--white);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    margin: 0 auto 1.5rem;
    transition: var(--transition);
}

.beneficio-convenio-modern:hover .beneficio-icon-circle {
    transform: scale(1.1) rotate(5deg);
}

.beneficio-convenio-modern h4 {
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--dark);
    margin-bottom: 0.75rem;
}

.beneficio-convenio-modern p {
    color: var(--gray);
    line-height: 1.7;
    font-size: 0.95rem;
}

/* CTA Convenios */
.cta-convenios {
    background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
    color: var(--white);
    padding: 5rem 0;
    text-align: center;
}

.cta-content-convenios h2 {
    font-size: 2.5rem;
    margin-bottom: 1rem;
    color: var(--white);
}

.cta-content-convenios h2 i {
    margin-right: 0.5rem;
}

.cta-content-convenios p {
    font-size: 1.2rem;
    margin-bottom: 2rem;
    opacity: 0.95;
}

.cta-convenios .cta-buttons {
    display: flex;
    gap: 1rem;
    justify-content: center;
    flex-wrap: wrap;
}

.cta-convenios .btn {
    padding: 1rem 2rem;
    font-size: 1.1rem;
    border-radius: 50px;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.cta-convenios .btn-primary {
    background: #25d366;
    border: none;
}

.cta-convenios .btn-primary:hover {
    background: #20ba5a;
    transform: translateY(-3px);
    box-shadow: 0 8px 24px rgba(37, 211, 102, 0.4);
}

.cta-convenios .btn-secondary {
    background: var(--white);
    color: var(--primary);
    border: 2px solid var(--white);
}

.cta-convenios .btn-secondary:hover {
    background: transparent;
    color: var(--white);
    transform: translateY(-3px);
}

/* Responsive Convenios */
@media (max-width: 768px) {
    .convenios-grid-modern {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }
    
    .convenio-card-modern.featured {
        transform: scale(1);
    }
    
    .convenio-card-modern.featured:hover {
        transform: translateY(-8px);
    }
    
    .beneficios-grid-modern {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }
    
    .cta-content-convenios h2 {
        font-size: 2rem;
    }
    
    .cta-content-convenios p {
        font-size: 1rem;
    }
    
    .cta-convenios .btn {
        width: 100%;
        justify-content: center;
    }
}

/* ===================================
   Testimonios con Font Awesome
   =================================== */
.testimonio-stars {
    display: flex;
    gap: 0.25rem;
    justify-content: center;
    margin-bottom: 1rem;
    color: var(--accent);
    font-size: 1.2rem;
}

.author-avatar {
    width: 60px;
    height: 60px;
    background: linear-gradient(135deg, var(--primary), var(--primary-dark));
    color: var(--white);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.8rem;
    flex-shrink: 0;
}

/* ===================================
   EstadÃ­sticas con Font Awesome
   =================================== */
.stat-icon-circle {
    width: 80px;
    height: 80px;
    background: rgba(255, 255, 255, 0.2);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2.5rem;
    margin: 0 auto 1rem;
    backdrop-filter: blur(10px);
}

.stat-icon-circle i {
    color: var(--white);
}

/* ===================================
   Beneficios con Font Awesome
   =================================== */
.beneficio-icon-wrapper {
    margin-bottom: 1rem;
}

.beneficio-icon {
    font-size: 3rem;
    color: var(--primary);
    transition: var(--transition);
}

.beneficio-icon i {
    display: block;
}

.beneficio-item:hover .beneficio-icon {
    transform: scale(1.1);
    color: var(--secondary);
}

/* ===================================
   Top Bar con Font Awesome
   =================================== */
.top-bar-link i {
    font-size: 0.95rem;
}

.social-icon i {
    font-size: 1.1rem;
}

.btn-whatsapp-top i {
    font-size: 1rem;
}

/* ===================================
   Dropdown Menu con Font Awesome
   =================================== */
.dropdown-menu a i {
    width: 18px;
    text-align: center;
    color: var(--primary);
}

.btn-aula-virtual i {
    font-size: 1rem;
}

/* ===================================
   Alert Banner con Font Awesome
   =================================== */
.alert-banner .alert-icon {
    font-size: 1.15rem;
}

.alert-link i {
    font-size: 0.85rem;
    margin-left: 0.25rem;
}

/* Responsive para iconos */
@media (max-width: 768px) {
    .stat-icon-circle {
        width: 60px;
        height: 60px;
        font-size: 2rem;
    }
    
    .beneficio-icon {
        font-size: 2.5rem;
    }
    
    .author-avatar {
        width: 50px;
        height: 50px;
        font-size: 1.5rem;
    }
}

/* ===================================
   Logos de Convenios
   =================================== */
.logos-convenios-section {
    background: linear-gradient(180deg, #ffffff 0%, #f9fafb 100%);
    padding: 4rem 0;
    border-top: 1px solid rgba(0, 71, 171, 0.1);
    border-bottom: 1px solid rgba(0, 71, 171, 0.1);
}

.logos-title {
    text-align: center;
    font-size: 1.8rem;
    font-weight: 700;
    color: var(--dark);
    margin-bottom: 3rem;
    position: relative;
    padding-bottom: 1rem;
}

.logos-title::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 80px;
    height: 3px;
    background: linear-gradient(90deg, var(--primary), var(--secondary));
    border-radius: 2px;
}

.logos-convenios-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 2rem;
    align-items: center;
    justify-items: center;
}

.logo-convenio-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
    text-align: center;
    transition: var(--transition);
    position: relative;
}

.logo-convenio-item:hover {
    transform: translateY(-5px);
}

.logo-convenio-box {
    width: 100px;
    height: 100px;
    background: var(--white);
    border: 2px solid rgba(0, 71, 171, 0.1);
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2.5rem;
    color: var(--primary);
    transition: var(--transition);
    box-shadow: 0 4px 12px rgba(0,0,0,0.05);
}

.logo-convenio-item:hover .logo-convenio-box {
    border-color: var(--primary);
    box-shadow: 0 8px 24px rgba(0, 71, 171, 0.15);
    transform: scale(1.05);
}

.logo-convenio-box.featured {
    background: linear-gradient(135deg, rgba(0, 71, 171, 0.08), rgba(0, 71, 171, 0.03));
    border-color: var(--primary);
    border-width: 3px;
}

.logo-convenio-item.featured:hover .logo-convenio-box {
    background: linear-gradient(135deg, rgba(0, 71, 171, 0.15), rgba(0, 71, 171, 0.08));
}

.logo-convenio-name {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--dark);
    max-width: 120px;
    line-height: 1.3;
}

.badge-mini {
    position: absolute;
    top: -8px;
    right: 10px;
    background: linear-gradient(135deg, var(--accent), #f59e0b);
    color: var(--dark);
    width: 24px;
    height: 24px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.7rem;
    box-shadow: 0 2px 8px rgba(251, 191, 36, 0.4);
}

/* Responsive Logos Convenios */
@media (max-width: 768px) {
    .logos-convenios-grid {
        grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
        gap: 1.5rem;
    }
    
    .logo-convenio-box {
        width: 80px;
        height: 80px;
        font-size: 2rem;
    }
    
    .logos-title {
        font-size: 1.5rem;
        margin-bottom: 2rem;
    }
}

@media (max-width: 480px) {
    .logos-convenios-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 1.25rem;
    }
}

/* ===================================
   Logos Oficiales y Convenios en Footer
   =================================== */
.logos-section-title {
    text-align: center;
    font-size: 1.3rem;
    font-weight: 600;
    color: var(--dark);
    margin-bottom: 2rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.logos-divider {
    height: 2px;
    background: linear-gradient(90deg, transparent, var(--primary), transparent);
    margin: 3rem 0;
    opacity: 0.3;
}

/* Carrusel de Logos */
.logos-carousel-wrapper {
    overflow: hidden;
    position: relative;
    padding: 1rem 0;
}

.logos-carousel {
    display: flex;
    gap: 3rem;
    animation: scroll-logos 30s linear infinite;
    width: fit-content;
}

.logos-carousel:hover {
    animation-play-state: paused;
}

@keyframes scroll-logos {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(-50%);
    }
}

.logo-convenio-footer {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
    text-align: center;
    transition: var(--transition);
    position: relative;
    min-width: 120px;
    flex-shrink: 0;
}

.logo-convenio-footer:hover {
    transform: translateY(-5px);
}

.logo-convenio-icon {
    width: 70px;
    height: 70px;
    background: var(--white);
    border: 2px solid rgba(0, 71, 171, 0.15);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.8rem;
    color: var(--primary);
    transition: var(--transition);
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}

.logo-convenio-footer:hover .logo-convenio-icon {
    border-color: var(--primary);
    box-shadow: 0 4px 16px rgba(0, 71, 171, 0.2);
    transform: scale(1.05);
}

.logo-convenio-icon.featured {
    background: linear-gradient(135deg, rgba(0, 71, 171, 0.08), rgba(0, 71, 171, 0.03));
    border-color: var(--primary);
    border-width: 2.5px;
}

.logo-convenio-footer.featured:hover .logo-convenio-icon {
    background: linear-gradient(135deg, rgba(0, 71, 171, 0.15), rgba(0, 71, 171, 0.08));
}

.logo-convenio-footer span {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--dark);
    max-width: 110px;
    line-height: 1.2;
}

.badge-star {
    position: absolute;
    top: -6px;
    right: 15px;
    background: linear-gradient(135deg, var(--accent), #f59e0b);
    color: var(--dark);
    width: 20px;
    height: 20px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.65rem;
    box-shadow: 0 2px 6px rgba(251, 191, 36, 0.4);
}

/* Responsive Logos Footer */
@media (max-width: 768px) {
    .logos-carousel {
        gap: 2rem;
        animation-duration: 25s;
    }
    
    .logo-convenio-footer {
        min-width: 100px;
    }
    
    .logo-convenio-icon {
        width: 60px;
        height: 60px;
        font-size: 1.5rem;
    }
    
    .logos-section-title {
        font-size: 1.1rem;
        margin-bottom: 1.5rem;
    }
    
    .logos-divider {
        margin: 2rem 0;
    }
}

@media (max-width: 480px) {
    .logos-carousel {
        gap: 1.5rem;
        animation-duration: 20s;
    }
    
    .logo-convenio-footer {
        min-width: 90px;
    }
    
    .logo-convenio-footer span {
        font-size: 0.75rem;
    }
}

/* ===================================
   Footer con Font Awesome
   =================================== */
.footer-social a i {
    font-size: 1.2rem;
}

.contact-icon {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 71, 171, 0.1);
    border-radius: 50%;
    color: var(--primary);
    font-size: 1.2rem;
}

.btn-footer-cta i {
    font-size: 1.1rem;
    margin-right: 0.5rem;
}

/* Live Stats Bar con Font Awesome */
.stat-icon {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.1);
    border-radius: 50%;
    font-size: 1.2rem;
}

.stat-icon i {
    color: inherit;
}

.btn-matricula-now i {
    margin-right: 0.5rem;
}

/* ===================================
   Beneficios Secundaria Modernos
   =================================== */
.beneficios-secundaria-modern {
    margin-top: 3rem;
    padding: 3rem;
    background: linear-gradient(135deg, rgba(0, 71, 171, 0.03) 0%, rgba(217, 16, 35, 0.03) 100%);
    border-radius: 20px;
    border: 2px solid rgba(0, 71, 171, 0.1);
}

.beneficios-secundaria-modern h3 {
    font-size: 1.8rem;
    font-weight: 700;
    color: var(--dark);
    margin-bottom: 2.5rem;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
}

.beneficios-secundaria-modern h3 i {
    color: var(--accent);
    font-size: 2rem;
}

.beneficios-cards-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 2rem;
}

.beneficio-card-modern {
    background: var(--white);
    padding: 2rem;
    border-radius: 16px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.06);
    transition: var(--transition);
    text-align: center;
    border: 2px solid transparent;
    position: relative;
    overflow: hidden;
}

.beneficio-card-modern::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--primary), var(--secondary));
    transform: scaleX(0);
    transition: var(--transition);
}

.beneficio-card-modern:hover {
    transform: translateY(-8px);
    box-shadow: 0 12px 40px rgba(0,0,0,0.12);
    border-color: var(--primary);
}

.beneficio-card-modern:hover::before {
    transform: scaleX(1);
}

.beneficio-card-icon {
    width: 80px;
    height: 80px;
    background: linear-gradient(135deg, var(--primary), var(--primary-dark));
    color: var(--white);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    margin: 0 auto 1.5rem;
    transition: var(--transition);
    box-shadow: 0 4px 16px rgba(0, 71, 171, 0.3);
}

.beneficio-card-modern:hover .beneficio-card-icon {
    transform: scale(1.1) rotate(5deg);
    box-shadow: 0 8px 24px rgba(0, 71, 171, 0.4);
}

.beneficio-card-modern h4 {
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--dark);
    margin-bottom: 0.75rem;
    line-height: 1.3;
}

.beneficio-card-modern p {
    color: var(--gray);
    font-size: 0.95rem;
    line-height: 1.6;
}

/* AnimaciÃ³n de entrada */
.beneficio-card-modern {
    animation: fadeInUp 0.6s ease backwards;
}

.beneficio-card-modern:nth-child(1) { animation-delay: 0.1s; }
.beneficio-card-modern:nth-child(2) { animation-delay: 0.2s; }
.beneficio-card-modern:nth-child(3) { animation-delay: 0.3s; }
.beneficio-card-modern:nth-child(4) { animation-delay: 0.4s; }
.beneficio-card-modern:nth-child(5) { animation-delay: 0.5s; }
.beneficio-card-modern:nth-child(6) { animation-delay: 0.6s; }

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

/* Responsive Beneficios Modernos */
@media (max-width: 768px) {
    .beneficios-secundaria-modern {
        padding: 2rem 1.5rem;
        margin-top: 2rem;
    }
    
    .beneficios-secundaria-modern h3 {
        font-size: 1.5rem;
        margin-bottom: 2rem;
        flex-direction: column;
        gap: 0.5rem;
    }
    
    .beneficios-cards-grid {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }
    
    .beneficio-card-modern {
        padding: 1.5rem;
    }
    
    .beneficio-card-icon {
        width: 70px;
        height: 70px;
        font-size: 1.8rem;
    }
}

@media (max-width: 480px) {
    .beneficios-secundaria-modern h3 {
        font-size: 1.3rem;
    }
    
    .beneficio-card-modern h4 {
        font-size: 1.1rem;
    }
}

/* ===================================
   Beneficios Modernos - DiseÃ±o Limpio
   =================================== */
.beneficios {
    background: #ffffff;
    padding: 5rem 0;
}

.beneficios-grid-modern {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 2.5rem;
    max-width: 1100px;
    margin: 0 auto;
}

.beneficio-card {
    background: var(--white);
    padding: 2.5rem 2rem;
    border-radius: 16px;
    text-align: center;
    transition: all 0.3s ease;
    border: 2px solid #e5e7eb;
    position: relative;
}

.beneficio-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 12px 32px rgba(0,0,0,0.1);
    border-color: var(--primary);
}

.beneficio-card.featured {
    border-color: var(--primary);
    box-shadow: 0 4px 20px rgba(0, 71, 171, 0.12);
}

.beneficio-card.featured:hover {
    box-shadow: 0 16px 40px rgba(0, 71, 171, 0.2);
}

.beneficio-icon-circle {
    width: 90px;
    height: 90px;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 1.5rem;
    transition: all 0.3s ease;
    position: relative;
}

.beneficio-icon-circle::before {
    content: '';
    position: absolute;
    inset: -8px;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    border-radius: 50%;
    opacity: 0.2;
    z-index: -1;
    transition: all 0.3s ease;
}

.beneficio-card:hover .beneficio-icon-circle {
    transform: scale(1.1);
}

.beneficio-card:hover .beneficio-icon-circle::before {
    inset: -12px;
    opacity: 0.3;
}

.beneficio-icon-circle i {
    font-size: 2.5rem;
    color: var(--white);
}

.beneficio-card h4 {
    font-size: 1.2rem;
    font-weight: 700;
    color: #1a1a1a;
    margin-bottom: 0.75rem;
    line-height: 1.3;
}

.beneficio-card p {
    color: #6b7280;
    font-size: 0.95rem;
    line-height: 1.6;
    margin: 0;
}

/* Responsive Beneficios */
@media (max-width: 768px) {
    .beneficios {
        padding: 3rem 0;
    }
    
    .beneficios-grid-modern {
        grid-template-columns: 1fr;
        gap: 2rem;
    }
    
    .beneficio-card {
        padding: 2rem 1.5rem;
    }
    
    .beneficio-icon-circle {
        width: 80px;
        height: 80px;
    }
    
    .beneficio-icon-circle i {
        font-size: 2.2rem;
    }
}

/* ===================================
   Contacto Moderno - Sin Formulario
   =================================== */
.contacto-modern {
    padding: 5rem 0;
    background: #f8f9fa;
}

.contacto-intro {
    text-align: center;
    max-width: 700px;
    margin: 0 auto 4rem;
}

.contacto-intro h2 {
    font-size: 2.5rem;
    font-weight: 700;
    color: #1a1a1a;
    margin-bottom: 1rem;
}

.contacto-intro p {
    font-size: 1.1rem;
    color: #6b7280;
    line-height: 1.7;
}

.contacto-cards-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 2rem;
    margin-bottom: 4rem;
}

.contacto-card {
    background: var(--white);
    padding: 2.5rem 2rem;
    border-radius: 16px;
    text-align: center;
    transition: all 0.3s ease;
    border: 2px solid #e5e7eb;
    position: relative;
}

.contacto-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 12px 32px rgba(0,0,0,0.12);
}

.contacto-card.whatsapp:hover {
    border-color: #25d366;
}

.contacto-card.telefono:hover {
    border-color: var(--primary);
}

.contacto-card.email:hover {
    border-color: #ea4335;
}

.contacto-card.ubicacion:hover {
    border-color: var(--secondary);
}

.contacto-card-icon {
    width: 80px;
    height: 80px;
    background: linear-gradient(135deg, var(--primary), var(--primary-dark));
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 1.5rem;
    transition: all 0.3s ease;
}

.contacto-card.whatsapp .contacto-card-icon {
    background: linear-gradient(135deg, #25d366, #128c7e);
}

.contacto-card.telefono .contacto-card-icon {
    background: linear-gradient(135deg, var(--primary), var(--primary-dark));
}

.contacto-card.email .contacto-card-icon {
    background: linear-gradient(135deg, #ea4335, #c5221f);
}

.contacto-card.ubicacion .contacto-card-icon {
    background: linear-gradient(135deg, var(--secondary), #b80d1a);
}

.contacto-card:hover .contacto-card-icon {
    transform: scale(1.1) rotate(5deg);
}

.contacto-card-icon i {
    font-size: 2.5rem;
    color: var(--white);
}

.contacto-card h3 {
    font-size: 1.5rem;
    font-weight: 700;
    color: #1a1a1a;
    margin-bottom: 0.75rem;
}

.contacto-card-info {
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--primary);
    margin-bottom: 0.5rem;
}

.contacto-card-desc {
    font-size: 0.95rem;
    color: #6b7280;
    margin-bottom: 1.5rem;
}

.btn-contacto {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.85rem 1.75rem;
    background: var(--white);
    color: var(--primary);
    border: 2px solid var(--primary);
    border-radius: 50px;
    font-weight: 600;
    font-size: 0.95rem;
    transition: all 0.3s ease;
}

.contacto-card.whatsapp .btn-contacto {
    border-color: #25d366;
    color: #25d366;
}

.contacto-card.whatsapp .btn-contacto:hover {
    background: #25d366;
    color: var(--white);
}

.contacto-card.telefono .btn-contacto:hover {
    background: var(--primary);
    color: var(--white);
}

.contacto-card.email .btn-contacto {
    border-color: #ea4335;
    color: #ea4335;
}

.contacto-card.email .btn-contacto:hover {
    background: #ea4335;
    color: var(--white);
}

.contacto-card.ubicacion .btn-contacto {
    border-color: var(--secondary);
    color: var(--secondary);
}

.contacto-card.ubicacion .btn-contacto:hover {
    background: var(--secondary);
    color: var(--white);
}

/* Horarios de AtenciÃ³n */
.horarios-atencion {
    background: var(--white);
    padding: 3rem;
    border-radius: 16px;
    margin-bottom: 3rem;
    border: 2px solid #e5e7eb;
}

.horarios-atencion h3 {
    font-size: 1.8rem;
    font-weight: 700;
    color: #1a1a1a;
    margin-bottom: 2rem;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
}

.horarios-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 2rem;
}

.horario-item {
    text-align: center;
    padding: 1.5rem;
    background: #f8f9fa;
    border-radius: 12px;
    border: 2px solid #e5e7eb;
    transition: all 0.3s ease;
}

.horario-item:hover {
    border-color: var(--primary);
    transform: translateY(-4px);
}

.horario-dia {
    font-size: 1.1rem;
    font-weight: 700;
    color: #1a1a1a;
    margin-bottom: 0.5rem;
}

.horario-hora {
    font-size: 1rem;
    color: var(--primary);
    font-weight: 600;
}

/* Redes Sociales */
.redes-sociales-section {
    background: var(--white);
    padding: 3rem;
    border-radius: 16px;
    text-align: center;
    border: 2px solid #e5e7eb;
}

.redes-sociales-section h3 {
    font-size: 1.8rem;
    font-weight: 700;
    color: #1a1a1a;
    margin-bottom: 2rem;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
}

.social-buttons-modern {
    display: flex;
    gap: 1.5rem;
    justify-content: center;
    flex-wrap: wrap;
}

.social-btn-modern {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 1rem 2rem;
    border-radius: 50px;
    font-weight: 600;
    font-size: 1rem;
    transition: all 0.3s ease;
    color: var(--white);
}

.social-btn-modern.facebook {
    background: linear-gradient(135deg, #1877f2, #0c5dbf);
}

.social-btn-modern.instagram {
    background: linear-gradient(135deg, #e4405f, #c13584);
}

.social-btn-modern.youtube {
    background: linear-gradient(135deg, #ff0000, #cc0000);
}

.social-btn-modern:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0,0,0,0.2);
}

.social-btn-modern i {
    font-size: 1.3rem;
}

/* Mapa */
.mapa {
    padding: 5rem 0;
    background: var(--white);
}

.mapa-container {
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 8px 32px rgba(0,0,0,0.1);
    border: 2px solid #e5e7eb;
}

/* Responsive Contacto */
@media (max-width: 768px) {
    .contacto-modern {
        padding: 3rem 0;
    }
    
    .contacto-intro h2 {
        font-size: 2rem;
    }
    
    .contacto-cards-grid {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }
    
    .horarios-atencion,
    .redes-sociales-section {
        padding: 2rem 1.5rem;
    }
    
    .horarios-grid {
        grid-template-columns: 1fr;
        gap: 1rem;
    }
    
    .social-buttons-modern {
        flex-direction: column;
        gap: 1rem;
    }
    
    .social-btn-modern {
        width: 100%;
        justify-content: center;
    }
}

/* Alert Banner tambiÃ©n sticky */
.alert-banner {
    position: relative;
    z-index: 999;
}

/* Fin del archivo CSS */

/* Responsive Top Bar */
@media (max-width: 768px) {
    .top-bar {
        padding: 0.6rem 0;
    }
    
    .top-bar-content {
        flex-direction: column;
        gap: 0.75rem;
    }
    
    .top-bar-left,
    .top-bar-right {
        justify-content: center;
        gap: 1rem;
        font-size: 0.8rem;
    }
    
    .top-bar-separator,
    .top-bar-info {
        display: none;
    }
}


/* ===================================
   PÃ¡gina de InformaciÃ³n Completa
   =================================== */

/* Hero Modern */
.page-header-modern {
    background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
    padding: 5rem 0 4rem;
    position: relative;
    overflow: hidden;
}

.page-header-modern::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1440 320"><path fill="%23ffffff" fill-opacity="0.05" d="M0,96L48,112C96,128,192,160,288,160C384,160,480,128,576,122.7C672,117,768,139,864,154.7C960,171,1056,181,1152,165.3C1248,149,1344,107,1392,85.3L1440,64L1440,320L1392,320C1344,320,1248,320,1152,320C1056,320,960,320,864,320C768,320,672,320,576,320C480,320,384,320,288,320C192,320,96,320,48,320L0,320Z"></path></svg>') no-repeat bottom;
    background-size: cover;
}

.header-content-modern {
    text-align: center;
    color: var(--white);
    position: relative;
    z-index: 1;
}

.header-badge {
    display: inline-block;
    background: rgba(255,255,255,0.2);
    backdrop-filter: blur(10px);
    padding: 0.6rem 1.5rem;
    border-radius: 50px;
    font-size: 0.9rem;
    font-weight: 600;
    margin-bottom: 1.5rem;
    border: 1px solid rgba(255,255,255,0.3);
}

.header-content-modern h1 {
    font-size: 3rem;
    font-weight: 800;
    margin-bottom: 1rem;
    line-height: 1.2;
}

.header-content-modern p {
    font-size: 1.3rem;
    opacity: 0.95;
}

/* Section Headers */
.section-header-center {
    text-align: center;
    margin-bottom: 3rem;
}

.section-badge-modern {
    display: inline-block;
    background: linear-gradient(135deg, var(--primary), var(--primary-dark));
    color: var(--white);
    padding: 0.6rem 1.5rem;
    border-radius: 50px;
    font-size: 0.875rem;
    font-weight: 600;
    margin-bottom: 1rem;
    box-shadow: 0 4px 16px rgba(0, 71, 171, 0.2);
}

/* Grupos Disponibles */
.grupos-disponibles {
    padding: 5rem 0;
    background: #f8f9fa;
}

.grupos-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 2rem;
}

.grupo-card {
    background: var(--white);
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(0,0,0,0.08);
    transition: all 0.3s ease;
    border: 2px solid transparent;
    position: relative;
}

.grupo-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 12px 40px rgba(0,0,0,0.15);
    border-color: var(--primary);
}

.grupo-card.featured {
    border-color: var(--primary);
    box-shadow: 0 8px 32px rgba(0, 71, 171, 0.2);
}

.grupo-badge {
    position: absolute;
    top: 20px;
    right: 20px;
    background: linear-gradient(135deg, var(--accent), #f59e0b);
    color: var(--dark);
    padding: 0.5rem 1rem;
    border-radius: 50px;
    font-size: 0.8rem;
    font-weight: 700;
    z-index: 2;
    box-shadow: 0 4px 12px rgba(251, 191, 36, 0.4);
}

.grupo-badge.urgente {
    background: linear-gradient(135deg, var(--secondary), #b91c1c);
    color: var(--white);
    animation: pulse-badge 2s infinite;
}

@keyframes pulse-badge {
    0%, 100% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.05);
    }
}

.grupo-header {
    padding: 2.5rem 2rem 1.5rem;
    text-align: center;
    background: linear-gradient(135deg, #f8f9fa, #e9ecef);
}

.grupo-icon {
    width: 80px;
    height: 80px;
    background: linear-gradient(135deg, var(--primary), var(--primary-dark));
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 1.5rem;
    font-size: 2.5rem;
    color: var(--white);
    box-shadow: 0 8px 24px rgba(0, 71, 171, 0.3);
}

.grupo-header h3 {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--dark);
    margin-bottom: 0.5rem;
}

.grupo-tipo {
    color: var(--primary);
    font-weight: 600;
    font-size: 1rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.grupo-body {
    padding: 2rem;
}

.grupo-fechas {
    background: var(--light-gray);
    border-radius: 12px;
    padding: 1.5rem;
    margin-bottom: 1.5rem;
}

.fecha-item {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 0.75rem 0;
}

.fecha-item:first-child {
    border-bottom: 1px solid #ddd;
    padding-bottom: 1rem;
    margin-bottom: 0.5rem;
}

.fecha-item i {
    font-size: 1.5rem;
    color: var(--primary);
}

.fecha-item strong {
    display: block;
    color: var(--dark);
    font-size: 0.9rem;
    margin-bottom: 0.25rem;
}

.fecha-item span {
    color: var(--gray);
    font-size: 0.95rem;
}

.grupo-duracion {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 1rem;
    background: linear-gradient(135deg, #e0f2fe, #dbeafe);
    border-radius: 8px;
    margin-bottom: 1.5rem;
    font-weight: 600;
    color: var(--primary);
}

.grupo-caracteristicas {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.caracteristica-item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    color: var(--dark);
    font-size: 0.95rem;
}

.caracteristica-item i {
    color: #10b981;
    font-size: 1.1rem;
}

.grupo-footer {
    padding: 0 2rem 2rem;
}

.btn-grupo {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    width: 100%;
    padding: 1rem;
    background: #25d366;
    color: var(--white);
    border-radius: 12px;
    font-weight: 700;
    transition: all 0.3s ease;
    box-shadow: 0 4px 16px rgba(37, 211, 102, 0.3);
}

.btn-grupo:hover {
    background: #20ba5a;
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(37, 211, 102, 0.4);
}

/* Beneficios y Servicios */
.beneficios-servicios {
    padding: 5rem 0;
    background: var(--white);
}

.beneficios-grid-completa {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 2rem;
}

.beneficio-card-completa {
    text-align: center;
    padding: 2rem 1.5rem;
    background: var(--light-gray);
    border-radius: 16px;
    transition: all 0.3s ease;
    border: 2px solid transparent;
}

.beneficio-card-completa:hover {
    transform: translateY(-5px);
    border-color: var(--primary);
    background: var(--white);
    box-shadow: 0 8px 24px rgba(0,0,0,0.1);
}

.beneficio-icon-wrapper {
    width: 70px;
    height: 70px;
    background: linear-gradient(135deg, var(--primary), var(--primary-dark));
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 1.5rem;
    font-size: 2rem;
    color: var(--white);
    transition: var(--transition);
}

.beneficio-card-completa:hover .beneficio-icon-wrapper {
    transform: scale(1.1) rotate(5deg);
}

.beneficio-card-completa h4 {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--dark);
    margin-bottom: 0.75rem;
}

.beneficio-card-completa p {
    color: var(--gray);
    font-size: 0.95rem;
    line-height: 1.6;
}

/* Proceso de MatrÃ­cula */
.proceso-matricula-completo {
    padding: 5rem 0;
    background: linear-gradient(135deg, #f8f9fa, #e9ecef);
}

.proceso-timeline-modern {
    max-width: 900px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

.proceso-step {
    display: flex;
    gap: 2rem;
    align-items: flex-start;
    background: var(--white);
    padding: 2rem;
    border-radius: 16px;
    box-shadow: 0 4px 16px rgba(0,0,0,0.08);
    transition: all 0.3s ease;
}

.proceso-step:hover {
    transform: translateX(10px);
    box-shadow: 0 8px 24px rgba(0,0,0,0.12);
}

.step-number {
    width: 60px;
    height: 60px;
    background: linear-gradient(135deg, var(--primary), var(--primary-dark));
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.8rem;
    font-weight: 800;
    color: var(--white);
    flex-shrink: 0;
    box-shadow: 0 4px 16px rgba(0, 71, 171, 0.3);
}

.step-content {
    flex: 1;
}

.step-content h4 {
    font-size: 1.3rem;
    font-weight: 700;
    color: var(--dark);
    margin-bottom: 0.75rem;
}

.step-content p {
    color: var(--gray);
    line-height: 1.7;
    margin-bottom: 1rem;
}

.step-actions {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
}

.btn-step {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1.5rem;
    background: #25d366;
    color: var(--white);
    border-radius: 8px;
    font-weight: 600;
    font-size: 0.95rem;
    transition: var(--transition);
}

.btn-step:hover {
    background: #20ba5a;
    transform: translateY(-2px);
}

/* FAQ Completa */
.faq-section-completa {
    padding: 5rem 0;
    background: var(--white);
}

.faq-grid-completa {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 2rem;
}

.faq-item-completa {
    background: var(--light-gray);
    padding: 2rem;
    border-radius: 16px;
    border-left: 4px solid var(--primary);
    transition: all 0.3s ease;
}

.faq-item-completa:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 24px rgba(0,0,0,0.1);
    background: var(--white);
}

.faq-question-completa {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1rem;
}

.faq-question-completa i {
    font-size: 1.8rem;
    color: var(--primary);
}

.faq-question-completa h4 {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--dark);
}

.faq-item-completa p {
    color: var(--gray);
    line-height: 1.7;
    margin: 0;
}

/* CTA Final */
.cta-final-completa {
    padding: 5rem 0;
    background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
    position: relative;
    overflow: hidden;
}

.cta-final-completa::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1440 320"><path fill="%23ffffff" fill-opacity="0.05" d="M0,96L48,112C96,128,192,160,288,160C384,160,480,128,576,122.7C672,117,768,139,864,154.7C960,171,1056,181,1152,165.3C1248,149,1344,107,1392,85.3L1440,64L1440,320L1392,320C1344,320,1248,320,1152,320C1056,320,960,320,864,320C768,320,672,320,576,320C480,320,384,320,288,320C192,320,96,320,48,320L0,320Z"></path></svg>') no-repeat bottom;
    background-size: cover;
}

.cta-content-completa {
    text-align: center;
    color: var(--white);
    position: relative;
    z-index: 1;
}

.cta-icon-large {
    width: 100px;
    height: 100px;
    background: rgba(255,255,255,0.2);
    backdrop-filter: blur(10px);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 2rem;
    font-size: 3rem;
    animation: pulse-icon 2s infinite;
}

.cta-content-completa h2 {
    font-size: 2.5rem;
    font-weight: 800;
    margin-bottom: 1rem;
}

.cta-content-completa > p {
    font-size: 1.2rem;
    margin-bottom: 2.5rem;
    opacity: 0.95;
}

.cta-buttons-completa {
    display: flex;
    gap: 1.5rem;
    justify-content: center;
    flex-wrap: wrap;
    margin-bottom: 2.5rem;
}

.btn-cta-primary,
.btn-cta-secondary {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    padding: 1.2rem 2.5rem;
    border-radius: 12px;
    font-weight: 700;
    font-size: 1.1rem;
    transition: all 0.3s ease;
}

.btn-cta-primary {
    background: #25d366;
    color: var(--white);
    box-shadow: 0 8px 24px rgba(37, 211, 102, 0.4);
}

.btn-cta-primary:hover {
    background: #20ba5a;
    transform: translateY(-3px);
    box-shadow: 0 12px 32px rgba(37, 211, 102, 0.5);
}

.btn-cta-secondary {
    background: var(--white);
    color: var(--primary);
    box-shadow: 0 8px 24px rgba(255,255,255,0.3);
}

.btn-cta-secondary:hover {
    background: var(--light-gray);
    transform: translateY(-3px);
    box-shadow: 0 12px 32px rgba(255,255,255,0.4);
}

.cta-contactos {
    display: flex;
    gap: 2rem;
    justify-content: center;
    flex-wrap: wrap;
}

.contacto-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--white);
    font-weight: 600;
    font-size: 1rem;
}

.contacto-item i {
    font-size: 1.3rem;
}

/* Responsive */
@media (max-width: 768px) {
    .header-content-modern h1 {
        font-size: 2rem;
    }
    
    .header-content-modern p {
        font-size: 1.1rem;
    }
    
    .grupos-grid {
        grid-template-columns: 1fr;
    }
    
    .beneficios-grid-completa {
        grid-template-columns: 1fr;
    }
    
    .proceso-step {
        flex-direction: column;
        text-align: center;
    }
    
    .step-actions {
        justify-content: center;
    }
    
    .faq-grid-completa {
        grid-template-columns: 1fr;
    }
    
    .cta-content-completa h2 {
        font-size: 1.8rem;
    }
    
    .cta-buttons-completa {
        flex-direction: column;
        align-items: center;
    }
    
    .btn-cta-primary,
    .btn-cta-secondary {
        width: 100%;
        max-width: 300px;
    }
    
    .cta-contactos {
        flex-direction: column;
        gap: 1rem;
    }
}


/* ===================================
   Estilos Adicionales para Planes
   =================================== */

/* Hero Stats Badges */
.hero-stats-badges {
    display: flex;
    gap: 1.5rem;
    justify-content: center;
    flex-wrap: wrap;
    margin-top: 2rem;
}

.stat-badge-hero {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    background: rgba(255,255,255,0.2);
    backdrop-filter: blur(10px);
    padding: 0.75rem 1.5rem;
    border-radius: 50px;
    font-weight: 600;
    border: 1px solid rgba(255,255,255,0.3);
}

.stat-badge-hero i {
    font-size: 1.3rem;
}

/* SelecciÃ³n de Edad */
.seleccion-edad {
    padding: 5rem 0;
    background: var(--white);
}

.edad-selector-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 2rem;
    max-width: 800px;
    margin: 0 auto;
}

.edad-card {
    background: var(--light-gray);
    border-radius: 20px;
    padding: 2.5rem 2rem;
    text-align: center;
    cursor: pointer;
    transition: all 0.3s ease;
    border: 3px solid transparent;
    position: relative;
}

.edad-card:hover {
    transform: translateY(-10px);
    border-color: var(--primary);
    box-shadow: 0 12px 40px rgba(0,0,0,0.15);
    background: var(--white);
}

.edad-card.destacada {
    border-color: var(--primary);
    background: linear-gradient(135deg, #e0f2fe, #dbeafe);
}

.edad-badge {
    position: absolute;
    top: 20px;
    right: 20px;
    background: linear-gradient(135deg, var(--secondary), #b91c1c);
    color: var(--white);
    padding: 0.5rem 1rem;
    border-radius: 50px;
    font-size: 0.8rem;
    font-weight: 700;
    animation: pulse-badge 2s infinite;
}

.edad-icon {
    width: 90px;
    height: 90px;
    background: linear-gradient(135deg, var(--primary), var(--primary-dark));
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 1.5rem;
    font-size: 3rem;
    color: var(--white);
    box-shadow: 0 8px 24px rgba(0, 71, 171, 0.3);
}

.edad-card h3 {
    font-size: 1.5rem;
    font-weight: 800;
    color: var(--dark);
    margin-bottom: 0.5rem;
}

.edad-rango {
    color: var(--primary);
    font-weight: 600;
    font-size: 1.1rem;
    margin-bottom: 1.5rem;
}

.edad-duracion {
    background: var(--white);
    padding: 1rem;
    border-radius: 12px;
    margin-bottom: 1rem;
}

.edad-duracion i {
    color: var(--primary);
    font-size: 1.5rem;
    display: block;
    margin-bottom: 0.5rem;
}

.edad-duracion strong {
    display: block;
    color: var(--dark);
    font-size: 0.9rem;
    margin-bottom: 0.25rem;
}

.edad-duracion span {
    color: var(--gray);
    font-size: 1.1rem;
    font-weight: 600;
}

.edad-descripcion {
    color: var(--gray);
    font-size: 1rem;
    margin-bottom: 1.5rem;
}

.edad-arrow {
    font-size: 2rem;
    color: var(--primary);
    animation: bounce 2s infinite;
}

@keyframes bounce {
    0%, 100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-10px);
    }
}

/* CertificaciÃ³n y Beneficios */
.certificacion-beneficios {
    padding: 5rem 0;
    background: linear-gradient(135deg, #f8f9fa, #e9ecef);
}

.cert-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
    gap: 2rem;
}

.cert-card {
    background: var(--white);
    border-radius: 20px;
    padding: 2.5rem;
    box-shadow: 0 4px 20px rgba(0,0,0,0.08);
}

.cert-icon {
    width: 70px;
    height: 70px;
    background: linear-gradient(135deg, var(--accent), #f59e0b);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 1.5rem;
    font-size: 2rem;
    color: var(--white);
}

.cert-card h3 {
    font-size: 1.5rem;
    font-weight: 800;
    color: var(--dark);
    margin-bottom: 1rem;
}

.cert-subtitle {
    color: var(--gray);
    font-size: 1rem;
    margin-bottom: 1.5rem;
    line-height: 1.6;
}

.cert-list h4 {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--primary);
    margin-bottom: 1rem;
}

.cert-list ul {
    list-style: none;
    padding: 0;
}

.cert-list li {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 0.5rem 0;
    color: var(--dark);
}

.cert-list li i {
    color: #10b981;
    font-size: 1.2rem;
    margin-top: 0.2rem;
}

.beneficios-list {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
}

.beneficio-item-cert {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem;
    background: var(--light-gray);
    border-radius: 12px;
    transition: var(--transition);
}

.beneficio-item-cert:hover {
    background: #e0f2fe;
    transform: translateX(5px);
}

.beneficio-item-cert i {
    font-size: 1.5rem;
    color: var(--primary);
}

.beneficio-item-cert span {
    font-weight: 600;
    color: var(--dark);
}

/* Planes Section */
.planes-section {
    padding: 5rem 0;
    background: var(--white);
}

.planes-section.mayores {
    background: linear-gradient(135deg, #f8f9fa, #e9ecef);
}

.planes-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 2rem;
    margin-bottom: 3rem;
}

.plan-card {
    background: var(--white);
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(0,0,0,0.08);
    transition: all 0.3s ease;
    border: 2px solid transparent;
    position: relative;
}

.plan-card:hover {
    transform: translateY(-10px);
    box-shadow: 0 12px 40px rgba(0,0,0,0.15);
    border-color: var(--primary);
}

.plan-card.recomendado {
    border-color: var(--primary);
    box-shadow: 0 8px 32px rgba(0, 71, 171, 0.2);
}

.plan-card.economico {
    border-color: #10b981;
}

.plan-ribbon {
    position: absolute;
    top: 20px;
    right: -35px;
    background: linear-gradient(135deg, var(--primary), var(--primary-dark));
    color: var(--white);
    padding: 0.5rem 3rem;
    font-size: 0.75rem;
    font-weight: 700;
    transform: rotate(45deg);
    z-index: 2;
    box-shadow: 0 4px 12px rgba(0, 71, 171, 0.4);
}

.plan-header {
    padding: 2rem 1.5rem 1rem;
    text-align: center;
    background: linear-gradient(135deg, #f8f9fa, #e9ecef);
}

.plan-badge {
    display: inline-block;
    background: var(--primary);
    color: var(--white);
    padding: 0.4rem 1rem;
    border-radius: 50px;
    font-size: 0.75rem;
    font-weight: 700;
    margin-bottom: 1rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.plan-badge.flexible {
    background: #3b82f6;
}

.plan-badge.economico {
    background: #10b981;
}

.plan-badge.recomendado {
    background: var(--primary);
}

.plan-header h3 {
    font-size: 1.4rem;
    font-weight: 800;
    color: var(--dark);
    margin-bottom: 0.5rem;
}

.plan-modalidad {
    color: var(--gray);
    font-size: 0.95rem;
    font-weight: 500;
}

.plan-precio {
    padding: 1.5rem;
    text-align: center;
    background: var(--white);
}

.precio-label {
    display: block;
    color: var(--gray);
    font-size: 0.85rem;
    margin-bottom: 0.5rem;
}

.precio-valor {
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 0.25rem;
}

.moneda {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--primary);
}

.valor {
    font-size: 3rem;
    font-weight: 800;
    color: var(--primary);
    line-height: 1;
}

.periodo {
    font-size: 1rem;
    color: var(--gray);
}

.precio-nota {
    display: block;
    color: #10b981;
    font-weight: 700;
    font-size: 0.9rem;
    margin-top: 0.5rem;
}

.plan-body {
    padding: 1.5rem;
}

.plan-body h4 {
    font-size: 1rem;
    font-weight: 700;
    color: var(--dark);
    margin-bottom: 1rem;
}

.plan-features {
    list-style: none;
    padding: 0;
}

.plan-features li {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.5rem 0;
    color: var(--dark);
    font-size: 0.95rem;
}

.plan-features li i {
    color: #10b981;
    font-size: 1.1rem;
}

.plan-footer {
    padding: 0 1.5rem 1.5rem;
}

.btn-plan {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    width: 100%;
    padding: 1rem;
    background: var(--primary);
    color: var(--white);
    border-radius: 12px;
    font-weight: 700;
    transition: all 0.3s ease;
    box-shadow: 0 4px 16px rgba(0, 71, 171, 0.3);
}

.btn-plan:hover {
    background: var(--primary-dark);
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(0, 71, 171, 0.4);
}

.btn-plan.economico {
    background: #10b981;
    box-shadow: 0 4px 16px rgba(16, 185, 129, 0.3);
}

.btn-plan.economico:hover {
    background: #059669;
    box-shadow: 0 6px 20px rgba(16, 185, 129, 0.4);
}

.btn-plan.recomendado {
    background: linear-gradient(135deg, var(--primary), var(--primary-dark));
}

/* Planes CTA */
.planes-cta {
    margin-top: 3rem;
}

.cta-box {
    background: linear-gradient(135deg, var(--primary), var(--primary-dark));
    color: var(--white);
    padding: 2.5rem;
    border-radius: 20px;
    text-align: center;
    box-shadow: 0 8px 32px rgba(0, 71, 171, 0.3);
}

.cta-box i {
    font-size: 3rem;
    margin-bottom: 1rem;
}

.cta-box h3 {
    font-size: 2rem;
    font-weight: 800;
    margin-bottom: 0.5rem;
}

.cta-box p {
    font-size: 1.1rem;
    opacity: 0.95;
    margin-bottom: 0.5rem;
}

.cta-duracion {
    font-size: 1.3rem !important;
    font-weight: 700 !important;
    margin-top: 1rem !important;
}

.cta-fecha {
    font-size: 1.1rem !important;
    background: rgba(255,255,255,0.2);
    padding: 0.75rem 1.5rem;
    border-radius: 50px;
    display: inline-block;
    margin-top: 1rem !important;
}

.planes-cta.destacado .cta-box {
    background: linear-gradient(135deg, var(--secondary), #b91c1c);
}

/* Responsive Planes */
@media (max-width: 768px) {
    .hero-stats-badges {
        flex-direction: column;
        gap: 1rem;
    }
    
    .edad-selector-grid {
        grid-template-columns: 1fr;
    }
    
    .cert-grid {
        grid-template-columns: 1fr;
    }
    
    .planes-grid {
        grid-template-columns: 1fr;
    }
    
    .plan-ribbon {
        font-size: 0.65rem;
        padding: 0.4rem 2.5rem;
    }
    
    .valor {
        font-size: 2.5rem;
    }
    
    .cta-box h3 {
        font-size: 1.5rem;
    }
}


/* CTA Planes Completos */
.cta-planes-completos {
    margin-top: 3rem;
    padding: 3rem 2rem;
    background: linear-gradient(135deg, var(--primary), var(--primary-dark));
    border-radius: 20px;
    text-align: center;
    color: var(--white);
    box-shadow: 0 8px 32px rgba(0, 71, 171, 0.3);
}

.cta-planes-completos h3 {
    font-size: 2rem;
    font-weight: 800;
    margin-bottom: 1rem;
}

.cta-planes-completos p {
    font-size: 1.2rem;
    margin-bottom: 2rem;
    opacity: 0.95;
}

.cta-planes-completos .btn {
    background: var(--white);
    color: var(--primary);
    font-size: 1.1rem;
    padding: 1.2rem 2.5rem;
    box-shadow: 0 4px 16px rgba(255,255,255,0.3);
}

.cta-planes-completos .btn:hover {
    background: var(--light-gray);
    transform: translateY(-3px);
    box-shadow: 0 6px 20px rgba(255,255,255,0.4);
}

@media (max-width: 768px) {
    .cta-planes-completos h3 {
        font-size: 1.5rem;
    }
    
    .cta-planes-completos p {
        font-size: 1rem;
    }
    
    .cta-planes-completos .btn {
        width: 100%;
        font-size: 1rem;
        padding: 1rem 1.5rem;
    }
}


/* ===================================
   Formulario de MatrÃ­cula Moderno
   =================================== */

.formulario-matricula-section {
    padding: 5rem 0;
    background: #f8f9fa;
}

.form-matricula-container {
    max-width: 900px;
    margin: 0 auto;
}

.matricula-form-modern {
    background: var(--white);
    border-radius: 20px;
    padding: 3rem;
    box-shadow: 0 4px 20px rgba(0,0,0,0.08);
}

/* Plan Seleccionado Box */
.plan-seleccionado-box {
    background: linear-gradient(135deg, #e0f2fe, #dbeafe);
    border: 2px solid var(--primary);
    border-radius: 16px;
    padding: 2rem;
    margin-bottom: 2.5rem;
}

.plan-seleccionado-box h3 {
    color: var(--primary);
    font-size: 1.3rem;
    margin-bottom: 1rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.plan-info {
    background: var(--white);
    padding: 1.5rem;
    border-radius: 12px;
    margin-bottom: 1.5rem;
    font-size: 1.05rem;
    line-height: 1.7;
}

.oferta-especial {
    background: linear-gradient(135deg, var(--secondary), #b91c1c);
    color: var(--white);
    padding: 1.5rem;
    border-radius: 12px;
    text-align: center;
}

.oferta-especial h4 {
    font-size: 1.3rem;
    margin-bottom: 1rem;
    font-weight: 800;
}

.oferta-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
    margin-bottom: 1rem;
}

.oferta-item {
    background: rgba(255,255,255,0.2);
    padding: 1rem;
    border-radius: 8px;
}

.oferta-label {
    display: block;
    font-size: 0.9rem;
    margin-bottom: 0.5rem;
    opacity: 0.9;
}

.oferta-precio-antes {
    display: block;
    text-decoration: line-through;
    font-size: 1rem;
    opacity: 0.7;
}

.oferta-precio-ahora {
    display: block;
    font-size: 1.8rem;
    font-weight: 800;
    color: #fbbf24;
}

.oferta-precio-mensual {
    display: block;
    font-size: 1.8rem;
    font-weight: 800;
}

.oferta-ahorro {
    font-size: 1.1rem;
    font-weight: 700;
    margin: 0;
}

/* Form Sections */
.form-section-modern {
    margin-bottom: 2.5rem;
    padding-bottom: 2rem;
    border-bottom: 2px solid var(--light-gray);
}

.form-section-modern:last-of-type {
    border-bottom: none;
}

.form-section-modern h3 {
    font-size: 1.4rem;
    font-weight: 700;
    color: var(--dark);
    margin-bottom: 1.5rem;
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.form-section-modern h3 i {
    color: var(--primary);
}

.form-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.5rem;
}

.form-group-modern {
    display: flex;
    flex-direction: column;
}

.form-group-modern.full-width {
    grid-column: 1 / -1;
}

.form-group-modern label {
    font-weight: 600;
    color: var(--dark);
    margin-bottom: 0.5rem;
    font-size: 0.95rem;
}

.form-group-modern input,
.form-group-modern select {
    padding: 0.875rem 1rem;
    border: 2px solid #e5e7eb;
    border-radius: 8px;
    font-size: 1rem;
    transition: var(--transition);
    font-family: inherit;
}

.form-group-modern input:focus,
.form-group-modern select:focus {
    outline: none;
    border-color: var(--primary);
    box-shadow: 0 0 0 3px rgba(0, 71, 171, 0.1);
}

.form-group-modern input:disabled,
.form-group-modern select:disabled {
    background: var(--light-gray);
    cursor: not-allowed;
}

/* Info Box */
.info-matricula-box {
    background: #fef3c7;
    border-left: 4px solid #f59e0b;
    padding: 1.5rem;
    border-radius: 8px;
    margin-bottom: 2rem;
}

.info-matricula-box h4 {
    color: #92400e;
    font-size: 1.1rem;
    margin-bottom: 1rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.info-matricula-box p {
    color: #78350f;
    margin-bottom: 1rem;
    line-height: 1.6;
}

.info-matricula-box ul {
    list-style: none;
    padding: 0;
    margin-bottom: 1rem;
}

.info-matricula-box li {
    color: #78350f;
    padding: 0.5rem 0;
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.info-matricula-box li i {
    color: #f59e0b;
    font-size: 1.1rem;
}

.proceso-seguro {
    font-weight: 700;
    color: #065f46 !important;
    background: #d1fae5;
    padding: 0.75rem 1rem;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}

.nota-documentos {
    font-size: 0.9rem;
    font-style: italic;
    margin: 0 !important;
}

/* Form Actions */
.form-actions-modern {
    text-align: center;
    margin-top: 2rem;
}

.btn-submit-modern {
    background: linear-gradient(135deg, var(--primary), var(--primary-dark));
    color: var(--white);
    padding: 1.25rem 3rem;
    border: none;
    border-radius: 12px;
    font-size: 1.2rem;
    font-weight: 800;
    cursor: pointer;
    transition: all 0.3s ease;
    box-shadow: 0 8px 24px rgba(0, 71, 171, 0.3);
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
}

.btn-submit-modern:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 32px rgba(0, 71, 171, 0.4);
}

.form-note {
    margin-top: 1rem;
    color: var(--gray);
    font-size: 0.9rem;
}

.form-note a {
    color: var(--primary);
    text-decoration: underline;
}

/* Responsive Form */
@media (max-width: 768px) {
    .matricula-form-modern {
        padding: 2rem 1.5rem;
    }
    
    .form-grid {
        grid-template-columns: 1fr;
    }
    
    .oferta-grid {
        grid-template-columns: 1fr;
    }
    
    .oferta-precio-ahora,
    .oferta-precio-mensual {
        font-size: 1.5rem;
    }
    
    .btn-submit-modern {
        width: 100%;
        padding: 1rem 2rem;
        font-size: 1.1rem;
    }
}


/* ===================================
   Planes en PÃ¡gina de Inicio
   =================================== */

/* SecciÃ³n de Planes Inicio */
.planes-inicio {
    padding: 5rem 0;
    background: linear-gradient(135deg, #f8f9fa, #e9ecef);
}

/* Tabs de Edad */
.edad-tabs {
    display: flex;
    gap: 1.5rem;
    justify-content: center;
    margin-bottom: 3rem;
    flex-wrap: wrap;
}

.edad-tab {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    padding: 1.5rem 2.5rem;
    background: var(--white);
    border: 3px solid #e5e7eb;
    border-radius: 16px;
    cursor: pointer;
    transition: all 0.3s ease;
    min-width: 250px;
}

.edad-tab:hover {
    transform: translateY(-5px);
    border-color: var(--primary);
    box-shadow: 0 8px 24px rgba(0,0,0,0.1);
}

.edad-tab.active {
    background: linear-gradient(135deg, var(--primary), var(--primary-dark));
    color: var(--white);
    border-color: var(--primary);
    box-shadow: 0 8px 32px rgba(0, 71, 171, 0.3);
}

.edad-tab i {
    font-size: 2.5rem;
}

.edad-tab span {
    font-size: 1.1rem;
    font-weight: 700;
}

.edad-tab small {
    font-size: 0.9rem;
    opacity: 0.8;
}

/* Contenedor de Planes */
.planes-container {
    margin-bottom: 3rem;
}

/* Grid de Planes Inicio */
.planes-grid-inicio {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 2rem;
}

/* Tarjetas de Plan Inicio */
.plan-card-inicio {
    background: var(--white);
    border-radius: 20px;
    padding: 2rem 1.5rem;
    box-shadow: 0 4px 20px rgba(0,0,0,0.08);
    transition: all 0.3s ease;
    border: 2px solid transparent;
    position: relative;
    display: flex;
    flex-direction: column;
}

.plan-card-inicio:hover {
    transform: translateY(-10px);
    box-shadow: 0 12px 40px rgba(0,0,0,0.15);
    border-color: var(--primary);
}

.plan-card-inicio.economico {
    border-color: #10b981;
}

.plan-card-inicio.economico:hover {
    border-color: #059669;
}

.plan-card-inicio.destacado {
    border-color: var(--primary);
    box-shadow: 0 8px 32px rgba(0, 71, 171, 0.2);
}

.plan-card-inicio.destacado:hover {
    box-shadow: 0 16px 48px rgba(0, 71, 171, 0.3);
}

/* Badge del Plan */
.plan-badge-inicio {
    display: inline-block;
    padding: 0.4rem 1rem;
    border-radius: 50px;
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 1rem;
}

.plan-badge-inicio.tradicional {
    background: #6b7280;
    color: var(--white);
}

.plan-badge-inicio.flexible {
    background: #3b82f6;
    color: var(--white);
}

.plan-badge-inicio.economico {
    background: #10b981;
    color: var(--white);
}

.plan-badge-inicio.recomendado {
    background: var(--primary);
    color: var(--white);
}

/* Ribbon para Plan Destacado */
.plan-ribbon-inicio {
    position: absolute;
    top: 20px;
    right: -35px;
    background: linear-gradient(135deg, var(--accent), #f59e0b);
    color: var(--dark);
    padding: 0.5rem 3rem;
    font-size: 0.75rem;
    font-weight: 700;
    transform: rotate(45deg);
    z-index: 2;
    box-shadow: 0 4px 12px rgba(251, 191, 36, 0.4);
}

/* Icono del Plan */
.plan-icon-inicio {
    width: 70px;
    height: 70px;
    background: linear-gradient(135deg, #e3f2fd, #bbdefb);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    color: var(--primary);
    margin: 0 auto 1rem;
    transition: all 0.3s ease;
}

.plan-card-inicio:hover .plan-icon-inicio {
    transform: scale(1.1) rotate(5deg);
    background: linear-gradient(135deg, #bbdefb, #90caf9);
}

/* TÃ­tulo y DescripciÃ³n */
.plan-card-inicio h3 {
    font-size: 1.4rem;
    font-weight: 800;
    color: var(--dark);
    margin-bottom: 0.5rem;
    text-align: center;
}

.plan-desc-inicio {
    text-align: center;
    color: var(--gray);
    font-size: 0.95rem;
    margin-bottom: 1.5rem;
}

/* Precio del Plan */
.plan-precio-inicio {
    text-align: center;
    margin-bottom: 1.5rem;
}

.precio-desde {
    display: block;
    color: var(--gray);
    font-size: 0.85rem;
    margin-bottom: 0.5rem;
}

.precio-grande {
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 0.25rem;
    margin-bottom: 0.75rem;
}

.precio-grande .moneda {
    font-size: 1.3rem;
    font-weight: 700;
    color: var(--primary);
}

.precio-grande .valor {
    font-size: 2.5rem;
    font-weight: 800;
    color: var(--primary);
    line-height: 1;
}

.precio-grande .periodo {
    font-size: 0.95rem;
    color: var(--gray);
}

.duracion-badge {
    display: inline-block;
    background: var(--light-gray);
    color: var(--dark);
    padding: 0.4rem 1rem;
    border-radius: 50px;
    font-size: 0.85rem;
    font-weight: 600;
}

.duracion-badge.destacado {
    background: linear-gradient(135deg, #f5eed6, #e8dcc0);
    color: #92400e;
    font-weight: 700;
}

/* Features del Plan */
.plan-features-inicio {
    list-style: none;
    padding: 0;
    margin-bottom: 1.5rem;
    flex-grow: 1;
}

.plan-features-inicio li {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.5rem 0;
    color: var(--dark);
    font-size: 0.95rem;
}

.plan-features-inicio li i {
    color: #10b981;
    font-size: 1.1rem;
    flex-shrink: 0;
}

/* BotÃ³n del Plan */
.btn-plan-inicio {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    width: 100%;
    padding: 1rem;
    background: var(--primary);
    color: var(--white);
    border-radius: 12px;
    font-weight: 700;
    font-size: 0.95rem;
    transition: all 0.3s ease;
    box-shadow: 0 4px 16px rgba(0, 71, 171, 0.3);
}

.btn-plan-inicio:hover {
    background: var(--primary-dark);
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(0, 71, 171, 0.4);
}

.btn-plan-inicio.economico {
    background: #10b981;
    box-shadow: 0 4px 16px rgba(16, 185, 129, 0.3);
}

.btn-plan-inicio.economico:hover {
    background: #059669;
    box-shadow: 0 6px 20px rgba(16, 185, 129, 0.4);
}

.btn-plan-inicio.destacado {
    background: linear-gradient(135deg, var(--primary), var(--primary-dark));
    box-shadow: 0 4px 16px rgba(0, 71, 171, 0.4);
}

.btn-plan-inicio.destacado:hover {
    background: linear-gradient(135deg, var(--primary-dark), #002060);
    box-shadow: 0 6px 20px rgba(0, 71, 171, 0.5);
}

/* Info Destacada */
.info-destacada-planes {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 2rem;
    margin-top: 3rem;
    padding-top: 3rem;
    border-top: 2px solid #e5e7eb;
}

.info-item-destacada {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    padding: 1.75rem;
    background: var(--white);
    border-radius: 16px;
    box-shadow: 0 4px 16px rgba(0,0,0,0.08);
    transition: all 0.3s ease;
    border: 2px solid transparent;
}

.info-item-destacada:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 24px rgba(0,0,0,0.12);
    border-color: var(--primary);
}

.info-item-destacada i {
    font-size: 2.5rem;
    color: var(--primary);
    flex-shrink: 0;
}

.info-item-destacada strong {
    display: block;
    color: var(--dark);
    font-size: 1.1rem;
    margin-bottom: 0.25rem;
    font-weight: 700;
}

.info-item-destacada p {
    color: var(--gray);
    font-size: 0.95rem;
    margin: 0;
}

/* Responsive Planes Inicio */
@media (max-width: 768px) {
    .planes-inicio {
        padding: 3rem 0;
    }
    
    .edad-tabs {
        flex-direction: column;
        gap: 1rem;
    }
    
    .edad-tab {
        min-width: auto;
        width: 100%;
    }
    
    .planes-grid-inicio {
        grid-template-columns: 1fr;
        gap: 2rem;
    }
    
    .plan-ribbon-inicio {
        font-size: 0.65rem;
        padding: 0.4rem 2.5rem;
    }
    
    .precio-grande .valor {
        font-size: 2rem;
    }
    
    .info-destacada-planes {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }
}


/* ===================================
   Por quÃ© CEBA y ComparaciÃ³n
   =================================== */

/* SecciÃ³n Por quÃ© CEBA */
.por-que-ceba {
    padding: 5rem 0;
    background: var(--white);
}

.ceba-explicacion {
    max-width: 1000px;
    margin: 0 auto;
}

.explicacion-content {
    background: linear-gradient(135deg, #f8f9fa, #e9ecef);
    padding: 3rem;
    border-radius: 20px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.08);
}

.explicacion-icon {
    width: 90px;
    height: 90px;
    background: linear-gradient(135deg, var(--accent), #f59e0b);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 2rem;
    font-size: 3rem;
    color: var(--white);
    box-shadow: 0 8px 24px rgba(251, 191, 36, 0.4);
}

.explicacion-content h3 {
    font-size: 2rem;
    font-weight: 800;
    color: var(--dark);
    margin-bottom: 1.5rem;
    text-align: center;
}

.explicacion-content > p {
    font-size: 1.1rem;
    line-height: 1.8;
    color: var(--gray);
    text-align: center;
    margin-bottom: 2.5rem;
}

.ventajas-ceba {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 1.5rem;
}

.ventaja-item {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    padding: 1.5rem;
    background: var(--white);
    border-radius: 12px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.06);
    transition: all 0.3s ease;
}

.ventaja-item:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 24px rgba(0,0,0,0.12);
}

.ventaja-item i {
    font-size: 2rem;
    color: #10b981;
    flex-shrink: 0;
}

.ventaja-item strong {
    display: block;
    font-size: 1.1rem;
    color: var(--dark);
    margin-bottom: 0.25rem;
}

.ventaja-item p {
    color: var(--gray);
    font-size: 0.95rem;
    margin: 0;
}

/* ComparaciÃ³n EBR vs CEBA - Mejorada */
.comparacion-ebr-ceba {
    padding: 3rem 0;
    background: linear-gradient(135deg, #f8f9fa, #e9ecef);
}

.tabla-comparacion-wrapper {
    overflow-x: auto;
    margin-bottom: 2rem;
    padding: 0.5rem 0;
}

.tabla-comparacion-mejorada {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    background: var(--white);
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 8px 32px rgba(0,0,0,0.12);
}

.tabla-comparacion-mejorada thead {
    background: linear-gradient(135deg, var(--primary), var(--primary-dark));
    color: var(--white);
}

.tabla-comparacion-mejorada th {
    padding: 1.1rem 1rem;
    text-align: center;
    font-weight: 700;
    font-size: 1rem;
    border-bottom: 3px solid rgba(255,255,255,0.2);
}

.tabla-comparacion-mejorada th.col-caracteristica {
    text-align: left;
    width: 30%;
    font-size: 1.1rem;
}

.tabla-comparacion-mejorada .header-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
}

.tabla-comparacion-mejorada .header-content i {
    font-size: 2rem;
    margin-bottom: 0.25rem;
}

.tabla-comparacion-mejorada .header-title {
    font-size: 1.2rem;
    font-weight: 800;
    display: block;
    margin-bottom: 0.25rem;
}

.tabla-comparacion-mejorada .header-content small {
    font-size: 0.85rem;
    opacity: 0.9;
    font-weight: 500;
}

.tabla-comparacion-mejorada tbody tr {
    transition: background-color 0.2s ease;
}

.tabla-comparacion-mejorada td {
    padding: 0.9rem 1rem;
    text-align: center;
    font-size: 1rem;
    border-bottom: 1px solid #e5e7eb;
}

.tabla-comparacion-mejorada td.caracteristica {
    text-align: left;
    font-weight: 600;
    color: var(--dark);
    background: #f8f9fa;
    display: flex;
    align-items: center;
    gap: 0.6rem;
}

.tabla-comparacion-mejorada td.caracteristica i {
    font-size: 1.2rem;
    color: var(--primary);
    flex-shrink: 0;
}

.tabla-comparacion-mejorada td.caracteristica strong {
    font-size: 0.98rem;
}

/* Filas con valores iguales */
.tabla-comparacion-mejorada .row-igual {
    background: linear-gradient(90deg, #f0fdf4, #dcfce7, #f0fdf4);
}

.tabla-comparacion-mejorada .valor-igual {
    color: var(--dark);
    font-weight: 600;
}

.tabla-comparacion-mejorada .valor-igual i {
    color: #10b981;
    font-size: 1.3rem;
    margin-right: 0.75rem;
}

.tabla-comparacion-mejorada .valor-igual span {
    display: inline-block;
}

/* Filas con diferencias */
.tabla-comparacion-mejorada .row-diferente:nth-child(even) {
    background: #fafafa;
}

.tabla-comparacion-mejorada .valor-normal {
    color: #6b7280;
    font-weight: 500;
}

.tabla-comparacion-mejorada .valor-normal i {
    color: #9ca3af;
    font-size: 1.2rem;
    margin-right: 0.75rem;
}

.tabla-comparacion-mejorada .valor-ventaja {
    background: linear-gradient(135deg, #dbeafe, #bfdbfe);
    color: var(--primary);
    font-weight: 700;
    position: relative;
}

.tabla-comparacion-mejorada .valor-ventaja i {
    color: var(--primary);
    font-size: 1.3rem;
    margin-right: 0.75rem;
    animation: pulse-icon 2s infinite;
}

.tabla-comparacion-mejorada .valor-ventaja span {
    display: inline-block;
}

/* Ãšltima fila sin borde */
.tabla-comparacion-mejorada tbody tr:last-child td {
    border-bottom: none;
}

/* Responsive */
@media (max-width: 768px) {
    .comparacion-ebr-ceba {
        padding: 3rem 0;
    }
    
    .tabla-comparacion-mejorada {
        font-size: 0.85rem;
    }
    
    .tabla-comparacion-mejorada th,
    .tabla-comparacion-mejorada td {
        padding: 1rem 0.75rem;
    }
    
    .tabla-comparacion-mejorada .header-content i {
        font-size: 2rem;
    }
    
    .tabla-comparacion-mejorada .header-title {
        font-size: 1.2rem;
    }
    
    .tabla-comparacion-mejorada .header-content small {
        font-size: 0.75rem;
    }
    
    .tabla-comparacion-mejorada td.caracteristica {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.5rem;
    }
    
    .tabla-comparacion-mejorada td.caracteristica i {
        font-size: 1.2rem;
    }
}

.conclusion-comparacion {
    max-width: 900px;
    margin: 0 auto;
}

.conclusion-box {
    background: linear-gradient(135deg, var(--primary), var(--primary-dark));
    color: var(--white);
    padding: 2.5rem;
    border-radius: 20px;
    text-align: center;
    box-shadow: 0 8px 32px rgba(0, 71, 171, 0.3);
}

.conclusion-box i {
    font-size: 3rem;
    margin-bottom: 1rem;
    display: block;
}

.conclusion-box h3 {
    font-size: 1.8rem;
    font-weight: 800;
    margin-bottom: 1rem;
}

.conclusion-box p {
    font-size: 1.1rem;
    line-height: 1.8;
    opacity: 0.95;
    margin: 0;
}

/* Programas Educativos Mejorados */
.programas-educativos {
    padding: 5rem 0;
    background: linear-gradient(180deg, #f8fafc 0%, #ffffff 100%);
}

.programas-grid-mejorado {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 2.5rem;
    margin-bottom: 3rem;
}

.programa-card-mejorado {
    background: var(--white);
    border-radius: 24px;
    padding: 0;
    box-shadow: 0 8px 30px rgba(0,0,0,0.08);
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    border: 2px solid #e5e7eb;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    position: relative;
}

.programa-card-mejorado::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--primary), var(--accent));
    transform: scaleX(0);
    transition: transform 0.4s ease;
}

.programa-card-mejorado:hover::before {
    transform: scaleX(1);
}

.programa-card-mejorado:hover {
    transform: translateY(-12px);
    box-shadow: 0 20px 60px rgba(0,71,171,0.15);
    border-color: var(--primary);
}

.programa-logo-oficial {
    width: 100%;
    height: 180px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #f8fafc 0%, #e5e7eb 100%);
    padding: 2rem;
    position: relative;
    overflow: hidden;
}

.programa-logo-oficial::after {
    content: '';
    position: absolute;
    top: -50%;
    right: -50%;
    width: 200%;
    height: 200%;
    background: radial-gradient(circle, rgba(255,255,255,0.3) 0%, transparent 70%);
    animation: shimmer 3s infinite;
}

@keyframes shimmer {
    0%, 100% { transform: translate(-50%, -50%) scale(0.8); opacity: 0; }
    50% { transform: translate(-50%, -50%) scale(1); opacity: 1; }
}

.logo-svg {
    width: 120px;
    height: 120px;
    filter: drop-shadow(0 4px 12px rgba(0,0,0,0.1));
    transition: transform 0.4s ease;
}

.programa-card-mejorado:hover .logo-svg {
    transform: scale(1.1) rotate(5deg);
}

.logo-img {
    max-width: 140px;
    max-height: 140px;
    object-fit: contain;
    filter: drop-shadow(0 4px 12px rgba(0,0,0,0.1));
    transition: transform 0.4s ease;
}

.programa-card-mejorado:hover .logo-img {
    transform: scale(1.08);
}

.logo-fallback {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 4rem;
    color: var(--primary);
    background: linear-gradient(135deg, #e3f2fd, #bbdefb);
    border-radius: 20px;
    transition: transform 0.4s ease;
}

.programa-card-mejorado:hover .logo-fallback {
    transform: scale(1.08);
}

.programa-content {
    padding: 2rem;
    flex-grow: 1;
    display: flex;
    flex-direction: column;
}

.programa-content h4 {
    font-size: 1.4rem;
    font-weight: 800;
    color: var(--dark);
    margin-bottom: 1rem;
    line-height: 1.3;
}

.programa-descripcion {
    color: var(--gray);
    font-size: 0.95rem;
    line-height: 1.7;
    margin-bottom: 1.5rem;
    flex-grow: 1;
}

.programa-beneficios {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 1.5rem;
}

.beneficio-tag {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.4rem 0.8rem;
    background: linear-gradient(135deg, #dbeafe, #bfdbfe);
    color: #0047AB;
    border-radius: 20px;
    font-size: 0.8rem;
    font-weight: 600;
    border: 1px solid #93c5fd;
}

.beneficio-tag i {
    font-size: 0.7rem;
}

.btn-programa-mejorado {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.6rem;
    padding: 1rem 1.5rem;
    background: linear-gradient(135deg, var(--primary), #0056d2);
    color: var(--white);
    border-radius: 12px;
    font-weight: 700;
    font-size: 0.95rem;
    transition: all 0.3s ease;
    margin: 0 2rem 2rem 2rem;
    box-shadow: 0 4px 12px rgba(0,71,171,0.2);
}

.btn-programa-mejorado:hover {
    background: linear-gradient(135deg, #003d8f, var(--primary));
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(0,71,171,0.3);
}

.programas-footer-mejorado {
    max-width: 1000px;
    margin: 0 auto;
}

.footer-destacado-mejorado {
    background: linear-gradient(135deg, #f5eed6 0%, #e8dcc0 50%, rgba(201, 162, 39, 0.35) 100%);
    padding: 2.5rem;
    border-radius: 20px;
    display: flex;
    align-items: center;
    gap: 2rem;
    border: 3px solid #fbbf24;
    box-shadow: 0 8px 30px rgba(251, 191, 36, 0.3);
    position: relative;
    overflow: hidden;
}

.footer-destacado-mejorado::before {
    content: '';
    position: absolute;
    top: -50%;
    left: -50%;
    width: 200%;
    height: 200%;
    background: radial-gradient(circle, rgba(255,255,255,0.3) 0%, transparent 70%);
    animation: pulse 4s infinite;
}

@keyframes pulse {
    0%, 100% { opacity: 0.5; }
    50% { opacity: 1; }
}

.icono-validez {
    flex-shrink: 0;
    width: 80px;
    height: 80px;
    background: linear-gradient(135deg, #f59e0b, #d97706);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 8px 20px rgba(245, 158, 11, 0.4);
    position: relative;
    z-index: 1;
}

.icono-validez i {
    font-size: 2.5rem;
    color: var(--white);
}

.texto-validez {
    flex-grow: 1;
    position: relative;
    z-index: 1;
}

.texto-validez h4 {
    font-size: 1.5rem;
    font-weight: 800;
    color: #78350f;
    margin-bottom: 0.8rem;
}

.texto-validez p {
    color: #92400e;
    font-size: 1.05rem;
    line-height: 1.7;
    margin: 0;
}

/* Responsive */
@media (max-width: 768px) {
    .programas-grid-mejorado {
        grid-template-columns: 1fr;
        gap: 2rem;
    }
    
    .footer-destacado-mejorado {
        flex-direction: column;
        text-align: center;
        padding: 2rem;
    }
    
    .icono-validez {
        width: 70px;
        height: 70px;
    }
    
    .icono-validez i {
        font-size: 2rem;
    }
    
    .texto-validez h4 {
        font-size: 1.3rem;
    }
    
    .texto-validez p {
        font-size: 0.95rem;
    }
    
    /* Tabla comparativa responsive */
    .tabla-comparacion-wrapper {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        border-radius: 12px;
        box-shadow: 0 4px 20px rgba(0,0,0,0.1);
    }
    
    .tabla-comparacion-mejorada {
        min-width: 600px; /* Ancho mÃ­nimo para scroll horizontal */
        font-size: 0.85rem;
    }
    
    .tabla-comparacion-mejorada th,
    .tabla-comparacion-mejorada td {
        padding: 1rem 0.75rem;
    }
    
    .tabla-comparacion-mejorada .header-content i {
        font-size: 2rem;
    }
    
    .tabla-comparacion-mejorada .header-title {
        font-size: 1.2rem;
    }
    
    .tabla-comparacion-mejorada .header-content small {
        font-size: 0.75rem;
    }
    
    .tabla-comparacion-mejorada td.caracteristica {
        flex-direction: column;
        align-items: flex-start;
        min-width: 180px; /* Ancho mÃ­nimo para la columna de caracterÃ­sticas */
    }
    
    .tabla-comparacion-mejorada td.caracteristica i {
        font-size: 1.2rem;
    }
    
    /* Agregar indicador de scroll */
    .tabla-comparacion-wrapper::after {
        content: "â† Desliza para ver mÃ¡s â†’";
        display: block;
        text-align: center;
        padding: 0.5rem;
        background: var(--light-gray);
        color: var(--gray);
        font-size: 0.8rem;
        font-style: italic;
    }
}

@media (max-width: 480px) {
    .tabla-comparacion-mejorada {
        min-width: 500px;
        font-size: 0.8rem;
    }
    
    .tabla-comparacion-mejorada th,
    .tabla-comparacion-mejorada td {
        padding: 0.75rem 0.5rem;
    }
    
    .tabla-comparacion-mejorada .header-content i {
        font-size: 1.5rem;
    }
    
    .tabla-comparacion-mejorada .header-title {
        font-size: 1rem;
    }
}

/* Responsive */
@media (max-width: 768px) {
    .por-que-ceba,
    .comparacion-ebr-ceba,
    .programas-educativos {
        padding: 3rem 0;
    }
    
    .explicacion-content {
        padding: 2rem 1.5rem;
    }
    
    .explicacion-content h3 {
        font-size: 1.5rem;
    }
    
    .explicacion-content > p {
        font-size: 1rem;
    }
    
    .ventajas-ceba {
        grid-template-columns: 1fr;
    }
    
    .tabla-comparacion-moderna {
        font-size: 0.85rem;
    }
    
    .tabla-comparacion-moderna th,
    .tabla-comparacion-moderna td {
        padding: 0.75rem 0.5rem;
    }
    
    .tabla-comparacion-moderna th i {
        font-size: 1.5rem;
    }
    
    .tabla-comparacion-moderna th span {
        font-size: 1rem;
    }
    
    .tabla-comparacion-moderna th small {
        font-size: 0.75rem;
    }
    
    .conclusion-box {
        padding: 2rem 1.5rem;
    }
    
    .conclusion-box h3 {
        font-size: 1.4rem;
    }
    
    .conclusion-box p {
        font-size: 1rem;
    }
    
    .programas-grid {
        grid-template-columns: 1fr;
    }
    
    .footer-destacado {
        flex-direction: column;
        text-align: center;
    }
    
    .footer-destacado i {
        margin: 0 auto;
    }
}


/* Nota Importante sobre Grados CEBA */
.nota-importante-grados {
    display: flex;
    align-items: flex-start;
    gap: 1.5rem;
    background: linear-gradient(135deg, #f5eed6, #e8dcc0);
    padding: 2rem;
    border-radius: 16px;
    margin-bottom: 3rem;
    border-left: 5px solid #f59e0b;
    box-shadow: 0 4px 16px rgba(245, 158, 11, 0.2);
}

.nota-icon {
    width: 60px;
    height: 60px;
    background: linear-gradient(135deg, #f59e0b, #d97706);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    box-shadow: 0 4px 12px rgba(245, 158, 11, 0.3);
}

.nota-icon i {
    font-size: 2rem;
    color: var(--white);
}

.nota-content h4 {
    font-size: 1.3rem;
    font-weight: 800;
    color: #78350f;
    margin-bottom: 0.75rem;
}

.nota-content p {
    color: #92400e;
    font-size: 1rem;
    line-height: 1.7;
    margin: 0;
}

.nota-content strong {
    color: #78350f;
    font-weight: 700;
}

@media (max-width: 768px) {
    .nota-importante-grados {
        flex-direction: column;
        text-align: center;
        padding: 1.5rem;
    }
    
    .nota-icon {
        margin: 0 auto;
    }
    
    .nota-content h4 {
        font-size: 1.1rem;
    }
    
    .nota-content p {
        font-size: 0.95rem;
    }
}


/* BotÃ³n Ver ComparaciÃ³n */
.btn-ver-comparacion {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    padding: 1rem 2rem;
    background: linear-gradient(135deg, var(--primary), var(--primary-dark));
    color: var(--white);
    border: none;
    border-radius: 12px;
    font-weight: 700;
    font-size: 1rem;
    cursor: pointer;
    transition: all 0.3s ease;
    box-shadow: 0 4px 16px rgba(0, 71, 171, 0.3);
    margin-top: 1.5rem;
}

.btn-ver-comparacion:hover {
    transform: translateY(-3px);
    box-shadow: 0 6px 20px rgba(0, 71, 171, 0.4);
}

.btn-ver-comparacion i {
    font-size: 1.2rem;
}

/* Modal ComparaciÃ³n */
.modal-overlay-comparacion {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.8);
    backdrop-filter: blur(5px);
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem;
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s ease;
}

.modal-overlay-comparacion.active {
    opacity: 1;
    visibility: visible;
}

.modal-container-comparacion {
    background: var(--white);
    border-radius: 20px;
    max-width: 1000px;
    width: 90%;
    max-height: 90vh;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
    position: relative;
    transform: scale(0.9);
    transition: all 0.3s ease;
}

.modal-overlay-comparacion.active .modal-container-comparacion {
    transform: scale(1);
}

.modal-close-comparacion {
    position: absolute;
    top: 1rem;
    right: 1rem;
    width: 40px;
    height: 40px;
    background: var(--secondary);
    color: var(--white);
    border: none;
    border-radius: 50%;
    font-size: 1.25rem;
    cursor: pointer;
    transition: all 0.3s ease;
    z-index: 10;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 12px rgba(217, 16, 35, 0.4);
}

.modal-close-comparacion:hover {
    background: #b91c1c;
    transform: rotate(90deg) scale(1.1);
}

.modal-header-comparacion {
    background: linear-gradient(135deg, #002966, #0047AB);
    color: var(--white);
    padding: 1.25rem 1.5rem;
    border-radius: 20px 20px 0 0;
}

.header-oficial {
    display: flex;
    align-items: center;
    gap: 1rem;
    max-width: 900px;
    margin: 0 auto;
}

.logo-peru-minedu {
    flex-shrink: 0;
}

.logo-minedu-grande {
    height: 50px;
    width: auto;
    /* No aplicar filtro para que se vea el logo original */
}

.titulo-oficial {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.titulo-oficial h2 {
    font-size: 1.25rem;
    font-weight: 800;
    margin: 0;
    letter-spacing: -0.5px;
}

.titulo-oficial p {
    font-size: 0.75rem;
    opacity: 0.95;
    margin: 0;
    font-weight: 500;
}

/* ComparaciÃ³n Visual con Flechas */
.comparacion-visual-flechas {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: 1.5rem;
    align-items: center;
    margin-bottom: 2rem;
    padding: 1.5rem;
    background: linear-gradient(135deg, #f8fafc, #f1f5f9);
    border-radius: 16px;
}

.opcion-educativa {
    background: var(--white);
    border-radius: 12px;
    padding: 1.25rem;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
    transition: all 0.3s ease;
}

.opcion-educativa:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

.ebr-opcion {
    border: 2px solid #e5e7eb;
}

.ceba-opcion {
    border: 3px solid var(--primary);
    background: linear-gradient(135deg, #f0f9ff, #e0f2fe);
}

.opcion-header {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    padding-bottom: 1rem;
    border-bottom: 2px solid #e5e7eb;
    margin-bottom: 1rem;
}

.opcion-header.destacado {
    border-bottom-color: var(--primary);
    position: relative;
}

.opcion-header i {
    font-size: 2rem;
    color: #6b7280;
}

.opcion-header.destacado i {
    color: var(--primary);
}

.opcion-header h3 {
    font-size: 1.1rem;
    font-weight: 800;
    color: var(--dark);
    margin: 0;
}

.badge-mejor {
    background: linear-gradient(135deg, #fbbf24, #f59e0b);
    color: var(--white);
    padding: 0.35rem 0.85rem;
    border-radius: 20px;
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.5px;
    box-shadow: 0 2px 8px rgba(251, 191, 36, 0.4);
}

.opcion-detalles {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.detalle-item {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.65rem;
    border-radius: 8px;
    font-size: 0.85rem;
    transition: all 0.3s ease;
}

.detalle-item:hover {
    transform: translateX(5px);
}

.detalle-item.negativo {
    background: #fef2f2;
    border-left: 3px solid #ef4444;
}

.detalle-item.negativo i {
    color: #dc2626;
    font-size: 1rem;
}

.detalle-item.positivo {
    background: #f0fdf4;
    border-left: 3px solid #10b981;
}

.detalle-item.positivo i {
    color: #059669;
    font-size: 1rem;
}

.detalle-item span {
    color: #374151;
    font-weight: 500;
    line-height: 1.3;
}

.detalle-item strong {
    color: var(--primary);
    font-weight: 800;
}

/* Flecha de ComparaciÃ³n */
.flecha-comparacion {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
}

.flecha-vs {
    background: linear-gradient(135deg, var(--secondary), #b91c1c);
    color: var(--white);
    width: 50px;
    height: 50px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    font-size: 1.1rem;
    box-shadow: 0 4px 12px rgba(217, 16, 35, 0.4);
}

.flecha-arrow {
    font-size: 2.5rem;
    color: var(--primary);
    animation: pulseArrowModal 2s ease-in-out infinite;
}

@keyframes pulseArrowModal {
    0%, 100% {
        transform: translateX(0);
        opacity: 1;
    }
    50% {
        transform: translateX(10px);
        opacity: 0.7;
    }
}

.modal-body-comparacion {
    padding: 1.5rem;
    max-width: 900px;
    margin: 0 auto;
    flex: 1 1 auto;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

/* TÃ­tulo de secciÃ³n compacto */
.titulo-seccion {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 1.15rem;
    font-weight: 800;
    color: var(--dark);
    margin-bottom: 1.25rem;
    padding-bottom: 0.5rem;
    border-bottom: 2px solid var(--primary);
}

.titulo-seccion i {
    color: var(--primary);
    font-size: 1.25rem;
}

/* Tabla de equivalencia profesional - VersiÃ³n Ultra Compacta */
.equivalencia-completa {
    margin-bottom: 1.5rem;
}

.tabla-equivalencia-profesional {
    max-width: 100%;
    margin: 0 auto;
    background: var(--white);
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
    border: 2px solid #e2e8f0;
}

/* Header de la tabla - Ultra Compacto */
.tabla-eq-header {
    display: grid;
    grid-template-columns: 1fr 1fr !important;
    background: linear-gradient(135deg, #002966, #0047AB);
}

.header-col {
    padding: 1rem;
    text-align: center;
    color: var(--white);
    position: relative;
}

.header-col.ebr-header {
    border-right: 2px solid rgba(255, 255, 255, 0.3);
}

.header-col i {
    font-size: 1.5rem;
    margin-bottom: 0.35rem;
    opacity: 0.95;
}

.header-col h3 {
    font-size: 1.1rem;
    font-weight: 800;
    margin-bottom: 0.25rem;
    letter-spacing: 0.5px;
}

.header-col p {
    font-size: 0.7rem;
    opacity: 0.9;
    margin: 0;
    font-weight: 500;
}

/* Body de la tabla - Ultra Compacto */
.tabla-eq-body {
    display: flex;
    flex-direction: column;
}

.tabla-eq-row {
    display: grid;
    grid-template-columns: 1fr 1fr !important;
    border-bottom: 1px solid #e5e7eb;
    transition: all 0.3s ease;
}

.tabla-eq-row:last-child {
    border-bottom: 2px solid #cbd5e1;
}

.tabla-eq-row:hover {
    background: #f8fafc;
}

.eq-cell {
    padding: 0.85rem 1rem;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    font-size: 0.9rem;
    transition: all 0.3s ease;
}

.eq-cell.ebr-cell {
    background: #f9fafb;
    border-right: 2px solid #cbd5e1;
    font-weight: 600;
    color: #374151;
}

.eq-cell.ebr-cell span {
    font-size: 0.875rem;
}

.eq-cell.ceba-cell {
    background: linear-gradient(135deg, #dbeafe, #bfdbfe);
    font-weight: 800;
    color: var(--primary);
}

.eq-cell.ceba-cell strong {
    font-size: 0.95rem;
    letter-spacing: 0.5px;
}

.tabla-eq-row:nth-child(even) .eq-cell.ebr-cell {
    background: #ffffff;
}

/* Footer con duraciones - Ultra Compacto */
.tabla-eq-footer {
    display: grid;
    grid-template-columns: 1fr 1fr !important;
    background: linear-gradient(135deg, #f1f5f9, #e2e8f0);
    border-top: 2px solid #cbd5e1;
}

.duracion-col {
    padding: 0.85rem;
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    align-items: center;
    justify-content: center;
}

.duracion-col.ebr-duracion {
    border-right: 2px solid #cbd5e1;
}

.duracion-badge {
    background: var(--white);
    border: 2px solid #cbd5e1;
    padding: 0.75rem 1rem;
    border-radius: 10px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.35rem;
    text-align: center;
    transition: all 0.3s ease;
    width: 100%;
    max-width: 200px;
}

.duracion-badge:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.duracion-badge.destacado {
    background: linear-gradient(135deg, #f5eed6, #e8dcc0);
    border: 2px solid #f59e0b;
    box-shadow: 0 2px 8px rgba(245, 158, 11, 0.3);
}

.duracion-badge i {
    font-size: 1.25rem;
    color: #6b7280;
}

.duracion-badge.destacado i {
    color: #d97706;
}

.duracion-badge strong {
    font-size: 1.15rem;
    font-weight: 800;
    color: var(--dark);
}

.duracion-badge.destacado strong {
    color: #92400e;
}

.duracion-badge small {
    font-size: 0.7rem;
    color: #6b7280;
    font-weight: 500;
    line-height: 1.3;
}

.duracion-badge.destacado small {
    color: #78350f;
    font-weight: 600;
}

/* Ventajas CEBA Footer - Ultra Compacto */
.ventajas-ceba-footer {
    background: linear-gradient(135deg, #dbeafe, #bfdbfe);
    padding: 1.25rem;
    border-top: 2px solid var(--primary);
}

.ventajas-ceba-footer h4 {
    text-align: center;
    font-size: 1rem;
    font-weight: 800;
    color: var(--primary);
    margin-bottom: 1rem;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
}

.ventajas-ceba-footer h4 i {
    font-size: 1.15rem;
    color: #f59e0b;
}

.ventajas-grid-footer {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    gap: 0.75rem;
}

.ventaja-mini {
    background: var(--white);
    border: 2px solid var(--primary);
    padding: 0.75rem;
    border-radius: 10px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.4rem;
    text-align: center;
    transition: all 0.3s ease;
}

.ventaja-mini:hover {
    transform: translateY(-3px);
    box-shadow: 0 6px 16px rgba(0, 71, 171, 0.2);
    background: linear-gradient(135deg, #f0f9ff, #e0f2fe);
}

.ventaja-mini i {
    font-size: 1.25rem;
    color: var(--primary);
}

.ventaja-mini span {
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--dark);
    line-height: 1.2;
}

/* Duraciones por Edad */
.duraciones-por-edad {
    display: grid;
    grid-template-columns: 1fr 1fr !important;
    gap: 2rem;
    margin: 3rem 0;
}

.duracion-card {
    background: var(--white);
    border: 2px solid #e5e7eb;
    border-radius: 16px;
    padding: 2rem;
    text-align: center;
    transition: all 0.3s ease;
}

.duracion-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
}

.duracion-card.destacada {
    background: linear-gradient(135deg, #f5eed6, #e8dcc0);
    border-color: #f59e0b;
}

.duracion-icon {
    width: 80px;
    height: 80px;
    background: linear-gradient(135deg, #e0e7ff, #c7d2fe);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 1.5rem;
}

.duracion-card.destacada .duracion-icon {
    background: linear-gradient(135deg, #fbbf24, #f59e0b);
}

.duracion-icon i {
    font-size: 2.5rem;
    color: var(--primary);
}

.duracion-card.destacada .duracion-icon i {
    color: var(--white);
}

.duracion-card h4 {
    font-size: 1.3rem;
    font-weight: 800;
    color: var(--dark);
    margin-bottom: 1.5rem;
}

.duracion-detalle {
    margin-top: 1rem;
}

.tiempo-total {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    margin-bottom: 0.5rem;
}

.tiempo-total i {
    font-size: 1.5rem;
    color: var(--primary);
}

.duracion-card.destacada .tiempo-total i {
    color: #d97706;
}

.tiempo-total strong {
    font-size: 2rem;
    font-weight: 800;
    color: var(--primary);
}

.duracion-card.destacada .tiempo-total strong {
    color: #d97706;
}

.duracion-detalle p {
    color: #6b7280;
    font-size: 0.95rem;
    margin-bottom: 1.5rem;
}

.ejemplo-timeline {
    display: flex;
    gap: 0.5rem;
    justify-content: center;
    flex-wrap: wrap;
}

.ejemplo-timeline span {
    background: #e0e7ff;
    color: var(--primary);
    padding: 0.5rem 1rem;
    border-radius: 8px;
    font-size: 0.85rem;
    font-weight: 600;
}

.duracion-card.destacada .ejemplo-timeline span {
    background: #fed7aa;
    color: #92400e;
}

.ejemplo-timeline span.doble {
    background: linear-gradient(135deg, #fbbf24, #f59e0b);
    color: var(--white);
    padding: 0.6rem 1.2rem;
    font-weight: 700;
}

/* ExplicaciÃ³n de Grados */
.explicacion-grados {
    display: flex;
    align-items: flex-start;
    gap: 1.5rem;
    background: linear-gradient(135deg, #f5eed6, #e8dcc0);
    padding: 2rem;
    border-radius: 16px;
    margin-top: 2rem;
}

.explicacion-icon {
    width: 60px;
    height: 60px;
    background: linear-gradient(135deg, #f59e0b, #d97706);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.explicacion-icon i {
    font-size: 2rem;
    color: var(--white);
}

.explicacion-texto h4 {
    font-size: 1.3rem;
    font-weight: 800;
    color: #78350f;
    margin-bottom: 0.75rem;
}

.explicacion-texto p {
    color: #92400e;
    font-size: 1rem;
    line-height: 1.7;
    margin: 0;
}

/* Beneficios CEBA Modal */
.beneficios-ceba-modal {
    margin-top: 3rem;
    padding-top: 3rem;
    border-top: 3px solid #e5e7eb;
}

.beneficios-grid-modal {
    display: grid;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 1.5rem;
    margin-top: 2rem;
}

.beneficio-modal-card {
    background: linear-gradient(135deg, #f0f9ff, #e0f2fe);
    padding: 2rem;
    border-radius: 16px;
    border: 2px solid #bfdbfe;
    transition: all 0.3s ease;
    text-align: center;
}

.beneficio-modal-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 24px rgba(0, 71, 171, 0.15);
    border-color: var(--primary);
}

.beneficio-icon {
    width: 70px;
    height: 70px;
    background: linear-gradient(135deg, var(--primary), var(--primary-dark));
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 1.25rem;
    box-shadow: 0 4px 16px rgba(0, 71, 171, 0.3);
}

.beneficio-icon i {
    font-size: 2rem;
    color: var(--white);
}

.beneficio-modal-card h5 {
    font-size: 1.2rem;
    font-weight: 800;
    color: var(--dark);
    margin-bottom: 0.75rem;
}

.beneficio-modal-card p {
    color: #4b5563;
    font-size: 0.95rem;
    line-height: 1.6;
    margin: 0;
}

.modal-conclusion {
    display: flex;
    align-items: flex-start;
    gap: 1.5rem;
    background: linear-gradient(135deg, #f5eed6, #e8dcc0);
    padding: 2rem;
    border-radius: 16px;
    margin-top: 2rem;
}

.conclusion-icon {
    width: 60px;
    height: 60px;
    background: linear-gradient(135deg, #f59e0b, #d97706);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.conclusion-icon i {
    font-size: 2rem;
    color: var(--white);
}

.conclusion-text h3 {
    font-size: 1.5rem;
    font-weight: 800;
    color: #78350f;
    margin-bottom: 0.75rem;
}

.conclusion-text p {
    color: #92400e;
    font-size: 1rem;
    line-height: 1.7;
    margin: 0;
}

.modal-footer-comparacion {
    display: flex;
    gap: 1rem;
    justify-content: center;
    padding: 2rem;
    border-top: 2px solid #e5e7eb;
    flex-shrink: 0;
    background: var(--white);
}

.btn-cerrar-modal,
.btn-matricular-modal {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    padding: 1rem 2rem;
    border-radius: 12px;
    font-weight: 700;
    font-size: 1rem;
    cursor: pointer;
    transition: all 0.3s ease;
    border: none;
}

.btn-cerrar-modal {
    background: #6b7280;
    color: var(--white);
}

.btn-cerrar-modal:hover {
    background: #4b5563;
    transform: translateY(-2px);
}

.btn-matricular-modal {
    background: linear-gradient(135deg, var(--secondary), #b91c1c);
    color: var(--white);
    box-shadow: 0 4px 16px rgba(217, 16, 35, 0.3);
}

.btn-matricular-modal:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(217, 16, 35, 0.4);
}

/* Responsive Modal */
@media (max-width: 768px) {
    .modal-overlay-comparacion {
        padding: 0.5rem;
    }
    
    .modal-container-comparacion {
        max-height: 98vh;
        max-width: 100%;
        border-radius: 16px;
        margin: 0;
    }
    
    .modal-header-comparacion {
        padding: 2rem 1.5rem 1.5rem;
        border-radius: 16px 16px 0 0;
    }
    
    .logo-minedu-grande {
        max-height: 40px;
    }
    
    .modal-header-comparacion h2 {
        font-size: 1.4rem;
        line-height: 1.3;
    }
    
    .modal-header-comparacion p {
        font-size: 0.9rem;
    }
    
    .modal-body-comparacion {
        padding: 1rem;
        max-height: calc(98vh - 200px);
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }
    
    /* ComparaciÃ³n Visual Responsive */
    .comparacion-visual-flechas {
        grid-template-columns: 1fr;
        gap: 1rem;
        padding: 1rem;
        margin-bottom: 2rem;
    }
    
    .opcion-educativa {
        padding: 1rem;
        border-radius: 12px;
    }
    
    .opcion-header i {
        font-size: 1.5rem;
    }
    
    .opcion-header h3 {
        font-size: 1rem;
    }
    
    .badge-mejor {
        font-size: 0.65rem;
        padding: 0.3rem 0.75rem;
    }
    
    .detalle-item {
        font-size: 0.8rem;
        padding: 0.5rem;
        margin-bottom: 0.3rem;
    }
    
    .detalle-item i {
        font-size: 0.8rem !important;
        margin-right: 0.4rem;
    }
    
    .flecha-comparacion {
        transform: rotate(90deg);
        margin: 0.5rem 0;
        order: 2; /* Mover la flecha entre las opciones */
    }
    
    .ebr-opcion {
        order: 1;
    }
    
    .ceba-opcion {
        order: 3;
    }
    
    .flecha-vs {
        width: 40px;
        height: 40px;
        font-size: 0.9rem;
    }
    
    .flecha-arrow {
        font-size: 1.5rem;
    }
    
    /* ComparaciÃ³n Grados Responsive */
    .titulo-seccion {
        font-size: 1.2rem;
        flex-direction: column;
        text-align: center;
        gap: 0.5rem;
        margin-bottom: 1.5rem;
    }
    
    .titulo-seccion i {
        font-size: 1.5rem;
    }
    
    /* Tabla equivalencia mÃ¡s compacta en mÃ³vil */
    .tabla-eq-header,
    .tabla-eq-row {
        grid-template-columns: 1fr 1fr;
        gap: 0.5rem;
    }
    
    .header-col,
    .eq-cell {
        padding: 0.75rem;
        font-size: 0.85rem;
    }
    
    .header-col h3 {
        font-size: 1rem;
    }
    
    .header-col p {
        font-size: 0.7rem;
    }
    
    /* Duraciones por edad responsive */
    .duraciones-por-edad {
        grid-template-columns: 1fr;
        gap: 1rem;
        margin: 2rem 0;
    }
    
    .duracion-card {
        padding: 1.5rem;
    }
    
    .duracion-card h4 {
        font-size: 1.1rem;
    }
    
    .tiempo-total {
        font-size: 1.5rem;
    }
    
    .ejemplo-timeline {
        gap: 0.3rem;
    }
    
    .ejemplo-timeline span {
        font-size: 0.7rem;
        padding: 0.3rem 0.6rem;
    }
    
    /* Beneficios grid responsive */
    .beneficios-grid-modal {
        grid-template-columns: 1fr;
        gap: 1rem;
    }
    
    .beneficio-modal-card {
        padding: 1rem;
    }
    
    .beneficio-modal-card h5 {
        font-size: 1rem;
    }
    
    .beneficio-modal-card p {
        font-size: 0.85rem;
    }
    
    /* Ventajas footer responsive */
    .ventajas-grid-footer {
        grid-template-columns: repeat(2, 1fr);
        gap: 0.5rem;
    }
    
    .ventaja-mini {
        padding: 0.5rem;
        font-size: 0.75rem;
    }
    
    .ventaja-mini i {
        font-size: 0.9rem;
    }
    
    /* Footer modal responsive */
    .modal-footer-comparacion {
        padding: 1rem 1.5rem;
        flex-direction: column;
        gap: 1rem;
    }
    
    .btn-cerrar-modal,
    .btn-matricular-modal {
        width: 100%;
        justify-content: center;
        padding: 1rem;
        font-size: 0.95rem;
    }
}

@media (max-width: 480px) {
    .modal-overlay-comparacion {
        padding: 0.25rem;
    }
    
    .modal-container-comparacion {
        max-height: 99vh;
        border-radius: 12px;
    }
    
    .modal-header-comparacion {
        padding: 1.5rem 1rem 1rem;
    }
    
    .modal-header-comparacion h2 {
        font-size: 1.2rem;
    }
    
    .modal-body-comparacion {
        padding: 0.75rem;
        max-height: calc(99vh - 180px);
    }
    
    .titulo-seccion {
        font-size: 1.1rem;
    }
    
    .ventajas-grid-footer {
        grid-template-columns: 1fr;
    }
    
    .detalle-item {
        font-size: 0.75rem;
    }
}
@media (max-width: 600px) {
    .tabla-equivalencia-profesional {
        border-radius: 16px;
        border-width: 2px;
    }

    .tabla-eq-header {
        grid-template-columns: 1fr;
    }
    
    .header-col {
        padding: 1.5rem;
    }
    
    .header-col.ebr-header {
        border-right: none;
        border-bottom: 3px solid rgba(255, 255, 255, 0.3);
    }
    
    .header-col i {
        font-size: 2rem;
        margin-bottom: 0.5rem;
    }
    
    .header-col h3 {
        font-size: 1.5rem;
    }
    
    .header-col p {
        font-size: 0.8rem;
    }
    
    .tabla-eq-row {
        grid-template-columns: 1fr;
    }
    
    .eq-cell {
        padding: 1.25rem 1.5rem;
        font-size: 1rem;
    }
    
    .eq-cell.ebr-cell {
        border-right: none;
        border-bottom: 3px solid #cbd5e1;
    }
    
    .eq-cell.ceba-cell strong {
        font-size: 1.1rem;
    }
    
    .eq-cell.ebr-cell span {
        font-size: 0.95rem;
    }
    
    .tabla-eq-footer {
        grid-template-columns: 1fr;
    }
    
    .duracion-col.ebr-duracion {
        border-right: none;
        border-bottom: 3px solid #cbd5e1;
    }
    
    .duracion-col {
        padding: 1.25rem;
    }
    
    .duracion-badge {
        padding: 0.85rem 1.25rem;
        max-width: 100%;
    }
    
    .duracion-badge i {
        font-size: 1.5rem;
    }
    
    .duracion-badge strong {
        font-size: 1.3rem;
    }
    
    .duracion-badge small {
        font-size: 0.8rem;
    }
    
    .ventajas-ceba-footer {
        padding: 1.5rem;
    }
    
    .ventajas-ceba-footer h4 {
        font-size: 1.15rem;
        margin-bottom: 1.25rem;
    }
    
    .ventajas-grid-footer {
        grid-template-columns: repeat(2, 1fr);
        gap: 0.85rem;
    }
    
    .ventaja-mini {
        padding: 0.85rem;
    }
    
    .ventaja-mini i {
        font-size: 1.5rem;
    }
    
    .ventaja-mini span {
        font-size: 0.85rem;
    }
    
    .duraciones-por-edad {
        grid-template-columns: 1fr;
        gap: 1.5rem;
        margin: 2rem 0;
    }
    
    .duracion-card {
        padding: 1.5rem;
    }
    
    .duracion-icon {
        width: 70px;
        height: 70px;
    }
    
    .duracion-icon i {
        font-size: 2rem;
    }
    
    .duracion-card h4 {
        font-size: 1.15rem;
    }
    
    .tiempo-total i {
        font-size: 1.25rem;
    }
    
    .tiempo-total strong {
        font-size: 1.75rem;
    }
    
    .ejemplo-timeline {
        gap: 0.4rem;
    }
    
    .ejemplo-timeline span {
        font-size: 0.8rem;
        padding: 0.4rem 0.8rem;
    }
    
    .ejemplo-timeline span.doble {
        padding: 0.5rem 1rem;
    }
    
    .explicacion-grados {
        flex-direction: column;
        text-align: center;
        padding: 1.5rem;
    }
    
    .explicacion-icon {
        margin: 0 auto;
        width: 55px;
        height: 55px;
    }
    
    .explicacion-icon i {
        font-size: 1.75rem;
    }
    
    .explicacion-texto h4 {
        font-size: 1.15rem;
    }
    
    .explicacion-texto p {
        font-size: 0.95rem;
    }
    
    /* Beneficios Modal Responsive */
    .beneficios-ceba-modal {
        margin-top: 2rem;
        padding-top: 2rem;
    }
    
    .beneficios-grid-modal {
        grid-template-columns: 1fr;
        gap: 1.25rem;
    }
    
    .beneficio-modal-card {
        padding: 1.5rem;
    }
    
    .beneficio-icon {
        width: 60px;
        height: 60px;
    }
    
    .beneficio-icon i {
        font-size: 1.75rem;
    }
    
    .beneficio-modal-card h5 {
        font-size: 1.1rem;
    }
    
    .beneficio-modal-card p {
        font-size: 0.9rem;
    }
    
    .modal-conclusion {
        flex-direction: column;
        text-align: center;
        padding: 1.5rem;
    }
    
    .conclusion-icon {
        margin: 0 auto;
    }
    
    .modal-footer-comparacion {
        flex-direction: column;
        padding: 1.5rem;
    }
    
    .btn-cerrar-modal,
    .btn-matricular-modal {
        width: 100%;
        justify-content: center;
    }
    
    .btn-ver-comparacion {
        width: 100%;
        justify-content: center;
        font-size: 0.95rem;
        padding: 0.85rem 1.5rem;
    }
}
/* ===================================
   Mejoras de Accesibilidad y Performance
   =================================== */

/* Skip link */
.skip-link {
    position: absolute;
    top: -40px;
    left: 6px;
    background: var(--primary);
    color: var(--white);
    padding: 0.5rem 1rem;
    text-decoration: none;
    border-radius: 4px;
    z-index: 1000;
    transition: top 0.3s ease;
    font-weight: 600;
}

.skip-link:focus {
    top: 6px;
}

/* Mejorar contraste en focus */
*:focus {
    outline: 3px solid var(--primary) !important;
    outline-offset: 2px !important;
}

/* Reducir movimiento para usuarios con preferencias de accesibilidad */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}

/* Mejorar legibilidad en pantallas de alto contraste */
@media (prefers-contrast: high) {
    .btn-primary,
    .btn-secondary {
        border: 2px solid currentColor;
    }
    
    .nav-link:hover,
    .nav-link:focus {
        background: var(--primary);
        color: var(--white);
    }
}

/* Lazy loading placeholder */
img.lazy {
    opacity: 0;
    transition: opacity 0.3s;
}

img.lazy.loaded {
    opacity: 1;
}

/* Optimizaciones para conexiones lentas */
.reduced-motion * {
    animation: none !important;
    transition: none !important;
}

/* Mejorar visibilidad de elementos interactivos */
button,
.btn,
a[role="button"] {
    min-height: 44px;
    min-width: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* Indicadores de carga */
.loading {
    position: relative;
    overflow: hidden;
}

.loading::after {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(
        90deg,
        transparent,
        rgba(255, 255, 255, 0.4),
        transparent
    );
    animation: loading 1.5s infinite;
}

@keyframes loading {
    0% {
        left: -100%;
    }
    100% {
        left: 100%;
    }
}

/* Mejorar tabla responsive */
@media (max-width: 768px) {
    .tabla-comparacion-wrapper {
        position: relative;
    }
    
    .tabla-comparacion-wrapper::before {
        content: 'ðŸ‘† Desliza horizontalmente para ver mÃ¡s';
        position: absolute;
        top: -30px;
        left: 0;
        right: 0;
        text-align: center;
        font-size: 0.8rem;
        color: var(--gray);
        background: var(--light-gray);
        padding: 0.5rem;
        border-radius: 4px;
        z-index: 1;
    }
}

/* Mejorar formularios en mÃ³vil */
@media (max-width: 768px) {
    input,
    textarea,
    select {
        font-size: 16px; /* Prevenir zoom en iOS */
        min-height: 44px;
    }
    
    .form-group {
        margin-bottom: 1.5rem;
    }
    
    label {
        font-weight: 600;
        margin-bottom: 0.5rem;
        display: block;
    }
}

/* Mejorar cards en mÃ³vil */
@media (max-width: 768px) {
    .programa-card-mejorado,
    .modalidad-card,
    .beneficio-card {
        margin-bottom: 1rem;
        padding: 1.5rem;
    }
    
    .programa-card-mejorado:last-child,
    .modalidad-card:last-child,
    .beneficio-card:last-child {
        margin-bottom: 0;
    }
}

/* Mejorar espaciado en mÃ³vil */
@media (max-width: 768px) {
    .section-title {
        font-size: 1.8rem;
        line-height: 1.3;
        margin-bottom: 1rem;
    }
    
    .section-subtitle {
        font-size: 1rem;
        margin-bottom: 2rem;
    }
    
    .container {
        padding: 0 1rem;
    }
}

/* Mejorar botones en mÃ³vil */
@media (max-width: 768px) {
    .btn {
        padding: 1rem 1.5rem;
        font-size: 1rem;
        min-height: 48px;
        width: 100%;
        justify-content: center;
    }
    
    .btn-group {
        flex-direction: column;
        gap: 1rem;
    }
    
    .btn-group .btn {
        width: 100%;
    }
}

/* Mejorar hero section en mÃ³vil */
@media (max-width: 768px) {
    .hero-carousel {
        height: 400px;
    }
    
    .carousel-content h1 {
        font-size: 1.8rem;
        line-height: 1.2;
    }
    
    .carousel-content p {
        font-size: 1rem;
        margin: 1rem 0;
    }
}

/* Mejorar estadÃ­sticas en mÃ³vil */
@media (max-width: 768px) {
    .stats-grid-animated {
        grid-template-columns: 1fr 1fr;
        gap: 1rem;
    }
    
    .stat-card-animated {
        padding: 1.5rem 1rem;
        text-align: center;
    }
    
    .stat-number {
        font-size: 2rem;
    }
    
    .stat-label {
        font-size: 0.9rem;
    }
}

@media (max-width: 480px) {
    .stats-grid-animated {
        grid-template-columns: 1fr;
    }
    
    .stat-card-animated {
        padding: 2rem 1rem;
    }
}

/* Mejorar footer en mÃ³vil */
@media (max-width: 768px) {
    .footer-content {
        grid-template-columns: 1fr;
        gap: 2rem;
        text-align: center;
    }
    
    .footer-section h4 {
        font-size: 1.1rem;
        margin-bottom: 1rem;
    }
    
    .footer-links {
        justify-content: center;
    }
    
    .social-links {
        justify-content: center;
        gap: 1rem;
    }
}

/* Optimizaciones adicionales */
.container-fluid {
    width: 100%;
    padding: 0 1rem;
}

@media (min-width: 576px) {
    .container-fluid {
        padding: 0 1.5rem;
    }
}

@media (min-width: 768px) {
    .container-fluid {
        padding: 0 2rem;
    }
}

@media (min-width: 992px) {
    .container-fluid {
        padding: 0 3rem;
    }
}

/* Utilidades responsive */
.d-none { display: none !important; }
.d-block { display: block !important; }
.d-flex { display: flex !important; }

@media (max-width: 767px) {
    .d-md-none { display: none !important; }
    .d-md-block { display: block !important; }
    .d-md-flex { display: flex !important; }
}

@media (min-width: 768px) {
    .d-md-none { display: none !important; }
    .d-md-block { display: block !important; }
    .d-md-flex { display: flex !important; }
}

/* Text utilities */
.text-center { text-align: center !important; }
.text-left { text-align: left !important; }
.text-right { text-align: right !important; }

@media (max-width: 767px) {
    .text-md-center { text-align: center !important; }
    .text-md-left { text-align: left !important; }
}

/* Spacing utilities */
.mb-0 { margin-bottom: 0 !important; }
.mb-1 { margin-bottom: 0.5rem !important; }
.mb-2 { margin-bottom: 1rem !important; }
.mb-3 { margin-bottom: 1.5rem !important; }
.mb-4 { margin-bottom: 2rem !important; }

.mt-0 { margin-top: 0 !important; }
.mt-1 { margin-top: 0.5rem !important; }
.mt-2 { margin-top: 1rem !important; }
.mt-3 { margin-top: 1.5rem !important; }
.mt-4 { margin-top: 2rem !important; }

.p-0 { padding: 0 !important; }
.p-1 { padding: 0.5rem !important; }
.p-2 { padding: 1rem !important; }
.p-3 { padding: 1.5rem !important; }
.p-4 { padding: 2rem !important; }

/* ===================================
   HERO SECTION MODERNO - IMPACTANTE
   =================================== */
.hero-modern {
    position: relative;
    min-height: 100vh;
    display: flex;
    align-items: center;
    overflow: hidden;
    background: linear-gradient(135deg, #002966 0%, #0047AB 55%, #003d94 100%);
}

.hero-background {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
}

.hero-particles {
    position: absolute;
    width: 100%;
    height: 100%;
    background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><circle cx="20" cy="20" r="2" fill="rgba(255,255,255,0.1)"/><circle cx="80" cy="40" r="1" fill="rgba(255,255,255,0.1)"/><circle cx="40" cy="80" r="1.5" fill="rgba(255,255,255,0.1)"/><circle cx="90" cy="90" r="1" fill="rgba(255,255,255,0.1)"/><circle cx="10" cy="60" r="1" fill="rgba(255,255,255,0.1)"/></svg>') repeat;
    animation: float-particles 20s linear infinite;
}

@keyframes float-particles {
    0% { transform: translateY(0px) translateX(0px); }
    50% { transform: translateY(-20px) translateX(10px); }
    100% { transform: translateY(0px) translateX(0px); }
}

.hero-gradient {
    position: absolute;
    width: 100%;
    height: 100%;
    background: linear-gradient(45deg, rgba(0,71,171,0.1) 0%, rgba(217,16,35,0.1) 100%);
}

.hero-content-grid {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4rem;
    align-items: center;
    min-height: 80vh;
}

.hero-text {
    color: var(--white);
}

.hero-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    background: rgba(255,255,255,0.15);
    backdrop-filter: blur(10px);
    padding: 0.75rem 1.5rem;
    border-radius: 50px;
    font-size: 0.9rem;
    font-weight: 600;
    margin-bottom: 2rem;
    border: 1px solid rgba(255,255,255,0.2);
}

.hero-title {
    font-size: 4rem;
    font-weight: 800;
    line-height: 1.1;
    margin-bottom: 1.5rem;
    text-shadow: 0 4px 20px rgba(0,0,0,0.3);
}

.text-gradient {
    background: linear-gradient(135deg, #fbbf24, #f59e0b);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.text-highlight {
    color: #fbbf24;
    text-shadow: 0 0 20px rgba(251,191,36,0.5);
}

.hero-subtitle {
    font-size: 1.3rem;
    line-height: 1.6;
    margin-bottom: 3rem;
    opacity: 0.95;
}

/* Calculadora de Tiempo Interactiva */
.calculadora-tiempo {
    background: rgba(255,255,255,0.1);
    backdrop-filter: blur(15px);
    border-radius: 20px;
    padding: 2rem;
    margin-bottom: 3rem;
    border: 1px solid rgba(255,255,255,0.2);
}

.calc-header {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 1.5rem;
    font-weight: 700;
    font-size: 1.1rem;
}

.calc-header i {
    color: #fbbf24;
    font-size: 1.3rem;
}

.edad-selector label {
    display: block;
    margin-bottom: 1rem;
    font-weight: 600;
    font-size: 1rem;
}

.edad-buttons {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.edad-btn {
    background: rgba(255,255,255,0.1);
    border: 2px solid rgba(255,255,255,0.3);
    border-radius: 15px;
    padding: 1.25rem;
    color: var(--white);
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    font-weight: 600;
}

.edad-btn:hover {
    background: rgba(255,255,255,0.2);
    border-color: rgba(255,255,255,0.5);
    transform: translateY(-3px);
}

.edad-btn.active {
    background: rgba(251,191,36,0.2);
    border-color: #fbbf24;
    box-shadow: 0 0 20px rgba(251,191,36,0.3);
}

.edad-btn.destacado {
    background: rgba(251,191,36,0.15);
    border-color: #fbbf24;
}

.edad-btn i {
    font-size: 1.5rem;
}

.resultado-calculo {
    background: rgba(251,191,36,0.15);
    border: 2px solid #fbbf24;
    border-radius: 15px;
    padding: 1.5rem;
    animation: slideDown 0.5s ease;
}

@keyframes slideDown {
    from {
        opacity: 0;
        transform: translateY(-20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.resultado-content {
    text-align: center;
}

.tiempo-resultado {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    font-size: 1.3rem;
    font-weight: 700;
    margin-bottom: 0.75rem;
}

.tiempo-resultado i {
    color: #fbbf24;
    font-size: 1.5rem;
}

.ahorro-tiempo {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    font-size: 1rem;
    color: #fbbf24;
    font-weight: 600;
}

.ahorro-tiempo i {
    animation: pulse-bolt 1s infinite;
}

@keyframes pulse-bolt {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.2); }
}

/* Botones de AcciÃ³n Hero */
.hero-actions {
    display: flex;
    gap: 1.5rem;
    margin-bottom: 3rem;
}

.btn-hero-primary {
    position: relative;
    background: linear-gradient(135deg, #fbbf24, #f59e0b);
    color: var(--dark);
    padding: 1.25rem 2.5rem;
    border-radius: 15px;
    font-weight: 700;
    font-size: 1.1rem;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    transition: all 0.3s ease;
    overflow: hidden;
    box-shadow: 0 8px 25px rgba(251,191,36,0.4);
}

.btn-hero-primary:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 35px rgba(251,191,36,0.6);
}

.btn-shine {
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.3), transparent);
    transition: left 0.6s ease;
}

.btn-hero-primary:hover .btn-shine {
    left: 100%;
}

.btn-hero-whatsapp {
    background: #25d366;
    color: var(--white);
    padding: 1.25rem 2rem;
    border-radius: 15px;
    font-weight: 700;
    font-size: 1.1rem;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    transition: all 0.3s ease;
    box-shadow: 0 8px 25px rgba(37,211,102,0.4);
}

.btn-hero-whatsapp:hover {
    background: #20ba5a;
    transform: translateY(-3px);
    box-shadow: 0 12px 35px rgba(37,211,102,0.6);
}

/* EstadÃ­sticas Hero */
.hero-stats {
    display: flex;
    gap: 3rem;
}

.stat-item {
    text-align: center;
}

.stat-number {
    font-size: 3rem;
    font-weight: 800;
    color: #fbbf24;
    display: block;
    text-shadow: 0 0 20px rgba(251,191,36,0.5);
}

.stat-label {
    font-size: 0.9rem;
    opacity: 0.9;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* Visual Hero */
.hero-visual {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

/* Testimonios Hero Rotatorios */
.testimonios-hero {
    position: relative;
    height: 200px;
}

.testimonio-hero {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    background: rgba(255,255,255,0.1);
    backdrop-filter: blur(15px);
    border-radius: 20px;
    padding: 2rem;
    border: 1px solid rgba(255,255,255,0.2);
    opacity: 0;
    transform: translateX(50px);
    transition: all 0.8s ease;
}

.testimonio-hero.active {
    opacity: 1;
    transform: translateX(0);
}

.testimonio-avatar {
    width: 50px;
    height: 50px;
    background: linear-gradient(135deg, #fbbf24, #f59e0b);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    color: var(--dark);
    margin-bottom: 1rem;
}

.testimonio-content p {
    font-size: 1rem;
    line-height: 1.6;
    margin-bottom: 1rem;
    font-style: italic;
}

.testimonio-author strong {
    display: block;
    font-weight: 700;
    margin-bottom: 0.25rem;
}

.testimonio-author span {
    font-size: 0.9rem;
    opacity: 0.8;
}

.testimonio-stars {
    display: flex;
    gap: 0.25rem;
    margin-top: 1rem;
}

.testimonio-stars i {
    color: #fbbf24;
    font-size: 0.9rem;
}

/* Cronograma Visual */
.cronograma-visual {
    background: rgba(255,255,255,0.1);
    backdrop-filter: blur(15px);
    border-radius: 20px;
    padding: 2rem;
    border: 1px solid rgba(255,255,255,0.2);
}

.cronograma-header {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 1.5rem;
    font-weight: 700;
    font-size: 1.1rem;
}

.cronograma-header i {
    color: #fbbf24;
    font-size: 1.3rem;
}

.cronograma-items {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.cronograma-item {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem;
    background: rgba(255,255,255,0.05);
    border-radius: 12px;
    border: 1px solid rgba(255,255,255,0.1);
}

.cronograma-fecha {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-weight: 600;
    min-width: 120px;
}

.cronograma-fecha i {
    color: #25d366;
    font-size: 1.1rem;
}

.cronograma-info strong {
    display: block;
    font-weight: 700;
    margin-bottom: 0.25rem;
}

.cronograma-info small {
    font-size: 0.85rem;
    opacity: 0.8;
}

/* Scroll Indicator */
.scroll-indicator {
    position: absolute;
    bottom: 2rem;
    left: 50%;
    transform: translateX(-50%);
    text-align: center;
    color: var(--white);
    cursor: pointer;
    animation: bounce 2s infinite;
}

@keyframes bounce {
    0%, 20%, 50%, 80%, 100% {
        transform: translateX(-50%) translateY(0);
    }
    40% {
        transform: translateX(-50%) translateY(-10px);
    }
    60% {
        transform: translateX(-50%) translateY(-5px);
    }
}

.scroll-text {
    font-size: 0.9rem;
    margin-bottom: 0.5rem;
    opacity: 0.8;
}

.scroll-arrow {
    font-size: 1.2rem;
    animation: pulse 2s infinite;
}

@keyframes pulse {
    0%, 100% { opacity: 0.8; }
    50% { opacity: 1; }
}

/* Responsive Hero */
@media (max-width: 1024px) {
    .hero-content-grid {
        grid-template-columns: 1fr;
        gap: 3rem;
        text-align: center;
    }
    
    .hero-title {
        font-size: 3rem;
    }
    
    .hero-stats {
        justify-content: center;
    }
}

@media (max-width: 768px) {
    .hero-modern {
        min-height: 90vh;
    }
    
    .hero-title {
        font-size: 2.5rem;
    }
    
    .hero-subtitle {
        font-size: 1.1rem;
    }
    
    .hero-actions {
        flex-direction: column;
        align-items: center;
    }
    
    .btn-hero-primary,
    .btn-hero-whatsapp {
        width: 100%;
        justify-content: center;
    }
    
    .hero-stats {
        gap: 2rem;
    }
    
    .stat-number {
        font-size: 2.5rem;
    }
    
    .calculadora-tiempo {
        padding: 1.5rem;
    }
    
    .edad-buttons {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 480px) {
    .hero-title {
        font-size: 2rem;
    }
    
    .hero-subtitle {
        font-size: 1rem;
    }
    
    .calculadora-tiempo {
        padding: 1rem;
    }
    
    .cronograma-item {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.5rem;
    }
    
    .cronograma-fecha {
        min-width: auto;
    }
}

/* ===================================
   ANIMACIONES AVANZADAS (AOS)
   =================================== */
[data-aos] {
    opacity: 0;
    transition-property: opacity, transform;
    transition-duration: 0.6s;
    transition-timing-function: ease-out;
}

[data-aos].aos-animate {
    opacity: 1;
    transform: none;
}

[data-aos="fade-up"] {
    transform: translateY(30px);
}

[data-aos="fade-down"] {
    transform: translateY(-30px);
}

[data-aos="fade-left"] {
    transform: translateX(30px);
}

[data-aos="fade-right"] {
    transform: translateX(-30px);
}

[data-aos="zoom-in"] {
    transform: scale(0.8);
}

[data-aos="flip-left"] {
    transform: perspective(2500px) rotateY(-100deg);
}

/* ===================================
   MEJORAS GRUPOS MATRICULA
   =================================== */
.page-header-modern {
    background: linear-gradient(135deg, #002966 0%, #0047AB 100%);
    padding: 6rem 0 4rem;
    position: relative;
    overflow: hidden;
}

.page-header-modern::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1440 320"><path fill="rgba(255,255,255,0.1)" d="M0,96L48,112C96,128,192,160,288,160C384,160,480,128,576,122.7C672,117,768,139,864,154.7C960,171,1056,181,1152,165.3C1248,149,1344,107,1392,85.3L1440,64L1440,320L1392,320C1344,320,1248,320,1152,320C1056,320,960,320,864,320C768,320,672,320,576,320C480,320,384,320,288,320C192,320,96,320,48,320L0,320Z"></path></svg>') no-repeat bottom;
    background-size: cover;
}

.header-content-modern {
    position: relative;
    z-index: 2;
    text-align: center;
    color: var(--white);
    max-width: 800px;
    margin: 0 auto;
}

.header-badge {
    display: inline-block;
    background: rgba(255,255,255,0.2);
    backdrop-filter: blur(10px);
    padding: 0.75rem 1.5rem;
    border-radius: 50px;
    font-size: 0.9rem;
    font-weight: 600;
    margin-bottom: 1.5rem;
    border: 1px solid rgba(255,255,255,0.3);
}

.header-content-modern h1 {
    font-size: 3rem;
    font-weight: 800;
    margin-bottom: 1rem;
    text-shadow: 0 4px 20px rgba(0,0,0,0.3);
}

.header-content-modern p {
    font-size: 1.3rem;
    opacity: 0.95;
    line-height: 1.6;
}

/* ===================================
   SISTEMA DE NOTIFICACIONES
   =================================== */
.notification-system {
    position: fixed;
    top: 20px;
    right: 20px;
    z-index: 10000;
    max-width: 400px;
}

.notification {
    background: var(--white);
    border-radius: 12px;
    padding: 1rem 1.5rem;
    margin-bottom: 1rem;
    box-shadow: 0 8px 25px rgba(0,0,0,0.15);
    border-left: 4px solid var(--primary);
    transform: translateX(450px);
    transition: all 0.4s ease;
    display: flex;
    align-items: center;
    gap: 1rem;
}

.notification.show {
    transform: translateX(0);
}

.notification.success {
    border-left-color: #10b981;
}

.notification.warning {
    border-left-color: #f59e0b;
}

.notification.error {
    border-left-color: #ef4444;
}

.notification-icon {
    font-size: 1.5rem;
    flex-shrink: 0;
}

.notification.success .notification-icon {
    color: #10b981;
}

.notification.warning .notification-icon {
    color: #f59e0b;
}

.notification.error .notification-icon {
    color: #ef4444;
}

.notification-content h4 {
    font-size: 0.95rem;
    font-weight: 700;
    margin-bottom: 0.25rem;
    color: var(--dark);
}

.notification-content p {
    font-size: 0.85rem;
    color: var(--gray);
    margin: 0;
}

.notification-close {
    background: none;
    border: none;
    font-size: 1.2rem;
    color: var(--gray);
    cursor: pointer;
    padding: 0;
    margin-left: auto;
}

/* ===================================
   LOADING STATES ELEGANTES
   =================================== */
.loading-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.8);
    backdrop-filter: blur(5px);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 9999;
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s ease;
}

.loading-overlay.active {
    opacity: 1;
    visibility: visible;
}

.loading-spinner {
    width: 60px;
    height: 60px;
    border: 4px solid rgba(255,255,255,0.2);
    border-top: 4px solid var(--primary);
    border-radius: 50%;
    animation: spin 1s linear infinite;
}

@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

.loading-text {
    color: var(--white);
    margin-top: 1rem;
    font-weight: 600;
    text-align: center;
}

/* ===================================
   BOTONES FLOTANTES INTELIGENTES
   =================================== */
.floating-actions {
    position: fixed;
    bottom: 30px;
    right: 30px;
    z-index: 1000;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.floating-btn {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    color: var(--white);
    text-decoration: none;
    transition: all 0.3s ease;
    box-shadow: 0 4px 15px rgba(0,0,0,0.2);
    position: relative;
    overflow: hidden;
}

.floating-btn::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: inherit;
    border-radius: inherit;
    transform: scale(0);
    transition: transform 0.3s ease;
}

.floating-btn:hover::before {
    transform: scale(1.2);
}

.floating-btn:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 25px rgba(0,0,0,0.3);
}

.floating-btn i {
    position: relative;
    z-index: 1;
}

.btn-whatsapp-float {
    background: #25d366;
}

.btn-phone-float {
    background: var(--primary);
}

.btn-scroll-top {
    background: var(--dark);
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s ease;
}

.btn-scroll-top.visible {
    opacity: 1;
    visibility: visible;
}

/* Tooltips para botones flotantes */
.floating-btn[data-tooltip] {
    position: relative;
}

.floating-btn[data-tooltip]::after {
    content: attr(data-tooltip);
    position: absolute;
    right: 70px;
    top: 50%;
    transform: translateY(-50%);
    background: var(--dark);
    color: var(--white);
    padding: 0.5rem 1rem;
    border-radius: 8px;
    font-size: 0.85rem;
    white-space: nowrap;
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s ease;
    pointer-events: none;
}

.floating-btn[data-tooltip]:hover::after {
    opacity: 1;
    visibility: visible;
    right: 75px;
}

/* ===================================
   MEJORAS RESPONSIVE AVANZADAS
   =================================== */
@media (max-width: 768px) {
    .floating-actions {
        bottom: 20px;
        right: 20px;
        gap: 0.75rem;
    }
    
    .floating-btn {
        width: 50px;
        height: 50px;
        font-size: 1.2rem;
    }
    
    .notification-system {
        top: 10px;
        right: 10px;
        left: 10px;
        max-width: none;
    }
    
    .notification {
        margin-bottom: 0.75rem;
    }
}

/* ===================================
   UTILIDADES RESPONSIVE
   =================================== */
.hide-mobile {
    display: block;
}

.show-mobile {
    display: none;
}

@media (max-width: 768px) {
    .hide-mobile {
        display: none;
    }
    
    .show-mobile {
        display: block;
    }
}

.text-center-mobile {
    text-align: left;
}

@media (max-width: 768px) {
    .text-center-mobile {
        text-align: center;
    }
}

/* ===================================
   EFECTOS DE HOVER AVANZADOS
   =================================== */
.hover-lift {
    transition: all 0.3s ease;
}

.hover-lift:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 30px rgba(0,0,0,0.15);
}

.hover-glow {
    transition: all 0.3s ease;
}

.hover-glow:hover {
    box-shadow: 0 0 20px rgba(0,71,171,0.3);
}

.hover-scale {
    transition: all 0.3s ease;
}

.hover-scale:hover {
    transform: scale(1.05);
}

/* ===================================
   ANIMACIONES DE ENTRADA
   =================================== */
.fade-in {
    animation: fadeIn 0.6s ease forwards;
}

.slide-up {
    animation: slideUp 0.6s ease forwards;
}

.slide-down {
    animation: slideDown 0.6s ease forwards;
}

.zoom-in {
    animation: zoomIn 0.6s ease forwards;
}

@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

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

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

@keyframes zoomIn {
    from {
        opacity: 0;
        transform: scale(0.8);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}
/* ===================================
   ESTILOS INSTITUCIONALES
   =================================== */

/* Headers Institucionales */
.page-header-institucional,
.page-header-reclamaciones,
.page-header-transparencia,
.page-header-tramites,
.page-header-directorio {
    background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
    color: var(--white);
    padding: 4rem 0;
    position: relative;
    overflow: hidden;
}

.page-header-institucional::before,
.page-header-reclamaciones::before,
.page-header-transparencia::before,
.page-header-tramites::before,
.page-header-directorio::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1440 320"><path fill="%23ffffff" fill-opacity="0.05" d="M0,96L48,112C96,128,192,160,288,160C384,160,480,128,576,122.7C672,117,768,139,864,154.7C960,171,1056,181,1152,165.3C1248,149,1344,107,1392,85.3L1440,64L1440,320L1392,320C1344,320,1248,320,1152,320C1056,320,960,320,864,320C768,320,672,320,576,320C480,320,384,320,288,320C192,320,96,320,48,320L0,320Z"></path></svg>') no-repeat bottom;
    background-size: cover;
}

.header-content-institucional,
.header-content-reclamaciones,
.header-content-transparencia,
.header-content-tramites,
.header-content-directorio {
    text-align: center;
    position: relative;
    z-index: 1;
}

.header-badge-oficial,
.header-badge-reclamaciones,
.header-badge-transparencia,
.header-badge-tramites,
.header-badge-directorio {
    display: inline-block;
    background: rgba(255, 255, 255, 0.2);
    color: var(--white);
    padding: 0.75rem 1.5rem;
    border-radius: 50px;
    font-size: 0.9rem;
    font-weight: 700;
    margin-bottom: 1.5rem;
    backdrop-filter: blur(10px);
}

.header-content-institucional h1,
.header-content-reclamaciones h1,
.header-content-transparencia h1,
.header-content-tramites h1,
.header-content-directorio h1 {
    font-size: 3rem;
    font-weight: 800;
    margin-bottom: 1rem;
}

.header-content-institucional p,
.header-content-reclamaciones p,
.header-content-transparencia p,
.header-content-tramites p,
.header-content-directorio p {
    font-size: 1.3rem;
    opacity: 0.95;
    margin-bottom: 2rem;
}

.header-stats,
.header-benefits {
    display: flex;
    justify-content: center;
    gap: 2rem;
    flex-wrap: wrap;
    margin-top: 2rem;
}

.stat-item,
.benefit-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    background: rgba(255, 255, 255, 0.1);
    padding: 0.75rem 1.5rem;
    border-radius: 50px;
    backdrop-filter: blur(10px);
}

.header-legal,
.header-legal-transparencia {
    margin-top: 1.5rem;
    padding: 1rem 2rem;
    background: rgba(255, 255, 255, 0.1);
    border-radius: 12px;
    backdrop-filter: blur(10px);
    font-size: 0.9rem;
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
}

/* Mesa de Partes - Tipos de TrÃ¡mites */
.tipos-tramites {
    padding: 4rem 0;
    background: var(--light-gray);
}

.tramites-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 2rem;
}

.tramite-card {
    background: var(--white);
    padding: 2rem;
    border-radius: 16px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.08);
    transition: all 0.3s ease;
    cursor: pointer;
    border: 2px solid transparent;
}

.tramite-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 12px 40px rgba(0,0,0,0.15);
    border-color: var(--primary);
}

.tramite-icon {
    width: 80px;
    height: 80px;
    background: linear-gradient(135deg, var(--primary), var(--primary-dark));
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 1.5rem;
    font-size: 2.5rem;
    color: var(--white);
}

.tramite-card h3 {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--dark);
    margin-bottom: 0.75rem;
    text-align: center;
}

.tramite-card p {
    color: var(--gray);
    text-align: center;
    margin-bottom: 1.5rem;
    line-height: 1.6;
}

.tramite-tiempo {
    background: var(--light-gray);
    padding: 0.5rem 1rem;
    border-radius: 20px;
    text-align: center;
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--primary);
}

/* Formularios Institucionales */
.formulario-tramite,
.formulario-reclamacion {
    padding: 4rem 0;
    background: var(--white);
}

.form-container-institucional,
.form-container-reclamaciones {
    max-width: 1000px;
    margin: 0 auto;
    background: var(--white);
    padding: 3rem;
    border-radius: 20px;
    box-shadow: 0 8px 32px rgba(0,0,0,0.1);
}

.form-header,
.form-header-reclamaciones {
    text-align: center;
    margin-bottom: 3rem;
    padding-bottom: 2rem;
    border-bottom: 2px solid var(--light-gray);
}

.form-header h2,
.form-header-reclamaciones h2 {
    font-size: 2rem;
    font-weight: 700;
    color: var(--dark);
    margin-bottom: 0.5rem;
}

.numero-hoja {
    background: var(--light-gray);
    padding: 1rem;
    border-radius: 8px;
    margin-top: 1rem;
    font-weight: 600;
}

.form-section,
.form-section-reclamacion {
    margin-bottom: 3rem;
    padding: 2rem;
    background: #fafafa;
    border-radius: 12px;
    border-left: 4px solid var(--primary);
}

.form-section h3,
.form-section-reclamacion h3 {
    font-size: 1.3rem;
    font-weight: 700;
    color: var(--dark);
    margin-bottom: 2rem;
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.form-section h3 i,
.form-section-reclamacion h3 i {
    color: var(--primary);
}

/* Upload Areas */
.upload-area,
.upload-area-reclamacion {
    border: 2px dashed var(--primary);
    border-radius: 12px;
    padding: 3rem 2rem;
    text-align: center;
    background: #f8faff;
    transition: all 0.3s ease;
    cursor: pointer;
}

.upload-area:hover,
.upload-area-reclamacion:hover {
    background: #f0f4ff;
    border-color: var(--primary-dark);
}

.upload-icon {
    font-size: 3rem;
    color: var(--primary);
    margin-bottom: 1rem;
}

.upload-link {
    color: var(--primary);
    font-weight: 600;
    text-decoration: underline;
    cursor: pointer;
}

/* Libro de Reclamaciones */
.tipos-registro {
    padding: 4rem 0;
    background: var(--light-gray);
}

.registro-options {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 2rem;
}

.registro-card {
    background: var(--white);
    padding: 2.5rem;
    border-radius: 16px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.08);
    transition: all 0.3s ease;
    cursor: pointer;
    border: 2px solid transparent;
    text-align: center;
}

.registro-card.reclamo-card:hover {
    border-color: #dc2626;
    box-shadow: 0 12px 40px rgba(220, 38, 38, 0.15);
}

.registro-card.queja-card:hover {
    border-color: #f59e0b;
    box-shadow: 0 12px 40px rgba(245, 158, 11, 0.15);
}

.registro-card.sugerencia-card:hover {
    border-color: #10b981;
    box-shadow: 0 12px 40px rgba(16, 185, 129, 0.15);
}

.registro-icon {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 1.5rem;
    font-size: 2.5rem;
    color: var(--white);
}

.reclamo-card .registro-icon {
    background: linear-gradient(135deg, #dc2626, #b91c1c);
}

.queja-card .registro-icon {
    background: linear-gradient(135deg, #f59e0b, #d97706);
}

.sugerencia-card .registro-icon {
    background: linear-gradient(135deg, #10b981, #059669);
}

.registro-ejemplos {
    margin-top: 1rem;
    padding: 1rem;
    background: var(--light-gray);
    border-radius: 8px;
}

.registro-ejemplos small {
    color: var(--gray);
    font-style: italic;
}

/* Transparencia */
.categorias-transparencia {
    padding: 4rem 0;
    background: var(--light-gray);
}

.transparencia-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
    gap: 2rem;
}

.transparencia-card {
    background: var(--white);
    padding: 2.5rem;
    border-radius: 16px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.08);
    transition: all 0.3s ease;
}

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

.transparencia-icon {
    width: 80px;
    height: 80px;
    background: linear-gradient(135deg, var(--primary), var(--primary-dark));
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 1.5rem;
    font-size: 2.5rem;
    color: var(--white);
}

.transparencia-card h3 {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--dark);
    margin-bottom: 1.5rem;
    text-align: center;
}

.transparencia-items {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.transparencia-link {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 1rem;
    background: var(--light-gray);
    border-radius: 8px;
    color: var(--dark);
    text-decoration: none;
    transition: all 0.3s ease;
}

.transparencia-link:hover {
    background: var(--primary);
    color: var(--white);
    transform: translateX(5px);
}

.transparencia-link i {
    color: var(--primary);
    transition: color 0.3s ease;
}

.transparencia-link:hover i {
    color: var(--white);
}

/* Responsive Institucional */
@media (max-width: 768px) {
    .header-content-institucional h1,
    .header-content-reclamaciones h1,
    .header-content-transparencia h1,
    .header-content-tramites h1,
    .header-content-directorio h1 {
        font-size: 2rem;
    }
    
    .header-stats,
    .header-benefits {
        flex-direction: column;
        align-items: center;
        gap: 1rem;
    }
    
    .tramites-grid,
    .registro-options,
    .transparencia-grid {
        grid-template-columns: 1fr;
    }
    
    .form-container-institucional,
    .form-container-reclamaciones {
        padding: 2rem 1.5rem;
        margin: 0 1rem;
    }
    
    .form-section,
    .form-section-reclamacion {
        padding: 1.5rem;
    }
}
/* TrÃ¡mites Institucionales */
.categorias-tramites {
    padding: 4rem 0;
    background: var(--light-gray);
}

.tramites-categorias-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
    gap: 2rem;
}

.categoria-card {
    background: var(--white);
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 8px 32px rgba(0,0,0,0.1);
    transition: all 0.3s ease;
}

.categoria-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 16px 48px rgba(0,0,0,0.15);
}

.categoria-header {
    padding: 2rem;
    text-align: center;
    background: linear-gradient(135deg, var(--primary), var(--primary-dark));
    color: var(--white);
}

.categoria-icon {
    width: 80px;
    height: 80px;
    background: rgba(255,255,255,0.2);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 1rem;
    font-size: 2.5rem;
}

.categoria-header h3 {
    font-size: 1.5rem;
    font-weight: 700;
    margin-bottom: 0.5rem;
}

.tramites-lista {
    padding: 1.5rem;
}

.tramite-item {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem;
    border-radius: 12px;
    margin-bottom: 1rem;
    cursor: pointer;
    transition: all 0.3s ease;
    border: 1px solid var(--light-gray);
}

.tramite-item:hover {
    background: var(--light-gray);
    transform: translateX(5px);
    border-color: var(--primary);
}

.tramite-item i {
    color: var(--primary);
    font-size: 1.5rem;
    width: 24px;
    text-align: center;
}

.tramite-item strong {
    color: var(--dark);
    font-weight: 600;
}

.tramite-item small {
    color: var(--gray);
    font-size: 0.85rem;
}

.tramite-tiempo {
    margin-left: auto;
    background: var(--primary);
    color: var(--white);
    padding: 0.25rem 0.75rem;
    border-radius: 20px;
    font-size: 0.8rem;
    font-weight: 600;
}

/* Proceso de TrÃ¡mite */
.proceso-tramite {
    padding: 4rem 0;
    background: var(--white);
}

.proceso-steps {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 2rem;
    flex-wrap: wrap;
    max-width: 1200px;
    margin: 0 auto;
}

.step-item {
    text-align: center;
    max-width: 200px;
}

.step-number {
    width: 60px;
    height: 60px;
    background: linear-gradient(135deg, var(--primary), var(--primary-dark));
    color: var(--white);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    font-weight: 700;
    margin: 0 auto 1rem;
}

.step-content h3 {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--dark);
    margin-bottom: 0.5rem;
}

.step-content p {
    color: var(--gray);
    font-size: 0.9rem;
    line-height: 1.5;
}

.step-arrow {
    color: var(--primary);
    font-size: 1.5rem;
}

/* Tarifario */
.tarifario-tramites {
    padding: 4rem 0;
    background: var(--light-gray);
}

.tarifario-container {
    max-width: 1000px;
    margin: 0 auto;
}

.tarifario-table-wrapper {
    background: var(--white);
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 8px 32px rgba(0,0,0,0.1);
    margin-bottom: 2rem;
}

.tarifario-table {
    width: 100%;
    border-collapse: collapse;
}

.tarifario-table th {
    background: var(--primary);
    color: var(--white);
    padding: 1.5rem;
    font-weight: 700;
    text-align: left;
}

.tarifario-table td {
    padding: 1.25rem 1.5rem;
    border-bottom: 1px solid var(--light-gray);
    vertical-align: middle;
}

.tarifario-table tr:hover {
    background: #f8faff;
}

.tarifario-table td i {
    color: var(--primary);
    margin-right: 0.5rem;
}

.precio {
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--primary);
}

.precio.gratuito {
    color: #10b981;
}

.badge {
    padding: 0.25rem 0.75rem;
    border-radius: 20px;
    font-size: 0.8rem;
    font-weight: 600;
}

.badge.digital {
    background: #dbeafe;
    color: #0047AB;
}

.badge.fisico {
    background: #fef3c7;
    color: #92400e;
}

.tarifario-notas {
    background: var(--white);
    padding: 2rem;
    border-radius: 12px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.08);
}

.tarifario-notas h4 {
    color: var(--dark);
    margin-bottom: 1rem;
}

.tarifario-notas ul {
    list-style: none;
    padding: 0;
}

.tarifario-notas li {
    padding: 0.5rem 0;
    color: var(--gray);
    position: relative;
    padding-left: 1.5rem;
}

.tarifario-notas li::before {
    content: 'â€¢';
    color: var(--primary);
    font-weight: bold;
    position: absolute;
    left: 0;
}

/* Directorio Institucional */
.organigrama-section {
    padding: 4rem 0;
    background: var(--light-gray);
}

.organigrama-container {
    max-width: 1200px;
    margin: 0 auto;
}

.nivel-directivo,
.nivel-subdirectivo {
    display: flex;
    justify-content: center;
    gap: 2rem;
    margin-bottom: 3rem;
    flex-wrap: wrap;
}

.cargo-card {
    background: var(--white);
    padding: 2.5rem;
    border-radius: 20px;
    box-shadow: 0 8px 32px rgba(0,0,0,0.1);
    text-align: center;
    min-width: 300px;
    transition: all 0.3s ease;
}

.cargo-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 16px 48px rgba(0,0,0,0.15);
}

.cargo-icon {
    width: 80px;
    height: 80px;
    background: linear-gradient(135deg, var(--primary), var(--primary-dark));
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 1.5rem;
    font-size: 2.5rem;
    color: var(--white);
}

.cargo-card h3 {
    font-size: 1.3rem;
    font-weight: 700;
    color: var(--dark);
    margin-bottom: 1.5rem;
}

.funcionario-nombre {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--primary);
    margin-bottom: 0.5rem;
}

.funcionario-cargo {
    color: var(--gray);
    font-weight: 600;
    margin-bottom: 1rem;
}

.funcionario-contacto {
    font-size: 0.9rem;
    color: var(--gray);
    line-height: 1.6;
}

/* Personal Docente */
.personal-docente {
    padding: 4rem 0;
    background: var(--white);
}

.docentes-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
    gap: 2rem;
}

.docente-card {
    background: var(--white);
    padding: 2rem;
    border-radius: 16px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.08);
    border: 1px solid var(--light-gray);
    transition: all 0.3s ease;
}

.docente-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 12px 40px rgba(0,0,0,0.15);
    border-color: var(--primary);
}

.docente-avatar {
    width: 80px;
    height: 80px;
    background: linear-gradient(135deg, var(--primary), var(--primary-dark));
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 1.5rem;
    font-size: 2.5rem;
    color: var(--white);
}

.docente-info h3 {
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--dark);
    margin-bottom: 0.5rem;
    text-align: center;
}

.docente-especialidad {
    color: var(--primary);
    font-weight: 600;
    text-align: center;
    margin-bottom: 0.5rem;
}

.docente-grado {
    color: var(--gray);
    font-size: 0.9rem;
    text-align: center;
    margin-bottom: 1rem;
}

.docente-experiencia,
.docente-contacto {
    font-size: 0.9rem;
    color: var(--gray);
    text-align: center;
    margin-bottom: 0.5rem;
}

.docente-experiencia i,
.docente-contacto i {
    color: var(--primary);
    margin-right: 0.5rem;
}

/* Personal Administrativo */
.personal-administrativo {
    padding: 4rem 0;
    background: var(--light-gray);
}

.administrativo-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
    gap: 2rem;
}

.admin-card {
    background: var(--white);
    padding: 2.5rem;
    border-radius: 16px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.08);
    transition: all 0.3s ease;
}

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

.admin-icon {
    width: 80px;
    height: 80px;
    background: linear-gradient(135deg, var(--primary), var(--primary-dark));
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 1.5rem;
    font-size: 2.5rem;
    color: var(--white);
}

.admin-card h3 {
    font-size: 1.3rem;
    font-weight: 700;
    color: var(--dark);
    margin-bottom: 1.5rem;
    text-align: center;
}

.personal-item {
    background: var(--light-gray);
    padding: 1.5rem;
    border-radius: 12px;
    margin-bottom: 1.5rem;
}

.personal-item strong {
    color: var(--primary);
    font-weight: 700;
}

.personal-cargo {
    color: var(--gray);
    font-weight: 600;
    margin: 0.5rem 0;
}

.personal-contacto {
    font-size: 0.9rem;
    color: var(--gray);
    line-height: 1.6;
}

.admin-funciones h4 {
    color: var(--dark);
    margin-bottom: 1rem;
}

.admin-funciones ul {
    list-style: none;
    padding: 0;
}

.admin-funciones li {
    padding: 0.5rem 0;
    color: var(--gray);
    position: relative;
    padding-left: 1.5rem;
}

.admin-funciones li::before {
    content: 'âœ“';
    color: var(--primary);
    font-weight: bold;
    position: absolute;
    left: 0;
}

/* Horarios de AtenciÃ³n */
.horarios-atencion {
    padding: 4rem 0;
    background: var(--white);
}

.horarios-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 2rem;
}

.horario-card {
    background: var(--white);
    padding: 2rem;
    border-radius: 16px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.08);
    border: 1px solid var(--light-gray);
    transition: all 0.3s ease;
}

.horario-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 12px 40px rgba(0,0,0,0.15);
    border-color: var(--primary);
}

.horario-area {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1.5rem;
    padding-bottom: 1rem;
    border-bottom: 2px solid var(--light-gray);
}

.horario-area i {
    color: var(--primary);
    font-size: 1.5rem;
}

.horario-area h3 {
    color: var(--dark);
    font-weight: 700;
    margin: 0;
}

.horario-item {
    padding: 0.75rem 0;
    border-bottom: 1px solid #f0f0f0;
}

.horario-item:last-child {
    border-bottom: none;
}

.horario-item strong {
    color: var(--dark);
}

/* Responsive Adicional */
@media (max-width: 768px) {
    .proceso-steps {
        flex-direction: column;
        gap: 2rem;
    }
    
    .step-arrow {
        transform: rotate(90deg);
    }
    
    .tramites-categorias-grid,
    .docentes-grid,
    .administrativo-grid,
    .horarios-grid {
        grid-template-columns: 1fr;
    }
    
    .nivel-directivo,
    .nivel-subdirectivo {
        flex-direction: column;
        align-items: center;
    }
    
    .tarifario-table-wrapper {
        overflow-x: auto;
    }
}
/* Normativas y Reglamentos */
.page-header-normativas {
    background: linear-gradient(135deg, #0047AB 0%, #002966 100%);
    color: var(--white);
    padding: 4rem 0;
    position: relative;
    overflow: hidden;
}

.page-header-normativas::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1440 320"><path fill="%23ffffff" fill-opacity="0.05" d="M0,96L48,112C96,128,192,160,288,160C384,160,480,128,576,122.7C672,117,768,139,864,154.7C960,171,1056,181,1152,165.3C1248,149,1344,107,1392,85.3L1440,64L1440,320L1392,320C1344,320,1248,320,1152,320C1056,320,960,320,864,320C768,320,672,320,576,320C480,320,384,320,288,320C192,320,96,320,48,320L0,320Z"></path></svg>') no-repeat bottom;
    background-size: cover;
}

.header-badge-normativas {
    display: inline-block;
    background: rgba(255, 255, 255, 0.2);
    color: var(--white);
    padding: 0.75rem 1.5rem;
    border-radius: 50px;
    font-size: 0.9rem;
    font-weight: 700;
    margin-bottom: 1.5rem;
    backdrop-filter: blur(10px);
}

.categorias-normativas {
    padding: 4rem 0;
    background: var(--light-gray);
}

.normativas-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
    gap: 2rem;
}

.normativa-categoria {
    background: var(--white);
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 8px 32px rgba(0,0,0,0.1);
    transition: all 0.3s ease;
}

.normativa-categoria:hover {
    transform: translateY(-5px);
    box-shadow: 0 16px 48px rgba(0,0,0,0.15);
}

.categoria-header-normativa {
    background: linear-gradient(135deg, #0047AB, #002966);
    color: var(--white);
    padding: 2rem;
    text-align: center;
}

.categoria-icon-normativa {
    width: 80px;
    height: 80px;
    background: rgba(255,255,255,0.2);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 1rem;
    font-size: 2.5rem;
}

.documentos-lista {
    padding: 1.5rem;
}

.documento-item {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1.5rem;
    border-radius: 12px;
    margin-bottom: 1rem;
    cursor: pointer;
    transition: all 0.3s ease;
    border: 1px solid var(--light-gray);
}

.documento-item:hover {
    background: #f8faff;
    border-color: #0047AB;
    transform: translateX(5px);
}

.documento-icon {
    width: 50px;
    height: 50px;
    background: linear-gradient(135deg, #0047AB, #002966);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--white);
    font-size: 1.5rem;
    flex-shrink: 0;
}

.documento-info {
    flex: 1;
}

.documento-info h4 {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--dark);
    margin-bottom: 0.5rem;
}

.documento-info p {
    color: var(--gray);
    font-size: 0.9rem;
    margin-bottom: 0.75rem;
}

.documento-meta {
    display: flex;
    gap: 1rem;
}

.documento-tipo {
    background: #0047AB;
    color: var(--white);
    padding: 0.25rem 0.75rem;
    border-radius: 20px;
    font-size: 0.75rem;
    font-weight: 600;
}

.documento-fecha {
    color: var(--gray);
    font-size: 0.8rem;
    font-weight: 600;
}

.documento-accion {
    color: #0047AB;
    font-size: 1.5rem;
    transition: all 0.3s ease;
}

.documento-item:hover .documento-accion {
    transform: scale(1.2);
}

/* Derechos y Deberes */
.derechos-deberes {
    padding: 4rem 0;
    background: var(--white);
}

.derechos-deberes-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
    max-width: 1200px;
    margin: 0 auto;
}

.derechos-card,
.deberes-card {
    background: var(--white);
    border-radius: 20px;
    box-shadow: 0 8px 32px rgba(0,0,0,0.1);
    overflow: hidden;
    transition: all 0.3s ease;
}

.derechos-card:hover,
.deberes-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 16px 48px rgba(0,0,0,0.15);
}

.card-header-derechos {
    background: linear-gradient(135deg, #10b981, #059669);
    color: var(--white);
    padding: 2rem;
    text-align: center;
}

.card-header-deberes {
    background: linear-gradient(135deg, #f59e0b, #d97706);
    color: var(--white);
    padding: 2rem;
    text-align: center;
}

.card-icon-derechos,
.card-icon-deberes {
    width: 80px;
    height: 80px;
    background: rgba(255,255,255,0.2);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 1rem;
    font-size: 2.5rem;
}

.lista-items {
    padding: 2rem;
}

.item-derecho,
.item-deber {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    margin-bottom: 1.5rem;
    padding: 1rem;
    border-radius: 12px;
    transition: all 0.3s ease;
}

.item-derecho:hover {
    background: #f0fdf4;
}

.item-deber:hover {
    background: #fffbeb;
}

.item-derecho i {
    color: #10b981;
    font-size: 1.2rem;
    margin-top: 0.25rem;
}

.item-deber i {
    color: #f59e0b;
    font-size: 1.2rem;
    margin-top: 0.25rem;
}

.item-derecho strong,
.item-deber strong {
    color: var(--dark);
    font-weight: 700;
    display: block;
    margin-bottom: 0.25rem;
}

.item-derecho p,
.item-deber p {
    color: var(--gray);
    font-size: 0.9rem;
    margin: 0;
}

/* Resoluciones */
.resoluciones-autorizaciones {
    padding: 4rem 0;
    background: var(--light-gray);
}

.resoluciones-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
    gap: 2rem;
    max-width: 1000px;
    margin: 0 auto;
}

.resolucion-card {
    background: var(--white);
    border-radius: 20px;
    box-shadow: 0 8px 32px rgba(0,0,0,0.1);
    overflow: hidden;
    transition: all 0.3s ease;
}

.resolucion-card.destacada {
    border: 3px solid #0047AB;
    box-shadow: 0 12px 40px rgba(30, 64, 175, 0.2);
}

.resolucion-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 16px 48px rgba(0,0,0,0.15);
}

.resolucion-header {
    background: linear-gradient(135deg, #0047AB, #002966);
    color: var(--white);
    padding: 2rem;
    text-align: center;
}

.resolucion-icon {
    width: 80px;
    height: 80px;
    background: rgba(255,255,255,0.2);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 1rem;
    font-size: 2.5rem;
}

.resolucion-numero {
    background: rgba(255,255,255,0.2);
    padding: 0.5rem 1rem;
    border-radius: 20px;
    font-weight: 700;
    margin-top: 1rem;
    display: inline-block;
}

.resolucion-content {
    padding: 2rem;
}

.resolucion-content p {
    margin-bottom: 1rem;
    color: var(--gray);
}

.resolucion-content strong {
    color: var(--dark);
}

.resolucion-footer {
    padding: 1.5rem 2rem;
    background: var(--light-gray);
    display: flex;
    gap: 1rem;
    justify-content: center;
}

.btn-ver-resolucion,
.btn-descargar-resolucion,
.btn-verificar {
    padding: 0.75rem 1.5rem;
    border-radius: 8px;
    font-weight: 600;
    text-decoration: none;
    transition: all 0.3s ease;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.btn-ver-resolucion {
    background: #0047AB;
    color: var(--white);
}

.btn-ver-resolucion:hover {
    background: #002966;
    transform: translateY(-2px);
}

.btn-descargar-resolucion {
    background: #10b981;
    color: var(--white);
}

.btn-descargar-resolucion:hover {
    background: #059669;
    transform: translateY(-2px);
}

.btn-verificar {
    background: #f59e0b;
    color: var(--white);
}

.btn-verificar:hover {
    background: #d97706;
    transform: translateY(-2px);
}

/* Responsive Normativas */
@media (max-width: 768px) {
    .normativas-grid {
        grid-template-columns: 1fr;
    }
    
    .derechos-deberes-grid {
        grid-template-columns: 1fr;
        gap: 2rem;
    }
    
    .resoluciones-grid {
        grid-template-columns: 1fr;
    }
    
    .resolucion-footer {
        flex-direction: column;
    }
    
    .documento-item {
        flex-direction: column;
        text-align: center;
    }
    
    .documento-info {
        text-align: center;
    }
}
/* ===================================
   HERO SECTION MODERNO
   =================================== */

.hero-moderno {
    position: relative;
    min-height: 100vh;
    display: flex;
    align-items: center;
    overflow: hidden;
    background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 50%, var(--secondary) 100%);
}

.hero-background {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
}

.hero-video-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.3);
    z-index: 2;
}

.hero-particles {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
    background-image: 
        radial-gradient(2px 2px at 20px 30px, rgba(255,255,255,0.3), transparent),
        radial-gradient(2px 2px at 40px 70px, rgba(255,255,255,0.2), transparent),
        radial-gradient(1px 1px at 90px 40px, rgba(255,255,255,0.4), transparent),
        radial-gradient(1px 1px at 130px 80px, rgba(255,255,255,0.3), transparent),
        radial-gradient(2px 2px at 160px 30px, rgba(255,255,255,0.2), transparent);
    background-repeat: repeat;
    background-size: 200px 100px;
    animation: particlesFloat 20s linear infinite;
}

@keyframes particlesFloat {
    0% { transform: translateY(0px) translateX(0px); }
    33% { transform: translateY(-100px) translateX(100px); }
    66% { transform: translateY(-200px) translateX(-100px); }
    100% { transform: translateY(-300px) translateX(200px); }
}

.hero-content-moderno {
    position: relative;
    z-index: 3;
    text-align: center;
    color: var(--white);
    max-width: 1000px;
    margin: 0 auto;
    padding: 2rem;
}

.hero-badge-animado {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    background: rgba(255, 255, 255, 0.15);
    padding: 1rem 2rem;
    border-radius: 50px;
    margin-bottom: 2rem;
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.2);
    position: relative;
    overflow: hidden;
    animation: fadeInUp 0.8s ease;
}

.hero-badge-animado::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent);
    animation: shine 3s infinite;
}

.badge-pulse {
    position: absolute;
    top: -5px;
    right: -5px;
    width: 15px;
    height: 15px;
    background: #10b981;
    border-radius: 50%;
    animation: pulse 2s infinite;
}

@keyframes shine {
    0% { left: -100%; }
    100% { left: 100%; }
}

@keyframes pulse {
    0%, 100% { transform: scale(1); opacity: 1; }
    50% { transform: scale(1.5); opacity: 0.7; }
}

.hero-title-moderno {
    font-size: 4rem;
    font-weight: 900;
    line-height: 1.1;
    margin-bottom: 1.5rem;
    animation: fadeInUp 0.8s ease 0.2s backwards;
}

.text-gradient {
    background: linear-gradient(135deg, #fbbf24, #f59e0b, #d97706);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    animation: gradientShift 3s ease-in-out infinite;
}

@keyframes gradientShift {
    0%, 100% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
}

.text-highlight {
    background: linear-gradient(135deg, var(--secondary), #ff1a35);
    padding: 0.25rem 0.75rem;
    border-radius: 12px;
    display: inline-block;
    animation: highlight 2s ease-in-out infinite;
}

@keyframes highlight {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.05); }
}

.hero-subtitle-moderno {
    font-size: 1.3rem;
    margin-bottom: 3rem;
    opacity: 0.95;
    line-height: 1.6;
    animation: fadeInUp 0.8s ease 0.4s backwards;
}

/* Calculadora de Tiempo */
.calculadora-tiempo {
    background: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(15px);
    border-radius: 20px;
    padding: 2rem;
    margin-bottom: 3rem;
    border: 1px solid rgba(255, 255, 255, 0.2);
    animation: fadeInUp 0.8s ease 0.6s backwards;
}

.calculadora-header {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    margin-bottom: 1.5rem;
    font-size: 1.1rem;
    font-weight: 600;
}

.calculadora-header i {
    color: var(--accent);
    font-size: 1.3rem;
}

.edad-selector label {
    display: block;
    margin-bottom: 1rem;
    font-weight: 600;
    font-size: 1rem;
}

.edad-buttons {
    display: flex;
    gap: 1rem;
    justify-content: center;
    flex-wrap: wrap;
}

.edad-btn {
    background: rgba(255, 255, 255, 0.1);
    border: 2px solid rgba(255, 255, 255, 0.3);
    color: var(--white);
    padding: 1rem 2rem;
    border-radius: 15px;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    min-width: 140px;
    backdrop-filter: blur(10px);
}

.edad-btn:hover {
    background: rgba(255, 255, 255, 0.2);
    border-color: var(--accent);
    transform: translateY(-3px);
}

.edad-btn.active {
    background: var(--accent);
    border-color: var(--accent);
    color: var(--dark);
    transform: translateY(-3px);
}

.edad-btn i {
    font-size: 1.5rem;
}

.resultado-calculo {
    margin-top: 1.5rem;
    padding-top: 1.5rem;
    border-top: 1px solid rgba(255, 255, 255, 0.2);
    animation: slideDown 0.5s ease;
}

@keyframes slideDown {
    from { opacity: 0; transform: translateY(-20px); }
    to { opacity: 1; transform: translateY(0); }
}

.resultado-content {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 2rem;
    flex-wrap: wrap;
}

.tiempo-resultado {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.tiempo-resultado .numero {
    font-size: 4rem;
    font-weight: 900;
    color: var(--accent);
    line-height: 1;
    text-shadow: 0 0 20px rgba(251, 191, 36, 0.5);
}

.tiempo-resultado .texto {
    font-size: 1.2rem;
    font-weight: 600;
    margin-top: 0.5rem;
}

.detalles-resultado {
    text-align: left;
}

.detalles-resultado p {
    font-size: 1.1rem;
    margin-bottom: 1rem;
    font-weight: 600;
}

.beneficios-rapidos {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.beneficios-rapidos span {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.9rem;
}

.beneficios-rapidos i {
    color: #10b981;
    font-size: 1rem;
}

/* Botones Hero */
.hero-actions {
    display: flex;
    gap: 1.5rem;
    justify-content: center;
    margin-bottom: 4rem;
    flex-wrap: wrap;
    animation: fadeInUp 0.8s ease 0.8s backwards;
}

.btn-hero-primary,
.btn-hero-secondary {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 1.25rem 2.5rem;
    border-radius: 15px;
    font-weight: 700;
    font-size: 1.1rem;
    text-decoration: none;
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
    border: none;
    cursor: pointer;
}

.btn-hero-primary {
    background: linear-gradient(135deg, var(--accent), #f59e0b);
    color: var(--dark);
    box-shadow: 0 8px 25px rgba(251, 191, 36, 0.4);
}

.btn-hero-primary:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 35px rgba(251, 191, 36, 0.6);
}

.btn-hero-secondary {
    background: rgba(255, 255, 255, 0.1);
    color: var(--white);
    border: 2px solid rgba(255, 255, 255, 0.3);
    backdrop-filter: blur(10px);
}

.btn-hero-secondary:hover {
    background: rgba(255, 255, 255, 0.2);
    border-color: var(--white);
    transform: translateY(-3px);
}

.btn-shine {
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.3), transparent);
    animation: btnShine 3s infinite;
}

@keyframes btnShine {
    0% { left: -100%; }
    100% { left: 100%; }
}

/* EstadÃ­sticas en Vivo */
.hero-stats-live {
    display: flex;
    justify-content: center;
    gap: 3rem;
    flex-wrap: wrap;
    animation: fadeInUp 0.8s ease 1s backwards;
}

.stat-live {
    display: flex;
    align-items: center;
    gap: 1rem;
    background: rgba(255, 255, 255, 0.1);
    padding: 1rem 1.5rem;
    border-radius: 15px;
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.2);
}

.stat-icon {
    width: 50px;
    height: 50px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    color: var(--white);
}

.stat-icon.pulse-green {
    background: linear-gradient(135deg, #10b981, #059669);
    animation: pulseGreen 2s infinite;
}

.stat-icon.pulse-blue {
    background: linear-gradient(135deg, #3b82f6, #1d4ed8);
    animation: pulseBlue 2s infinite;
}

.stat-icon.pulse-orange {
    background: linear-gradient(135deg, #f59e0b, #d97706);
    animation: pulseOrange 2s infinite;
}

@keyframes pulseGreen {
    0%, 100% { box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.7); }
    50% { box-shadow: 0 0 0 10px rgba(16, 185, 129, 0); }
}

@keyframes pulseBlue {
    0%, 100% { box-shadow: 0 0 0 0 rgba(59, 130, 246, 0.7); }
    50% { box-shadow: 0 0 0 10px rgba(59, 130, 246, 0); }
}

@keyframes pulseOrange {
    0%, 100% { box-shadow: 0 0 0 0 rgba(245, 158, 11, 0.7); }
    50% { box-shadow: 0 0 0 10px rgba(245, 158, 11, 0); }
}

.stat-info {
    text-align: left;
}

.stat-number {
    display: block;
    font-size: 1.5rem;
    font-weight: 900;
    color: var(--white);
}

.stat-label {
    font-size: 0.9rem;
    opacity: 0.8;
}

/* Testimonios Hero */
.testimonios-hero {
    position: absolute;
    bottom: 2rem;
    right: 2rem;
    width: 350px;
    z-index: 4;
}

.testimonio-card {
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(15px);
    border-radius: 20px;
    padding: 1.5rem;
    color: var(--dark);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.3);
    opacity: 0;
    transform: translateX(100px);
    transition: all 0.5s ease;
    position: absolute;
    width: 100%;
}

.testimonio-card.active {
    opacity: 1;
    transform: translateX(0);
}

.testimonio-content {
    text-align: center;
}

.testimonio-avatar {
    width: 60px;
    height: 60px;
    background: linear-gradient(135deg, var(--primary), var(--primary-dark));
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 1rem;
    color: var(--white);
    font-size: 1.5rem;
}

.testimonio-content p {
    font-style: italic;
    margin-bottom: 1rem;
    line-height: 1.6;
    color: var(--gray);
}

.testimonio-autor strong {
    color: var(--primary);
    font-weight: 700;
}

.testimonio-autor span {
    color: var(--gray);
    font-size: 0.9rem;
}

.testimonios-dots {
    display: flex;
    justify-content: center;
    gap: 0.5rem;
    margin-top: 1rem;
}

.dot {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: rgba(0, 71, 171, 0.3);
    border: none;
    cursor: pointer;
    transition: all 0.3s ease;
}

.dot.active {
    background: var(--primary);
    transform: scale(1.2);
}

/* Scroll Indicator */
.scroll-indicator {
    position: absolute;
    bottom: 2rem;
    left: 50%;
    transform: translateX(-50%);
    text-align: center;
    color: var(--white);
    z-index: 3;
    animation: bounce 2s infinite;
}

.scroll-text {
    font-size: 0.9rem;
    margin-bottom: 0.5rem;
    opacity: 0.8;
}

.scroll-arrow {
    font-size: 1.5rem;
    opacity: 0.6;
}

@keyframes bounce {
    0%, 20%, 50%, 80%, 100% { transform: translateX(-50%) translateY(0); }
    40% { transform: translateX(-50%) translateY(-10px); }
    60% { transform: translateX(-50%) translateY(-5px); }
}

/* Responsive Hero */
@media (max-width: 1024px) {
    .testimonios-hero {
        position: static;
        width: 100%;
        margin-top: 3rem;
    }
    
    .hero-content-moderno {
        padding: 1rem;
    }
}

@media (max-width: 768px) {
    .hero-title-moderno {
        font-size: 2.5rem;
    }
    
    .hero-subtitle-moderno {
        font-size: 1.1rem;
    }
    
    .calculadora-tiempo {
        padding: 1.5rem;
    }
    
    .edad-buttons {
        flex-direction: column;
        align-items: center;
    }
    
    .edad-btn {
        width: 100%;
        max-width: 200px;
    }
    
    .resultado-content {
        flex-direction: column;
        gap: 1rem;
    }
    
    .detalles-resultado {
        text-align: center;
    }
    
    .hero-actions {
        flex-direction: column;
        align-items: center;
    }
    
    .btn-hero-primary,
    .btn-hero-secondary {
        width: 100%;
        max-width: 300px;
        justify-content: center;
    }
    
    .hero-stats-live {
        flex-direction: column;
        align-items: center;
        gap: 1rem;
    }
    
    .stat-live {
        width: 100%;
        max-width: 250px;
        justify-content: center;
    }
}

@media (max-width: 480px) {
    .hero-title-moderno {
        font-size: 2rem;
    }
    
    .tiempo-resultado .numero {
        font-size: 3rem;
    }
    
    .calculadora-tiempo {
        padding: 1rem;
    }
}
/* ===================================
   DASHBOARD DE ESTADÃSTICAS
   =================================== */

.dashboard-estadisticas {
    position: fixed;
    bottom: 20px;
    right: 20px;
    width: 420px;
    background: #ffffff;
    border-radius: 16px;
    box-shadow: 0 8px 40px rgba(0,0,0,0.12);
    z-index: 1000;
    border: 1px solid #e5e7eb;
    transition: all 0.3s ease;
    animation: slideInUp 0.5s ease;
    overflow: hidden;
}

@keyframes slideInUp {
    from { transform: translateY(100%); opacity: 0; }
    to { transform: translateY(0); opacity: 1; }
}

.dashboard-estadisticas.minimized {
    height: 60px;
}

.dashboard-header {
    background: linear-gradient(135deg, #0047AB, #003380);
    color: white;
    padding: 1rem 1.5rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
    transition: background 0.3s ease;
}

.dashboard-header:hover {
    background: linear-gradient(135deg, #003380, #002266);
}

.dashboard-header h3 {
    font-size: 1rem;
    font-weight: 700;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.dashboard-toggle {
    background: rgba(255,255,255,0.15);
    border: none;
    color: white;
    font-size: 1rem;
    cursor: pointer;
    width: 32px;
    height: 32px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s ease;
}

.dashboard-toggle:hover {
    background: rgba(255,255,255,0.25);
    transform: scale(1.05);
}

.dashboard-content {
    padding: 1.5rem;
    max-height: 450px;
    overflow-y: auto;
}

/* Scrollbar personalizado */
.dashboard-content::-webkit-scrollbar {
    width: 6px;
}

.dashboard-content::-webkit-scrollbar-track {
    background: #f3f4f6;
    border-radius: 10px;
}

.dashboard-content::-webkit-scrollbar-thumb {
    background: #d1d5db;
    border-radius: 10px;
}

.dashboard-content::-webkit-scrollbar-thumb:hover {
    background: #9ca3af;
}

.dashboard-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.85rem;
    margin-bottom: 1.25rem;
}

.dashboard-card {
    background: linear-gradient(135deg, #f9fafb, #ffffff);
    padding: 1rem;
    border-radius: 12px;
    border: 1px solid #e5e7eb;
    display: flex;
    align-items: center;
    gap: 0.85rem;
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
}

.dashboard-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, #002966, #0047AB);
    transform: scaleX(0);
    transition: transform 0.3s ease;
}

.dashboard-card:hover {
    border-color: #0047AB;
    box-shadow: 0 4px 16px rgba(0,71,171,0.1);
    transform: translateY(-2px);
}

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

.card-icon {
    width: 42px;
    height: 42px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 1.2rem;
    flex-shrink: 0;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}

.card-icon.estudiantes  { background: linear-gradient(135deg, #10b981, #059669); }
.card-icon.online       { background: linear-gradient(135deg, #0047AB, #003380); }
.card-icon.clases       { background: linear-gradient(135deg, #C8102E, #b91c1c); }
.card-icon.aula         { background: linear-gradient(135deg, #8b5cf6, #7c3aed); }
.card-icon.satisfaccion { background: linear-gradient(135deg, #f59e0b, #d97706); }
.card-icon.egresados    { background: linear-gradient(135deg, #06b6d4, #0891b2); }

.card-info { 
    flex: 1; 
    min-width: 0; 
}

.card-number {
    font-size: 1.5rem;
    font-weight: 900;
    color: #1a1a1a;
    line-height: 1;
    margin-bottom: 0.25rem;
}

.card-label {
    font-size: 0.75rem;
    color: #6b7280;
    font-weight: 600;
    margin-bottom: 0.35rem;
}

.card-trend {
    font-size: 0.7rem;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 0.35rem;
}
.card-trend.up     { color: #10b981; }
.card-trend.down   { color: #ef4444; }
.card-trend.stable { color: #6b7280; }
.card-trend.live-dot { color: #C8102E; }

/* Punto pulsante "en vivo" */
.pulse-dot {
    display: inline-block;
    width: 6px; 
    height: 6px;
    background: #C8102E;
    border-radius: 50%;
    animation: pulseDot 1.5s infinite;
    box-shadow: 0 0 0 0 rgba(217,16,35,0.7);
}
@keyframes pulseDot {
    0% { 
        transform: scale(1); 
        box-shadow: 0 0 0 0 rgba(217,16,35,0.7);
    }
    50% { 
        transform: scale(1.1); 
        box-shadow: 0 0 0 4px rgba(217,16,35,0);
    }
    100% { 
        transform: scale(1); 
        box-shadow: 0 0 0 0 rgba(217,16,35,0);
    }
}

.dashboard-actions {
    display: flex;
    gap: 0.75rem;
    justify-content: stretch;
}

.btn-dashboard {
    flex: 1;
    border: none;
    padding: 0.85rem 1rem;
    border-radius: 10px;
    font-size: 0.85rem;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    text-decoration: none;
    position: relative;
    overflow: hidden;
}

.btn-dashboard::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.3), transparent);
    transition: left 0.5s ease;
}

.btn-dashboard:hover::before {
    left: 100%;
}

.btn-dashboard-primary {
    background: linear-gradient(135deg, #0047AB, #003380);
    color: white;
    box-shadow: 0 4px 12px rgba(0,71,171,0.25);
}
.btn-dashboard-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(0,71,171,0.35);
    color: white;
}

.btn-dashboard-secondary {
    background: white;
    color: #0047AB;
    border: 2px solid #0047AB;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}
.btn-dashboard-secondary:hover {
    background: #0047AB;
    color: white;
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(0,71,171,0.25);
}

/* ===================================
   BUSCADOR GLOBAL
   =================================== */

.buscador-global {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 9999;
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s ease;
}

.buscador-global.active {
    opacity: 1;
    visibility: visible;
}

.buscador-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.7);
    backdrop-filter: blur(5px);
}

.buscador-container {
    position: absolute;
    top: 10%;
    left: 50%;
    transform: translateX(-50%);
    width: 90%;
    max-width: 700px;
    background: var(--white);
    border-radius: 20px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
    overflow: hidden;
    animation: searchSlideIn 0.3s ease;
}

@keyframes searchSlideIn {
    from {
        opacity: 0;
        transform: translateX(-50%) translateY(-50px);
    }
    to {
        opacity: 1;
        transform: translateX(-50%) translateY(0);
    }
}

.buscador-header {
    background: linear-gradient(135deg, var(--primary), var(--primary-dark));
    padding: 1.5rem;
}

.buscador-input-container {
    display: flex;
    align-items: center;
    background: var(--white);
    border-radius: 12px;
    padding: 0 1rem;
    gap: 1rem;
}

.buscador-input-container i {
    color: var(--primary);
    font-size: 1.2rem;
}

.buscador-input-container input {
    flex: 1;
    border: none;
    outline: none;
    padding: 1rem 0;
    font-size: 1.1rem;
    background: transparent;
}

.buscador-close {
    background: none;
    border: none;
    color: var(--gray);
    font-size: 1.2rem;
    cursor: pointer;
    padding: 0.5rem;
    border-radius: 50%;
    transition: all 0.3s ease;
}

.buscador-close:hover {
    background: var(--light-gray);
    color: var(--dark);
}

.buscador-content {
    padding: 2rem;
    max-height: 400px;
    overflow-y: auto;
}

.buscador-sugerencias h4 {
    color: var(--dark);
    margin-bottom: 1rem;
    font-size: 1rem;
}

.sugerencias-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-bottom: 2rem;
}

.tag {
    background: var(--light-gray);
    color: var(--dark);
    padding: 0.5rem 1rem;
    border-radius: 20px;
    font-size: 0.9rem;
    cursor: pointer;
    transition: all 0.3s ease;
}

.tag:hover {
    background: var(--primary);
    color: var(--white);
    transform: translateY(-2px);
}

.buscador-resultados h4 {
    color: var(--dark);
    margin-bottom: 1rem;
    font-size: 1rem;
}

.resultados-lista {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.resultado-item {
    padding: 1rem;
    border: 1px solid var(--light-gray);
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.3s ease;
}

.resultado-item:hover {
    background: var(--light-gray);
    border-color: var(--primary);
    transform: translateX(5px);
}

.resultado-item h5 {
    color: var(--primary);
    margin-bottom: 0.5rem;
    font-size: 1rem;
}

.resultado-item p {
    color: var(--gray);
    margin-bottom: 0.5rem;
    font-size: 0.9rem;
}

.resultado-url {
    color: var(--primary);
    font-size: 0.8rem;
    opacity: 0.7;
}

.no-resultados {
    text-align: center;
    padding: 2rem;
    color: var(--gray);
}

.no-resultados i {
    font-size: 3rem;
    margin-bottom: 1rem;
    opacity: 0.5;
}

.no-resultados h4 {
    margin-bottom: 0.5rem;
}

/* BotÃ³n de bÃºsqueda en header */
.btn-buscar-header {
    background: rgba(255, 255, 255, 0.1);
    border: 2px solid rgba(255, 255, 255, 0.2);
    color: var(--white);
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.3s ease;
    backdrop-filter: blur(10px);
}

.btn-buscar-header:hover {
    background: rgba(255, 255, 255, 0.2);
    border-color: var(--white);
    transform: scale(1.1);
}

/* ===================================
   PWA STYLES
   =================================== */

/* PWA STYLES (legacy â€” ver bloque principal ~1569; no duplicar posiciÃ³n) */
.pwa-install-banner.show {
    transform: translateY(0);
    opacity: 1;
    pointer-events: auto;
}

.pwa-icon {
    font-size: 2rem;
    color: var(--accent);
}

.pwa-content {
    flex: 1;
}

.pwa-content h4 {
    margin-bottom: 0.25rem;
    font-size: 1rem;
}

.pwa-content p {
    font-size: 0.9rem;
    opacity: 0.9;
    margin: 0;
}

.pwa-actions {
    display: flex;
    gap: 0.75rem;
}

.btn-pwa {
    background: var(--accent);
    color: var(--dark);
    border: none;
    padding: 0.5rem 1rem;
    border-radius: 8px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s ease;
}

.btn-pwa:hover {
    background: #f59e0b;
    transform: translateY(-2px);
}

.btn-pwa.secondary {
    background: rgba(255, 255, 255, 0.2);
    color: var(--white);
}

.btn-pwa.secondary:hover {
    background: rgba(255, 255, 255, 0.3);
}

/* ===================================
   CHATBOT â€” DiseÃ±o limpio y responsive
   =================================== */

/* Contenedor flotante — solo burbuja visible al inicio */
.chatbot-container {
    position: fixed;
    bottom: 24px;
    right: 24px;
    z-index: 9999;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0;
    pointer-events: none;
}
.chatbot-container > * {
    pointer-events: auto;
}

/* Botón burbuja */
.chatbot-toggle {
    width: 58px;
    height: 58px;
    background: linear-gradient(145deg, #1d4ed8, #002966);
    border: none;
    border-radius: 50%;
    color: #fff;
    font-size: 1.35rem;
    cursor: pointer;
    box-shadow: 0 6px 20px rgba(29,78,216,.4);
    transition: transform .2s, box-shadow .2s;
    position: relative;
    flex-shrink: 0;
    order: 3;
}
.chatbot-toggle:hover {
    transform: scale(1.08);
    box-shadow: 0 6px 22px rgba(0,71,171,.55);
}
@keyframes chatbotPulse {
    0%,100% { box-shadow: 0 4px 16px rgba(0,71,171,.45); }
    50%      { box-shadow: 0 4px 24px rgba(0,71,171,.7); transform: scale(1.04); }
}
.chatbot-toggle { animation: chatbotPulse 2.5s infinite; }

/* Ventana del chat — oculta hasta clic en burbuja */
.chatbot-window {
    position: absolute;
    bottom: 72px;
    right: 0;
    width: 340px;
    max-height: min(520px, calc(100vh - 120px));
    background: #fff;
    border-radius: 18px;
    box-shadow: 0 12px 40px rgba(15,23,42,.18);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(16px) scale(.96);
    transition: opacity .28s ease, transform .28s ease, visibility .28s;
    order: 1;
}
.chatbot-window.active {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0) scale(1);
}

/* Mini aviso junto a la burbuja (no flotante suelto) */
.chatbot-hint {
    order: 2;
    position: absolute;
    bottom: 68px;
    right: 4px;
    max-width: 200px;
    background: #fff;
    color: #1e293b;
    padding: .55rem .75rem;
    border-radius: 14px 14px 4px 14px;
    box-shadow: 0 8px 24px rgba(15,23,42,.12);
    border: 1px solid #e2e8f0;
    opacity: 0;
    visibility: hidden;
    transform: translateY(6px) scale(.96);
    transition: opacity .3s, transform .3s, visibility .3s;
    pointer-events: none;
}
.chatbot-hint.is-visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0) scale(1);
}
.chatbot-hint__text {
    display: block;
    font-size: .78rem;
    font-weight: 700;
    color: #1d4ed8;
    line-height: 1.3;
}
.chatbot-hint__sub {
    display: block;
    font-size: .72rem;
    color: #64748b;
    margin-top: .15rem;
}

/* Header */
.chatbot-header {
    background: linear-gradient(135deg, #0047AB, #003380);
    color: #fff;
    padding: .85rem 1rem;
    display: flex;
    align-items: center;
    gap: .75rem;
    flex-shrink: 0;
}
.chatbot-avatar {
    width: 36px;
    height: 36px;
    background: rgba(255,255,255,.2);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    flex-shrink: 0;
    position: relative;
}
.chatbot-online-dot {
    position: absolute;
    bottom: 1px; right: 1px;
    width: 9px; height: 9px;
    background: #10b981;
    border-radius: 50%;
    border: 2px solid #0047AB;
}
.chatbot-info { flex: 1; min-width: 0; }
.chatbot-info h4 { margin: 0; font-size: .9rem; font-weight: 700; }
.chatbot-info p  { margin: 0; font-size: .72rem; opacity: .88; }
.chatbot-close-btn {
    background: rgba(255,255,255,.15);
    border: none;
    color: #fff;
    width: 28px; height: 28px;
    border-radius: 50%;
    font-size: .85rem;
    cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    transition: background .2s;
    flex-shrink: 0;
}
.chatbot-close-btn:hover { background: rgba(255,255,255,.3); }

/* Mensajes */
.chatbot-messages {
    flex: 1;
    overflow-y: auto;
    padding: .65rem .75rem;
    background: #f4f6f9;
    display: flex;
    flex-direction: column;
    gap: .45rem;
    min-height: 0;
    max-height: 280px;
}
.chatbot-messages::-webkit-scrollbar { width: 4px; }
.chatbot-messages::-webkit-scrollbar-thumb { background: #d1d5db; border-radius: 4px; }

.message {
    display: flex;
    align-items: flex-end;
    gap: .5rem;
    max-width: 100%;
}
.message.user { flex-direction: row-reverse; }

.message-avatar {
    width: 26px; height: 26px;
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-size: .7rem;
    color: #fff;
    flex-shrink: 0;
}
.message.bot  .message-avatar { background: #0047AB; }
.message.user .message-avatar { background: #374151; }

.message-content {
    padding: .45rem .7rem;
    border-radius: 12px;
    max-width: 82%;
    font-size: .8rem;
    line-height: 1.45;
    word-break: break-word;
}
.message.bot  .message-content {
    background: #fff;
    color: #1f2937;
    border-bottom-left-radius: 4px;
    box-shadow: 0 1px 4px rgba(0,0,0,.08);
}
.message.user .message-content {
    background: #0047AB;
    color: #fff;
    border-bottom-right-radius: 4px;
}

/* Acciones rápidas */
.chatbot-chips {
    padding: 0.5rem 0.65rem 0.6rem;
    background: #f8fafc;
    border-top: 1px solid #eef2f7;
    flex-shrink: 0;
}
.chatbot-chips--grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .4rem;
    max-height: none;
    overflow: visible;
}

.chatbot-action {
    display: flex;
    align-items: center;
    gap: .45rem;
    width: 100%;
    min-height: 40px;
    padding: .45rem .6rem;
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    color: #1e293b;
    font-size: .74rem;
    font-weight: 600;
    cursor: pointer;
    transition: border-color .15s, background .15s, box-shadow .15s;
    text-align: left;
    line-height: 1.2;
}
.chatbot-action:hover {
    background: #eff6ff;
    border-color: #93c5fd;
    box-shadow: 0 2px 8px rgba(29,78,216,.1);
}
.chatbot-action__icon {
    font-size: 1rem;
    flex-shrink: 0;
    width: 1.25rem;
    text-align: center;
}
.chatbot-action__label { flex: 1; min-width: 0; }

.message-avatar--user {
    width: 26px; height: 26px;
    border-radius: 50%;
    background: #64748b;
    color: #fff;
    display: flex; align-items: center; justify-content: center;
    font-size: .65rem;
    flex-shrink: 0;
}

.chat-chip {
    background: #eff6ff;
    border: 1.5px solid #0047AB;
    color: #0047AB;
    border-radius: 20px;
    padding: 0.32rem 0.65rem;
    font-size: 0.72rem;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.18s;
    white-space: nowrap;
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    line-height: 1;
}

.chat-chip:hover { 
    background: #0047AB; 
    color: #fff;
    transform: translateY(-1px);
    box-shadow: 0 2px 4px rgba(0, 71, 171, 0.2);
}

.chat-chip i {
    font-size: 0.68rem;
}

.chat-chip--action {
    margin-top: .35rem;
    background: #ecfdf5;
    border-color: #059669;
    color: #047857;
}

.chatbot-voucher-upload {
    margin-top: .35rem;
}

/* Input */
.chatbot-input-area {
    display: flex;
    align-items: center;
    gap: .5rem;
    padding: .6rem .85rem;
    border-top: 1px solid #e5e7eb;
    background: #fff;
    flex-shrink: 0;
}
.chatbot-input-area input {
    flex: 1;
    border: 1.5px solid #e5e7eb;
    border-radius: 50px;
    padding: .5rem .9rem;
    font-size: .83rem;
    outline: none;
    color: #1f2937;
    transition: border-color .2s;
    min-width: 0;
}
.chatbot-input-area input:focus { border-color: #0047AB; }
.chatbot-send {
    background: #0047AB;
    border: none;
    color: #fff;
    width: 34px; height: 34px;
    border-radius: 50%;
    cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    font-size: .85rem;
    flex-shrink: 0;
    transition: background .2s, transform .2s;
}
.chatbot-send:hover { background: #003380; transform: scale(1.08); }

/* Escribiendo */
.dots { display: inline-flex; gap: 3px; align-items: center; padding: .1rem 0; }
.dots span {
    width: 6px; height: 6px;
    background: #9ca3af;
    border-radius: 50%;
    animation: dotBounce 1.2s infinite;
}
.dots span:nth-child(2) { animation-delay: .2s; }
.dots span:nth-child(3) { animation-delay: .4s; }
@keyframes dotBounce {
    0%,80%,100% { transform: scale(.7); opacity: .5; }
    40%          { transform: scale(1);  opacity: 1; }
}

.chatbot-avatar--dario {
    background: linear-gradient(135deg, #2563eb, #1d4ed8) !important;
    font-weight: 800;
    font-size: .95rem;
    color: #fff;
}
.chatbot-avatar--dario span:first-child {
    line-height: 1;
}
.chatbot-avatar--sm {
    width: 26px !important;
    height: 26px !important;
    font-size: .72rem !important;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.chatbot-toast {
    display: none;
}

/* Badge — punto de notificación */
.chatbot-badge {
    position: absolute;
    top: 2px; right: 2px;
    background: #ef4444;
    width: 11px; height: 11px;
    border-radius: 50%;
    border: 2px solid #fff;
    display: block;
}

/* â”€â”€ Responsive â”€â”€ */
@media (max-width: 480px) {
    .chatbot-container { bottom: 12px; right: 12px; }
    .chatbot-window {
        position: fixed;
        bottom: 0; right: 0; left: 0;
        width: 100%;
        max-height: 85vh;
        border-radius: 18px 18px 0 0;
    }
    .chatbot-toggle { width: 50px; height: 50px; font-size: 1.2rem; }
}

/* ===================================
   HERO SECTIONS MEJORADOS
   =================================== */

/* Hero TrÃ¡mites Moderno */
.hero-tramites-moderno {
    position: relative;
    min-height: 100vh;
    display: flex;
    align-items: center;
    overflow: hidden;
    background: linear-gradient(135deg, var(--primary) 0%, var(--secondary) 100%);
}

.hero-background-tramites {
    position: absolute;
    inset: 0;
    z-index: 0;
}

.hero-pattern-tramites {
    position: absolute;
    inset: 0;
    background-image: 
        radial-gradient(circle at 25% 25%, rgba(255,255,255,0.1) 2px, transparent 2px),
        radial-gradient(circle at 75% 75%, rgba(255,255,255,0.05) 1px, transparent 1px);
    background-size: 50px 50px, 30px 30px;
    animation: patternMove 20s linear infinite;
}

.hero-gradient-tramites {
    position: absolute;
    inset: 0;
    background: linear-gradient(45deg, 
        rgba(0,71,171,0.9) 0%, 
        rgba(217,16,35,0.8) 50%, 
        rgba(0,71,171,0.9) 100%);
}

.hero-content-tramites {
    position: relative;
    z-index: 1;
    text-align: center;
    color: var(--white);
    padding: 2rem 0;
}

.hero-badge-tramites {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    background: rgba(255,255,255,0.2);
    padding: 0.75rem 1.5rem;
    border-radius: 50px;
    font-size: 0.9rem;
    font-weight: 600;
    margin-bottom: 1.5rem;
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255,255,255,0.3);
}

.hero-title-tramites {
    font-size: 3.5rem;
    font-weight: 800;
    margin-bottom: 1rem;
    line-height: 1.1;
}

.hero-highlight-tramites {
    display: block;
    background: linear-gradient(45deg, #fbbf24, #f59e0b);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.hero-description-tramites {
    font-size: 1.2rem;
    margin-bottom: 2.5rem;
    opacity: 0.95;
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
}

/* Buscador de TrÃ¡mites */
.tramite-search-hero {
    max-width: 600px;
    margin: 0 auto 2.5rem;
}

.search-container-tramites {
    position: relative;
    display: flex;
    background: rgba(255,255,255,0.95);
    border-radius: 60px;
    padding: 0.75rem;
    box-shadow: 0 8px 32px rgba(0,0,0,0.2);
    backdrop-filter: blur(10px);
}

.search-icon-tramites {
    position: absolute;
    left: 1.5rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--gray);
    font-size: 1.1rem;
}

.search-input-tramites {
    flex: 1;
    border: none;
    outline: none;
    padding: 0.75rem 1rem 0.75rem 3rem;
    font-size: 1rem;
    background: transparent;
    color: var(--dark);
}

.search-btn-tramites {
    background: linear-gradient(135deg, var(--primary), var(--primary-dark));
    color: var(--white);
    border: none;
    border-radius: 50px;
    padding: 0.75rem 1.5rem;
    cursor: pointer;
    transition: var(--transition);
    font-weight: 600;
}

.search-btn-tramites:hover {
    transform: scale(1.05);
    box-shadow: 0 4px 16px rgba(0,71,171,0.4);
}

/* EstadÃ­sticas Hero */
.hero-stats-tramites {
    display: flex;
    gap: 2rem;
    justify-content: center;
    margin-bottom: 2.5rem;
    flex-wrap: wrap;
}

.stat-card-tramites {
    background: rgba(255,255,255,0.15);
    padding: 1.5rem;
    border-radius: 16px;
    text-align: center;
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255,255,255,0.2);
    min-width: 140px;
}

.stat-number-tramites {
    font-size: 2.5rem;
    font-weight: 800;
    margin-bottom: 0.5rem;
    color: #fbbf24;
}

.stat-label-tramites {
    font-size: 0.9rem;
    opacity: 0.9;
}

/* Acciones RÃ¡pidas */
.hero-quick-actions-tramites {
    display: flex;
    gap: 1rem;
    justify-content: center;
    flex-wrap: wrap;
}

.quick-action-btn-tramites {
    background: rgba(255,255,255,0.2);
    color: var(--white);
    border: 1px solid rgba(255,255,255,0.3);
    padding: 1rem 1.5rem;
    border-radius: 16px;
    cursor: pointer;
    transition: var(--transition);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    min-width: 100px;
    backdrop-filter: blur(10px);
}

.quick-action-btn-tramites:hover {
    background: rgba(255,255,255,0.3);
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0,0,0,0.2);
}

.quick-action-btn-tramites i {
    font-size: 1.5rem;
}

/* Indicador de Scroll */
.scroll-indicator-tramites {
    position: absolute;
    bottom: 2rem;
    left: 50%;
    transform: translateX(-50%);
    text-align: center;
    color: var(--white);
    opacity: 0.8;
}

.scroll-arrow-tramites {
    width: 40px;
    height: 40px;
    border: 2px solid rgba(255,255,255,0.5);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 0.5rem;
    animation: bounce 2s infinite;
}

/* Hero Directorio Moderno */
.hero-directorio-moderno {
    position: relative;
    min-height: 100vh;
    display: flex;
    align-items: center;
    overflow: hidden;
    background: linear-gradient(135deg, #002966 0%, var(--primary) 50%, #7c3aed 100%);
}

.hero-background-directorio {
    position: absolute;
    inset: 0;
    z-index: 0;
}

.hero-pattern-directorio {
    position: absolute;
    inset: 0;
    background-image: 
        linear-gradient(45deg, rgba(255,255,255,0.05) 25%, transparent 25%),
        linear-gradient(-45deg, rgba(255,255,255,0.05) 25%, transparent 25%);
    background-size: 60px 60px;
    animation: patternSlide 15s linear infinite;
}

.hero-gradient-directorio {
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at center, 
        rgba(0,71,171,0.8) 0%, 
        rgba(30,58,138,0.9) 50%, 
        rgba(124,58,237,0.8) 100%);
}

.hero-content-directorio {
    position: relative;
    z-index: 1;
    text-align: center;
    color: var(--white);
    padding: 2rem 0;
}

.hero-badge-directorio {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    background: rgba(255,255,255,0.2);
    padding: 0.75rem 1.5rem;
    border-radius: 50px;
    font-size: 0.9rem;
    font-weight: 600;
    margin-bottom: 1.5rem;
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255,255,255,0.3);
}

.hero-title-directorio {
    font-size: 3.5rem;
    font-weight: 800;
    margin-bottom: 1rem;
    line-height: 1.1;
}

.hero-highlight-directorio {
    display: block;
    background: linear-gradient(45deg, #a78bfa, #c084fc);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.hero-description-directorio {
    font-size: 1.2rem;
    margin-bottom: 2.5rem;
    opacity: 0.95;
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
}

/* Buscador de Personal */
.personal-search-hero {
    max-width: 600px;
    margin: 0 auto 2.5rem;
}

.search-container-directorio {
    position: relative;
    display: flex;
    background: rgba(255,255,255,0.95);
    border-radius: 60px;
    padding: 0.75rem;
    box-shadow: 0 8px 32px rgba(0,0,0,0.2);
    backdrop-filter: blur(10px);
}

.search-icon-directorio {
    position: absolute;
    left: 1.5rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--gray);
    font-size: 1.1rem;
}

.search-input-directorio {
    flex: 1;
    border: none;
    outline: none;
    padding: 0.75rem 1rem 0.75rem 3rem;
    font-size: 1rem;
    background: transparent;
    color: var(--dark);
}

.search-btn-directorio {
    background: linear-gradient(135deg, #7c3aed, #6d28d9);
    color: var(--white);
    border: none;
    border-radius: 50px;
    padding: 0.75rem 1.5rem;
    cursor: pointer;
    transition: var(--transition);
    font-weight: 600;
}

/* EstadÃ­sticas Directorio */
.hero-stats-directorio {
    display: flex;
    gap: 2rem;
    justify-content: center;
    margin-bottom: 2.5rem;
    flex-wrap: wrap;
}

.stat-card-directorio {
    background: rgba(255,255,255,0.15);
    padding: 1.5rem;
    border-radius: 16px;
    display: flex;
    align-items: center;
    gap: 1rem;
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255,255,255,0.2);
    min-width: 160px;
}

.stat-icon-directorio {
    width: 50px;
    height: 50px;
    background: rgba(255,255,255,0.2);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    color: #a78bfa;
}

.stat-number-directorio {
    font-size: 2rem;
    font-weight: 800;
    color: #a78bfa;
}

.stat-label-directorio {
    font-size: 0.9rem;
    opacity: 0.9;
}

/* Ãreas RÃ¡pidas */
.hero-areas-directorio {
    display: flex;
    gap: 1.5rem;
    justify-content: center;
    flex-wrap: wrap;
}

.area-card-directorio {
    background: rgba(255,255,255,0.2);
    padding: 1.5rem;
    border-radius: 16px;
    cursor: pointer;
    transition: var(--transition);
    display: flex;
    align-items: center;
    gap: 1rem;
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255,255,255,0.3);
    min-width: 180px;
}

.area-card-directorio:hover {
    background: rgba(255,255,255,0.3);
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0,0,0,0.2);
}

.area-icon-directorio {
    width: 50px;
    height: 50px;
    background: rgba(255,255,255,0.2);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    color: #a78bfa;
}

.area-info-directorio h3 {
    font-size: 1.1rem;
    font-weight: 700;
    margin-bottom: 0.25rem;
}

.area-info-directorio p {
    font-size: 0.9rem;
    opacity: 0.8;
}

/* Indicador de Scroll Directorio */
.scroll-indicator-directorio {
    position: absolute;
    bottom: 2rem;
    left: 50%;
    transform: translateX(-50%);
    text-align: center;
    color: var(--white);
    opacity: 0.8;
}

.scroll-arrow-directorio {
    width: 40px;
    height: 40px;
    border: 2px solid rgba(255,255,255,0.5);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 0.5rem;
    animation: bounce 2s infinite;
}

/* Hero Normativas Moderno */
.hero-normativas-moderno {
    position: relative;
    min-height: 100vh;
    display: flex;
    align-items: center;
    overflow: hidden;
    background: linear-gradient(135deg, #1f2937 0%, var(--primary) 50%, var(--secondary) 100%);
}

.hero-background-normativas {
    position: absolute;
    inset: 0;
    z-index: 0;
}

.hero-pattern-normativas {
    position: absolute;
    inset: 0;
    background-image: 
        repeating-linear-gradient(45deg, 
            rgba(255,255,255,0.03) 0px, 
            rgba(255,255,255,0.03) 2px, 
            transparent 2px, 
            transparent 20px);
    animation: patternShift 25s linear infinite;
}

.hero-gradient-normativas {
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, 
        rgba(31,41,55,0.9) 0%, 
        rgba(0,71,171,0.8) 50%, 
        rgba(217,16,35,0.9) 100%);
}

.hero-content-normativas {
    position: relative;
    z-index: 1;
    text-align: center;
    color: var(--white);
    padding: 2rem 0;
}

.hero-badge-normativas {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    background: rgba(255,255,255,0.2);
    padding: 0.75rem 1.5rem;
    border-radius: 50px;
    font-size: 0.9rem;
    font-weight: 600;
    margin-bottom: 1.5rem;
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255,255,255,0.3);
}

.hero-title-normativas {
    font-size: 3.5rem;
    font-weight: 800;
    margin-bottom: 1rem;
    line-height: 1.1;
}

.hero-highlight-normativas {
    display: block;
    background: linear-gradient(45deg, #fbbf24, #f59e0b);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.hero-description-normativas {
    font-size: 1.2rem;
    margin-bottom: 2.5rem;
    opacity: 0.95;
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
}

/* Buscador de Normativas */
.normativas-search-hero {
    max-width: 600px;
    margin: 0 auto 2rem;
}

.search-container-normativas {
    position: relative;
    display: flex;
    background: rgba(255,255,255,0.95);
    border-radius: 60px;
    padding: 0.75rem;
    box-shadow: 0 8px 32px rgba(0,0,0,0.2);
    backdrop-filter: blur(10px);
    margin-bottom: 1rem;
}

.search-icon-normativas {
    position: absolute;
    left: 1.5rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--gray);
    font-size: 1.1rem;
}

.search-input-normativas {
    flex: 1;
    border: none;
    outline: none;
    padding: 0.75rem 1rem 0.75rem 3rem;
    font-size: 1rem;
    background: transparent;
    color: var(--dark);
}

.search-btn-normativas {
    background: linear-gradient(135deg, var(--secondary), #b91c1c);
    color: var(--white);
    border: none;
    border-radius: 50px;
    padding: 0.75rem 1.5rem;
    cursor: pointer;
    transition: var(--transition);
    font-weight: 600;
}

/* Filtros de BÃºsqueda */
.search-filters-normativas {
    display: flex;
    gap: 0.5rem;
    justify-content: center;
    flex-wrap: wrap;
}

.filter-btn-normativas {
    background: rgba(255,255,255,0.2);
    color: var(--white);
    border: 1px solid rgba(255,255,255,0.3);
    padding: 0.5rem 1rem;
    border-radius: 25px;
    cursor: pointer;
    transition: var(--transition);
    font-size: 0.9rem;
    backdrop-filter: blur(10px);
}

.filter-btn-normativas.active,
.filter-btn-normativas:hover {
    background: rgba(255,255,255,0.3);
    transform: translateY(-2px);
}

/* CertificaciÃ³n Legal */
.hero-certification-normativas {
    margin-bottom: 2.5rem;
}

.certification-badge-normativas {
    display: inline-flex;
    align-items: center;
    gap: 1rem;
    background: rgba(34,197,94,0.2);
    padding: 1rem 2rem;
    border-radius: 16px;
    border: 2px solid rgba(34,197,94,0.4);
    backdrop-filter: blur(10px);
}

.certification-badge-normativas i {
    font-size: 2rem;
    color: #22c55e;
}

.certification-text-normativas strong {
    display: block;
    font-size: 1.1rem;
    margin-bottom: 0.25rem;
}

.certification-text-normativas span {
    font-size: 0.9rem;
    opacity: 0.9;
}

/* EstadÃ­sticas Normativas */
.hero-stats-normativas {
    display: flex;
    gap: 2rem;
    justify-content: center;
    margin-bottom: 2.5rem;
    flex-wrap: wrap;
}

.stat-card-normativas {
    background: rgba(255,255,255,0.15);
    padding: 1.5rem;
    border-radius: 16px;
    text-align: center;
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255,255,255,0.2);
    min-width: 140px;
}

.stat-number-normativas {
    font-size: 2.5rem;
    font-weight: 800;
    margin-bottom: 0.5rem;
    color: #fbbf24;
}

.stat-label-normativas {
    font-size: 0.9rem;
    opacity: 0.9;
}

/* CategorÃ­as RÃ¡pidas */
.hero-categories-normativas {
    display: flex;
    gap: 1.5rem;
    justify-content: center;
    flex-wrap: wrap;
}

.category-card-normativas {
    background: rgba(255,255,255,0.2);
    padding: 1.5rem;
    border-radius: 16px;
    cursor: pointer;
    transition: var(--transition);
    display: flex;
    align-items: center;
    gap: 1rem;
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255,255,255,0.3);
    min-width: 180px;
}

.category-card-normativas:hover {
    background: rgba(255,255,255,0.3);
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0,0,0,0.2);
}

.category-icon-normativas {
    width: 50px;
    height: 50px;
    background: rgba(255,255,255,0.2);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    color: #fbbf24;
}

.category-info-normativas h3 {
    font-size: 1.1rem;
    font-weight: 700;
    margin-bottom: 0.25rem;
}

.category-info-normativas p {
    font-size: 0.9rem;
    opacity: 0.8;
}

/* Indicador de Scroll Normativas */
.scroll-indicator-normativas {
    position: absolute;
    bottom: 2rem;
    left: 50%;
    transform: translateX(-50%);
    text-align: center;
    color: var(--white);
    opacity: 0.8;
}

.scroll-arrow-normativas {
    width: 40px;
    height: 40px;
    border: 2px solid rgba(255,255,255,0.5);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 0.5rem;
    animation: bounce 2s infinite;
}

/* Animaciones */
@keyframes patternMove {
    0% { transform: translate(0, 0); }
    100% { transform: translate(50px, 50px); }
}

@keyframes patternSlide {
    0% { transform: translateX(0); }
    100% { transform: translateX(60px); }
}

@keyframes patternShift {
    0% { transform: translateX(0); }
    100% { transform: translateX(20px); }
}

@keyframes bounce {
    0%, 20%, 50%, 80%, 100% {
        transform: translateY(0);
    }
    40% {
        transform: translateY(-10px);
    }
    60% {
        transform: translateY(-5px);
    }
}

/* Responsive Design para Heroes */
@media (max-width: 768px) {
    .hero-tramites-moderno,
    .hero-directorio-moderno,
    .hero-normativas-moderno {
        min-height: 90vh;
        padding: 2rem 0;
    }
    
    .hero-title-tramites,
    .hero-title-directorio,
    .hero-title-normativas {
        font-size: 2.5rem;
    }
    
    .hero-stats-tramites,
    .hero-stats-directorio,
    .hero-stats-normativas {
        gap: 1rem;
    }
    
    .hero-quick-actions-tramites,
    .hero-areas-directorio,
    .hero-categories-normativas {
        gap: 1rem;
    }
    
    .search-container-tramites,
    .search-container-directorio,
    .search-container-normativas {
        flex-direction: column;
        gap: 0.5rem;
        padding: 1rem;
    }
    
    .search-input-tramites,
    .search-input-directorio,
    .search-input-normativas {
        padding-left: 1rem;
    }
    
    .search-icon-tramites,
    .search-icon-directorio,
    .search-icon-normativas {
        display: none;
    }
}

@media (max-width: 480px) {
    .hero-title-tramites,
    .hero-title-directorio,
    .hero-title-normativas {
        font-size: 2rem;
    }
    
    .hero-description-tramites,
    .hero-description-directorio,
    .hero-description-normativas {
        font-size: 1rem;
    }
    
    .stat-card-tramites,
    .stat-card-directorio,
    .stat-card-normativas {
        min-width: 120px;
        padding: 1rem;
    }
    
    .area-card-directorio,
    .category-card-normativas {
        min-width: 150px;
        padding: 1rem;
    }
}
/* ===================================
   ELEMENTOS ADICIONALES PARA HEROES
   =================================== */

/* Sugerencias de BÃºsqueda */
.search-suggestions-tramites,
.search-results-directorio {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: var(--white);
    border-radius: 16px;
    box-shadow: 0 8px 32px rgba(0,0,0,0.15);
    z-index: 10;
    max-height: 300px;
    overflow-y: auto;
    display: none;
    margin-top: 0.5rem;
}

.sugerencia-item,
.resultado-personal {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem;
    cursor: pointer;
    transition: var(--transition);
    border-bottom: 1px solid #f3f4f6;
}

.sugerencia-item:hover,
.resultado-personal:hover {
    background: #f8f9fa;
}

.sugerencia-item:last-child,
.resultado-personal:last-child {
    border-bottom: none;
}

.sugerencia-item i,
.resultado-personal i {
    color: var(--primary);
    font-size: 1.1rem;
    width: 20px;
    text-align: center;
}

.sugerencia-item span {
    color: var(--dark);
    font-weight: 500;
}

.resultado-personal div {
    display: flex;
    flex-direction: column;
}

.resultado-personal strong {
    color: var(--dark);
    font-size: 1rem;
    margin-bottom: 0.25rem;
}

.resultado-personal span {
    color: var(--gray);
    font-size: 0.9rem;
}

/* Estilos para elementos interactivos */
.tramite-search-hero,
.personal-search-hero,
.normativas-search-hero {
    position: relative;
}

/* Efectos de hover mejorados */
.quick-action-btn-tramites:hover i,
.area-card-directorio:hover .area-icon-directorio i,
.category-card-normativas:hover .category-icon-normativas i {
    transform: scale(1.1);
}

/* Animaciones adicionales */
@keyframes fadeInScale {
    from {
        opacity: 0;
        transform: scale(0.9);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}

.search-suggestions-tramites,
.search-results-directorio {
    animation: fadeInScale 0.3s ease;
}

/* Responsive adicional */
@media (max-width: 768px) {
    .search-suggestions-tramites,
    .search-results-directorio {
        position: fixed;
        top: auto;
        bottom: 0;
        left: 0;
        right: 0;
        border-radius: 16px 16px 0 0;
        max-height: 50vh;
    }
    
    .sugerencia-item,
    .resultado-personal {
        padding: 1.25rem 1rem;
    }
}

/* Mejoras visuales para elementos especÃ­ficos */
.hero-badge-tramites i,
.hero-badge-directorio i,
.hero-badge-normativas i {
    animation: pulse 2s infinite;
}

@keyframes pulse {
    0%, 100% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.05);
    }
}

/* Estados de carga para contadores */
.stat-number-tramites,
.stat-number-directorio,
.stat-number-normativas {
    transition: all 0.3s ease;
}

.stat-number-tramites.counting,
.stat-number-directorio.counting,
.stat-number-normativas.counting {
    color: var(--accent);
    transform: scale(1.1);
}


/* ===================================
   ESTILOS MEJORADOS PARA HERO
   =================================== */

/* Badge Oficial Mejorado */
.hero-badge-oficial {
    display: inline-flex;
    align-items: center;
    gap: 1rem;
    background: rgba(255,255,255,0.15);
    backdrop-filter: blur(15px);
    padding: 1rem 2rem;
    border-radius: 60px;
    margin-bottom: 2rem;
    border: 2px solid rgba(255,255,255,0.3);
    position: relative;
    overflow: hidden;
}

.hero-badge-oficial::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent);
    animation: shine 3s infinite;
}

@keyframes shine {
    0% { left: -100%; }
    50%, 100% { left: 100%; }
}

.badge-icon {
    width: 40px;
    height: 40px;
    background: linear-gradient(135deg, #fbbf24, #f59e0b);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.2rem;
    color: var(--dark);
    animation: pulse-icon 2s infinite;
}

@keyframes pulse-icon {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.1); }
}

.badge-text {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.badge-title {
    font-weight: 700;
    font-size: 1rem;
    color: var(--white);
}

.badge-subtitle {
    font-size: 0.85rem;
    opacity: 0.9;
    color: var(--white);
}

/* TÃ­tulo Hero Ultra */
.hero-title-ultra {
    font-size: 4.5rem;
    font-weight: 900;
    line-height: 1.1;
    margin-bottom: 1.5rem;
    text-shadow: 0 4px 30px rgba(0,0,0,0.4);
    letter-spacing: -1px;
}

/* SubtÃ­tulo Hero Ultra */
.hero-subtitle-ultra {
    font-size: 1.4rem;
    line-height: 1.7;
    margin-bottom: 3rem;
    opacity: 0.95;
}

.hero-subtitle-ultra strong {
    color: #fbbf24;
    font-weight: 700;
}

.highlight-text {
    display: inline-block;
    background: rgba(251,191,36,0.2);
    padding: 0.25rem 0.75rem;
    border-radius: 8px;
    border: 1px solid rgba(251,191,36,0.4);
}

/* Calculadora Mejorada */
.calculadora-tiempo-mejorada {
    background: rgba(255,255,255,0.12);
    backdrop-filter: blur(20px);
    border-radius: 24px;
    padding: 2.5rem;
    margin-bottom: 3rem;
    border: 2px solid rgba(255,255,255,0.25);
    box-shadow: 0 8px 32px rgba(0,0,0,0.2);
}

.calculadora-tiempo-mejorada .edad-btn small {
    font-size: 0.85rem;
    opacity: 0.9;
    font-weight: 500;
}

.resultado-calculo-mejorado {
    background: linear-gradient(135deg, rgba(251,191,36,0.2), rgba(245,158,11,0.2));
    border: 2px solid #fbbf24;
    border-radius: 20px;
    padding: 2rem;
    animation: slideDown 0.5s ease;
    box-shadow: 0 0 30px rgba(251,191,36,0.3);
}

/* Botones de AcciÃ³n Mejorados */
.hero-actions-mejoradas {
    display: flex;
    gap: 1.5rem;
    margin-bottom: 3rem;
    flex-wrap: wrap;
}

.btn-hero-primary-mejorado {
    position: relative;
    background: linear-gradient(135deg, #fbbf24, #f59e0b);
    color: var(--dark);
    padding: 1.5rem 3rem;
    border-radius: 18px;
    font-weight: 800;
    font-size: 1.15rem;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    transition: all 0.3s ease;
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(251,191,36,0.5);
    border: none;
    cursor: pointer;
}

.btn-hero-primary-mejorado:hover {
    transform: translateY(-4px);
    box-shadow: 0 15px 40px rgba(251,191,36,0.7);
}

.btn-hero-primary-mejorado i {
    font-size: 1.3rem;
}

.btn-hero-whatsapp-mejorado {
    background: #25d366;
    color: var(--white);
    padding: 1.5rem 2.5rem;
    border-radius: 18px;
    font-weight: 700;
    font-size: 1.15rem;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    transition: all 0.3s ease;
    box-shadow: 0 10px 30px rgba(37,211,102,0.5);
    border: 2px solid rgba(255,255,255,0.3);
}

.btn-hero-whatsapp-mejorado:hover {
    background: #20ba5a;
    transform: translateY(-4px);
    box-shadow: 0 15px 40px rgba(37,211,102,0.7);
}

.btn-hero-whatsapp-mejorado i {
    font-size: 1.3rem;
}

/* EstadÃ­sticas Mejoradas */
.hero-stats-mejoradas {
    display: flex;
    gap: 3rem;
    flex-wrap: wrap;
}

.stat-item-mejorado {
    display: flex;
    align-items: center;
    gap: 1rem;
    background: rgba(255,255,255,0.1);
    backdrop-filter: blur(10px);
    padding: 1.25rem 2rem;
    border-radius: 20px;
    border: 1px solid rgba(255,255,255,0.2);
    transition: all 0.3s ease;
}

.stat-item-mejorado:hover {
    background: rgba(255,255,255,0.15);
    transform: translateY(-3px);
    box-shadow: 0 8px 25px rgba(0,0,0,0.2);
}

.stat-icon-mejorado {
    width: 50px;
    height: 50px;
    background: linear-gradient(135deg, #fbbf24, #f59e0b);
    border-radius: 15px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    color: var(--dark);
}

.stat-info-mejorado {
    display: flex;
    flex-direction: column;
}

.stat-number-mejorado {
    font-size: 2.5rem;
    font-weight: 900;
    color: #fbbf24;
    line-height: 1;
    text-shadow: 0 0 20px rgba(251,191,36,0.5);
}

.stat-label-mejorado {
    font-size: 0.9rem;
    opacity: 0.9;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--white);
}

/* Responsive Mejorado */
@media (max-width: 1024px) {
    .hero-title-ultra {
        font-size: 3.5rem;
    }
    
    .hero-subtitle-ultra {
        font-size: 1.2rem;
    }
}

@media (max-width: 768px) {
    .hero-badge-oficial {
        padding: 0.85rem 1.5rem;
        gap: 0.75rem;
    }
    
    .badge-icon {
        width: 35px;
        height: 35px;
        font-size: 1rem;
    }
    
    .badge-title {
        font-size: 0.9rem;
    }
    
    .badge-subtitle {
        font-size: 0.75rem;
    }
    
    .hero-title-ultra {
        font-size: 2.5rem;
    }
    
    .hero-subtitle-ultra {
        font-size: 1.1rem;
    }
    
    .calculadora-tiempo-mejorada {
        padding: 1.5rem;
    }
    
    .hero-actions-mejoradas {
        flex-direction: column;
        width: 100%;
    }
    
    .btn-hero-primary-mejorado,
    .btn-hero-whatsapp-mejorado {
        width: 100%;
        justify-content: center;
        padding: 1.25rem 2rem;
    }
    
    .hero-stats-mejoradas {
        justify-content: center;
        gap: 1.5rem;
    }
    
    .stat-item-mejorado {
        padding: 1rem 1.5rem;
    }
    
    .stat-icon-mejorado {
        width: 45px;
        height: 45px;
        font-size: 1.3rem;
    }
    
    .stat-number-mejorado {
        font-size: 2rem;
    }
}

@media (max-width: 480px) {
    .hero-title-ultra {
        font-size: 2rem;
    }
    
    .hero-subtitle-ultra {
        font-size: 1rem;
    }
    
    .calculadora-tiempo-mejorada {
        padding: 1.25rem;
    }
    
    .resultado-calculo-mejorado {
        padding: 1.5rem;
    }
    
    .hero-stats-mejoradas {
        flex-direction: column;
        width: 100%;
    }
    
    .stat-item-mejorado {
        width: 100%;
        justify-content: center;
    }
}


/* ===================================
   HERO ELEGANTE - FONDO BLANCO
   =================================== */

.hero-elegante {
    position: relative;
    min-height: auto;
    background: #ffffff;
    display: flex;
    align-items: center;
    padding: 5rem 0 3rem;
    overflow: hidden;
}

/* Formas decorativas de fondo */
.hero-shapes {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
    overflow: hidden;
}

.shape {
    position: absolute;
    border-radius: 50%;
    opacity: 0.08;
}

.shape-1 {
    width: 600px;
    height: 600px;
    background: linear-gradient(135deg, #002966, #0047AB);
    top: -200px;
    right: -200px;
    animation: float 20s ease-in-out infinite;
}

.shape-2 {
    width: 400px;
    height: 400px;
    background: linear-gradient(135deg, #fbbf24, #f59e0b);
    bottom: -100px;
    left: -100px;
    animation: float 15s ease-in-out infinite reverse;
}

.shape-3 {
    width: 300px;
    height: 300px;
    background: linear-gradient(135deg, #0047AB, #003380);
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    animation: float 25s ease-in-out infinite;
}

@keyframes float {
    0%, 100% { transform: translate(0, 0) rotate(0deg); }
    33% { transform: translate(30px, -30px) rotate(120deg); }
    66% { transform: translate(-20px, 20px) rotate(240deg); }
}

/* Encabezado centrado del hero */
.hero-top {
    text-align: center;
    margin-bottom: 2.5rem;
}

.hero-top .hero-elegante-title {
    margin-bottom: 1rem;
}

.hero-top .hero-elegante-description {
    max-width: 650px;
    margin: 0 auto;
}

/* Botones dentro del div derecho */
.hero-bottom-actions {
    display: flex;
    gap: 1rem;
    margin-top: 1.5rem;
    flex-wrap: wrap;
}

/* Grid Principal */
.hero-elegante-grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
    align-items: stretch;
}

/* Contenido Principal */
.hero-elegante-content {
    padding-right: 0;
    display: flex;
    flex-direction: column;
    height: 100%;
}

/* Badge CertificaciÃ³n */
.badge-certificacion {
    display: inline-flex;
    align-items: center;
    gap: 1rem;
    background: #f8f9fa;
    border: 2px solid #e9ecef;
    border-radius: 60px;
    padding: 0.75rem 1.5rem;
    margin-bottom: 2rem;
    transition: all 0.3s ease;
}

.badge-certificacion:hover {
    border-color: #0047AB;
    box-shadow: 0 4px 20px rgba(0,71,171,0.1);
}

.badge-icon-cert {
    width: 40px;
    height: 40px;
    background: linear-gradient(135deg, #0047AB, #003380);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 1.1rem;
}

.badge-text-cert {
    display: flex;
    flex-direction: column;
}

.badge-label {
    font-weight: 700;
    font-size: 0.95rem;
    color: #1a1a1a;
}

.badge-org {
    font-size: 0.8rem;
    color: #6b7280;
}

/* TÃ­tulo Principal */
.hero-elegante-title {
    font-size: 4.5rem;
    font-weight: 900;
    line-height: 1.1;
    color: #1a1a1a;
    margin-bottom: 1.5rem;
    letter-spacing: -2px;
}

.title-highlight {
    background: linear-gradient(135deg, #002966, #0047AB);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.title-accent {
    color: #fbbf24;
    position: relative;
}

.title-accent::after {
    content: '';
    position: absolute;
    bottom: 5px;
    left: 0;
    width: 100%;
    height: 12px;
    background: rgba(251,191,36,0.2);
    z-index: -1;
}

/* DescripciÃ³n */
.hero-elegante-description {
    font-size: 1.2rem;
    line-height: 1.8;
    color: #4b5563;
    margin-bottom: 3rem;
}

.hero-elegante-description strong {
    color: #0047AB;
    font-weight: 700;
}

/* Beneficios liderazgo CEBA Mi Perú N.º 1 */
.hero-lider-beneficios,
.ceba-lider-beneficios {
    list-style: none;
    margin: 0 0 2rem;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.55rem 1.25rem;
    text-align: left;
    max-width: 720px;
    margin-left: auto;
    margin-right: auto;
}
.hero-lider-beneficios li,
.ceba-lider-beneficios li {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    font-size: 0.95rem;
    line-height: 1.45;
    color: #1f2937;
    font-weight: 500;
}
.hero-lider-beneficios li i,
.ceba-lider-beneficios li i {
    color: #16a34a;
    margin-top: 0.15rem;
    flex-shrink: 0;
}
.ceba-lider-beneficios {
    max-width: 900px;
    margin: 0 auto 2.5rem;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    padding: 1.25rem 1.5rem;
}
@media (max-width: 640px) {
    .hero-lider-beneficios,
    .ceba-lider-beneficios {
        grid-template-columns: 1fr;
    }
}

/* Calculadora Elegante */
.calculadora-elegante {
    background: #f8f9fa;
    border: 2px solid #e9ecef;
    border-radius: 24px;
    padding: 2rem;
    margin-bottom: 0;
    height: 100%;
    box-sizing: border-box;
}

.calc-elegante-header {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 1.5rem;
    font-weight: 700;
    font-size: 1.1rem;
    color: #1a1a1a;
}

.calc-elegante-header i {
    color: #0047AB;
    font-size: 1.3rem;
}

.calc-elegante-opciones {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
    margin-bottom: 1rem;
}

.opcion-edad {
    position: relative;
    background: white;
    border: 2px solid #e9ecef;
    border-radius: 16px;
    padding: 1.5rem;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
    text-align: center;
}

.opcion-edad:hover {
    border-color: #0047AB;
    box-shadow: 0 8px 25px rgba(0,71,171,0.15);
    transform: translateY(-3px);
}

.opcion-edad.active {
    border-color: #0047AB;
    background: linear-gradient(135deg, rgba(0,71,171,0.05), rgba(217,16,35,0.05));
}

.opcion-edad.destacada {
    border-color: #fbbf24;
    background: linear-gradient(135deg, rgba(251,191,36,0.1), rgba(245,158,11,0.1));
}

.opcion-badge {
    position: absolute;
    top: -10px;
    right: 10px;
    background: linear-gradient(135deg, #fbbf24, #f59e0b);
    color: #1a1a1a;
    padding: 0.25rem 0.75rem;
    border-radius: 20px;
    font-size: 0.75rem;
    font-weight: 700;
    box-shadow: 0 4px 12px rgba(251,191,36,0.4);
}

.opcion-icon {
    width: 60px;
    height: 60px;
    background: linear-gradient(135deg, #0047AB, #003380);
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 1.8rem;
}

.opcion-edad.destacada .opcion-icon {
    background: linear-gradient(135deg, #fbbf24, #f59e0b);
    color: #1a1a1a;
}

.opcion-info {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.opcion-label {
    font-weight: 600;
    font-size: 0.95rem;
    color: #1a1a1a;
}

.opcion-tiempo {
    font-weight: 800;
    font-size: 1.3rem;
    color: #0047AB;
}

.opcion-edad.destacada .opcion-tiempo {
    color: #f59e0b;
}

.opcion-check {
    color: #10b981;
    font-size: 1.2rem;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.opcion-edad.active .opcion-check {
    opacity: 1;
}

.calc-elegante-resultado {
    background: white;
    border: 2px solid #0047AB;
    border-radius: 16px;
    padding: 1.5rem;
    display: flex;
    align-items: center;
    gap: 1rem;
    animation: slideDown 0.5s ease;
}

.resultado-icon {
    width: 50px;
    height: 50px;
    background: linear-gradient(135deg, #0047AB, #003380);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 1.5rem;
    flex-shrink: 0;
}

.resultado-texto {
    font-weight: 600;
    font-size: 1.05rem;
    color: #1a1a1a;
}

/* Botones de AcciÃ³n Elegantes */
.hero-elegante-actions {
    display: flex;
    gap: 1rem;
    margin-bottom: 3rem;
    flex-wrap: wrap;
}

.btn-elegante-primary {
    background: linear-gradient(135deg, #0047AB, #003380);
    color: white;
    padding: 1.25rem 2.5rem;
    border-radius: 16px;
    font-weight: 700;
    font-size: 1.05rem;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    transition: all 0.3s ease;
    box-shadow: 0 8px 25px rgba(0,71,171,0.3);
    border: none;
}

.btn-elegante-primary:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 35px rgba(0,71,171,0.4);
}

.btn-elegante-primary i {
    transition: transform 0.3s ease;
}

.btn-elegante-primary:hover i {
    transform: translateX(5px);
}

.btn-elegante-secondary {
    background: white;
    color: #25d366;
    padding: 1.25rem 2.5rem;
    border-radius: 16px;
    font-weight: 700;
    font-size: 1.05rem;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    transition: all 0.3s ease;
    border: 2px solid #25d366;
}

.btn-elegante-secondary:hover {
    background: #25d366;
    color: white;
    transform: translateY(-3px);
    box-shadow: 0 8px 25px rgba(37,211,102,0.3);
}

/* EstadÃ­sticas Elegantes */
.hero-elegante-stats {
    display: flex;
    align-items: center;
    gap: 2rem;
}

.stat-elegante {
    text-align: center;
}

.stat-elegante-numero {
    font-size: 2.5rem;
    font-weight: 900;
    color: #0047AB;
    line-height: 1;
    margin-bottom: 0.5rem;
}

.stat-elegante-label {
    font-size: 0.9rem;
    color: #6b7280;
    font-weight: 600;
}

.stat-elegante-divider {
    width: 2px;
    height: 40px;
    background: #e9ecef;
}

/* Visual Lateral */
.hero-elegante-visual {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

/* Card de Beneficios */
.beneficios-card {
    background: white;
    border: 2px solid #e9ecef;
    border-radius: 24px;
    padding: 2rem;
    box-shadow: 0 4px 20px rgba(0,0,0,0.05);
}

.beneficios-header {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 1.5rem;
}

.beneficios-header i {
    color: #fbbf24;
    font-size: 1.5rem;
}

.beneficios-header h3 {
    font-size: 1.3rem;
    font-weight: 700;
    color: #1a1a1a;
    margin: 0;
}

.beneficios-lista {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.beneficios-lista li {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    font-size: 0.95rem;
    color: #4b5563;
}

.beneficios-lista i {
    width: 24px;
    height: 24px;
    background: linear-gradient(135deg, #10b981, #059669);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 0.7rem;
    flex-shrink: 0;
}

/* Testimonios Compactos */
.testimonios-compactos {
    background: linear-gradient(135deg, #f8f9fa, #e9ecef);
    border-radius: 24px;
    padding: 2rem;
}

.testimonio-compacto {
    text-align: center;
}

.testimonio-stars {
    display: flex;
    justify-content: center;
    gap: 0.25rem;
    margin-bottom: 1rem;
}

.testimonio-stars i {
    color: #fbbf24;
    font-size: 1rem;
}

.testimonio-compacto p {
    font-size: 1rem;
    font-style: italic;
    color: #4b5563;
    margin-bottom: 1rem;
    line-height: 1.6;
}

.testimonio-autor {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.testimonio-autor strong {
    font-weight: 700;
    color: #1a1a1a;
}

.testimonio-autor span {
    font-size: 0.85rem;
    color: #6b7280;
}

/* Indicador de Scroll Elegante */
.scroll-indicator-elegante {
    position: absolute;
    bottom: 2rem;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    color: #6b7280;
    cursor: pointer;
    animation: bounce 2s infinite;
}

.scroll-indicator-elegante span {
    font-size: 0.85rem;
    font-weight: 600;
}

.scroll-indicator-elegante i {
    font-size: 1.2rem;
}

/* Responsive Hero Elegante */
@media (max-width: 1024px) {
    .hero-elegante-grid {
        grid-template-columns: 1fr;
        gap: 3rem;
    }
    
    .hero-elegante-content {
        padding-right: 0;
        text-align: center;
    }
    
    .badge-certificacion {
        margin-left: auto;
        margin-right: auto;
    }
    
    .hero-elegante-title {
        font-size: 3.5rem;
    }
    
    .hero-elegante-actions {
        justify-content: center;
    }
    
    .hero-elegante-stats {
        justify-content: center;
    }
}

@media (max-width: 768px) {
    .hero-elegante {
        padding: 4rem 0 3rem;
    }

    .hero-elegante-title {
        font-size: 1.65rem;
        letter-spacing: -0.5px;
        line-height: 1.25;
    }
    
    .hero-elegante-description {
        font-size: 0.95rem;
        line-height: 1.55;
    }
    
    .calc-elegante-opciones {
        grid-template-columns: 1fr;
    }
    
    .hero-elegante-actions {
        flex-direction: column;
        width: 100%;
    }
    
    .btn-elegante-primary,
    .btn-elegante-secondary {
        width: 100%;
        justify-content: center;
    }
    
    .hero-elegante-stats {
        flex-wrap: wrap;
        gap: 1.5rem;
    }
    
    .stat-elegante-divider {
        display: none;
    }
}

@media (max-width: 480px) {
    .hero-elegante-title {
        font-size: 1.35rem;
    }

    .hero-elegante-description {
        font-size: 0.88rem;
    }
    
    .badge-certificacion {
        padding: 0.6rem 1.2rem;
    }
    
    .badge-icon-cert {
        width: 35px;
        height: 35px;
        font-size: 1rem;
    }
    
    .calculadora-elegante {
        padding: 1.5rem;
    }
    
    .opcion-edad {
        padding: 1.25rem;
    }
    
    .opcion-icon {
        width: 50px;
        height: 50px;
        font-size: 1.5rem;
    }
}


/* ===================================
   VIDEO INSTITUCIONAL ELEGANTE - GOOGLE DRIVE
   =================================== */

.video-institucional-container {
    position: relative;
    margin-bottom: 2rem;
}

.video-wrapper {
    position: relative;
    border-radius: 24px;
    overflow: hidden;
    box-shadow: 0 20px 60px rgba(0,0,0,0.15);
    background: #000;
    width: 100%;
    min-height: 400px; /* Altura mÃ­nima para que se vea grande */
    aspect-ratio: 16/9;
}

/* Video Player de Google Drive */
.video-player-drive {
    width: 100%;
    height: 100%;
    position: absolute; /* Cambiar a absolute para llenar el contenedor */
    top: 0;
    left: 0;
}

.video-player-drive iframe {
    width: 100%;
    height: 100%;
    border: none;
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    pointer-events: auto; /* Permitir clics para play/pause */
}

/* Ocultar controles de YouTube al hacer hover */
.video-player-drive iframe:hover {
    cursor: pointer;
}

/* Prevenir que aparezcan controles nativos */
.video-wrapper {
    position: relative;
    border-radius: 24px;
    overflow: hidden;
    box-shadow: 0 20px 60px rgba(0,0,0,0.15);
    background: #000;
    width: 100%;
    min-height: 400px;
    aspect-ratio: 16/9;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

/* Controles del Carrusel */
.video-controls {
    position: absolute;
    bottom: 1rem;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    align-items: center;
    gap: 1rem;
    z-index: 10;
    background: rgba(0,0,0,0.7);
    backdrop-filter: blur(10px);
    padding: 0.75rem 1.5rem;
    border-radius: 50px;
    pointer-events: auto; /* Los controles sÃ­ son clickeables */
}

/* Controles EXTERNOS (debajo del video) */
.video-controls-external {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    margin-top: 1.5rem;
    padding: 1rem;
    background: rgba(0,71,171,0.05);
    border-radius: 16px;
}

.video-nav-btn {
    width: 48px;
    height: 48px;
    background: linear-gradient(135deg, #0047AB, #0056D2);
    border: none;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.3s ease;
    color: white;
    pointer-events: auto; /* Botones clickeables */
    box-shadow: 0 4px 15px rgba(0,71,171,0.3);
}

.video-nav-btn:hover {
    background: linear-gradient(135deg, #0056D2, #0047AB);
    transform: scale(1.1);
    box-shadow: 0 6px 20px rgba(0,71,171,0.4);
}

.video-nav-btn:active {
    transform: scale(0.95);
}

.video-nav-btn i {
    font-size: 1.1rem;
}

/* BotÃ³n de Play/Pausa (mÃ¡s grande y destacado) */
.video-play-pause-btn {
    width: 64px;
    height: 64px;
    background: linear-gradient(135deg, #C8102E, #e0354a);
    border: none;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.3s ease;
    color: white;
    box-shadow: 0 6px 20px rgba(217,16,35,0.4);
    position: relative;
}

.video-play-pause-btn::before {
    content: '';
    position: absolute;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    background: linear-gradient(135deg, #C8102E, #e0354a);
    opacity: 0;
    transition: all 0.3s ease;
}

.video-play-pause-btn:hover {
    background: linear-gradient(135deg, #e0354a, #C8102E);
    transform: scale(1.15);
    box-shadow: 0 8px 25px rgba(217,16,35,0.5);
}

.video-play-pause-btn:hover::before {
    opacity: 0.3;
    transform: scale(1.2);
}

.video-play-pause-btn:active {
    transform: scale(0.95);
}

.video-play-pause-btn i {
    font-size: 1.5rem;
    margin-left: 3px; /* Ajuste visual para el Ã­cono de play */
}

.video-play-pause-btn.playing i {
    margin-left: 0; /* Sin ajuste para el Ã­cono de pausa */
}

/* BotÃ³n de Pantalla Completa */
.video-fullscreen-btn {
    width: 48px;
    height: 48px;
    background: linear-gradient(135deg, #10b981, #059669);
    border: none;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.3s ease;
    color: white;
    box-shadow: 0 4px 15px rgba(16,185,129,0.3);
}

.video-fullscreen-btn:hover {
    background: linear-gradient(135deg, #059669, #10b981);
    transform: scale(1.1);
    box-shadow: 0 6px 20px rgba(16,185,129,0.4);
}

.video-fullscreen-btn:active {
    transform: scale(0.95);
}

.video-fullscreen-btn i {
    font-size: 1.1rem;
}

/* Modal de Video */
.video-modal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 10000;
    animation: fadeIn 0.3s ease;
}

.video-modal.active {
    display: block;
}

.video-modal-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.95);
    backdrop-filter: blur(10px);
}

.video-modal-content {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 85%;
    max-width: 900px; /* Reducido de 1200px a 900px */
    animation: slideUp 0.3s ease;
}

.video-modal-close {
    position: absolute;
    top: -50px;
    right: 0;
    width: 40px;
    height: 40px;
    background: rgba(255,255,255,0.1);
    border: 2px solid rgba(255,255,255,0.3);
    border-radius: 50%;
    color: white;
    font-size: 1.2rem;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
}

.video-modal-close:hover {
    background: rgba(255,255,255,0.2);
    transform: rotate(90deg);
}

.video-modal-player {
    position: relative;
    width: 100%;
    padding-bottom: 56.25%;
    background: #000;
    border-radius: 12px;
    overflow: hidden;
}

.video-modal-player iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: none;
}

.video-modal-info {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 1rem;
    padding: 1rem;
    background: rgba(255,255,255,0.1);
    border-radius: 8px;
    color: white;
}

@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes slideUp {
    from {
        opacity: 0;
        transform: translate(-50%, -40%);
    }
    to {
        opacity: 1;
        transform: translate(-50%, -50%);
    }
}

.video-nav-btn:hover {
    background: rgba(255,255,255,0.3);
    border-color: rgba(255,255,255,0.5);
    transform: scale(1.1);
}

.video-nav-btn:active {
    transform: scale(0.95);
}

.video-nav-btn i {
    font-size: 0.9rem;
}

/* Indicadores de Video */
.video-indicators {
    display: flex;
    gap: 0.5rem;
}

.video-indicator {
    width: 10px;
    height: 10px;
    background: rgba(0,71,171,0.3);
    border-radius: 50%;
    cursor: pointer;
    transition: all 0.3s ease;
    border: 2px solid transparent;
}

.video-indicator:hover {
    background: rgba(0,71,171,0.5);
    transform: scale(1.2);
}

.video-indicator.active {
    background: #0047AB;
    width: 32px;
    border-radius: 10px;
    border-color: rgba(0,71,171,0.2);
}
    transition: all 0.3s ease;
}

.video-indicator.active {
    background: white;
    width: 24px;
    border-radius: 4px;
}

.video-indicator:hover {
    background: rgba(255,255,255,0.5);
}

/* Info del Video Overlay */
.video-info-overlay {
    position: absolute;
    top: 1rem;
    left: 1rem;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    z-index: 15;
    pointer-events: none;
}

.video-info-overlay span {
    background: rgba(0,0,0,0.7);
    backdrop-filter: blur(10px);
    color: white;
    padding: 0.5rem 1rem;
    border-radius: 20px;
    font-size: 0.85rem;
    font-weight: 600;
}

#videoCounter {
    background: rgba(0,71,171,0.9);
}

/* Controles de YouTube ocultados mediante parÃ¡metros del iframe */

/* TÃ­tulo del video EXTERNO (debajo del video) */
.video-title-external {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 1rem 1.5rem;
    background: linear-gradient(135deg, rgba(0,71,171,0.05), rgba(0,71,171,0.02));
    border-radius: 12px;
    margin-top: 1rem;
    border-left: 4px solid #0047AB;
}

.video-title-external i {
    color: #C8102E;
    font-size: 1.5rem;
}

.video-title-external span {
    font-size: 1rem;
    font-weight: 600;
    color: #1a1a1a;
}

/* Badges sobre el Video */
.video-badges {
    position: absolute;
    bottom: 4.5rem;
    left: 1.5rem;
    right: 1.5rem;
    display: flex;
    gap: 1rem;
    z-index: 9;
    pointer-events: none;
}

/* Badges EXTERNOS (debajo del video) */
.video-badges-external {
    display: flex;
    gap: 1rem;
    margin-top: 1rem;
    flex-wrap: wrap;
    justify-content: center;
}

.video-badge {
    background: rgba(255,255,255,0.95);
    backdrop-filter: blur(10px);
    padding: 0.75rem 1.25rem;
    border-radius: 50px;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.85rem;
    font-weight: 600;
    color: #1a1a1a;
    box-shadow: 0 4px 15px rgba(0,0,0,0.1);
    transition: all 0.3s ease;
}

.video-badges-external .video-badge {
    background: linear-gradient(135deg, #ffffff, #f8f9fa);
    border: 2px solid rgba(0,71,171,0.1);
}

.video-badges-external .video-badge:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(0,71,171,0.15);
    border-color: rgba(0,71,171,0.2);
}

.video-badge i {
    color: #0047AB;
    font-size: 1rem;
}

/* Loading State */
.video-player-drive.loading::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, #f8f9fa, #e9ecef);
    z-index: 1;
    animation: pulse 1.5s ease-in-out infinite;
}

.video-player-drive.loading::after {
    content: 'â³';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: 3rem;
    z-index: 2;
    animation: spin 2s linear infinite;
}

@keyframes spin {
    from { transform: translate(-50%, -50%) rotate(0deg); }
    to { transform: translate(-50%, -50%) rotate(360deg); }
}

/* Beneficios Card Compacto */
.beneficios-card-compacto {
    background: white;
    border: 2px solid #e9ecef;
    border-radius: 20px;
    padding: 1.5rem;
    margin-bottom: 2rem;
}

.beneficios-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}

.beneficio-mini {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.9rem;
    color: #4b5563;
    font-weight: 600;
}

.beneficio-mini i {
    color: #10b981;
    font-size: 1.1rem;
}

/* Testimonio Destacado */
.testimonio-destacado {
    background: linear-gradient(135deg, #f8f9fa, #e9ecef);
    border-radius: 20px;
    padding: 2rem;
    position: relative;
}

/* Acciones en el lado visual del hero */
.hero-visual-actions {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    margin-top: 0.5rem;
}

.btn-visual-full {
    width: 100%;
    justify-content: center;
    font-size: 1rem;
    padding: 1rem 1.5rem;
}

.testimonio-quote {
    position: absolute;
    top: 1rem;
    left: 1.5rem;
    font-size: 2rem;
    color: #0047AB;
    opacity: 0.2;
}

.testimonio-destacado p {
    font-size: 1rem;
    line-height: 1.7;
    color: #4b5563;
    margin-bottom: 1.5rem;
    font-style: italic;
}

.testimonio-autor-destacado {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.autor-avatar {
    width: 50px;
    height: 50px;
    background: linear-gradient(135deg, #0047AB, #003380);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 1.3rem;
    flex-shrink: 0;
}

.autor-info {
    flex: 1;
}

.autor-info strong {
    display: block;
    font-weight: 700;
    color: #1a1a1a;
    margin-bottom: 0.25rem;
}

.autor-info span {
    display: block;
    font-size: 0.85rem;
    color: #6b7280;
    margin-bottom: 0.5rem;
}

.autor-stars {
    display: flex;
    gap: 0.25rem;
}

.autor-stars i {
    color: #fbbf24;
    font-size: 0.85rem;
}

/* AnimaciÃ³n de entrada del video */
@keyframes videoFadeIn {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.video-institucional-container {
    animation: videoFadeIn 0.8s ease;
}

/* Responsive Video */
@media (max-width: 1024px) {
    .video-wrapper {
        border-radius: 20px;
    }
    
    .video-play-btn {
        width: 70px;
        height: 70px;
    }
    
    .video-play-btn i {
        font-size: 1.8rem;
    }
    
    .video-badges {
        bottom: 1rem;
        left: 1rem;
        right: 1rem;
        flex-wrap: wrap;
    }
    
    .video-badge {
        padding: 0.6rem 1rem;
        font-size: 0.8rem;
    }
}

@media (max-width: 768px) {
    .video-wrapper {
        border-radius: 16px;
    }
    
    .video-play-btn {
        width: 60px;
        height: 60px;
    }
    
    .video-play-btn i {
        font-size: 1.5rem;
    }
    
    .video-info h4 {
        font-size: 1.2rem;
    }
    
    .video-info p {
        font-size: 0.9rem;
    }
    
    .beneficios-grid {
        grid-template-columns: 1fr;
        gap: 0.75rem;
    }
    
    .testimonio-destacado {
        padding: 1.5rem;
    }
}

@media (max-width: 480px) {
    .video-badges {
        position: static;
        margin-top: 1rem;
    }
    
    .video-badge {
        flex: 1;
        justify-content: center;
    }
}

/* Efecto de carga del video */
.video-wrapper::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, #f8f9fa, #e9ecef);
    z-index: 1;
    animation: pulse 1.5s ease-in-out infinite;
}

.video-institucional:not([src=""]) ~ .video-wrapper::before {
    display: none;
}

@keyframes pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.5; }
}

/* ===================================
   MODALIDADES PAGES - ADDITIONAL STYLES
   =================================== */

/* Breadcrumb */
.breadcrumb {
    margin-bottom: 1rem;
    font-size: 0.9rem;
}

.breadcrumb a {
    color: var(--primary);
    text-decoration: none;
}

.breadcrumb a:hover {
    text-decoration: underline;
}

.breadcrumb span {
    color: var(--gray);
}

/* Modalidades Selector Page */
.modalidades-selector {
    padding: 4rem 0;
    background: #fafbfc;
}

.modalidades-intro {
    text-align: center;
    max-width: 800px;
    margin: 0 auto 4rem;
}

.modalidades-intro h2 {
    font-size: 2.5rem;
    font-weight: 900;
    color: #1a1a1a;
    margin-bottom: 1.5rem;
}

.modalidades-intro p {
    font-size: 1.1rem;
    color: #6b7280;
    line-height: 1.7;
}

.modalidades-cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
    gap: 2rem;
    max-width: 1200px;
    margin: 0 auto;
}

.modalidad-card {
    background: white;
    border-radius: 20px;
    padding: 2.5rem;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
    border: 1px solid #e5e7eb;
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
}

.modalidad-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.15);
}

.modalidad-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
}

.presencial-card::before {
    background: linear-gradient(90deg, #0047AB, #003380);
}

.virtual-card::before {
    background: linear-gradient(90deg, #10b981, #059669);
}

.semipresencial-card::before {
    background: linear-gradient(90deg, #8b5cf6, #7c3aed);
}

.card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 2rem;
}

.card-icon {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.8rem;
    color: white;
}

.presencial-card .card-icon {
    background: linear-gradient(135deg, #0047AB, #003380);
}

.virtual-card .card-icon {
    background: linear-gradient(135deg, #10b981, #059669);
}

.semipresencial-card .card-icon {
    background: linear-gradient(135deg, #8b5cf6, #7c3aed);
}

.card-badge {
    padding: 0.4rem 1rem;
    border-radius: 20px;
    font-size: 0.8rem;
    font-weight: 600;
    background: #f3f4f6;
    color: #374151;
}

.card-badge.popular {
    background: linear-gradient(135deg, #fbbf24, #f59e0b);
    color: white;
}

.card-content h3 {
    font-size: 1.5rem;
    font-weight: 800;
    color: #1a1a1a;
    margin-bottom: 1rem;
}

.card-content p {
    color: #6b7280;
    line-height: 1.6;
    margin-bottom: 1.5rem;
}

.card-features {
    list-style: none;
    margin-bottom: 2rem;
}

.card-features li {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.5rem 0;
    color: #374151;
    font-size: 0.9rem;
}

.card-features i {
    color: #10b981;
    font-size: 0.9rem;
}

.btn-card-primary {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    width: 100%;
    padding: 1rem;
    background: linear-gradient(135deg, #0047AB, #003380);
    color: white;
    text-decoration: none;
    border-radius: 12px;
    font-weight: 600;
    transition: all 0.3s ease;
}

.btn-card-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(0, 71, 171, 0.3);
}

/* ComparaciÃ³n RÃ¡pida */
.comparacion-rapida {
    padding: 4rem 0;
    background: white;
}

/* Test de Modalidad */
.test-modalidad {
    padding: 4rem 0;
    background: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%);
}

.test-content {
    max-width: 800px;
    margin: 0 auto;
    text-align: center;
}

.test-content h2 {
    font-size: 2.2rem;
    font-weight: 900;
    color: #1a1a1a;
    margin-bottom: 1rem;
}

.test-content p {
    color: #6b7280;
    margin-bottom: 3rem;
    font-size: 1.1rem;
}

.question-card {
    background: white;
    padding: 2.5rem;
    border-radius: 20px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
    margin-bottom: 2rem;
}

.question-card h3 {
    font-size: 1.4rem;
    font-weight: 700;
    color: #1a1a1a;
    margin-bottom: 2rem;
}

.question-options {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.option-btn {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1.5rem;
    background: #f9fafb;
    border: 2px solid #e5e7eb;
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.3s ease;
    font-size: 1rem;
    font-weight: 500;
    color: #374151;
}

.option-btn:hover {
    border-color: var(--primary);
    background: #eff6ff;
}

.option-btn.selected {
    border-color: var(--primary);
    background: linear-gradient(135deg, #eff6ff, #dbeafe);
    color: var(--primary);
}

.option-btn i {
    font-size: 1.5rem;
    color: var(--primary);
}

.test-result {
    background: white;
    padding: 2.5rem;
    border-radius: 20px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
    border: 2px solid #10b981;
}

.result-content h3 {
    color: #10b981;
    font-size: 1.3rem;
    font-weight: 700;
    margin-bottom: 1.5rem;
}

.result-modalidad {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    margin-bottom: 2rem;
    padding: 1.5rem;
    background: #f0fdf4;
    border-radius: 12px;
}

.result-icon {
    width: 60px;
    height: 60px;
    background: linear-gradient(135deg, #10b981, #059669);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 1.8rem;
}

.result-info h4 {
    font-size: 1.2rem;
    font-weight: 700;
    color: #1a1a1a;
    margin-bottom: 0.5rem;
}

.result-info p {
    color: #6b7280;
    line-height: 1.5;
}

/* CTA Modalidades */
.cta-modalidades {
    padding: 4rem 0;
    background: linear-gradient(135deg, #0047AB 0%, #003380 100%);
    color: white;
    text-align: center;
}

.cta-modalidades h2 {
    font-size: 2.5rem;
    font-weight: 900;
    margin-bottom: 1rem;
}

.cta-modalidades p {
    font-size: 1.1rem;
    opacity: 0.9;
    margin-bottom: 2.5rem;
}

/* Virtual Page Specific Styles */
.virtual-section {
    background: linear-gradient(135deg, #f0fdf4 0%, #ecfdf5 100%);
}

.virtual-highlight {
    background: linear-gradient(135deg, #ecfdf5 0%, #d1fae5 100%);
    border-left-color: #10b981;
}

.virtual-ventaja {
    border-left: 3px solid #10b981;
}

.virtual-cta {
    background: linear-gradient(135deg, #10b981, #059669);
}

.image-placeholder.virtual {
    background: linear-gradient(135deg, #10b981 0%, #059669 100%);
}

.plataforma-virtual {
    padding: 4rem 0;
    background: white;
}

.plataforma-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 2rem;
}

.plataforma-feature {
    text-align: center;
    padding: 2rem;
    background: #f9fafb;
    border-radius: 16px;
    border: 1px solid #e5e7eb;
}

.plataforma-feature .feature-icon {
    width: 70px;
    height: 70px;
    background: linear-gradient(135deg, #10b981, #059669);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 1.5rem;
    color: white;
    font-size: 2rem;
}

.plataforma-feature h3 {
    font-size: 1.2rem;
    font-weight: 700;
    color: #1a1a1a;
    margin-bottom: 1rem;
}

.plataforma-feature p {
    color: #6b7280;
    line-height: 1.5;
}

.requisitos-tecnicos {
    padding: 4rem 0;
    background: #f9fafb;
}

.proceso-matricula-virtual {
    padding: 4rem 0;
    background: white;
}

.proceso-steps {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 2rem;
    max-width: 1000px;
    margin: 0 auto;
}

.step-item {
    text-align: center;
    position: relative;
}

.step-number {
    width: 60px;
    height: 60px;
    background: linear-gradient(135deg, #10b981, #059669);
    color: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    font-weight: 900;
    margin: 0 auto 1.5rem;
}

.step-content h3 {
    font-size: 1.2rem;
    font-weight: 700;
    color: #1a1a1a;
    margin-bottom: 0.5rem;
}

.step-content p {
    color: #6b7280;
    line-height: 1.5;
}

/* Semipresencial Page Specific Styles */
.semipresencial-section {
    background: linear-gradient(135deg, #faf5ff 0%, #f3e8ff 100%);
}

.semipresencial-highlight {
    background: linear-gradient(135deg, #f3e8ff 0%, #e9d5ff 100%);
    border-left-color: #8b5cf6;
}

.semipresencial-ventaja {
    border-left: 3px solid #8b5cf6;
}

.semipresencial-cta {
    background: linear-gradient(135deg, #8b5cf6, #7c3aed);
}

.image-placeholder.semipresencial {
    background: linear-gradient(135deg, #8b5cf6 0%, #7c3aed 100%);
}

.cronograma-semanal {
    padding: 4rem 0;
    background: white;
}

.cronograma-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
    max-width: 800px;
    margin: 0 auto;
}

.dia-semana {
    background: #f9fafb;
    padding: 2rem;
    border-radius: 16px;
    border: 1px solid #e5e7eb;
}

.dia-semana.destacado {
    background: linear-gradient(135deg, #f3e8ff, #e9d5ff);
    border-color: #8b5cf6;
}

.dia-semana h3 {
    font-size: 1.3rem;
    font-weight: 700;
    color: #1a1a1a;
    margin-bottom: 1.5rem;
    text-align: center;
}

.actividades-dia {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.actividad {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 0.75rem;
    background: white;
    border-radius: 8px;
    border: 1px solid #e5e7eb;
}

.actividad i {
    color: #8b5cf6;
    font-size: 1.1rem;
    width: 20px;
}

.horarios-semipresencial {
    padding: 4rem 0;
    background: #f9fafb;
}

.horarios-detalle {
    padding: 4rem 0;
    background: #f9fafb;
}

.horarios-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 2rem;
}

.horario-card {
    background: white;
    border-radius: 16px;
    padding: 2rem;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
    border: 1px solid #e5e7eb;
}

.horario-header {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1.5rem;
    padding-bottom: 1rem;
    border-bottom: 2px solid #f3f4f6;
}

.horario-header i {
    font-size: 2rem;
    color: var(--primary);
}

.horario-header h3 {
    font-size: 1.3rem;
    font-weight: 700;
    color: #1a1a1a;
}

.horario-info p {
    margin-bottom: 0.75rem;
    color: #6b7280;
}

.horario-info strong {
    color: #1a1a1a;
}

.requisitos-modalidad {
    padding: 4rem 0;
    background: white;
}

.requisitos-content {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
    max-width: 1000px;
    margin: 0 auto;
}

.requisitos-col h3 {
    display: flex;
    align-items: center;
    gap: 1rem;
    font-size: 1.3rem;
    font-weight: 700;
    color: #1a1a1a;
    margin-bottom: 1.5rem;
}

.requisitos-col i {
    color: var(--primary);
    font-size: 1.5rem;
}

.requisitos-list {
    list-style: none;
}

.requisitos-list li {
    padding: 0.75rem 0;
    color: #6b7280;
    border-bottom: 1px solid #f3f4f6;
    position: relative;
    padding-left: 1.5rem;
}

.requisitos-list li:before {
    content: '\2022';
    color: var(--primary);
    font-weight: bold;
    position: absolute;
    left: 0;
}

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

/* Responsive Design */
@media (max-width: 768px) {
    .modalidades-cards {
        grid-template-columns: 1fr;
    }
    
    .cronograma-grid {
        grid-template-columns: 1fr;
    }
    
    .requisitos-content {
        grid-template-columns: 1fr;
        gap: 2rem;
    }
    
    .question-options {
        gap: 0.75rem;
    }
    
    .option-btn {
        padding: 1rem;
        font-size: 0.9rem;
    }
    
    .result-modalidad {
        flex-direction: column;
        text-align: center;
        gap: 1rem;
    }
    
    .proceso-steps {
        grid-template-columns: 1fr;
    }
}
/* ===================================
   ADDITIONAL SECTIONS STYLES
   =================================== */

/* Horarios Detalle */
.horarios-detalle {
    padding: 4rem 0;
    background: #f9fafb;
}

.horarios-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 2rem;
    max-width: 1000px;
    margin: 0 auto;
}

.horario-card {
    background: white;
    border-radius: 16px;
    padding: 2.5rem;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
    border: 1px solid #e5e7eb;
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
}

.horario-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, #0047AB, #003380);
}

.horario-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 40px rgba(0, 71, 171, 0.15);
}

.horario-header {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 2rem;
    padding-bottom: 1rem;
    border-bottom: 2px solid #f3f4f6;
}

.horario-header i {
    font-size: 2.5rem;
    color: #0047AB;
}

.horario-header h3 {
    font-size: 1.4rem;
    font-weight: 700;
    color: #1a1a1a;
}

.horario-info p {
    margin-bottom: 1rem;
    color: #6b7280;
    line-height: 1.6;
}

.horario-info strong {
    color: #1a1a1a;
    font-weight: 600;
}

/* Plataforma Virtual */
.plataforma-virtual {
    padding: 4rem 0;
    background: white;
}

.plataforma-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 2rem;
    max-width: 1000px;
    margin: 0 auto;
}

.plataforma-feature {
    text-align: center;
    padding: 2.5rem 2rem;
    background: #f9fafb;
    border-radius: 16px;
    border: 1px solid #e5e7eb;
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
}

.plataforma-feature::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, #10b981, #059669);
}

.plataforma-feature:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 40px rgba(16, 185, 129, 0.15);
}

.plataforma-feature .feature-icon {
    width: 70px;
    height: 70px;
    background: linear-gradient(135deg, #10b981, #059669);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 1.5rem;
    color: white;
    font-size: 2rem;
}

.plataforma-feature h3 {
    font-size: 1.3rem;
    font-weight: 700;
    color: #1a1a1a;
    margin-bottom: 1rem;
}

.plataforma-feature p {
    color: #6b7280;
    line-height: 1.6;
}

/* Requisitos TÃ©cnicos */
.requisitos-tecnicos {
    padding: 4rem 0;
    background: #f9fafb;
}

.requisitos-modalidad {
    padding: 4rem 0;
    background: white;
}

.requisitos-content {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4rem;
    max-width: 1000px;
    margin: 0 auto;
}

.requisitos-col {
    background: white;
    padding: 2.5rem;
    border-radius: 16px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
    border: 1px solid #e5e7eb;
}

.requisitos-col h3 {
    display: flex;
    align-items: center;
    gap: 1rem;
    font-size: 1.4rem;
    font-weight: 700;
    color: #1a1a1a;
    margin-bottom: 2rem;
    padding-bottom: 1rem;
    border-bottom: 2px solid #f3f4f6;
}

.requisitos-col i {
    color: #0047AB;
    font-size: 1.8rem;
}

.requisitos-list {
    list-style: none;
    padding: 0;
}

.requisitos-list li {
    padding: 1rem 0;
    color: #374151;
    border-bottom: 1px solid #f3f4f6;
    position: relative;
    padding-left: 2rem;
    line-height: 1.6;
    transition: all 0.3s ease;
}

.requisitos-list li:hover {
    background: #f9fafb;
    padding-left: 2.5rem;
    border-radius: 8px;
}

.requisitos-list li:before {
    content: '\f00c';
    font-family: 'Font Awesome 6 Free';
    font-weight: 900;
    color: #10b981;
    position: absolute;
    left: 0;
    top: 1rem;
    width: 20px;
    text-align: center;
}

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

/* Proceso MatrÃ­cula Virtual */
.proceso-matricula-virtual {
    padding: 4rem 0;
    background: white;
}

.proceso-steps {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 2rem;
    max-width: 1000px;
    margin: 0 auto;
    position: relative;
}

.step-item {
    text-align: center;
    position: relative;
    background: white;
    padding: 2rem;
    border-radius: 16px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
    border: 1px solid #e5e7eb;
    transition: all 0.3s ease;
}

.step-item:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 40px rgba(16, 185, 129, 0.15);
}

.step-number {
    width: 60px;
    height: 60px;
    background: linear-gradient(135deg, #10b981, #059669);
    color: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    font-weight: 900;
    margin: 0 auto 1.5rem;
    box-shadow: 0 4px 15px rgba(16, 185, 129, 0.3);
}

.step-content h3 {
    font-size: 1.3rem;
    font-weight: 700;
    color: #1a1a1a;
    margin-bottom: 1rem;
}

.step-content p {
    color: #6b7280;
    line-height: 1.6;
}

/* Cronograma Semanal */
.cronograma-semanal {
    padding: 4rem 0;
    background: white;
}

.cronograma-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
    max-width: 900px;
    margin: 0 auto;
}

.dia-semana {
    background: #f9fafb;
    padding: 2.5rem;
    border-radius: 16px;
    border: 1px solid #e5e7eb;
    transition: all 0.3s ease;
}

.dia-semana.destacado {
    background: linear-gradient(135deg, #f3e8ff, #e9d5ff);
    border-color: #8b5cf6;
    box-shadow: 0 4px 20px rgba(139, 92, 246, 0.15);
}

.dia-semana:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1);
}

.dia-semana h3 {
    font-size: 1.4rem;
    font-weight: 700;
    color: #1a1a1a;
    margin-bottom: 2rem;
    text-align: center;
    padding-bottom: 1rem;
    border-bottom: 2px solid rgba(139, 92, 246, 0.2);
}

.actividades-dia {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.actividad {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem;
    background: white;
    border-radius: 10px;
    border: 1px solid #e5e7eb;
    transition: all 0.3s ease;
}

.actividad:hover {
    transform: translateX(5px);
    box-shadow: 0 4px 15px rgba(139, 92, 246, 0.1);
}

.actividad i {
    color: #8b5cf6;
    font-size: 1.2rem;
    width: 25px;
    text-align: center;
}

.actividad span {
    color: #374151;
    font-weight: 500;
}

/* Horarios Semipresencial */
.horarios-semipresencial {
    padding: 4rem 0;
    background: #f9fafb;
}

.horarios-semipresencial .horario-card::before {
    background: linear-gradient(90deg, #8b5cf6, #7c3aed);
}

.horarios-semipresencial .horario-header i {
    color: #8b5cf6;
}

.horarios-semipresencial .horario-card:hover {
    box-shadow: 0 10px 40px rgba(139, 92, 246, 0.15);
}

/* Section Titles */
.section-title {
    font-size: 2.5rem;
    font-weight: 900;
    color: #1a1a1a;
    text-align: center;
    margin-bottom: 3rem;
    line-height: 1.2;
    position: relative;
}

.section-title::after {
    content: '';
    position: absolute;
    bottom: -10px;
    left: 50%;
    transform: translateX(-50%);
    width: 60px;
    height: 4px;
    background: linear-gradient(90deg, #0047AB, #003380);
    border-radius: 2px;
}

/* Responsive Design for Additional Sections */
@media (max-width: 768px) {
    .requisitos-content {
        grid-template-columns: 1fr;
        gap: 2rem;
    }
    
    .cronograma-grid {
        grid-template-columns: 1fr;
        gap: 2rem;
    }
    
    .proceso-steps {
        grid-template-columns: 1fr;
    }
    
    .plataforma-grid {
        grid-template-columns: 1fr;
    }
    
    .horarios-grid {
        grid-template-columns: 1fr;
    }
    
    .section-title {
        font-size: 2rem;
    }
    
    .requisitos-col {
        padding: 2rem;
    }
    
    .dia-semana {
        padding: 2rem;
    }
    
    .step-item {
        padding: 1.5rem;
    }
}

@media (max-width: 480px) {
    .section-title {
        font-size: 1.8rem;
    }
    
    .horario-header {
        flex-direction: column;
        text-align: center;
        gap: 0.5rem;
    }
    
    .horario-header i {
        font-size: 2rem;
    }
    
    .step-number {
        width: 50px;
        height: 50px;
        font-size: 1.2rem;
    }
}
/* ===================================
   VIRTUAL CON DOCENTES - SPECIFIC STYLES
   =================================== */

/* Virtual con Docentes Page Specific Styles */
.virtual-docentes-section {
    background: linear-gradient(135deg, #fef7ff 0%, #f3e8ff 100%);
}

.virtual-docentes-highlight {
    background: linear-gradient(135deg, #f3e8ff 0%, #e9d5ff 100%);
    border-left-color: #a855f7;
}

.virtual-docentes-highlight .highlight-item i {
    background: linear-gradient(135deg, #a855f7, #9333ea);
}

.virtual-docentes-ventaja {
    border-left: 3px solid #a855f7;
}

.virtual-docentes-ventaja i {
    color: #a855f7;
}

.virtual-docentes-cta {
    background: linear-gradient(135deg, #a855f7, #9333ea);
}

.image-placeholder.virtual-docentes {
    background: linear-gradient(135deg, #a855f7 0%, #9333ea 100%);
}

.modalidad-badge.virtual-docentes {
    background: linear-gradient(135deg, #a855f7, #9333ea);
    color: white;
}

/* Virtual con Docentes Card */
.virtual-docentes-card::before {
    background: linear-gradient(90deg, #a855f7, #9333ea);
}

.virtual-docentes-card .card-icon {
    background: linear-gradient(135deg, #a855f7, #9333ea);
}

/* Horarios Virtuales */
.horarios-virtuales {
    padding: 4rem 0;
    background: #f9fafb;
}

.horarios-virtuales .horario-card.virtual-card::before {
    background: linear-gradient(90deg, #a855f7, #9333ea);
}

.horarios-virtuales .horario-card.virtual-card .horario-header i {
    color: #a855f7;
}

.horarios-virtuales .horario-card.virtual-card:hover {
    box-shadow: 0 10px 40px rgba(168, 85, 247, 0.15);
}

/* Cronograma Semanal Virtual */
.cronograma-semanal-virtual {
    margin-top: 3rem;
    padding-top: 3rem;
    border-top: 2px solid #e5e7eb;
}

.cronograma-semanal-virtual h3 {
    font-size: 1.8rem;
    font-weight: 700;
    color: #1a1a1a;
    text-align: center;
    margin-bottom: 2rem;
}

.cronograma-virtual-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
    max-width: 800px;
    margin: 0 auto;
}

.dia-virtual {
    background: white;
    padding: 2rem;
    border-radius: 16px;
    border: 1px solid #e5e7eb;
    transition: all 0.3s ease;
}

.dia-virtual.destacado-virtual {
    background: linear-gradient(135deg, #f3e8ff, #e9d5ff);
    border-color: #a855f7;
    box-shadow: 0 4px 20px rgba(168, 85, 247, 0.15);
}

.dia-virtual:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1);
}

.dia-virtual h4 {
    font-size: 1.3rem;
    font-weight: 700;
    color: #1a1a1a;
    margin-bottom: 1rem;
    text-align: center;
}

.horario-virtual {
    background: #a855f7;
    color: white;
    padding: 0.75rem 1rem;
    border-radius: 8px;
    text-align: center;
    font-weight: 600;
    margin-bottom: 1.5rem;
}

.dia-virtual.lunes-viernes .horario-virtual {
    background: #6b7280;
}

.actividades-virtual {
    list-style: none;
    padding: 0;
}

.actividades-virtual li {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 0.75rem;
    margin-bottom: 0.5rem;
    background: rgba(255, 255, 255, 0.7);
    border-radius: 8px;
    transition: all 0.3s ease;
}

.actividades-virtual li:hover {
    background: rgba(255, 255, 255, 0.9);
    transform: translateX(5px);
}

.actividades-virtual i {
    color: #a855f7;
    font-size: 1.1rem;
    width: 20px;
    text-align: center;
}

/* Plataforma y TecnologÃ­a */
.plataforma-tecnologia {
    padding: 4rem 0;
    background: white;
}

.tecnologia-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 2rem;
    max-width: 1000px;
    margin: 0 auto;
}

.tech-feature {
    text-align: center;
    padding: 2.5rem 2rem;
    background: #f9fafb;
    border-radius: 16px;
    border: 1px solid #e5e7eb;
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
}

.tech-feature::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, #a855f7, #9333ea);
}

.tech-feature:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 40px rgba(168, 85, 247, 0.15);
}

.tech-icon {
    width: 70px;
    height: 70px;
    background: linear-gradient(135deg, #a855f7, #9333ea);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 1.5rem;
    color: white;
    font-size: 2rem;
}

.tech-feature h3 {
    font-size: 1.3rem;
    font-weight: 700;
    color: #1a1a1a;
    margin-bottom: 1rem;
}

.tech-feature p {
    color: #6b7280;
    line-height: 1.6;
}

/* Responsive Design for Virtual con Docentes */
@media (max-width: 768px) {
    .cronograma-virtual-grid {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }
    
    .tecnologia-grid {
        grid-template-columns: 1fr;
    }
    
    .dia-virtual {
        padding: 1.5rem;
    }
    
    .tech-feature {
        padding: 2rem 1.5rem;
    }
}

@media (max-width: 480px) {
    .cronograma-semanal-virtual h3 {
        font-size: 1.5rem;
    }
    
    .dia-virtual h4 {
        font-size: 1.1rem;
    }
    
    .horario-virtual {
        font-size: 0.9rem;
        padding: 0.5rem;
    }
    
    .tech-icon {
        width: 60px;
        height: 60px;
        font-size: 1.5rem;
    }
}

/* Grid Layout for 4 Cards */
.modalidades-cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 2rem;
    max-width: 1400px;
    margin: 0 auto;
}

@media (max-width: 1200px) {
    .modalidades-cards {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {
    .modalidades-cards {
        grid-template-columns: 1fr;
    }
}

/* Comparison Table Responsive */
@media (max-width: 768px) {
    .tabla-comparacion {
        font-size: 0.8rem;
    }
    
    .tabla-comparacion th,
    .tabla-comparacion td {
        padding: 0.75rem 0.5rem;
    }
}

@media (max-width: 600px) {
    .tabla-comparacion {
        font-size: 0.7rem;
    }
    
    .tabla-comparacion th,
    .tabla-comparacion td {
        padding: 0.5rem 0.25rem;
    }
}
/* ===================================
   VIRTUAL 100% - ADDITIONAL STYLES
   =================================== */

/* Cronograma Flexible */
.cronograma-flexible {
    padding: 4rem 0;
    background: #f0fdf4;
}

.cronograma-flexible-content {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
    align-items: center;
}

.flexible-info h3 {
    font-size: 2rem;
    font-weight: 800;
    color: #1a1a1a;
    margin-bottom: 1.5rem;
}

.flexible-info p {
    font-size: 1.1rem;
    color: #6b7280;
    line-height: 1.7;
    margin-bottom: 2rem;
}

.flexible-features {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.flexible-item {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem;
    background: white;
    border-radius: 12px;
    border: 1px solid #e5e7eb;
    transition: all 0.3s ease;
}

.flexible-item:hover {
    transform: translateX(5px);
    box-shadow: 0 4px 15px rgba(16, 185, 129, 0.1);
}

.flexible-item i {
    width: 40px;
    height: 40px;
    background: linear-gradient(135deg, #10b981, #059669);
    color: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
}

.flexible-item div {
    flex: 1;
}

.flexible-item strong {
    display: block;
    font-weight: 700;
    color: #1a1a1a;
    margin-bottom: 0.25rem;
}

.flexible-item span {
    color: #6b7280;
    font-size: 0.9rem;
}

.ejemplo-horario {
    background: white;
    padding: 2.5rem;
    border-radius: 16px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
    border: 1px solid #e5e7eb;
}

.ejemplo-horario h4 {
    font-size: 1.4rem;
    font-weight: 700;
    color: #1a1a1a;
    margin-bottom: 2rem;
    text-align: center;
}

.horario-ejemplo {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.momento {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1rem;
    background: #f9fafb;
    border-radius: 8px;
    border-left: 3px solid #10b981;
}

.momento .hora {
    font-weight: 700;
    color: #10b981;
    min-width: 80px;
}

.momento .actividad {
    color: #374151;
    flex: 1;
    text-align: right;
}

/* Virtual con Docentes - Horarios EspecÃ­ficos */
.horario-virtual-libre {
    background: #6b7280;
    color: white;
    padding: 0.75rem 1rem;
    border-radius: 8px;
    text-align: center;
    font-weight: 600;
    margin-bottom: 1.5rem;
}

.destacado-horario {
    border: 2px solid #a855f7;
    box-shadow: 0 4px 20px rgba(168, 85, 247, 0.15);
}

.destacado-horario .horario-header {
    background: linear-gradient(135deg, #a855f7, #9333ea);
    color: white;
    margin: -2rem -2.5rem 2rem;
    padding: 1.5rem 2.5rem;
    border-radius: 14px 14px 0 0;
}

.destacado-horario .horario-header i {
    color: white;
}

.destacado-horario .horario-header h3 {
    color: white;
}

/* Responsive Design for New Sections */
@media (max-width: 768px) {
    .cronograma-flexible-content {
        grid-template-columns: 1fr;
        gap: 2rem;
    }
    
    .flexible-features {
        gap: 1rem;
    }
    
    .flexible-item {
        padding: 0.75rem;
    }
    
    .ejemplo-horario {
        padding: 2rem;
    }
    
    .momento {
        flex-direction: column;
        text-align: center;
        gap: 0.5rem;
    }
    
    .momento .actividad {
        text-align: center;
    }
}

@media (max-width: 480px) {
    .flexible-info h3 {
        font-size: 1.6rem;
    }
    
    .flexible-info p {
        font-size: 1rem;
    }
    
    .flexible-item i {
        width: 35px;
        height: 35px;
        font-size: 1rem;
    }
    
    .ejemplo-horario h4 {
        font-size: 1.2rem;
    }
}
/* ===================================
   CERTIFICADOS PAGE - COMPLETE STYLES
   =================================== */

/* Certificados Info Section */
.certificados-info {
    padding: 4rem 0;
    background: #fafbfc;
}

.info-header {
    text-align: center;
    max-width: 800px;
    margin: 0 auto 4rem;
}

.info-header h2 {
    font-size: 2.5rem;
    font-weight: 900;
    color: #1a1a1a;
    margin-bottom: 1.5rem;
}

.info-header p {
    font-size: 1.1rem;
    color: #6b7280;
    line-height: 1.7;
}

.certificados-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
    gap: 2rem;
    max-width: 1200px;
    margin: 0 auto;
}

.certificado-card {
    background: white;
    border-radius: 20px;
    padding: 2.5rem;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
    border: 1px solid #e5e7eb;
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
}

.certificado-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, #0047AB, #003380);
}

.certificado-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 20px 40px rgba(0, 71, 171, 0.15);
}

.cert-icon {
    width: 70px;
    height: 70px;
    background: linear-gradient(135deg, #0047AB, #003380);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 2rem;
    color: white;
    font-size: 2rem;
}

.certificado-card h3 {
    font-size: 1.5rem;
    font-weight: 800;
    color: #1a1a1a;
    margin-bottom: 1rem;
}

.certificado-card p {
    color: #6b7280;
    line-height: 1.6;
    margin-bottom: 2rem;
}

.cert-features {
    list-style: none;
    margin-bottom: 2rem;
    padding: 0;
}

.cert-features li {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.5rem 0;
    color: #374151;
    font-size: 0.9rem;
}

.cert-features i {
    color: #10b981;
    font-size: 0.9rem;
}

.cert-price {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 1.5rem;
    border-top: 2px solid #f3f4f6;
}

.cert-price .price {
    font-size: 1.5rem;
    font-weight: 900;
    color: #0047AB;
}

.cert-price .delivery {
    font-size: 0.85rem;
    color: #6b7280;
    font-weight: 500;
}

/* Proceso de Solicitud */
.proceso-solicitud {
    padding: 4rem 0;
    background: white;
}

.proceso-steps {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 2rem;
    max-width: 1000px;
    margin: 0 auto;
}

.step-item {
    text-align: center;
    position: relative;
}

.step-number {
    width: 60px;
    height: 60px;
    background: linear-gradient(135deg, #0047AB, #003380);
    color: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    font-weight: 900;
    margin: 0 auto 1.5rem;
    box-shadow: 0 4px 15px rgba(0, 71, 171, 0.3);
}

.step-content h3 {
    font-size: 1.2rem;
    font-weight: 700;
    color: #1a1a1a;
    margin-bottom: 0.5rem;
}

.step-content p {
    color: #6b7280;
    line-height: 1.5;
}

/* Formulario de Certificados */
.certificados-content {
    padding: 4rem 0;
    background: #f9fafb;
}

.form-container {
    max-width: 900px;
    margin: 0 auto;
}

.form-header {
    text-align: center;
    margin-bottom: 3rem;
}

.form-header h2 {
    font-size: 2.2rem;
    font-weight: 800;
    color: #1a1a1a;
    margin-bottom: 1rem;
}

.form-header p {
    color: #6b7280;
    font-size: 1.1rem;
}

.certificado-form {
    background: white;
    padding: 3rem;
    border-radius: 20px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
    border: 1px solid #e5e7eb;
}

.form-section {
    margin-bottom: 3rem;
    padding-bottom: 2rem;
    border-bottom: 2px solid #f3f4f6;
}

.form-section:last-of-type {
    border-bottom: none;
    margin-bottom: 2rem;
}

.form-section h3 {
    display: flex;
    align-items: center;
    gap: 1rem;
    font-size: 1.4rem;
    font-weight: 700;
    color: #1a1a1a;
    margin-bottom: 2rem;
}

.form-section h3 i {
    color: #0047AB;
    font-size: 1.3rem;
}

/* Radio Group Styles */
.radio-group {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.radio-option {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem;
    background: #f9fafb;
    border: 2px solid #e5e7eb;
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.3s ease;
    font-weight: 500;
}

.radio-option:hover {
    border-color: #0047AB;
    background: #eff6ff;
}

.radio-option input[type="radio"] {
    display: none;
}

.radio-custom {
    width: 20px;
    height: 20px;
    border: 2px solid #d1d5db;
    border-radius: 50%;
    position: relative;
    transition: all 0.3s ease;
}

.radio-option input[type="radio"]:checked + .radio-custom {
    border-color: #0047AB;
    background: #0047AB;
}

.radio-option input[type="radio"]:checked + .radio-custom::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 8px;
    height: 8px;
    background: white;
    border-radius: 50%;
}

.radio-option input[type="radio"]:checked ~ * {
    color: #0047AB;
}

/* Precio Resumen */
.precio-resumen {
    background: linear-gradient(135deg, #eff6ff, #dbeafe);
    border: 2px solid #bfdbfe;
    border-radius: 12px;
    padding: 2rem;
    margin-bottom: 2rem;
}

.precio-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.5rem 0;
    color: #374151;
}

.precio-total {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1rem 0;
    border-top: 2px solid #bfdbfe;
    margin-top: 1rem;
    font-weight: 700;
    font-size: 1.1rem;
    color: #0047AB;
}

/* MÃ©todos de Pago */
.metodos-pago h4 {
    font-size: 1.1rem;
    font-weight: 700;
    color: #1a1a1a;
    margin-bottom: 1rem;
}

.pago-opciones {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 1rem;
}

.pago-opcion {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 1rem;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    font-size: 0.9rem;
    color: #374151;
}

.pago-opcion i {
    color: #0047AB;
    font-size: 1.1rem;
}

/* Form Actions */
.form-actions {
    display: flex;
    gap: 1rem;
    justify-content: center;
    flex-wrap: wrap;
    padding-top: 2rem;
    border-top: 2px solid #f3f4f6;
}

.form-actions .btn {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 1rem 2rem;
    border-radius: 12px;
    font-weight: 600;
    text-decoration: none;
    transition: all 0.3s ease;
    min-width: 180px;
    justify-content: center;
    font-size: 1rem;
    border: none;
    cursor: pointer;
}

.form-actions .btn-primary {
    background: linear-gradient(135deg, #0047AB, #003380);
    color: white;
}

.form-actions .btn-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(0, 71, 171, 0.3);
}

.form-actions .btn-secondary {
    background: #6b7280;
    color: white;
}

.form-actions .btn-secondary:hover {
    background: #4b5563;
    transform: translateY(-2px);
}

/* InformaciÃ³n Adicional */
.info-adicional {
    padding: 4rem 0;
    background: white;
}

.info-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 2rem;
    max-width: 1000px;
    margin: 0 auto;
}

.info-card {
    background: #f9fafb;
    padding: 2.5rem;
    border-radius: 16px;
    border: 1px solid #e5e7eb;
    text-align: center;
    transition: all 0.3s ease;
}

.info-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.1);
}

.info-icon {
    width: 60px;
    height: 60px;
    background: linear-gradient(135deg, #0047AB, #003380);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 1.5rem;
    color: white;
    font-size: 1.5rem;
}

.info-card h3 {
    font-size: 1.3rem;
    font-weight: 700;
    color: #1a1a1a;
    margin-bottom: 1rem;
}

.info-card p {
    color: #6b7280;
    line-height: 1.6;
    margin-bottom: 0.5rem;
}

.info-card strong {
    color: #374151;
    font-weight: 600;
}

/* Responsive Design */
@media (max-width: 768px) {
    .certificados-grid {
        grid-template-columns: 1fr;
    }
    
    .proceso-steps {
        grid-template-columns: 1fr;
    }
    
    .certificado-form {
        padding: 2rem;
    }
    
    .form-section h3 {
        font-size: 1.2rem;
    }
    
    .radio-group {
        gap: 0.75rem;
    }
    
    .radio-option {
        padding: 0.75rem;
        font-size: 0.9rem;
    }
    
    .precio-resumen {
        padding: 1.5rem;
    }
    
    .pago-opciones {
        grid-template-columns: 1fr;
    }
    
    .form-actions {
        flex-direction: column;
        align-items: center;
    }
    
    .info-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 480px) {
    .info-header h2 {
        font-size: 2rem;
    }
    
    .certificado-card {
        padding: 2rem;
    }
    
    .cert-price {
        flex-direction: column;
        gap: 0.5rem;
        text-align: center;
    }
    
    .form-header h2 {
        font-size: 1.8rem;
    }
    
    .certificado-form {
        padding: 1.5rem;
    }
}

/* EnvÃ­o Nacional Styles */
.envio-info {
    margin-top: 2rem;
    padding: 2rem;
    background: linear-gradient(135deg, #f0f9ff, #e0f2fe);
    border: 2px solid #0ea5e9;
    border-radius: 16px;
}

.envio-alert {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1.5rem;
    background: linear-gradient(135deg, #ecfdf5, #d1fae5);
    border: 2px solid #10b981;
    border-radius: 12px;
    margin-bottom: 2rem;
}

.envio-alert i {
    font-size: 2rem;
    color: #10b981;
    flex-shrink: 0;
}

.envio-alert h4 {
    font-size: 1.2rem;
    font-weight: 700;
    color: #065f46;
    margin-bottom: 0.5rem;
}

.envio-alert p {
    color: #047857;
    margin: 0;
    font-weight: 500;
}

.envio-detalles {
    margin-top: 2rem;
    padding: 2rem;
    background: white;
    border-radius: 12px;
    border: 1px solid #e5e7eb;
}

.envio-detalles h4 {
    font-size: 1.1rem;
    font-weight: 700;
    color: #1a1a1a;
    margin-bottom: 1.5rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.envio-caracteristicas {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: 1rem;
}

.envio-caracteristicas li {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem;
    background: #f9fafb;
    border-radius: 8px;
    border: 1px solid #e5e7eb;
    transition: all 0.3s ease;
}

.envio-caracteristicas li:hover {
    background: #eff6ff;
    border-color: #0047AB;
}

.envio-caracteristicas i {
    width: 24px;
    height: 24px;
    background: #0047AB;
    color: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.8rem;
    flex-shrink: 0;
}

.envio-caracteristicas li span {
    color: #374151;
    font-weight: 500;
    font-size: 0.95rem;
}

/* Responsive para envÃ­o */
@media (max-width: 768px) {
    .envio-info {
        padding: 1.5rem;
    }
    
    .envio-alert {
        flex-direction: column;
        text-align: center;
        gap: 1rem;
    }
    
    .envio-alert i {
        font-size: 1.5rem;
    }
    
    .envio-detalles {
        padding: 1.5rem;
    }
    
    .envio-caracteristicas {
        gap: 0.75rem;
    }
    
    .envio-caracteristicas li {
        padding: 0.75rem;
        font-size: 0.9rem;
    }
}
        padding: 1.5rem;
    }
}

/* ===================================
   TÃ©rminos y Condiciones
   =================================== */
.terminos-section {
    padding: 4rem 0 5rem;
    background: #f8f9fa;
}

.terminos-aviso-importante {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    background: linear-gradient(135deg, #fff3cd, #ffeaa7);
    border: 2px solid #f59e0b;
    border-radius: 12px;
    padding: 1.25rem 1.5rem;
    margin-bottom: 2.5rem;
    font-size: 0.95rem;
    color: #92400e;
}

.aviso-icon {
    font-size: 1.5rem;
    color: #f59e0b;
    flex-shrink: 0;
    margin-top: 0.1rem;
}

.terminos-grid {
    display: grid;
    grid-template-columns: 260px 1fr;
    gap: 2.5rem;
    align-items: start;
}

/* Ãndice lateral */
.terminos-indice {
    background: var(--white);
    border-radius: 12px;
    padding: 1.5rem;
    box-shadow: var(--shadow);
    position: sticky;
    top: 1rem;
    border: 1px solid #e5e7eb;
}

.terminos-indice h3 {
    font-size: 1rem;
    font-weight: 700;
    color: var(--primary);
    margin-bottom: 1rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.terminos-indice ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.terminos-indice ul li a {
    display: block;
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    font-size: 0.85rem;
    color: var(--gray);
    font-weight: 500;
    transition: var(--transition);
    line-height: 1.4;
}

.terminos-indice ul li a:hover {
    background: var(--light-gray);
    color: var(--primary);
    padding-left: 1rem;
}

/* Fecha */
.terminos-fecha {
    font-size: 0.85rem;
    color: var(--gray);
    margin-bottom: 2rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid #e5e7eb;
}

/* Bloques */
.terminos-bloque {
    background: var(--white);
    border-radius: 12px;
    padding: 2rem;
    margin-bottom: 1.5rem;
    box-shadow: var(--shadow);
    border: 1px solid #e5e7eb;
}

.terminos-bloque.destacado {
    border-left: 4px solid var(--primary);
}

.terminos-bloque.destacado.rojo {
    border-left: 4px solid var(--secondary);
}

.terminos-bloque h2 {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--dark);
    margin-bottom: 1rem;
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.terminos-bloque h2 .num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    background: var(--primary);
    color: var(--white);
    border-radius: 50%;
    font-size: 0.9rem;
    font-weight: 700;
    flex-shrink: 0;
}

.terminos-bloque.destacado.rojo h2 .num {
    background: var(--secondary);
}

.terminos-bloque p {
    color: #374151;
    line-height: 1.75;
    margin-bottom: 1rem;
    font-size: 0.95rem;
}

.terminos-bloque p:last-child {
    margin-bottom: 0;
}

/* Listas */
.terminos-lista {
    list-style: none;
    padding: 0;
    margin: 1rem 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.terminos-lista li {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    font-size: 0.95rem;
    color: #374151;
    line-height: 1.5;
}

.terminos-lista li i.fa-check-circle {
    color: #10b981;
    flex-shrink: 0;
    margin-top: 0.15rem;
}

.terminos-lista.roja li i.fa-times-circle {
    color: var(--secondary);
    flex-shrink: 0;
    margin-top: 0.15rem;
}

/* Alertas internas */
.terminos-alerta {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 1rem 1.25rem;
    border-radius: 8px;
    margin-bottom: 1rem;
    font-size: 0.9rem;
    line-height: 1.6;
}

.terminos-alerta i {
    font-size: 1.2rem;
    flex-shrink: 0;
    margin-top: 0.1rem;
}

.terminos-alerta.advertencia {
    background: #fffbeb;
    border: 1px solid #f59e0b;
    color: #92400e;
}

.terminos-alerta.advertencia i { color: #f59e0b; }

.terminos-alerta.peligro {
    background: #fef2f2;
    border: 1px solid #fca5a5;
    color: #991b1b;
}

.terminos-alerta.peligro i { color: var(--secondary); }

.terminos-alerta.info {
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    color: #0047AB;
}

.terminos-alerta.info i { color: var(--primary); }

/* Contacto */
.terminos-contacto-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    margin-top: 1rem;
}

.terminos-contacto-item {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.75rem 1.25rem;
    background: var(--light-gray);
    border-radius: 8px;
    font-size: 0.9rem;
    color: var(--dark);
    font-weight: 500;
    transition: var(--transition);
    border: 1px solid #e5e7eb;
}

.terminos-contacto-item:hover {
    background: var(--primary);
    color: var(--white);
    border-color: var(--primary);
}

.terminos-contacto-item i {
    color: var(--primary);
    font-size: 1.1rem;
    transition: var(--transition);
}

.terminos-contacto-item:hover i {
    color: var(--white);
}

/* AceptaciÃ³n final */
.terminos-aceptacion-final {
    background: linear-gradient(135deg, var(--primary), var(--primary-dark));
    color: var(--white);
    border-radius: 16px;
    padding: 2.5rem;
    text-align: center;
    margin-top: 2rem;
}

.terminos-aceptacion-final i.fa-shield-alt {
    font-size: 3rem;
    margin-bottom: 1rem;
    opacity: 0.9;
}

.terminos-aceptacion-final p {
    font-size: 1rem;
    line-height: 1.7;
    opacity: 0.95;
    margin-bottom: 1.5rem;
    max-width: 700px;
    margin-left: auto;
    margin-right: auto;
}

.terminos-acciones {
    display: flex;
    gap: 1rem;
    justify-content: center;
    flex-wrap: wrap;
}

.terminos-acciones .btn-primary {
    background: var(--white);
    color: var(--primary);
}

.terminos-acciones .btn-primary:hover {
    background: var(--light-gray);
}

.terminos-acciones .btn-secondary {
    background: transparent;
    color: var(--white);
    border-color: rgba(255,255,255,0.6);
}

.terminos-acciones .btn-secondary:hover {
    background: rgba(255,255,255,0.15);
    border-color: var(--white);
}

/* Responsive */
@media (max-width: 900px) {
    .terminos-grid {
        grid-template-columns: 1fr;
    }

    .terminos-indice {
        position: static;
    }
}

@media (max-width: 600px) {
    .terminos-bloque {
        padding: 1.25rem;
    }

    .terminos-aceptacion-final {
        padding: 1.75rem 1.25rem;
    }

    .terminos-acciones {
        flex-direction: column;
    }

    .terminos-acciones .btn {
        width: 100%;
    }
}

/* ===================================
   Tabla de Tarifas (terminos.php)
   =================================== */
.tarifas-tabla {
    border-radius: 10px;
    overflow: hidden;
    border: 1px solid #e5e7eb;
    margin-top: 1rem;
}

.tarifas-header {
    display: grid;
    grid-template-columns: 2fr 2fr 1fr;
    background: var(--primary);
    color: var(--white);
    padding: 0.85rem 1.25rem;
    font-weight: 700;
    font-size: 0.9rem;
    gap: 1rem;
}

.tarifas-row {
    display: grid;
    grid-template-columns: 2fr 2fr 1fr;
    padding: 0.85rem 1.25rem;
    gap: 1rem;
    font-size: 0.9rem;
    color: #374151;
    border-bottom: 1px solid #f3f4f6;
    align-items: center;
    transition: background 0.2s;
}

.tarifas-row:last-child {
    border-bottom: none;
}

.tarifas-row:nth-child(even) {
    background: #f9fafb;
}

.tarifas-row:hover {
    background: #eff6ff;
}

.tarifas-row.destacada {
    background: linear-gradient(135deg, #fffbeb, #fef3c7);
    font-weight: 600;
}

.tarifas-row.destacada:hover {
    background: linear-gradient(135deg, #f5eed6, #e8dcc0);
}

.tarifas-row i {
    color: var(--primary);
    margin-right: 0.4rem;
}

.tarifas-row .monto {
    font-weight: 700;
    color: var(--primary);
    font-size: 1rem;
}

.tarifas-row.destacada .monto {
    color: #d97706;
}

@media (max-width: 600px) {
    .tarifas-header,
    .tarifas-row {
        grid-template-columns: 1fr 1fr;
        font-size: 0.82rem;
        padding: 0.75rem 1rem;
    }

    .tarifas-header span:nth-child(2),
    .tarifas-row span:nth-child(2) {
        display: none;
    }
}

/* Conceptos de tarifa sin montos */
.tarifas-conceptos {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    margin: 1rem 0;
}

.tarifa-concepto-item {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    padding: 1rem 1.25rem;
    background: #f9fafb;
    border-radius: 10px;
    border: 1px solid #e5e7eb;
    transition: var(--transition);
}

.tarifa-concepto-item:hover {
    border-color: var(--primary);
    background: #eff6ff;
}

.tarifa-icono {
    width: 42px;
    height: 42px;
    background: linear-gradient(135deg, #dbeafe, #bfdbfe);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
    color: var(--primary);
    flex-shrink: 0;
}

.tarifa-info {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.tarifa-info strong {
    font-size: 0.95rem;
    color: var(--dark);
    font-weight: 700;
}

.tarifa-info span {
    font-size: 0.875rem;
    color: var(--gray);
    line-height: 1.5;
}

/* ===================================
   REQUISITOS PAGE
   =================================== */

/* Intro banner */
.req-intro {
    background: var(--white);
    padding: 2.5rem 0;
    border-bottom: 1px solid #e5e7eb;
}

.req-intro-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1rem;
}

.req-intro-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 0.4rem;
    padding: 1.5rem 1rem;
    border-radius: 12px;
    border: 1px solid #e5e7eb;
    transition: var(--transition);
}

.req-intro-card:hover {
    border-color: var(--primary);
    box-shadow: var(--shadow);
    transform: translateY(-3px);
}

.req-intro-card i {
    font-size: 1.8rem;
    color: var(--primary);
    margin-bottom: 0.25rem;
}

.req-intro-card strong {
    font-size: 0.95rem;
    color: var(--dark);
    font-weight: 700;
}

.req-intro-card span {
    font-size: 0.82rem;
    color: var(--gray);
}

/* Section headers reutilizables */
.req-section-header {
    text-align: center;
    margin-bottom: 3rem;
}

/* Documentos */
.req-documentos {
    padding: 5rem 0;
    background: #f8f9fa;
}

.req-docs-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
    margin-bottom: 2rem;
}

.req-doc-card {
    background: var(--white);
    border-radius: 14px;
    border: 1px solid #e5e7eb;
    padding: 1.75rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    position: relative;
    transition: var(--transition);
    overflow: hidden;
}

.req-doc-card:hover {
    border-color: var(--primary);
    box-shadow: 0 8px 24px rgba(0,71,171,0.1);
    transform: translateY(-4px);
}

.req-doc-num {
    position: absolute;
    top: 1rem;
    right: 1.25rem;
    font-size: 2.5rem;
    font-weight: 900;
    color: #f3f4f6;
    line-height: 1;
    user-select: none;
}

.req-doc-icon {
    width: 52px;
    height: 52px;
    background: linear-gradient(135deg, #dbeafe, #bfdbfe);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.4rem;
    color: var(--primary);
    flex-shrink: 0;
}

.req-doc-body h3 {
    font-size: 1rem;
    font-weight: 700;
    color: var(--dark);
    margin-bottom: 0.25rem;
}

.req-doc-body p {
    font-size: 0.875rem;
    color: var(--gray);
    line-height: 1.6;
}

.req-doc-tag {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    background: #dcfce7;
    color: #166534;
    font-size: 0.78rem;
    font-weight: 600;
    padding: 0.3rem 0.75rem;
    border-radius: 50px;
    margin-top: 0.25rem;
    width: fit-content;
}

.req-doc-tag.alt {
    background: #eff6ff;
    color: var(--primary);
}

/* Nota digital */
.req-nota-digital {
    display: flex;
    align-items: flex-start;
    gap: 1.25rem;
    background: linear-gradient(135deg, #f0fdf4, #dcfce7);
    border: 2px solid #86efac;
    border-radius: 14px;
    padding: 1.5rem 2rem;
    margin-top: 1rem;
}

.req-nota-icon {
    font-size: 2.5rem;
    color: #16a34a;
    flex-shrink: 0;
}

.req-nota-digital strong {
    display: block;
    font-size: 1rem;
    color: #14532d;
    margin-bottom: 0.4rem;
}

.req-nota-digital p {
    font-size: 0.9rem;
    color: #166534;
    margin: 0;
    line-height: 1.6;
}

.req-nota-digital a {
    color: #15803d;
    font-weight: 700;
    text-decoration: underline;
}

/* Requisitos especiales */
.req-especiales {
    padding: 5rem 0;
    background: var(--white);
}

.req-especiales-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.5rem;
}

.req-especial-card {
    border-radius: 14px;
    border: 1px solid #e5e7eb;
    overflow: hidden;
    transition: var(--transition);
}

.req-especial-card:hover {
    box-shadow: 0 8px 24px rgba(0,0,0,0.1);
    transform: translateY(-4px);
}

.req-especial-header {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 1.25rem 1.5rem;
    color: var(--white);
    font-size: 1.1rem;
}

.req-especial-header i {
    font-size: 1.4rem;
}

.req-especial-header h3 {
    font-size: 1.05rem;
    font-weight: 700;
    margin: 0;
}

.req-especial-header.primaria   { background: linear-gradient(135deg, #0047AB, #003380); }
.req-especial-header.secundaria { background: linear-gradient(135deg, #C8102E, #a50d1a); }
.req-especial-header.virtual    { background: linear-gradient(135deg, #059669, #047857); }
.req-especial-header.semipresencial { background: linear-gradient(135deg, #7c3aed, #5b21b6); }

.req-especial-lista {
    list-style: none;
    padding: 1.25rem 1.5rem;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    background: var(--white);
}

.req-especial-lista li {
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
    font-size: 0.9rem;
    color: #374151;
    line-height: 1.5;
}

.req-especial-lista li i {
    color: #10b981;
    flex-shrink: 0;
    margin-top: 0.15rem;
}

/* Proceso paso a paso */
.req-proceso {
    padding: 5rem 0;
    background: #f8f9fa;
}

.req-steps {
    display: flex;
    flex-direction: column;
    gap: 0;
    max-width: 780px;
    margin: 0 auto;
    position: relative;
}

.req-step {
    display: grid;
    grid-template-columns: 56px 24px 1fr;
    gap: 0 1.25rem;
    align-items: start;
    padding-bottom: 2rem;
}

.req-step.last {
    padding-bottom: 0;
}

.req-step-num {
    width: 56px;
    height: 56px;
    background: var(--primary);
    color: var(--white);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.3rem;
    font-weight: 900;
    flex-shrink: 0;
    box-shadow: 0 4px 12px rgba(0,71,171,0.3);
    z-index: 1;
}

.req-step-num.success {
    background: linear-gradient(135deg, #10b981, #059669);
    box-shadow: 0 4px 12px rgba(16,185,129,0.3);
}

.req-step-connector {
    width: 2px;
    background: linear-gradient(to bottom, var(--primary), #bfdbfe);
    margin: 56px auto 0;
    flex: 1;
    min-height: 100%;
    align-self: stretch;
}

.req-step-body {
    background: var(--white);
    border-radius: 14px;
    padding: 1.5rem;
    border: 1px solid #e5e7eb;
    margin-top: 0;
    transition: var(--transition);
}

.req-step-body:hover {
    border-color: var(--primary);
    box-shadow: var(--shadow);
}

.req-step-icon {
    width: 44px;
    height: 44px;
    background: linear-gradient(135deg, #dbeafe, #bfdbfe);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.2rem;
    color: var(--primary);
    margin-bottom: 0.75rem;
}

.req-step-icon.success {
    background: linear-gradient(135deg, #d1fae5, #a7f3d0);
    color: #059669;
}

.req-step-body h3 {
    font-size: 1rem;
    font-weight: 700;
    color: var(--dark);
    margin-bottom: 0.4rem;
}

.req-step-body p {
    font-size: 0.875rem;
    color: var(--gray);
    line-height: 1.6;
    margin: 0;
}

.req-step-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    margin-top: 0.75rem;
    padding: 0.5rem 1rem;
    background: #16a34a;
    color: var(--white);
    border-radius: 8px;
    font-size: 0.85rem;
    font-weight: 600;
    transition: var(--transition);
}

.req-step-btn:hover {
    background: #15803d;
    transform: translateY(-1px);
}

/* FAQ */
.req-faq {
    padding: 5rem 0;
    background: var(--white);
}

.req-faq-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.25rem;
}

.req-faq-item {
    background: #f8f9fa;
    border-radius: 12px;
    border: 1px solid #e5e7eb;
    overflow: hidden;
    transition: var(--transition);
}

.req-faq-item:hover {
    border-color: var(--primary);
    box-shadow: var(--shadow);
}

.req-faq-q {
    padding: 1.1rem 1.25rem;
    font-weight: 700;
    font-size: 0.95rem;
    color: var(--dark);
    display: flex;
    align-items: center;
    gap: 0.6rem;
    background: var(--white);
    border-bottom: 1px solid #e5e7eb;
}

.req-faq-q i {
    color: var(--primary);
    font-size: 1rem;
    flex-shrink: 0;
}

.req-faq-a {
    padding: 1rem 1.25rem;
    font-size: 0.875rem;
    color: #374151;
    line-height: 1.7;
}

/* CTA final */
.req-cta {
    padding: 5rem 0;
    background: linear-gradient(135deg, #002966 0%, #0047AB 100%);
}

.req-cta-content {
    text-align: center;
    color: var(--white);
}

.req-cta-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    background: rgba(255,255,255,0.2);
    border: 1px solid rgba(255,255,255,0.4);
    border-radius: 50px;
    padding: 0.5rem 1.25rem;
    font-size: 0.875rem;
    font-weight: 600;
    margin-bottom: 1.25rem;
    backdrop-filter: blur(8px);
}

.req-cta-content h2 {
    font-size: 2.5rem;
    font-weight: 900;
    margin-bottom: 0.75rem;
}

.req-cta-content p {
    font-size: 1.1rem;
    opacity: 0.9;
    margin-bottom: 2rem;
}

.req-cta-buttons {
    display: flex;
    gap: 1rem;
    justify-content: center;
    flex-wrap: wrap;
}

.btn-cta-wa {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.9rem 1.75rem;
    background: #16a34a;
    color: var(--white);
    border-radius: 10px;
    font-weight: 700;
    font-size: 0.95rem;
    transition: var(--transition);
    box-shadow: 0 4px 12px rgba(0,0,0,0.2);
}

.btn-cta-wa:hover {
    background: #15803d;
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(0,0,0,0.25);
}

.btn-cta-info {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.9rem 1.75rem;
    background: rgba(255,255,255,0.15);
    color: var(--white);
    border: 2px solid rgba(255,255,255,0.5);
    border-radius: 10px;
    font-weight: 700;
    font-size: 0.95rem;
    transition: var(--transition);
    backdrop-filter: blur(8px);
}

.btn-cta-info:hover {
    background: rgba(255,255,255,0.25);
    border-color: var(--white);
    transform: translateY(-2px);
}

/* Responsive */
@media (max-width: 900px) {
    .req-docs-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    .req-especiales-grid {
        grid-template-columns: 1fr;
    }
    .req-faq-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    .req-intro-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    .req-docs-grid {
        grid-template-columns: 1fr;
    }
    .req-step {
        grid-template-columns: 44px 16px 1fr;
        gap: 0 0.75rem;
    }
    .req-step-num {
        width: 44px;
        height: 44px;
        font-size: 1.1rem;
    }
    .req-cta-content h2 {
        font-size: 1.75rem;
    }
    .req-cta-buttons {
        flex-direction: column;
        align-items: stretch;
    }
    .btn-cta-wa,
    .btn-cta-info {
        justify-content: center;
    }
}

/* ===================================
   FAQ PAGE
   =================================== */

/* Hero */
.faq-hero {
    background: linear-gradient(135deg, #002966 0%, #0047AB 100%);
    padding: 4.5rem 0 3.5rem;
    text-align: center;
    color: var(--white);
    position: relative;
    overflow: hidden;
}

.faq-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1440 200"><path fill="%23ffffff" fill-opacity="0.05" d="M0,64L80,80C160,96,320,128,480,128C640,128,800,96,960,80C1120,64,1280,64,1360,64L1440,64L1440,200L0,200Z"/></svg>') no-repeat bottom;
    background-size: cover;
}

.faq-hero-content {
    position: relative;
    z-index: 1;
    max-width: 680px;
    margin: 0 auto;
}

.faq-hero-content .section-badge {
    background: rgba(255,255,255,0.2);
    border: 1px solid rgba(255,255,255,0.4);
    color: var(--white);
    margin-bottom: 1rem;
}

.faq-hero-content h1 {
    font-size: 2.75rem;
    font-weight: 900;
    margin-bottom: 0.75rem;
    line-height: 1.15;
}

.faq-hero-content > p {
    font-size: 1.05rem;
    opacity: 0.9;
    margin-bottom: 2rem;
}

/* Search */
.faq-search-wrap {
    position: relative;
    max-width: 560px;
    margin: 0 auto 0.75rem;
}

.faq-search-icon {
    position: absolute;
    left: 1.1rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--gray);
    font-size: 1rem;
    pointer-events: none;
}

.faq-search-input-new {
    width: 100%;
    padding: 1rem 3rem 1rem 2.75rem;
    border-radius: 50px;
    border: none;
    font-size: 1rem;
    color: var(--dark);
    outline: none;
    box-shadow: 0 8px 24px rgba(0,0,0,0.15);
    transition: box-shadow 0.3s;
}

.faq-search-input-new:focus {
    box-shadow: 0 8px 32px rgba(0,0,0,0.25);
}

.faq-search-clear {
    position: absolute;
    right: 1rem;
    top: 50%;
    transform: translateY(-50%);
    width: 28px;
    height: 28px;
    background: #e5e7eb;
    border: none;
    border-radius: 50%;
    display: none;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-size: 0.75rem;
    color: var(--gray);
    transition: var(--transition);
    padding: 0;
}

.faq-search-clear:hover {
    background: #d1d5db;
}

.faq-search-hint {
    font-size: 0.85rem;
    opacity: 0.8;
    min-height: 1.2em;
    margin: 0;
}

/* Stats bar */
.faq-stats-bar {
    background: var(--white);
    border-bottom: 1px solid #e5e7eb;
    padding: 1.5rem 0;
}

.faq-stats-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1rem;
    text-align: center;
}

.faq-stat strong {
    display: block;
    font-size: 1.6rem;
    font-weight: 900;
    color: var(--primary);
    line-height: 1;
    margin-bottom: 0.25rem;
}

.faq-stat span {
    font-size: 0.82rem;
    color: var(--gray);
    font-weight: 500;
}

/* Main section */
.faq-main {
    padding: 4rem 0 5rem;
    background: #f8f9fa;
}

/* CategorÃ­as */
.faq-cats {
    display: flex;
    gap: 0.6rem;
    flex-wrap: wrap;
    margin-bottom: 2.5rem;
    justify-content: center;
}

.faq-cat {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.6rem 1.25rem;
    border-radius: 50px;
    border: 2px solid #e5e7eb;
    background: var(--white);
    color: var(--gray);
    font-size: 0.875rem;
    font-weight: 600;
    cursor: pointer;
    transition: var(--transition);
}

.faq-cat:hover {
    border-color: var(--primary);
    color: var(--primary);
}

.faq-cat.active {
    background: var(--primary);
    border-color: var(--primary);
    color: var(--white);
    box-shadow: 0 4px 12px rgba(0,71,171,0.25);
}

/* Grupos */
.faq-group {
    margin-bottom: 2rem;
}

.faq-group-label {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    font-size: 0.8rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--primary);
    margin-bottom: 0.75rem;
    padding-left: 0.25rem;
}

/* Items */
.faq-item-new {
    background: var(--white);
    border-radius: 12px;
    border: 1px solid #e5e7eb;
    margin-bottom: 0.6rem;
    overflow: hidden;
    transition: border-color 0.2s, box-shadow 0.2s;
}

.faq-item-new:hover {
    border-color: #bfdbfe;
}

.faq-item-new.open {
    border-color: var(--primary);
    box-shadow: 0 4px 16px rgba(0,71,171,0.1);
}

.faq-q-btn {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.1rem 1.5rem;
    background: none;
    border: none;
    cursor: pointer;
    text-align: left;
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--dark);
    transition: color 0.2s;
}

.faq-item-new.open .faq-q-btn {
    color: var(--primary);
}

.faq-arrow {
    width: 28px;
    height: 28px;
    background: #f3f4f6;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.75rem;
    color: var(--gray);
    flex-shrink: 0;
    transition: transform 0.3s, background 0.2s;
}

.faq-item-new.open .faq-arrow {
    transform: rotate(180deg);
    background: var(--primary);
    color: var(--white);
}

/* Respuesta */
.faq-ans {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s ease, padding 0.3s ease;
    padding: 0 1.5rem;
}

.faq-item-new.open .faq-ans {
    max-height: 600px;
    padding: 0 1.5rem 1.25rem;
}

.faq-ans p {
    font-size: 0.9rem;
    color: #374151;
    line-height: 1.75;
    margin-bottom: 0.75rem;
}

.faq-ans p:last-child { margin-bottom: 0; }

.faq-ans ul {
    list-style: none;
    padding: 0;
    margin: 0.5rem 0;
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}

.faq-ans ul li {
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
    font-size: 0.875rem;
    color: #374151;
    line-height: 1.5;
}

.faq-ans-link {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    margin-top: 0.75rem;
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--primary);
    transition: gap 0.2s;
}

.faq-ans-link:hover { gap: 0.65rem; }

/* Cards dentro de respuesta */
.faq-ans-cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.75rem;
    margin: 0.5rem 0;
}

.faq-ans-card {
    background: #f8f9fa;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    padding: 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    text-align: center;
    transition: var(--transition);
}

.faq-ans-card:hover {
    border-color: var(--primary);
    background: #eff6ff;
}

.faq-ans-card i {
    font-size: 1.4rem;
    color: var(--primary);
}

.faq-ans-card strong {
    font-size: 0.875rem;
    color: var(--dark);
    font-weight: 700;
}

.faq-ans-card span {
    font-size: 0.8rem;
    color: var(--gray);
    line-height: 1.4;
}

/* Sin resultados */
.faq-no-results {
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 3rem;
    color: var(--gray);
    gap: 0.75rem;
}

.faq-no-results i {
    font-size: 3rem;
    opacity: 0.3;
}

.faq-no-results h3 {
    font-size: 1.1rem;
    color: var(--dark);
}

/* CTA */
.faq-cta-new {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    background: var(--white);
    border-radius: 16px;
    padding: 2rem 2.5rem;
    margin-top: 3rem;
    border: 1px solid #e5e7eb;
    box-shadow: var(--shadow);
    flex-wrap: wrap;
}

.faq-cta-icon {
    width: 60px;
    height: 60px;
    background: linear-gradient(135deg, #dbeafe, #bfdbfe);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.6rem;
    color: var(--primary);
    flex-shrink: 0;
}

.faq-cta-text {
    flex: 1;
    min-width: 200px;
}

.faq-cta-text h3 {
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--dark);
    margin-bottom: 0.3rem;
}

.faq-cta-text p {
    font-size: 0.875rem;
    color: var(--gray);
    margin: 0;
}

.faq-cta-actions {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.faq-cta-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.7rem 1.4rem;
    border-radius: 8px;
    font-size: 0.9rem;
    font-weight: 700;
    transition: var(--transition);
}

.faq-cta-btn.wa {
    background: #16a34a;
    color: var(--white);
}

.faq-cta-btn.wa:hover {
    background: #15803d;
    transform: translateY(-2px);
}

.faq-cta-btn.contact {
    background: var(--primary);
    color: var(--white);
}

.faq-cta-btn.contact:hover {
    background: var(--primary-dark);
    transform: translateY(-2px);
}

/* Responsive */
@media (max-width: 768px) {
    .faq-hero-content h1 { font-size: 1.9rem; }
    .faq-stats-grid { grid-template-columns: repeat(2, 1fr); }
    .faq-ans-cards { grid-template-columns: 1fr; }
    .faq-cta-new { flex-direction: column; text-align: center; }
    .faq-cta-actions { justify-content: center; }
}

@media (max-width: 480px) {
    .faq-cats { gap: 0.4rem; }
    .faq-cat { padding: 0.5rem 0.9rem; font-size: 0.8rem; }
    .faq-q-btn { padding: 1rem 1.1rem; font-size: 0.875rem; }
    .faq-ans { padding: 0 1.1rem; }
    .faq-item-new.open .faq-ans { padding: 0 1.1rem 1rem; }
}

/* ============================================
   MEJORAS TRANSPARENCIA - ESTILOS AVANZADOS
   ============================================ */

/* Filtros Avanzados */
.filtros-avanzados {
    display: none;
    gap: 1rem;
    padding: 1.5rem;
    background: rgba(255, 255, 255, 0.95);
    border-radius: 12px;
    margin-top: 1rem;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
    animation: slideDown 0.3s ease;
}

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

.filtro-grupo {
    flex: 1;
    min-width: 150px;
}

.filtro-grupo label {
    display: block;
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--text-dark);
    margin-bottom: 0.5rem;
}

.filtro-grupo label i {
    margin-right: 0.5rem;
    color: var(--primary-color);
}

.filtro-grupo select {
    width: 100%;
    padding: 0.75rem;
    border: 2px solid #e0e0e0;
    border-radius: 8px;
    font-size: 0.95rem;
    transition: all 0.3s ease;
}

.filtro-grupo select:focus {
    outline: none;
    border-color: var(--primary-color);
    box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.1);
}

.btn-filtros-avanzados {
    padding: 0.75rem 1rem;
    background: var(--secondary-color);
    color: white;
    border: none;
    border-radius: 0 8px 8px 0;
    cursor: pointer;
    transition: all 0.3s ease;
    margin-left: -1px;
}

.btn-filtros-avanzados:hover {
    background: #0056b3;
    transform: scale(1.05);
}

.btn-aplicar-filtros {
    padding: 0.75rem 1.5rem;
    background: var(--primary-color);
    color: white;
    border: none;
    border-radius: 8px;
    cursor: pointer;
    font-weight: 600;
    transition: all 0.3s ease;
    white-space: nowrap;
}

.btn-aplicar-filtros:hover {
    background: #0056b3;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 123, 255, 0.3);
}

/* Resultados de BÃºsqueda */
.resultados-busqueda {
    margin-top: 1.5rem;
    background: white;
    border-radius: 12px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
    overflow: hidden;
    animation: fadeIn 0.3s ease;
}

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

.resultados-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1.5rem;
    background: linear-gradient(135deg, var(--primary-color), var(--secondary-color));
    color: white;
}

.resultados-header h4 {
    margin: 0;
    font-size: 1.1rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.resultados-header button {
    background: rgba(255, 255, 255, 0.2);
    border: none;
    color: white;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    cursor: pointer;
    transition: all 0.3s ease;
}

.resultados-header button:hover {
    background: rgba(255, 255, 255, 0.3);
    transform: rotate(90deg);
}

.resultados-lista {
    max-height: 500px;
    overflow-y: auto;
}

.resultado-item {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    padding: 1.5rem;
    border-bottom: 1px solid #f0f0f0;
    cursor: pointer;
    transition: all 0.3s ease;
}

.resultado-item:hover {
    background: #f8f9fa;
    transform: translateX(5px);
}

.resultado-item:last-child {
    border-bottom: none;
}

.resultado-icon {
    width: 50px;
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    border-radius: 12px;
    color: white;
    font-size: 1.5rem;
    flex-shrink: 0;
}

.resultado-info {
    flex: 1;
}

.resultado-info h5 {
    margin: 0 0 0.5rem 0;
    font-size: 1.1rem;
    color: var(--text-dark);
}

.resultado-info p {
    margin: 0 0 0.75rem 0;
    color: var(--text-light);
    font-size: 0.9rem;
}

.resultado-meta {
    display: flex;
    gap: 1.5rem;
    flex-wrap: wrap;
}

.resultado-meta span {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.85rem;
    color: var(--text-light);
}

.resultado-meta i {
    color: var(--primary-color);
}

.resultado-actions {
    display: flex;
    gap: 0.5rem;
}

.resultado-actions button {
    width: 40px;
    height: 40px;
    border: none;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
}

.resultado-actions button:first-child {
    background: #e3f2fd;
    color: #1976d2;
}

.resultado-actions button:first-child:hover {
    background: #1976d2;
    color: white;
    transform: scale(1.1);
}

.resultado-actions button:last-child {
    background: #e8f5e9;
    color: #388e3c;
}

.resultado-actions button:last-child:hover {
    background: #388e3c;
    color: white;
    transform: scale(1.1);
}

.sin-resultados {
    text-align: center;
    padding: 3rem;
    color: var(--text-light);
}

.sin-resultados i {
    font-size: 4rem;
    color: #e0e0e0;
    margin-bottom: 1rem;
}

.sin-resultados p {
    font-size: 1.1rem;
    margin-bottom: 1.5rem;
}

.sin-resultados button {
    padding: 0.75rem 1.5rem;
    background: var(--primary-color);
    color: white;
    border: none;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.3s ease;
}

.sin-resultados button:hover {
    background: #0056b3;
    transform: translateY(-2px);
}

/* Documentos Mejorados */
.transparencia-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem;
    background: #f8f9fa;
    border-radius: 8px;
    margin-bottom: 0.75rem;
    cursor: pointer;
    transition: all 0.3s ease;
    border: 2px solid transparent;
}

.transparencia-link:hover {
    background: white;
    border-color: var(--primary-color);
    transform: translateX(5px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.doc-info {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex: 1;
}

.doc-info i {
    font-size: 1.2rem;
    color: var(--primary-color);
}

.doc-info span {
    font-weight: 600;
    color: var(--text-dark);
}

.doc-meta {
    display: flex;
    gap: 1rem;
    align-items: center;
}

.doc-fecha, .doc-tipo {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.85rem;
    color: var(--text-light);
}

.doc-tipo {
    padding: 0.25rem 0.75rem;
    border-radius: 20px;
    font-weight: 600;
}

.doc-tipo.pdf {
    background: #ffebee;
    color: #c62828;
}

.doc-tipo.excel {
    background: #e8f5e9;
    color: #2e7d32;
}

.doc-tipo.word {
    background: #e3f2fd;
    color: #1565c0;
}

.doc-actions {
    display: flex;
    gap: 0.5rem;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.transparencia-link:hover .doc-actions {
    opacity: 1;
}

.doc-actions button {
    width: 36px;
    height: 36px;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
}

.btn-ver {
    background: #e3f2fd;
    color: #1976d2;
}

.btn-ver:hover {
    background: #1976d2;
    color: white;
    transform: scale(1.1);
}

.btn-descargar {
    background: #e8f5e9;
    color: #388e3c;
}

.btn-descargar:hover {
    background: #388e3c;
    color: white;
    transform: scale(1.1);
}

/* Modal Visor de Documentos */
.modal-visor-documento {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 10000;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.modal-visor-documento.active {
    opacity: 1;
}

.modal-visor-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.8);
    backdrop-filter: blur(5px);
}

.modal-visor-content {
    position: relative;
    width: 90%;
    max-width: 1200px;
    height: 90vh;
    background: white;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
    display: flex;
    flex-direction: column;
    animation: modalSlideUp 0.3s ease;
}

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

.modal-visor-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1.5rem 2rem;
    background: linear-gradient(135deg, var(--primary-color), var(--secondary-color));
    color: white;
}

.modal-visor-title {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.modal-visor-title i {
    font-size: 1.5rem;
}

.modal-visor-title h3 {
    margin: 0;
    font-size: 1.3rem;
}

.modal-visor-actions {
    display: flex;
    gap: 0.5rem;
}

.modal-visor-actions button {
    width: 40px;
    height: 40px;
    border: none;
    background: rgba(255, 255, 255, 0.2);
    color: white;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
}

.modal-visor-actions button:hover {
    background: rgba(255, 255, 255, 0.3);
    transform: scale(1.1);
}

.modal-visor-body {
    flex: 1;
    overflow: auto;
    background: #f5f5f5;
}

.documento-preview {
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.preview-placeholder {
    text-align: center;
    padding: 3rem;
    background: white;
    border-radius: 12px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
    max-width: 600px;
}

.preview-placeholder i {
    font-size: 5rem;
    color: #c62828;
    margin-bottom: 1.5rem;
}

.preview-placeholder h4 {
    font-size: 1.5rem;
    margin-bottom: 1rem;
    color: var(--text-dark);
}

.preview-placeholder p {
    color: var(--text-light);
    margin-bottom: 1.5rem;
}

.preview-info {
    display: flex;
    justify-content: center;
    gap: 2rem;
    margin: 1.5rem 0;
    padding: 1rem;
    background: #f8f9fa;
    border-radius: 8px;
}

.preview-info span {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.9rem;
    color: var(--text-light);
}

.preview-note {
    background: #fff3cd;
    color: #856404;
    padding: 1rem;
    border-radius: 8px;
    margin: 1.5rem 0;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

/* Sistema de Notificaciones */
.notificacion {
    position: fixed;
    top: -100px;
    right: 20px;
    min-width: 300px;
    max-width: 500px;
    padding: 1rem 1.5rem;
    background: white;
    border-radius: 12px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
    display: flex;
    align-items: center;
    gap: 1rem;
    z-index: 10001;
    transition: all 0.3s ease;
}

.notificacion.show {
    top: 20px;
}

.notificacion i:first-child {
    font-size: 1.5rem;
}

.notificacion span {
    flex: 1;
    font-weight: 500;
}

.notificacion button {
    background: none;
    border: none;
    color: inherit;
    cursor: pointer;
    opacity: 0.6;
    transition: opacity 0.3s ease;
}

.notificacion button:hover {
    opacity: 1;
}

.notificacion-success {
    border-left: 4px solid #4caf50;
    color: #2e7d32;
}

.notificacion-success i:first-child {
    color: #4caf50;
}

.notificacion-error {
    border-left: 4px solid #f44336;
    color: #c62828;
}

.notificacion-error i:first-child {
    color: #f44336;
}

.notificacion-warning {
    border-left: 4px solid #ff9800;
    color: #e65100;
}

.notificacion-warning i:first-child {
    color: #ff9800;
}

.notificacion-info {
    border-left: 4px solid #2196f3;
    color: #1565c0;
}

.notificacion-info i:first-child {
    color: #2196f3;
}

/* Responsive */
@media (max-width: 768px) {
    .filtros-avanzados {
        flex-direction: column;
    }
    
    .resultado-item {
        flex-direction: column;
        align-items: flex-start;
    }
    
    .resultado-actions {
        width: 100%;
        justify-content: flex-end;
    }
    
    .modal-visor-content {
        width: 95%;
        height: 95vh;
    }
    
    .transparencia-link {
        flex-direction: column;
        align-items: flex-start;
        gap: 1rem;
    }
    
    .doc-actions {
        opacity: 1;
        width: 100%;
        justify-content: flex-end;
    }
    
    .notificacion {
        right: 10px;
        left: 10px;
        min-width: auto;
    }
}

/* ============================================
   INFORMACIÃ“N COMPLETA - ESTILOS MEJORADOS
   ============================================ */

/* Hero Section Mejorado */
.hero-info-completa {
    position: relative;
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
}

.hero-background-animated {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
}

.hero-particles {
    position: absolute;
    width: 100%;
    height: 100%;
    background-image: 
        radial-gradient(circle at 20% 50%, rgba(255, 255, 255, 0.1) 1px, transparent 1px),
        radial-gradient(circle at 80% 80%, rgba(255, 255, 255, 0.1) 1px, transparent 1px);
    background-size: 50px 50px;
    animation: particlesMove 20s linear infinite;
}

@keyframes particlesMove {
    0% { transform: translateY(0); }
    100% { transform: translateY(-50px); }
}

.hero-gradient-overlay {
    position: absolute;
    width: 100%;
    height: 100%;
    background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.1) 100%);
}

.hero-content-info {
    position: relative;
    z-index: 2;
    text-align: center;
    color: white;
    max-width: 900px;
    margin: 0 auto;
    padding: 2rem;
}

.hero-badge-animated {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem 1.5rem;
    background: rgba(255, 255, 255, 0.2);
    backdrop-filter: blur(10px);
    border-radius: 50px;
    font-weight: 600;
    margin-bottom: 2rem;
    animation: fadeInDown 0.8s ease;
}

.badge-pulse {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border-radius: 50px;
    background: rgba(255, 255, 255, 0.3);
    animation: pulse 2s infinite;
}

@keyframes pulse {
    0%, 100% { transform: scale(1); opacity: 1; }
    50% { transform: scale(1.05); opacity: 0.5; }
}

.hero-title-info {
    font-size: 3.5rem;
    font-weight: 800;
    line-height: 1.2;
    margin-bottom: 1.5rem;
    animation: fadeInUp 0.8s ease 0.2s both;
}

.text-highlight {
    background: linear-gradient(90deg, #ffd700, #ffed4e);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.hero-subtitle-info {
    font-size: 1.5rem;
    margin-bottom: 2rem;
    animation: fadeInUp 0.8s ease 0.4s both;
}

.precio-destacado {
    font-size: 2rem;
    color: #ffd700;
    text-shadow: 0 2px 10px rgba(255, 215, 0, 0.5);
}

.hero-features-info {
    display: flex;
    justify-content: center;
    gap: 1.5rem;
    flex-wrap: wrap;
    margin-bottom: 2.5rem;
    animation: fadeInUp 0.8s ease 0.6s both;
}

.feature-badge {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1.25rem;
    background: rgba(255, 255, 255, 0.15);
    backdrop-filter: blur(10px);
    border-radius: 30px;
    font-size: 0.95rem;
    transition: all 0.3s ease;
}

.feature-badge:hover {
    background: rgba(255, 255, 255, 0.25);
    transform: translateY(-3px);
}

.hero-cta-buttons {
    display: flex;
    justify-content: center;
    gap: 1.5rem;
    flex-wrap: wrap;
    animation: fadeInUp 0.8s ease 0.8s both;
}

.btn-hero-primary {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    padding: 1.25rem 2.5rem;
    background: white;
    color: #667eea;
    font-size: 1.1rem;
    font-weight: 700;
    border-radius: 50px;
    text-decoration: none;
    overflow: hidden;
    transition: all 0.3s ease;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
}

.btn-hero-primary:hover {
    transform: translateY(-3px);
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.4);
}

.btn-shine {
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.3), transparent);
    transition: left 0.5s ease;
}

.btn-hero-primary:hover .btn-shine {
    left: 100%;
}

.btn-hero-secondary {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    padding: 1.25rem 2.5rem;
    background: rgba(255, 255, 255, 0.2);
    backdrop-filter: blur(10px);
    color: white;
    font-size: 1.1rem;
    font-weight: 700;
    border-radius: 50px;
    text-decoration: none;
    border: 2px solid rgba(255, 255, 255, 0.3);
    transition: all 0.3s ease;
}

.btn-hero-secondary:hover {
    background: rgba(255, 255, 255, 0.3);
    transform: translateY(-3px);
}

.scroll-indicator {
    position: absolute;
    bottom: 30px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    color: white;
    font-size: 0.9rem;
    animation: bounce 2s infinite;
    transition: opacity 0.3s ease;
}

@keyframes bounce {
    0%, 100% { transform: translateX(-50%) translateY(0); }
    50% { transform: translateX(-50%) translateY(-10px); }
}

/* Comparativa de Planes */
.comparativa-planes {
    padding: 5rem 0;
    background: #f8f9fa;
}

.tabla-comparativa {
    overflow-x: auto;
    margin-top: 3rem;
}

.tabla-planes {
    width: 100%;
    background: white;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
}

.tabla-planes thead {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: white;
}

.tabla-planes th {
    padding: 1.5rem;
    text-align: center;
    font-weight: 700;
    font-size: 1.1rem;
}

.tabla-planes th.destacado {
    background: #ffd700;
    color: #333;
}

.tabla-planes td {
    padding: 1.25rem;
    text-align: center;
    border-bottom: 1px solid #e0e0e0;
}

.tabla-planes td:first-child {
    text-align: left;
    font-weight: 600;
}

.tabla-planes tbody tr:hover {
    background: #f8f9fa;
}

.text-success {
    color: #28a745;
    font-size: 1.5rem;
}

.text-danger {
    color: #dc3545;
    font-size: 1.5rem;
}

/* Responsive */
@media (max-width: 768px) {
    .hero-title-info {
        font-size: 2.5rem;
    }
    
    .hero-subtitle-info {
        font-size: 1.2rem;
    }
    
    .precio-destacado {
        font-size: 1.5rem;
    }
    
    .hero-features-info {
        flex-direction: column;
        align-items: center;
    }
    
    .hero-cta-buttons {
        flex-direction: column;
    }
    
    .btn-hero-primary,
    .btn-hero-secondary {
        width: 100%;
        justify-content: center;
    }
    
    .tabla-comparativa {
        font-size: 0.85rem;
    }
    
    .tabla-planes th,
    .tabla-planes td {
        padding: 0.75rem 0.5rem;
    }
}

@media (max-width: 480px) {
    .hero-title-info {
        font-size: 2rem;
    }
    
    .hero-info-completa {
        min-height: 90vh;
    }
}

/* ============================================
   MATRÃCULA EXPRESS - DISEÃ‘O ULTRA MEJORADO
   ============================================ */

/* Hero Section Express */
.hero-matricula-express {
    position: relative;
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 50%, #f093fb 100%);
}

.hero-background-express {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
}

.animated-shapes {
    position: absolute;
    width: 100%;
    height: 100%;
}

.shape {
    position: absolute;
    border-radius: 50%;
    filter: blur(60px);
    opacity: 0.3;
    animation: float 20s infinite ease-in-out;
}

.shape-1 {
    width: 300px;
    height: 300px;
    background: #ff6b6b;
    top: 10%;
    left: 10%;
    animation-delay: 0s;
}

.shape-2 {
    width: 400px;
    height: 400px;
    background: #4ecdc4;
    top: 50%;
    right: 10%;
    animation-delay: 5s;
}

.shape-3 {
    width: 250px;
    height: 250px;
    background: #ffe66d;
    bottom: 10%;
    left: 30%;
    animation-delay: 10s;
}

.shape-4 {
    width: 350px;
    height: 350px;
    background: #a8e6cf;
    top: 30%;
    right: 30%;
    animation-delay: 15s;
}

@keyframes float {
    0%, 100% { transform: translate(0, 0) scale(1); }
    25% { transform: translate(30px, -30px) scale(1.1); }
    50% { transform: translate(-20px, 20px) scale(0.9); }
    75% { transform: translate(20px, 30px) scale(1.05); }
}

.hero-gradient-express {
    position: absolute;
    width: 100%;
    height: 100%;
    background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.4) 100%);
}

.hero-content-express {
    position: relative;
    z-index: 2;
    text-align: center;
    color: white;
    max-width: 1000px;
    margin: 0 auto;
    padding: 2rem;
}

/* Badge Superior */
.hero-badge-express {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem 2rem;
    background: rgba(255, 255, 255, 0.25);
    backdrop-filter: blur(20px);
    border-radius: 50px;
    font-weight: 700;
    font-size: 1.1rem;
    margin-bottom: 2rem;
    border: 2px solid rgba(255, 255, 255, 0.3);
    animation: fadeInDown 0.8s ease;
}

.badge-icon {
    font-size: 1.5rem;
}

.badge-year {
    padding: 0.25rem 0.75rem;
    background: rgba(255, 215, 0, 0.9);
    color: #333;
    border-radius: 20px;
    font-size: 0.9rem;
}

.badge-glow {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border-radius: 50px;
    background: rgba(255, 255, 255, 0.4);
    animation: glow 2s infinite;
}

@keyframes glow {
    0%, 100% { transform: scale(1); opacity: 0.5; }
    50% { transform: scale(1.1); opacity: 0; }
}

/* TÃ­tulo Principal */
.hero-title-express {
    font-size: 4rem;
    font-weight: 900;
    line-height: 1.2;
    margin-bottom: 2rem;
    animation: fadeInUp 0.8s ease 0.2s both;
}

.title-line-1 {
    display: block;
    font-size: 2.5rem;
    font-weight: 600;
}

.title-line-2 {
    display: block;
    margin-top: 0.5rem;
}

.text-gradient {
    background: linear-gradient(90deg, #ffd700, #ffed4e, #ffd700);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    background-size: 200% auto;
    animation: shimmer 3s linear infinite;
}

@keyframes shimmer {
    to { background-position: 200% center; }
}

.text-animated {
    display: inline-block;
    animation: bounce 2s infinite;
}

/* Caja de Oferta */
.hero-offer-box {
    display: inline-block;
    padding: 1.5rem 2.5rem;
    background: rgba(255, 255, 255, 0.15);
    backdrop-filter: blur(20px);
    border-radius: 20px;
    margin-bottom: 2.5rem;
    border: 2px solid rgba(255, 255, 255, 0.3);
    animation: fadeInUp 0.8s ease 0.4s both;
}

.offer-badge {
    display: inline-block;
    padding: 0.5rem 1rem;
    background: linear-gradient(90deg, #ff6b6b, #ff8e53);
    border-radius: 20px;
    font-weight: 700;
    font-size: 0.9rem;
    margin-bottom: 0.75rem;
    animation: pulse 2s infinite;
}

.offer-text {
    font-size: 1.5rem;
    margin: 0.5rem 0;
}

.price-old {
    text-decoration: line-through;
    opacity: 0.7;
    font-size: 1.2rem;
    margin-right: 1rem;
}

.price-new {
    font-size: 2.5rem;
    font-weight: 900;
    color: #ffd700;
    text-shadow: 0 0 20px rgba(255, 215, 0, 0.5);
}

.offer-savings {
    font-size: 1.1rem;
    color: #a8e6cf;
    font-weight: 600;
    margin-top: 0.5rem;
}

/* CaracterÃ­sticas Hero */
.hero-features-express {
    display: flex;
    justify-content: center;
    gap: 2rem;
    flex-wrap: wrap;
    margin-bottom: 2.5rem;
    animation: fadeInUp 0.8s ease 0.6s both;
}

.feature-item-express {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem 1.5rem;
    background: rgba(255, 255, 255, 0.15);
    backdrop-filter: blur(20px);
    border-radius: 15px;
    border: 2px solid rgba(255, 255, 255, 0.2);
    transition: all 0.3s ease;
}

.feature-item-express:hover {
    background: rgba(255, 255, 255, 0.25);
    transform: translateY(-5px);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
}

.feature-icon-express {
    width: 50px;
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.2);
    border-radius: 12px;
    font-size: 1.5rem;
}

.feature-text-express {
    text-align: left;
}

.feature-text-express strong {
    display: block;
    font-size: 1.1rem;
    margin-bottom: 0.25rem;
}

.feature-text-express span {
    font-size: 0.9rem;
    opacity: 0.9;
}

/* Botones CTA Express */
.hero-cta-express {
    display: flex;
    justify-content: center;
    gap: 1.5rem;
    flex-wrap: wrap;
    margin-bottom: 3rem;
    animation: fadeInUp 0.8s ease 0.8s both;
}

.btn-express-primary {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 1rem;
    padding: 1.5rem 3rem;
    background: linear-gradient(135deg, #ffd700, #ffed4e);
    color: #333;
    font-size: 1.2rem;
    font-weight: 800;
    border-radius: 50px;
    text-decoration: none;
    overflow: hidden;
    transition: all 0.3s ease;
    box-shadow: 0 10px 40px rgba(255, 215, 0, 0.4);
}

.btn-express-primary:hover {
    transform: translateY(-5px) scale(1.05);
    box-shadow: 0 15px 50px rgba(255, 215, 0, 0.6);
}

.btn-icon {
    font-size: 1.5rem;
}

.btn-arrow {
    font-size: 1.5rem;
    transition: transform 0.3s ease;
}

.btn-express-primary:hover .btn-arrow {
    transform: translateX(5px);
}

.btn-express-whatsapp {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    padding: 1.5rem 3rem;
    background: rgba(37, 211, 102, 0.9);
    backdrop-filter: blur(20px);
    color: white;
    font-size: 1.2rem;
    font-weight: 700;
    border-radius: 50px;
    text-decoration: none;
    border: 2px solid rgba(255, 255, 255, 0.3);
    transition: all 0.3s ease;
}

.btn-express-whatsapp:hover {
    background: #25d366;
    transform: translateY(-5px);
    box-shadow: 0 10px 30px rgba(37, 211, 102, 0.4);
}

/* EstadÃ­sticas Hero */
.hero-stats-express {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 2rem;
    padding: 2rem;
    background: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(20px);
    border-radius: 20px;
    border: 2px solid rgba(255, 255, 255, 0.2);
    animation: fadeInUp 0.8s ease 1s both;
}

.stat-item-express {
    text-align: center;
}

.stat-number {
    font-size: 2.5rem;
    font-weight: 900;
    color: #ffd700;
    text-shadow: 0 0 20px rgba(255, 215, 0, 0.5);
}

.stat-label {
    font-size: 0.9rem;
    opacity: 0.9;
    margin-top: 0.25rem;
}

.stat-divider {
    width: 2px;
    height: 50px;
    background: rgba(255, 255, 255, 0.3);
}

/* Scroll Indicator Mejorado */
.scroll-indicator-express {
    position: absolute;
    bottom: 30px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
    color: white;
    animation: fadeIn 1s ease 1.5s both;
}

.scroll-mouse {
    width: 30px;
    height: 50px;
    border: 3px solid rgba(255, 255, 255, 0.5);
    border-radius: 25px;
    position: relative;
}

.scroll-wheel {
    width: 6px;
    height: 10px;
    background: white;
    border-radius: 3px;
    position: absolute;
    top: 8px;
    left: 50%;
    transform: translateX(-50%);
    animation: scrollWheel 2s infinite;
}

@keyframes scrollWheel {
    0% { top: 8px; opacity: 1; }
    100% { top: 30px; opacity: 0; }
}

.scroll-text {
    font-size: 0.9rem;
    opacity: 0.8;
}

/* Proceso en 3 Pasos */
.proceso-matricula {
    padding: 5rem 0;
    background: linear-gradient(180deg, #f8f9fa 0%, #ffffff 100%);
}

.pasos-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 2rem;
    margin-top: 3rem;
}

.paso-card {
    position: relative;
    padding: 2.5rem;
    background: white;
    border-radius: 20px;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.1);
    transition: all 0.3s ease;
    overflow: hidden;
}

.paso-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 5px;
    background: linear-gradient(90deg, #667eea, #764ba2);
}

.paso-card:hover {
    transform: translateY(-10px);
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.15);
}

.paso-number {
    position: absolute;
    top: 20px;
    right: 20px;
    width: 60px;
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #667eea, #764ba2);
    color: white;
    font-size: 2rem;
    font-weight: 900;
    border-radius: 50%;
    box-shadow: 0 5px 20px rgba(102, 126, 234, 0.4);
}

.paso-icon {
    width: 80px;
    height: 80px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #f093fb, #f5576c);
    color: white;
    font-size: 2.5rem;
    border-radius: 20px;
    margin-bottom: 1.5rem;
}

.paso-card h3 {
    font-size: 1.5rem;
    font-weight: 700;
    color: #333;
    margin-bottom: 1rem;
}

.paso-card p {
    color: #666;
    line-height: 1.6;
    margin-bottom: 1.5rem;
}

.paso-arrow {
    font-size: 2rem;
    color: #667eea;
    font-weight: 900;
}

.paso-check {
    font-size: 3rem;
    color: #28a745;
}

/* CertificaciÃ³n Express */
.certificacion-beneficios-express {
    padding: 5rem 0;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: white;
}

.cert-grid-express {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(450px, 1fr));
    gap: 2rem;
    margin-top: 3rem;
}

.cert-card-express {
    position: relative;
    padding: 3rem;
    background: rgba(255, 255, 255, 0.15);
    backdrop-filter: blur(20px);
    border-radius: 25px;
    border: 2px solid rgba(255, 255, 255, 0.3);
    transition: all 0.3s ease;
}

.cert-card-express:hover {
    transform: translateY(-10px);
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
}

.cert-badge-express {
    position: absolute;
    top: 20px;
    right: 20px;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 1rem;
    background: linear-gradient(135deg, #ffd700, #ffed4e);
    color: #333;
    font-weight: 700;
    border-radius: 20px;
    font-size: 0.9rem;
}

.cert-badge-express.beneficios {
    background: linear-gradient(135deg, #ff6b6b, #ff8e53);
    color: white;
}

.cert-icon-express {
    width: 100px;
    height: 100px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.2);
    border-radius: 20px;
    font-size: 3rem;
    margin-bottom: 1.5rem;
}

.cert-card-express h3 {
    font-size: 1.8rem;
    font-weight: 800;
    margin-bottom: 1rem;
}

.cert-subtitle-express {
    font-size: 1.1rem;
    opacity: 0.9;
    margin-bottom: 2rem;
}

.cert-features-express {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    margin-bottom: 2rem;
}

.cert-feature-item {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem;
    background: rgba(255, 255, 255, 0.1);
    border-radius: 12px;
}

.cert-feature-item i {
    font-size: 1.5rem;
    color: #a8e6cf;
}

.cert-seal-express {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    padding: 1rem;
    background: rgba(255, 215, 0, 0.2);
    border-radius: 12px;
    font-weight: 700;
    border: 2px dashed rgba(255, 215, 0, 0.5);
}

.beneficios-grid-express {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 1rem;
}

.beneficio-item-express {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem;
    background: rgba(255, 255, 255, 0.1);
    border-radius: 12px;
    transition: all 0.3s ease;
}

.beneficio-item-express:hover {
    background: rgba(255, 255, 255, 0.2);
    transform: scale(1.05);
}

.beneficio-icon-express {
    width: 50px;
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.2);
    border-radius: 12px;
    font-size: 1.5rem;
}

.beneficio-text-express {
    text-align: left;
}

.beneficio-text-express strong {
    display: block;
    font-size: 1rem;
    margin-bottom: 0.25rem;
}

.beneficio-text-express span {
    font-size: 0.85rem;
    opacity: 0.8;
}

/* GarantÃ­a */
.garantia-box-express {
    display: flex;
    align-items: center;
    gap: 2rem;
    padding: 2rem 3rem;
    background: rgba(255, 255, 255, 0.15);
    backdrop-filter: blur(20px);
    border-radius: 20px;
    border: 2px solid rgba(255, 255, 255, 0.3);
    margin-top: 3rem;
}

.garantia-icon-express {
    width: 80px;
    height: 80px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 215, 0, 0.3);
    border-radius: 50%;
    font-size: 2.5rem;
    color: #ffd700;
}

.garantia-content-express h4 {
    font-size: 1.5rem;
    font-weight: 700;
    margin-bottom: 0.5rem;
}

.garantia-content-express p {
    font-size: 1.1rem;
    opacity: 0.9;
}

/* Responsive */
@media (max-width: 768px) {
    .hero-title-express {
        font-size: 2.5rem;
    }
    
    .title-line-1 {
        font-size: 1.8rem;
    }
    
    .price-new {
        font-size: 2rem;
    }
    
    .hero-features-express {
        flex-direction: column;
    }
    
    .hero-cta-express {
        flex-direction: column;
    }
    
    .btn-express-primary,
    .btn-express-whatsapp {
        width: 100%;
        justify-content: center;
    }
    
    .hero-stats-express {
        flex-direction: column;
        gap: 1rem;
    }
    
    .stat-divider {
        width: 100%;
        height: 2px;
    }
    
    .cert-grid-express {
        grid-template-columns: 1fr;
    }
    
    .garantia-box-express {
        flex-direction: column;
        text-align: center;
    }
}

/* ============================================
   INFORMACIÃ“N COMPLETA - DISEÃ‘O LIMPIO BLANCO
   ============================================ */

/* Hero Section Limpio */
.hero-info-clean {
    padding: 6rem 0 4rem;
    background: #ffffff;
    border-bottom: 1px solid #e5e7eb;
}

.hero-content-clean {
    max-width: 900px;
    margin: 0 auto;
    text-align: center;
}

.hero-badge-clean {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 1.25rem;
    background: #f3f4f6;
    border: 1px solid #e5e7eb;
    border-radius: 50px;
    font-size: 0.9rem;
    font-weight: 600;
    color: #374151;
    margin-bottom: 1.5rem;
}

.hero-badge-clean i {
    color: #3b82f6;
}

.hero-title-clean {
    font-size: 3.5rem;
    font-weight: 800;
    color: #111827;
    line-height: 1.2;
    margin-bottom: 1rem;
}

.hero-title-clean .text-primary {
    color: #3b82f6;
}

.hero-subtitle-clean {
    font-size: 1.1rem;
    color: #6b7280;
    margin-bottom: 2.5rem;
}

/* Oferta Limpia */
.hero-offer-clean {
    display: inline-block;
    padding: 2rem 3rem;
    background: #f9fafb;
    border: 2px solid #e5e7eb;
    border-radius: 16px;
    margin-bottom: 2.5rem;
}

.offer-label {
    display: inline-block;
    padding: 0.375rem 1rem;
    background: #fef3c7;
    color: #92400e;
    border-radius: 20px;
    font-size: 0.875rem;
    font-weight: 700;
    margin-bottom: 1rem;
}

.offer-prices {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: 0.75rem;
}

.price-old {
    font-size: 1.25rem;
    color: #9ca3af;
    text-decoration: line-through;
}

.price-new {
    font-size: 3rem;
    font-weight: 900;
    color: #3b82f6;
}

.price-period {
    font-size: 1rem;
    color: #6b7280;
}

.offer-save {
    font-size: 1rem;
    color: #059669;
    font-weight: 600;
}

/* CaracterÃ­sticas Limpias */
.hero-features-clean {
    display: flex;
    justify-content: center;
    gap: 2rem;
    flex-wrap: wrap;
    margin-bottom: 2.5rem;
}

.feature-clean {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem 1.5rem;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    font-size: 0.95rem;
    font-weight: 600;
    color: #374151;
    transition: all 0.3s ease;
}

.feature-clean:hover {
    background: #f3f4f6;
    border-color: #3b82f6;
    transform: translateY(-2px);
}

.feature-clean i {
    font-size: 1.25rem;
    color: #3b82f6;
}

/* Botones Limpios */
.hero-cta-clean {
    display: flex;
    justify-content: center;
    gap: 1rem;
    flex-wrap: wrap;
}

.btn-primary-clean {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    padding: 1rem 2.5rem;
    background: #3b82f6;
    color: white;
    font-size: 1.1rem;
    font-weight: 700;
    border-radius: 12px;
    text-decoration: none;
    transition: all 0.3s ease;
    box-shadow: 0 4px 6px rgba(59, 130, 246, 0.2);
}

.btn-primary-clean:hover {
    background: #2563eb;
    transform: translateY(-2px);
    box-shadow: 0 6px 12px rgba(59, 130, 246, 0.3);
}

.btn-whatsapp-clean {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    padding: 1rem 2.5rem;
    background: #25d366;
    color: white;
    font-size: 1.1rem;
    font-weight: 700;
    border-radius: 12px;
    text-decoration: none;
    transition: all 0.3s ease;
    box-shadow: 0 4px 6px rgba(37, 211, 102, 0.2);
}

.btn-whatsapp-clean:hover {
    background: #20ba5a;
    transform: translateY(-2px);
    box-shadow: 0 6px 12px rgba(37, 211, 102, 0.3);
}

/* Proceso Limpio */
.proceso-clean {
    padding: 5rem 0;
    background: #f9fafb;
}

.section-header-clean {
    text-align: center;
    margin-bottom: 3rem;
}

.section-header-clean h2 {
    font-size: 2.5rem;
    font-weight: 800;
    color: #111827;
    margin-bottom: 0.75rem;
}

.section-header-clean p {
    font-size: 1.1rem;
    color: #6b7280;
}

.pasos-grid-clean {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 2rem;
    max-width: 1200px;
    margin: 0 auto;
}

.paso-clean {
    position: relative;
    padding: 2.5rem 2rem;
    background: white;
    border: 2px solid #e5e7eb;
    border-radius: 16px;
    text-align: center;
    transition: all 0.3s ease;
}

.paso-clean:hover {
    border-color: #3b82f6;
    transform: translateY(-5px);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
}

.paso-number-clean {
    position: absolute;
    top: -20px;
    left: 50%;
    transform: translateX(-50%);
    width: 50px;
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #3b82f6;
    color: white;
    font-size: 1.5rem;
    font-weight: 900;
    border-radius: 50%;
    box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3);
}

.paso-icon-clean {
    width: 80px;
    height: 80px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #eff6ff;
    color: #3b82f6;
    font-size: 2.5rem;
    border-radius: 16px;
    margin: 0 auto 1.5rem;
}

.paso-clean h3 {
    font-size: 1.5rem;
    font-weight: 700;
    color: #111827;
    margin-bottom: 0.75rem;
}

.paso-clean p {
    color: #6b7280;
    line-height: 1.6;
}

/* CertificaciÃ³n Limpia */
.certificacion-clean {
    padding: 5rem 0;
    background: white;
}

.cert-grid-clean {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(450px, 1fr));
    gap: 2rem;
    margin-top: 3rem;
}

.cert-card-clean {
    padding: 2.5rem;
    background: #f9fafb;
    border: 2px solid #e5e7eb;
    border-radius: 16px;
    transition: all 0.3s ease;
}

.cert-card-clean:hover {
    border-color: #3b82f6;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
}

.cert-icon-clean {
    width: 80px;
    height: 80px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #eff6ff;
    color: #3b82f6;
    font-size: 2.5rem;
    border-radius: 16px;
    margin-bottom: 1.5rem;
}

.cert-card-clean h3 {
    font-size: 1.75rem;
    font-weight: 700;
    color: #111827;
    margin-bottom: 0.75rem;
}

.cert-subtitle-clean {
    font-size: 1rem;
    color: #6b7280;
    margin-bottom: 1.5rem;
}

.cert-list-clean {
    list-style: none;
    padding: 0;
    margin: 0 0 1.5rem 0;
}

.cert-list-clean li {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem 0;
    color: #374151;
    font-size: 0.95rem;
}

.cert-list-clean i {
    color: #10b981;
    font-size: 1.25rem;
}

.cert-seal-clean {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    padding: 1rem;
    background: #fef3c7;
    border: 2px dashed #fbbf24;
    border-radius: 12px;
    font-weight: 700;
    color: #92400e;
}

.beneficios-list-clean {
    list-style: none;
    padding: 0;
    margin: 0;
}

.beneficios-list-clean li {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem;
    background: white;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    margin-bottom: 0.75rem;
    transition: all 0.3s ease;
}

.beneficios-list-clean li:hover {
    border-color: #3b82f6;
    transform: translateX(5px);
}

.beneficios-list-clean i {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #eff6ff;
    color: #3b82f6;
    font-size: 1.25rem;
    border-radius: 10px;
    flex-shrink: 0;
}

.beneficios-list-clean div {
    flex: 1;
}

.beneficios-list-clean strong {
    display: block;
    font-size: 1rem;
    color: #111827;
    margin-bottom: 0.25rem;
}

.beneficios-list-clean span {
    font-size: 0.875rem;
    color: #6b7280;
}

/* SelecciÃ³n de Edad Limpia */
.seleccion-edad {
    padding: 5rem 0;
    background: white;
}

.edad-selector-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
    gap: 2rem;
    margin-top: 3rem;
}

.edad-card {
    position: relative;
    padding: 3rem 2rem;
    background: #f9fafb;
    border: 2px solid #e5e7eb;
    border-radius: 16px;
    text-align: center;
    cursor: pointer;
    transition: all 0.3s ease;
}

.edad-card:hover {
    border-color: #3b82f6;
    transform: translateY(-5px);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
}

.edad-card.destacada {
    border-color: #3b82f6;
    background: #eff6ff;
}

.edad-badge {
    position: absolute;
    top: -15px;
    left: 50%;
    transform: translateX(-50%);
    padding: 0.5rem 1.25rem;
    background: #fbbf24;
    color: #78350f;
    font-size: 0.875rem;
    font-weight: 700;
    border-radius: 20px;
    white-space: nowrap;
}

.edad-icon {
    width: 100px;
    height: 100px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: white;
    color: #3b82f6;
    font-size: 3rem;
    border-radius: 50%;
    margin: 0 auto 1.5rem;
    border: 3px solid #e5e7eb;
}

.edad-card h3 {
    font-size: 1.5rem;
    font-weight: 700;
    color: #111827;
    margin-bottom: 0.5rem;
}

.edad-rango {
    font-size: 1rem;
    color: #6b7280;
    margin-bottom: 1.5rem;
}

.edad-duracion {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    padding: 1rem;
    background: white;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    margin-bottom: 1rem;
}

.edad-duracion i {
    color: #3b82f6;
    font-size: 1.5rem;
}

.edad-duracion strong {
    color: #111827;
    font-size: 0.9rem;
}

.edad-duracion span {
    color: #6b7280;
    font-size: 1.1rem;
    font-weight: 600;
}

.edad-descripcion {
    color: #6b7280;
    margin-bottom: 1.5rem;
}

.edad-arrow {
    font-size: 2rem;
    color: #3b82f6;
}

/* Responsive */
@media (max-width: 768px) {
    .hero-title-clean {
        font-size: 2.5rem;
    }
    
    .price-new {
        font-size: 2.5rem;
    }
    
    .hero-features-clean {
        flex-direction: column;
        align-items: center;
    }
    
    .hero-cta-clean {
        flex-direction: column;
    }
    
    .btn-primary-clean,
    .btn-whatsapp-clean {
        width: 100%;
        justify-content: center;
    }
    
    .cert-grid-clean,
    .edad-selector-grid {
        grid-template-columns: 1fr;
    }
    
    .section-header-clean h2 {
        font-size: 2rem;
    }
}

@media (max-width: 480px) {
    .hero-title-clean {
        font-size: 2rem;
    }
    
    .hero-offer-clean {
        padding: 1.5rem 2rem;
    }
    
    .price-new {
        font-size: 2rem;
    }
}

/* ============================================
   MATRÃCULA DINÃMICA - DISEÃ‘O LIMPIO
   ============================================ */

/* Hero DinÃ¡mico */
.hero-matricula-dinamica {
    padding: 4rem 0 3rem;
    background: white;
    border-bottom: 1px solid #e5e7eb;
}

.hero-content-dinamica {
    max-width: 800px;
    margin: 0 auto;
    text-align: center;
}

.hero-badge-dinamica {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 1.25rem;
    background: #f3f4f6;
    border: 1px solid #e5e7eb;
    border-radius: 50px;
    font-size: 0.9rem;
    font-weight: 600;
    color: #374151;
    margin-bottom: 1.5rem;
}

.hero-badge-dinamica i {
    color: #3b82f6;
}

.hero-title-dinamica {
    font-size: 3rem;
    font-weight: 800;
    color: #111827;
    line-height: 1.2;
    margin-bottom: 1rem;
}

.hero-title-dinamica .text-primary {
    color: #3b82f6;
}

.hero-subtitle-dinamica {
    font-size: 1.1rem;
    color: #6b7280;
    margin-bottom: 2rem;
}

.hero-offer-dinamica {
    display: inline-block;
    padding: 1.5rem 2.5rem;
    background: #f9fafb;
    border: 2px solid #e5e7eb;
    border-radius: 16px;
    margin-bottom: 2rem;
}

/* Selector de Nivel */
.nivel-selector {
    display: flex;
    justify-content: center;
    gap: 1rem;
    flex-wrap: wrap;
}

.nivel-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    padding: 1rem 2rem;
    background: white;
    border: 2px solid #e5e7eb;
    border-radius: 12px;
    color: #374151;
    font-weight: 600;
    text-decoration: none;
    transition: all 0.3s ease;
}

.nivel-btn:hover {
    border-color: #3b82f6;
    color: #3b82f6;
    transform: translateY(-2px);
}

.nivel-btn.active {
    background: #3b82f6;
    border-color: #3b82f6;
    color: white;
}

/* SelecciÃ³n de Edad DinÃ¡mica */
.seleccion-edad-dinamica {
    padding: 4rem 0;
    background: #f9fafb;
}

.section-header-dinamica {
    text-align: center;
    margin-bottom: 3rem;
}

.section-header-dinamica h2 {
    font-size: 2.5rem;
    font-weight: 800;
    color: #111827;
    margin-bottom: 0.75rem;
}

.section-header-dinamica p {
    font-size: 1.1rem;
    color: #6b7280;
}

.edad-grid-dinamica {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 2rem;
    max-width: 800px;
    margin: 0 auto;
}

.edad-card-dinamica {
    position: relative;
    padding: 2.5rem 2rem;
    background: white;
    border: 2px solid #e5e7eb;
    border-radius: 16px;
    text-align: center;
    cursor: pointer;
    transition: all 0.3s ease;
}

.edad-card-dinamica:hover {
    border-color: #3b82f6;
    transform: translateY(-5px);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
}

.edad-card-dinamica.destacada {
    border-color: #3b82f6;
    background: #eff6ff;
}

.edad-badge-dinamica {
    position: absolute;
    top: -15px;
    left: 50%;
    transform: translateX(-50%);
    padding: 0.5rem 1.25rem;
    background: #fbbf24;
    color: #78350f;
    font-size: 0.875rem;
    font-weight: 700;
    border-radius: 20px;
}

.edad-icon-dinamica {
    width: 80px;
    height: 80px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #eff6ff;
    color: #3b82f6;
    font-size: 2.5rem;
    border-radius: 50%;
    margin: 0 auto 1.5rem;
}

.edad-card-dinamica h3 {
    font-size: 1.5rem;
    font-weight: 700;
    color: #111827;
    margin-bottom: 0.5rem;
}

.edad-rango {
    font-size: 1rem;
    color: #6b7280;
    margin-bottom: 1.5rem;
}

.edad-info {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.75rem;
    background: #f9fafb;
    border-radius: 8px;
    margin-bottom: 1.5rem;
    color: #374151;
    font-weight: 600;
}

.edad-info i {
    color: #3b82f6;
}

.btn-edad {
    width: 100%;
    padding: 0.875rem;
    background: #3b82f6;
    color: white;
    border: none;
    border-radius: 8px;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.3s ease;
}

.btn-edad:hover {
    background: #2563eb;
    transform: translateY(-2px);
}

/* Planes DinÃ¡micos */
.planes-dinamica {
    padding: 4rem 0;
    background: white;
}

.planes-grid-dinamica {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 2rem;
    margin-top: 3rem;
}

.plan-card-dinamica {
    position: relative;
    padding: 2rem;
    background: white;
    border: 2px solid #e5e7eb;
    border-radius: 16px;
    cursor: pointer;
    transition: all 0.3s ease;
}

.plan-card-dinamica:hover {
    border-color: #3b82f6;
    transform: translateY(-5px);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
}

.plan-card-dinamica.recomendado {
    border-color: #3b82f6;
    background: #eff6ff;
}

.plan-ribbon {
    position: absolute;
    top: 15px;
    right: -5px;
    padding: 0.375rem 1rem;
    background: #3b82f6;
    color: white;
    font-size: 0.75rem;
    font-weight: 700;
    border-radius: 4px 0 0 4px;
}

.plan-badge {
    display: inline-block;
    padding: 0.375rem 1rem;
    background: #f3f4f6;
    color: #374151;
    border-radius: 20px;
    font-size: 0.875rem;
    font-weight: 700;
    margin-bottom: 1rem;
}

.plan-badge.flexible {
    background: #dbeafe;
    color: #0047AB;
}

.plan-badge.economico {
    background: #fef3c7;
    color: #92400e;
}

.plan-badge.recomendado {
    background: #dbeafe;
    color: #0047AB;
}

.plan-icon {
    width: 60px;
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #eff6ff;
    color: #3b82f6;
    font-size: 2rem;
    border-radius: 12px;
    margin-bottom: 1rem;
}

.plan-card-dinamica h3 {
    font-size: 1.5rem;
    font-weight: 700;
    color: #111827;
    margin-bottom: 0.5rem;
}

.plan-desc {
    color: #6b7280;
    margin-bottom: 1.5rem;
}

.plan-precio {
    display: flex;
    align-items: baseline;
    gap: 0.5rem;
    margin-bottom: 1.5rem;
}

.precio-valor {
    font-size: 2.5rem;
    font-weight: 900;
    color: #3b82f6;
}

.precio-periodo {
    font-size: 1rem;
    color: #6b7280;
}

.plan-features {
    list-style: none;
    padding: 0;
    margin: 0 0 1.5rem 0;
}

.plan-features li {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.5rem 0;
    color: #374151;
    font-size: 0.9rem;
}

.plan-features i {
    color: #10b981;
}

.btn-plan {
    width: 100%;
    padding: 0.875rem;
    background: #3b82f6;
    color: white;
    border: none;
    border-radius: 8px;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.3s ease;
}

.btn-plan:hover {
    background: #2563eb;
    transform: translateY(-2px);
}

/* Planes compactos (matrÃ­cula paso 2) */
.planes-dinamica--compact {
    padding: 2.25rem 0 2.5rem;
}

.container-planes-tight {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 1rem;
}

.section-header-planes h2 {
    font-size: 1.35rem;
    font-weight: 800;
    color: #0f172a;
    margin: 0 0 0.35rem;
}

.planes-descripcion {
    font-size: 0.9rem;
    color: #64748b;
    margin: 0;
    line-height: 1.45;
}

.planes-grid--compact {
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 1rem;
    margin-top: 1.25rem;
}

.plan-card--compact {
    padding: 1rem 1.05rem 1.05rem;
    border-radius: 12px;
    border-width: 1px;
}

.plan-card--compact:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 22px rgba(15, 23, 42, 0.08);
}

.plan-card--compact.recomendado {
    padding-top: 2.15rem;
}

.plan-card-top {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    margin-bottom: 0.45rem;
}

.plan-card--compact .plan-icon {
    width: 42px;
    height: 42px;
    font-size: 1.15rem;
    border-radius: 10px;
    margin-bottom: 0;
    flex-shrink: 0;
}

.plan-card-titles {
    min-width: 0;
    flex: 1;
}

.plan-card--compact .plan-card-titles h3 {
    font-size: 1.05rem;
    margin: 0 0 0.15rem;
    line-height: 1.2;
}

.plan-card--compact .plan-desc {
    margin-bottom: 0;
    font-size: 0.8rem;
    line-height: 1.3;
}

.plan-mini {
    font-size: 0.72rem;
    color: #64748b;
    margin: 0 0 0.45rem;
    line-height: 1.35;
}

.plan-card--compact .plan-precio {
    margin-bottom: 0.35rem;
}

.plan-card--compact .precio-valor {
    font-size: 1.45rem;
}

.plan-card--compact .precio-periodo {
    font-size: 0.82rem;
}

.plan-card--compact .plan-badge {
    font-size: 0.68rem;
    padding: 0.22rem 0.55rem;
    margin-bottom: 0.45rem;
    border-radius: 999px;
}

.plan-ribbon--sm {
    top: 10px;
    right: -4px;
    padding: 0.2rem 0.65rem;
    font-size: 0.65rem;
}

.plan-features--short {
    margin: 0 0 0.6rem;
}

.plan-features--short li {
    padding: 0.18rem 0;
    font-size: 0.78rem;
    gap: 0.45rem;
}

.plan-features--short i {
    font-size: 0.65rem;
}

.plan-card--compact .btn-plan {
    padding: 0.5rem 0.65rem;
    font-size: 0.82rem;
    border-radius: 8px;
}

.planes-nota-legal {
    font-size: 0.72rem;
    color: #94a3b8;
    text-align: center;
    margin: 1.25rem 0 0;
    line-height: 1.4;
    max-width: 36rem;
    margin-left: auto;
    margin-right: auto;
}

/* Formulario DinÃ¡mico */
.formulario-matricula-dinamica {
    padding: 4rem 0;
    background: #f9fafb;
}

.form-container-dinamica {
    max-width: 800px;
    margin: 0 auto;
}

.plan-resumen-dinamica {
    padding: 2rem;
    background: white;
    border: 2px solid #3b82f6;
    border-radius: 16px;
    margin-bottom: 2rem;
}

.resumen-header {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1.5rem;
    padding-bottom: 1rem;
    border-bottom: 2px solid #e5e7eb;
}

.resumen-header i {
    font-size: 2rem;
    color: #10b981;
}

.resumen-header h3 {
    font-size: 1.5rem;
    font-weight: 700;
    color: #111827;
    margin: 0;
}

.resumen-body {
    display: grid;
    gap: 1rem;
}

.resumen-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.75rem;
    background: #f9fafb;
    border-radius: 8px;
}

.resumen-item strong {
    color: #374151;
}

.precio-resumen {
    font-size: 1.25rem;
    font-weight: 700;
    color: #3b82f6;
}

.precio-matricula {
    font-size: 1.1rem;
    font-weight: 700;
    color: #10b981;
}

.form-dinamica {
    background: white;
    padding: 2rem;
    border-radius: 16px;
    border: 2px solid #e5e7eb;
}

.matricula-form-columns {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
    align-items: start;
}

@media (max-width: 992px) {
    .matricula-form-columns {
        grid-template-columns: 1fr;
    }
}

.matricula-callout {
    border-radius: 12px;
    padding: 1rem 1.15rem;
    margin-bottom: 1rem;
    line-height: 1.5;
    font-size: 0.9rem;
}

.matricula-callout-info {
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    color: #002966;
}

.matricula-callout-info p {
    margin: 0.5rem 0 0;
    font-size: 0.88rem;
}

.matricula-panel-guia {
    background: #fafafa;
    border: 1px dashed #cbd5e1;
    border-radius: 14px;
    padding: 1.25rem !important;
}

.convalidacion-dinamica-inner table {
    margin-top: 0.5rem;
}

.form-matricula-organizada .form-section-dinamica {
    margin-bottom: 1.5rem;
}

.form-section-dinamica {
    margin-bottom: 2rem;
}

.form-section-dinamica h3 {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    font-size: 1.25rem;
    font-weight: 700;
    color: #111827;
    margin-bottom: 1.5rem;
    padding-bottom: 0.75rem;
    border-bottom: 2px solid #e5e7eb;
}

.form-section-dinamica h3 i {
    color: #3b82f6;
}

.form-row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 1rem;
    margin-bottom: 1rem;
}

.form-group {
    margin-bottom: 1rem;
}

.form-group label {
    display: block;
    font-weight: 600;
    color: #374151;
    margin-bottom: 0.5rem;
}

.form-group input,
.form-group select {
    width: 100%;
    padding: 0.875rem;
    border: 2px solid #e5e7eb;
    border-radius: 8px;
    font-size: 1rem;
    transition: all 0.3s ease;
}

.form-group input:focus,
.form-group select:focus {
    outline: none;
    border-color: #3b82f6;
    box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
}

.form-actions-dinamica {
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    margin-top: 2rem;
}

.btn-volver {
    padding: 1rem 2rem;
    background: white;
    color: #374151;
    border: 2px solid #e5e7eb;
    border-radius: 8px;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.3s ease;
}

.btn-volver:hover {
    border-color: #3b82f6;
    color: #3b82f6;
}

.btn-submit-dinamica {
    flex: 1;
    padding: 1rem 2rem;
    background: #3b82f6;
    color: white;
    border: none;
    border-radius: 8px;
    font-weight: 700;
    font-size: 1.1rem;
    cursor: pointer;
    transition: all 0.3s ease;
}

.btn-submit-dinamica:hover {
    background: #2563eb;
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(59, 130, 246, 0.3);
}

.btn-submit-dinamica:disabled {
    opacity: 0.65;
    cursor: not-allowed;
    transform: none;
    box-shadow: none;
}

.form-hint-dinamica {
    display: block;
    margin-top: 0.35rem;
    font-size: 0.875rem;
    color: #6b7280;
    line-height: 1.4;
}

.form-group textarea {
    width: 100%;
    padding: 0.875rem;
    border: 2px solid #e5e7eb;
    border-radius: 8px;
    font-size: 1rem;
    font-family: inherit;
    resize: vertical;
    min-height: 3rem;
}

.form-group input[type="file"] {
    padding: 0.5rem 0;
    border: none;
    font-size: 0.95rem;
}

.checkbox-label-dinamica {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    font-weight: 500;
    color: #374151;
    cursor: pointer;
    line-height: 1.45;
}

.checkbox-label-dinamica input[type="checkbox"] {
    width: auto;
    margin-top: 0.2rem;
    flex-shrink: 0;
}

.matricula-envio-msg {
    margin: 1rem 0 0;
    padding: 1rem 1.25rem;
    border-radius: 10px;
    font-size: 0.95rem;
    line-height: 1.5;
}

.matricula-envio-msg.ok {
    background: #ecfdf5;
    border: 1px solid #6ee7b7;
    color: #065f46;
}

.matricula-envio-msg.err {
    background: #fef2f2;
    border: 1px solid #fecaca;
    color: #991b1b;
}

.matricula-envio-msg .wa-matricula-link {
    display: inline-block;
    margin-top: 0.35rem;
    font-weight: 700;
    color: #059669;
    text-decoration: underline;
}

.matricula-envio-msg .wa-matricula-link:hover {
    color: #047857;
}

/* Responsive */
@media (max-width: 768px) {
    .hero-title-dinamica {
        font-size: 2.5rem;
    }
    
    .nivel-selector {
        flex-direction: column;
    }
    
    .nivel-btn {
        width: 100%;
        justify-content: center;
    }
    
    .edad-grid-dinamica,
    .planes-grid-dinamica {
        grid-template-columns: 1fr;
    }
    
    .form-row {
        grid-template-columns: 1fr;
    }
    
    .form-actions-dinamica {
        flex-direction: column;
    }
    
    .btn-volver {
        order: 2;
    }
    
    .btn-submit-dinamica {
        order: 1;
    }
}


/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   RESPONSIVE GLOBAL â€” Mejoras para todos los
   dispositivos (mÃ³vil, tablet, escritorio)
â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

/* â”€â”€ Contenedor base â”€â”€ */
.container {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 1.25rem;
}

/* â”€â”€ Top bar: ocultar separadores en mÃ³vil â”€â”€ */
@media (max-width: 768px) {
    .top-bar-separator { display: none !important; }
    .top-bar-info { display: none !important; }
    .top-bar-left { flex-wrap: wrap; justify-content: center; gap: .5rem !important; font-size: .78rem; }
    .top-bar-right { justify-content: center; gap: .6rem !important; }
    .btn-whatsapp-top { font-size: .78rem; padding: .3rem .7rem; }
}

/* â”€â”€ Navbar â”€â”€ */
@media (max-width: 768px) {
    .nav-container { padding: .5rem 1rem; }
    .logo-ceba { height: 38px !important; }
    .logo-minedu-header { height: 28px !important; }
}

/* â”€â”€ Page header â”€â”€ */
.page-header {
    padding: 3rem 0 2.5rem !important;
    text-align: center;
}
@media (max-width: 768px) {
    .page-header { padding: 2rem 0 1.75rem !important; }
    .page-header h1 { font-size: 1.6rem !important; }
    .page-header p  { font-size: .9rem !important; }
}
@media (max-width: 480px) {
    .page-header h1 { font-size: 1.35rem !important; }
}

/* â”€â”€ Secciones generales â”€â”€ */
@media (max-width: 768px) {
    section { padding: 2.5rem 0 !important; }
    .section-title { font-size: 1.6rem !important; }
    .section-subtitle { font-size: .9rem !important; }
}

/* â”€â”€ BotÃ³n Aula Virtual â”€â”€ */
.btn-aula-virtual {
    white-space: nowrap;
    font-size: .85rem !important;
    padding: .5rem 1rem !important;
}
@media (max-width: 768px) {
    .btn-aula-virtual {
        width: 100% !important;
        justify-content: center !important;
        margin-top: .5rem !important;
        padding: .85rem 1rem !important;
        font-size: .95rem !important;
    }
}

/* â”€â”€ Footer responsive â”€â”€ */
@media (max-width: 768px) {
    .footer-grid { grid-template-columns: 1fr 1fr !important; gap: 1.5rem !important; }
    .footer { padding: 2.5rem 0 1.5rem !important; }
}
@media (max-width: 480px) {
    .footer-grid { grid-template-columns: 1fr !important; }
}

/* â”€â”€ Botones globales â”€â”€ */
@media (max-width: 480px) {
    .btn { width: 100% !important; justify-content: center; }
    .hero-buttons { flex-direction: column !important; }
}

/* â”€â”€ Tablas â”€â”€ */
@media (max-width: 768px) {
    table { font-size: .82rem; }
    th, td { padding: .6rem .75rem !important; }
}

/* â”€â”€ Formularios â”€â”€ */
@media (max-width: 480px) {
    .form-row { flex-direction: column !important; }
    .form-group { width: 100% !important; }
    input, select, textarea { font-size: 16px !important; } /* evita zoom en iOS */
}

/* â”€â”€ Alert banner â”€â”€ */
@media (max-width: 480px) {
    .alert-banner .container { flex-direction: column; gap: .4rem; font-size: .78rem; }
    .alert-link { font-size: .78rem; }
}

/* â”€â”€ Dropdown menÃº en mÃ³vil â”€â”€ */
@media (max-width: 768px) {
    .dropdown-menu { border-radius: 8px !important; }
    .dropdown-menu a { font-size: .88rem !important; }
}

/* â”€â”€ ImÃ¡genes â”€â”€ */
img { max-width: 100%; height: auto; }

/* â”€â”€ Overflow horizontal â”€â”€ */
@media (max-width: 768px) {
    .vm-table-wrap,
    .adm-table-wrap,
    .tarifario-table-wrapper { overflow-x: auto; -webkit-overflow-scrolling: touch; }
}

/* â”€â”€ Cards grids genÃ©ricos â”€â”€ */
@media (max-width: 1024px) {
    .beneficios-grid { grid-template-columns: repeat(2,1fr) !important; }
    .cta-stats-clean { grid-template-columns: repeat(2,1fr) !important; }
}
@media (max-width: 640px) {
    .beneficios-grid { grid-template-columns: 1fr !important; }
    .cta-stats-clean { grid-template-columns: 1fr !important; }
    .modalidades-grid-modern { grid-template-columns: 1fr !important; }
    .modalidades-info-extra  { grid-template-columns: 1fr !important; }
}

/* â”€â”€ Hero â”€â”€ */
@media (max-width: 768px) {
    .hero { min-height: 480px !important; }
    .hero-title { font-size: 1.8rem !important; }
    .hero-subtitle { font-size: 1.1rem !important; }
    .hero-stats { gap: .75rem !important; }
    .stat-badge { font-size: .78rem !important; padding: .4rem .75rem !important; }
}
@media (max-width: 480px) {
    .hero-title { font-size: 1.5rem !important; }
    .hero-description { font-size: .9rem !important; }
}


/* â”€â”€ fin chatbot â”€â”€ */
/* ===================================
   COMPACTACIÃ“N GLOBAL - Overrides finales
   Reduce Ã­conos, paddings y textos grandes
   en todo el sitio de forma uniforme
   =================================== */

/* Ãconos grandes â†’ mÃ¡s pequeÃ±os */
.beneficio-icon,
.info-icon,
.ventaja-item i,
.timeline-icon,
.mv-nueva-icon i,
.valor-nueva-icon i,
.visual-icon-big i,
.image-content i,
.contacto-btn .icon,
.empty-icon {
    font-size: 1.8rem !important;
}

/* NÃºmeros estadÃ­sticos grandes */
.image-stats .stat strong,
.image-content h3 {
    font-size: 1.5rem !important;
}

/* Paddings de secciones internas */
.nosotros-hero,
.comparacion,
.modalidades-section,
.beneficios-section,
.quienes-section,
.valores-section,
.mision-vision-section,
.nosotros-cta-section {
    padding-top: 3rem !important;
    padding-bottom: 3rem !important;
}

/* TÃ­tulos h2 y h3 de pÃ¡ginas internas */
.modalidad-info h2,
.quienes-text h2,
.nosotros-cta-content h2,
.galeria-cta-content h2 {
    font-size: 1.85rem !important;
    margin-bottom: 0.75rem !important;
}

/* Tarjetas con padding excesivo */
.stat-clean-card,
.beneficio-card,
.ventaja-card,
.modalidad-card,
.info-card {
    padding: 1.25rem !important;
}

/* Ãconos de tarjetas */
.stat-clean-icon,
.beneficio-icon-wrapper,
.ventaja-icon {
    width: 48px !important;
    height: 48px !important;
    font-size: 1.3rem !important;
}

/* Responsive: mÃ³vil mÃ¡s compacto */
@media (max-width: 768px) {
    section { padding: 2.5rem 0 !important; }
    .section-title { font-size: 1.5rem !important; }
    .section-subtitle { font-size: 0.85rem !important; }
    .page-header { padding: 2rem 0 1.5rem !important; }
    .page-header h1 { font-size: 1.5rem !important; }
    .nosotros-hero h1 { font-size: 1.9rem !important; }
    .cta-title-clean { font-size: 1.8rem !important; }
    .tabla-comparacion th,
    .tabla-comparacion td { padding: 0.6rem 0.75rem !important; font-size: 0.82rem !important; }
}

/* ═══ NAV MÓVIL — panel lateral compacto ═══ */
.nav-backdrop {
    display: none;
}

@media (max-width: 991px) {
    .nav-backdrop {
        display: block;
        position: fixed;
        inset: 0;
        background: rgba(15, 23, 42, 0.45);
        z-index: 10030;
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transition: opacity 0.25s ease, visibility 0.25s ease;
        border: none;
        padding: 0;
        cursor: pointer;
    }

    .nav-backdrop.is-visible {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
    }

    body.nav-open .header {
        position: relative;
        z-index: 10040;
    }

    body.nav-open::before {
        display: none !important;
        content: none !important;
    }

    .nav-container {
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        gap: 0.5rem !important;
        flex-wrap: nowrap !important;
        padding: 0.4rem 0 !important;
    }

    .logo-section {
        flex: 1 1 auto;
        min-width: 0;
        max-width: calc(100% - 44px);
    }

    .logo-ceba {
        height: 34px !important;
        width: auto;
        max-width: 100%;
    }

    .menu-toggle {
        display: flex !important;
        position: relative;
        z-index: 10052;
        flex-shrink: 0;
        width: 32px;
        height: 32px;
        border: 1.5px solid rgba(0, 71, 171, 0.3);
        border-radius: 6px;
        align-items: center;
        justify-content: center;
        background: #fff;
        gap: 3px;
        padding: 0;
    }

    .menu-toggle span {
        width: 15px !important;
        height: 1.5px !important;
        background: var(--primary) !important;
    }

    .menu-toggle.active {
        position: fixed;
        top: 0.55rem;
        left: 0.65rem;
        right: auto;
        width: 30px;
        height: 30px;
        border: none;
        background: rgba(255, 255, 255, 0.2);
        z-index: 10055;
    }

    .menu-toggle.active span {
        background: #fff !important;
    }

    .nav-menu {
        display: flex !important;
        flex-direction: column !important;
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        right: auto !important;
        bottom: 0 !important;
        width: min(248px, 82vw) !important;
        max-width: 248px !important;
        z-index: 10040 !important;
        background: #fff !important;
        padding: 0 0 0.75rem !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        -webkit-overflow-scrolling: touch;
        transform: translateX(-105%) !important;
        visibility: hidden !important;
        opacity: 0 !important;
        pointer-events: none !important;
        transition: transform 0.26s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.26s ease, visibility 0.26s ease !important;
        gap: 0 !important;
        box-shadow: 4px 0 20px rgba(0, 0, 0, 0.1) !important;
        list-style: none !important;
    }

    .nav-menu::before {
        content: 'Menú' !important;
        display: flex !important;
        position: sticky !important;
        top: 0 !important;
        z-index: 2 !important;
        background: linear-gradient(135deg, #0047AB 0%, #003380 100%) !important;
        color: #fff !important;
        padding: 0.6rem 0.75rem 0.6rem 2.5rem !important;
        font-size: 0.72rem !important;
        font-weight: 700 !important;
        letter-spacing: 0.05em !important;
        text-transform: uppercase !important;
        opacity: 1 !important;
        inset: auto !important;
        margin: 0 !important;
        min-height: 40px;
        line-height: 1.2;
        align-items: center !important;
        flex-shrink: 0 !important;
    }

    .nav-menu > li:first-child .nav-link {
        padding-top: 0.55rem !important;
    }

    .nav-menu.active {
        transform: translateX(0) !important;
        visibility: visible !important;
        opacity: 1 !important;
        pointer-events: auto !important;
    }

    .nav-menu > li {
        width: 100%;
        border-bottom: 1px solid #eef2f7;
    }

    .nav-menu > li:last-child {
        border-bottom: none;
    }

    .nav-link {
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        width: 100% !important;
        padding: 0.48rem 0.85rem !important;
        font-size: 0.8rem !important;
        font-weight: 600 !important;
        color: #1e293b !important;
        margin: 0 !important;
        border-radius: 0 !important;
        line-height: 1.25 !important;
    }

    .nav-link .arrow {
        font-size: 0.65rem;
        opacity: 0.55;
        transition: transform 0.2s ease;
    }

    .nav-dropdown.active > .nav-link .arrow {
        transform: rotate(180deg);
    }

    .nav-link.active {
        color: var(--primary) !important;
        background: rgba(0, 71, 171, 0.06) !important;
    }

    .dropdown-menu {
        position: static !important;
        display: none !important;
        box-shadow: none !important;
        background: #f8fafc !important;
        margin: 0 !important;
        border-radius: 0 !important;
        padding: 0.15rem 0 !important;
        border-top: 1px solid #eef2f7;
        border-bottom: 1px solid #eef2f7;
    }

    .dropdown-menu li {
        border-bottom: none !important;
    }

    .dropdown-menu a {
        display: flex !important;
        align-items: center !important;
        gap: 0.4rem !important;
        padding: 0.4rem 0.85rem 0.4rem 1.15rem !important;
        font-size: 0.74rem !important;
        font-weight: 500 !important;
        color: #475569 !important;
        line-height: 1.25 !important;
    }

    .dropdown-menu a i {
        width: 13px !important;
        font-size: 0.68rem !important;
        color: var(--primary) !important;
        opacity: 0.85;
    }

    .dropdown-menu a.active,
    .dropdown-menu a:hover {
        color: var(--primary) !important;
        background: rgba(0, 71, 171, 0.07) !important;
        padding-left: 1.35rem !important;
    }

    .nav-dropdown.active .dropdown-menu {
        display: block !important;
    }

    .nav-item-matriculado {
        display: none !important;
    }

    .btn-aula-virtual {
        width: calc(100% - 1.25rem) !important;
        margin: 0.4rem 0.625rem 0.2rem !important;
        justify-content: center !important;
        padding: 0.48rem 0.75rem !important;
        font-size: 0.74rem !important;
    }

    .top-bar-link--email {
        display: none;
    }
}

@media (max-width: 480px) {
    .top-bar-left .top-bar-link:nth-child(n+3) {
        display: none;
    }

    .hero-elegante {
        padding: 3rem 0 2rem;
    }
}
