:root {
    --primary: #0d6efd;
    --dark: #0b0b0b;
    --gray: #f5f5f5;
}

body {
    font-family: 'Poppins', sans-serif;
    color: #222;
}

.hero {
    min-height: 100vh;
    background: linear-gradient(135deg, #0b0b0b, #1a1a1a);
    color: #fff;
    padding: 60px 0;
}

.hero-title {
    font-size: 3rem;
    font-weight: 700;
}

.hero-subtitle {
    max-width: 720px;
    margin: 20px auto 0;
    font-size: 1.1rem;
    opacity: 0.9;
}

.section {
    padding: 80px 0;
}

.section-title {
    font-weight: 600;
}

.highlight {
    font-size: 1.2rem;
    background: rgba(13, 110, 253, 0.1);
    padding: 15px;
    border-radius: 6px;
}

.custom-card {
    border: none;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.08);
    transition: transform 0.3s ease;
}

.custom-card:hover {
    transform: translateY(-6px);
}

.cta {
    background: #0b0b0b;
    color: #fff;
}

.cta-title {
    font-size: 2.2rem;
    font-weight: 600;
}

.footer {
    background: #000;
    color: #aaa;
    padding: 25px 0;
}

@media (max-width: 768px) {
    .hero-title {
        font-size: 2.2rem;
    }
}


/* ==========================
   ANIMACIONES SUAVES
========================== */

.animate {
    opacity: 0;
    transform: translateY(30px);
    transition: all 0.8s ease;
}

.animate.show {
    opacity: 1;
    transform: translateY(0);
}

/* Variación para hero (un poco más elegante) */
.hero .animate {
    transform: translateY(40px);
}

/* Delay progresivo opcional */
.animate.delay-1 {
    transition-delay: 0.15s;
}

.animate.delay-2 {
    transition-delay: 0.3s;
}

.animate.delay-3 {
    transition-delay: 0.45s;
}

/* ==========================
   HERO VIDEO BACKGROUND
========================== */

.hero-video {
    position: relative;
    overflow: hidden;
}

.hero-bg-video {
    position: absolute;
    top: 50%;
    left: 50%;
    min-width: 100%;
    min-height: 100%;
    width: auto;
    height: auto;
    transform: translate(-50%, -50%);
    object-fit: cover;
    z-index: 1;
}

.hero-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.6);
    z-index: 2;
}

/* Asegurar contenido arriba del video */
.hero-video .container {
    z-index: 3;
}


/* ==========================
   PARALLAX - SECCIÓN PRINCIPIOS
========================== */

.section-parallax {
    position: relative;
    background-image: url('../assets/img/01.jpg');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    background-attachment: fixed;
    color: #fff;
}

/* Overlay para legibilidad */
.section-parallax::before {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.7);
    z-index: 1;
}

/* Asegurar contenido encima del overlay */
.section-parallax .container {
    position: relative;
    z-index: 2;
}


@media (max-width: 768px) {
    .section-parallax {
        background-attachment: scroll;
        background-position: center top;
    }
}


.section.principios {
    height: 100vh;
    display: flex;
    align-items: center;
}

/* ==========================
   PARALLAX - SECCIÓN CONTACTO
========================== */

.section-parallax-contact {
    position: relative;
    background-image: url('../assets/img/02.jpg');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    background-attachment: fixed;
    color: #fff;
}

/* Overlay más ligero para CTA */
.section-parallax-contact::before {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.6);
    z-index: 1;
}

/* Contenido arriba del overlay */
.section-parallax-contact .container {
    position: relative;
    z-index: 2;
}


.section-parallax-contact .btn-success {
    box-shadow: 0 0 30px rgba(25, 135, 84, 0.6);
}


.section.perfil {
    height: 100vh;
    display: flex;
    align-items: center;
}

.section.modalidad {
    height: 100vh;
    display: flex;
    align-items: center;
}

#contacto.section.cta {
    height: 100vh;
    display: flex;
    align-items: center;
    position: relative;
}

#contacto.section.cta>.text-center {
    position: absolute;
    bottom: 2vh;
    left: 0;
    right: 0;
}


@media (max-width: 768px) {

    .section-parallax,
    .section-parallax-contact {
        background-attachment: scroll;
        background-position: center top;
    }

    .section.perfil {
        height: auto;
    }
}