/* ===== RESET Y BASE ===== */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    overflow-x: hidden;
    background-color: #fff;
}

/* ===== CONTENEDOR PRINCIPAL ===== */
.hero-header {
    position: relative;
    width: 100%;
    height: 75vh; /* Aumentado ligeramente para mejor impacto */
    min-height: 500px;
    color: #fff;
    overflow: hidden;
    perspective: 1200px;
    background-color: #000;
}

/* ===== SLIDER CON CURVA ORGÁNICA ===== */
.hero-slider {
    position: absolute;
    inset: 0;
    z-index: 1;
    overflow: hidden;
    clip-path: ellipse(150% 100% at 50% 0%);
    transition: all 1.2s ease-in-out;
    /* Sombra interna para dar profundidad a la curva */
    box-shadow: inset 0 -50px 100px rgba(0,0,0,0.5);
}

/* ===== SLIDES (Efectos Premium + HOVER) ===== */
.slide {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center 30%;
    filter: brightness(65%) contrast(1.15);
    opacity: 0;
    transform: scale(1.1);
    transition: opacity 1.5s ease-in-out, transform 6s cubic-bezier(0.25, 0.46, 0.45, 0.94), filter 1.5s ease;
    will-change: transform, opacity;
}

.slide.active {
    opacity: 1;
    transform: scale(1);
}

/* --- EFECTO HOVER AL PASAR EL MOUSE POR EL SLIDER --- */
.hero-header:hover .slide.active {
    transform: scale(1.12); /* Zoom suave adicional */
    filter: brightness(80%) contrast(1.2); /* Se ilumina ligeramente */
}

/* ===== OVERLAY DINÁMICO ===== */
.overlay {
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
    background: linear-gradient(to bottom, rgba(0,0,0,0.5), rgba(0,0,0,0.2));
    transition: background 1s ease;
}

.hero-header:hover .overlay {
    background: linear-gradient(to bottom, rgba(0,0,0,0.4), rgba(0,0,0,0.1));
}

/* ===== CONTENEDOR DE TEXTO ===== */
.hero_container {
    position: relative;
    z-index: 10;
    max-width: 1000px;
    margin: 0 auto;
    padding-top: 22vh;
    text-align: center;
    transition: transform 0.6s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

/* Elevación del texto en hover */
.hero-header:hover .hero_container {
    transform: translateY(-10px);
}

.hero_title {
    font-size: clamp(2.5rem, 6vw, 4.5rem);
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: -1px;
    text-shadow: 0 10px 30px rgba(0,0,0,0.8);
    /* Animación de entrada suave */
    animation: fadeInDown 1s ease-out;
}

.hero_parragraph {
    font-size: 1.3rem;
    margin: 15px 0 35px;
    opacity: 0.95;
    text-shadow: 0 2px 10px rgba(0,0,0,0.5);
    animation: fadeInUp 1s ease-out 0.3s backwards;
}

/* ===== BOTÓN CON EFECTO DE PULSO ===== */
.cta {
    display: inline-block;
    padding: 16px 45px;
    background: #0057a8;
    color: #fff;
    border-radius: 50px;
    text-decoration: none;
    font-weight: bold;
    text-transform: uppercase;
    letter-spacing: 1px;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    border: 2px solid rgba(255,255,255,0.1);
    box-shadow: 0 10px 20px rgba(0, 87, 168, 0.3);
}

.cta:hover {
    background: #003f7f;
    transform: scale(1.1);
    box-shadow: 0 15px 30px rgba(0, 87, 168, 0.5);
    border-color: rgba(255,255,255,0.5);
}

/* ===== SECCIÓN INFERIOR (MAIN) ===== */
main {
    margin-top: -120px !important; /* Ajustado para la nueva altura del header */
    position: relative;
    z-index: 20;
    background: #fff;
    border-radius: 60px 60px 0 0;
    box-shadow: 0 -25px 50px rgba(0,0,0,0.1);
    transition: transform 0.5s ease;
}

#Oferta_Educativa {
    padding-top: 100px !important;
}

/* ===== ANIMACIONES KEYFRAMES ===== */
@keyframes fadeInDown {
    from { opacity: 0; transform: translateY(-30px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes fadeInUp {
    from { opacity: 0; transform: translateY(30px); }
    to { opacity: 1; transform: translateY(0); }
}

/* ===== RESPONSIVE ===== */
@media(max-width: 768px) {
    .hero-header { height: 65vh; }
    .hero-slider { clip-path: ellipse(200% 100% at 50% 0%); }
    main { 
        margin-top: -60px !important; 
        border-radius: 30px 30px 0 0;
    }
    .hero_container { padding-top: 18vh; }
}