body {
    font-family: 'Inter', sans-serif;
    scroll-behavior: smooth;
}

/* Animación de Cortina para el Nav */
@keyframes slideInDown {
    from { transform: translateY(-100%); opacity: 0; }
    to { transform: translateY(0); opacity: 1; }
}

/* Animación desde la derecha para Misión y Visión */
@keyframes slideInFromRight {
    from { 
        transform: translateX(100px); 
        opacity: 0; 
    }
    to { 
        transform: translateX(0); 
        opacity: 1; 
    }
}

@keyframes slideInFromLeft {
    from { 
        transform: translateX(-100px); 
        opacity: 0; 
    }
    to { 
        transform: translateX(0); 
        opacity: 1; 
    }
}

.nav-sticky {
    animation: slideInDown 0.5s ease-out forwards;
    background-color: rgba(255, 255, 255, 0.98) !important;
    backdrop-filter: blur(10px);
    position: fixed !important;
    top: 0 !important;
    width: 100%;
    height: 75px !important;
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
}

.nav-sticky .nav-content { height: 75px !important; }

/* Estado inicial oculto para animación */
.reveal-right { 
    opacity: 0; 
    will-change: transform, opacity;
}

/* Clases que activan la animación */
.animate-mision {
    animation: slideInFromLeft 1s cubic-bezier(0.16, 1, 0.3, 1) forwards !important;
}

.animate-vision {
    animation: slideInFromRight 1s cubic-bezier(0.16, 1, 0.3, 1) forwards !important;
    animation-delay: 0.3s !important;
}

/* Slider Styles */
.slide { display: none; opacity: 0; transition: opacity 1s ease-in-out; }
.slide.active { display: flex; opacity: 1; }

.hero-overlay {
    background: linear-gradient(rgba(0, 51, 160, 0.7), rgba(0, 51, 160, 0.5));
}

.card-hover:hover {
    transform: translateY(-5px);
    transition: all 0.3s ease;
}

::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: #f1f1f1; }
::-webkit-scrollbar-thumb { background: #0033a0; border-radius: 10px; }

/* Modal Styles */
.modal-content-scroll::-webkit-scrollbar { width: 4px; }
.modal-content-scroll::-webkit-scrollbar-thumb { background: #ffb81c; border-radius: 10px; }

/* Slider text slide-in from left */
@keyframes bounceInLeft {
    0%   { opacity: 0; transform: translate3d(-3000px, 0, 0) scaleX(3); animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
    60%  { opacity: 1; transform: translate3d(25px, 0, 0) scaleX(1);    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
    75%  { transform: translate3d(-10px, 0, 0) scaleX(0.98);            animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
    90%  { transform: translate3d(5px, 0, 0) scaleX(0.995);             animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
    100% { transform: translate3d(0, 0, 0); opacity: 1; }
}
.slide.active .slide-content {
    animation: bounceInLeft 1s cubic-bezier(0.215, 0.61, 0.355, 1) forwards;
}
.slide .slide-content {
    opacity: 0;
}

/* Slider CTA button pulse */
@keyframes btn-pulse {
    0%, 100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(255, 184, 28, 0.4); }
    50% { transform: scale(1.03); box-shadow: 0 0 0 16px rgba(255, 184, 28, 0); }
}
.animate-btn-pulse {
    animation: btn-pulse 3.5s ease-in-out infinite;
}

/* Steering wheel spin */
@keyframes spin-slow {
    0% { transform: rotate(-22.5deg); }
    50% { transform: rotate(22.5deg); }
    100% { transform: rotate(-22.5deg); }
}
.animate-spin-slow {
    animation: spin-slow 3s ease-in-out infinite;
}

@keyframes fadeInLeft {
    0%   { opacity: 0; transform: translateX(-60px); }
    100% { opacity: 1; transform: translateX(0); }
}
.slide .slide-title { opacity: 0; }
.slide.active .slide-title {
    animation: fadeInLeft 1s ease forwards;
    animation-delay: 0.4s;
}

@keyframes lightSpeedInLeft {
    0%   { opacity: 0; transform: translate3d(-100%, 0, 0) skewX(30deg); }
    60%  { opacity: 1; transform: skewX(-20deg); }
    80%  { transform: skewX(5deg); }
    100% { opacity: 1; transform: translate3d(0, 0, 0); }
}
@keyframes lightSpeedInRight {
    0%   { opacity: 0; transform: translate3d(100%, 0, 0) skewX(-30deg); }
    60%  { opacity: 1; transform: skewX(20deg); }
    80%  { transform: skewX(-5deg); }
    100% { opacity: 1; transform: translate3d(0, 0, 0); }
}
.flipinx-hidden { opacity: 0; }
.flipinx-visible { animation: lightSpeedInLeft 0.8s ease-out forwards; }
.lsir-hidden { opacity: 0; }
.lsir-visible { animation: lightSpeedInRight 0.8s ease-out forwards; }

@keyframes bounceInRight {
    0%   { opacity: 0; transform: translate3d(3000px, 0, 0) scaleX(3); animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
    60%  { opacity: 1; transform: translate3d(-25px, 0, 0) scaleX(1);   animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
    75%  { transform: translate3d(10px, 0, 0) scaleX(0.98);             animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
    90%  { transform: translate3d(-5px, 0, 0) scaleX(0.995);            animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); }
    100% { transform: translate3d(0, 0, 0); opacity: 1; }
}

/* Cert section bounce-in left */
.cert-text-hidden {
    opacity: 0;
    transform: translateX(60px);
}
.cert-text-visible {
    animation: bounceInRight 2s cubic-bezier(0.215, 0.61, 0.355, 1) forwards;
}

/* Parallax Optimization */
.bg-parallax {
    background-attachment: fixed;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}

/* Footer contact links keep the current typographic color and style. */
.footer-contact-link {
    color: inherit;
    text-decoration: none;
}

.footer-contact-link:hover,
.footer-contact-link:focus-visible {
    color: inherit;
    text-decoration: none;
    opacity: 0.9;
}

@media (max-width: 1024px) {
    .bg-parallax {
        background-attachment: scroll;
    }
}
