/* Custom Scrollbar Invisible */
::-webkit-scrollbar {
    display: none;
}

html {
    scrollbar-width: none;
    -ms-overflow-style: none;
    scroll-behavior: smooth;
}

.fade-in {
    animation: fadeIn 0.4s ease-in-out forwards;
}

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

/* --- Scroll Reveal Entrance --- */
.scroll-reveal {
    opacity: 0;
    transform: translateY(60px);
    transition: all 0.8s cubic-bezier(0.5, 0, 0, 1);
    will-change: opacity, transform;
}

.scroll-reveal.reveal-visible {
    opacity: 1;
    transform: translateY(0);
}

/* --- Navbar Animations --- */
@keyframes navSlideDown {
    0% { transform: translateY(-100%); opacity: 0; }
    100% { transform: translateY(0); opacity: 1; }
}

@keyframes navPopIn {
    0% { opacity: 0; transform: translateY(-10px); }
    100% { opacity: 1; transform: translateY(0); }
}

.nav-anim-down {
    animation: navSlideDown 0.8s cubic-bezier(0.2, 0.8, 0.2, 1) forwards;
}

.nav-item-anim {
    opacity: 0;
    animation: navPopIn 0.6s cubic-bezier(0.2, 0.8, 0.2, 1) forwards;
}

.nav-delay-1 { animation-delay: 0.2s; }
.nav-delay-2 { animation-delay: 0.4s; }
.nav-delay-3 { animation-delay: 0.6s; }
.nav-delay-4 { animation-delay: 0.8s; }

/* --- Hero Animations --- */
@keyframes heroFadeRight {
    0% { opacity: 0; transform: translateX(-50px); }
    100% { opacity: 1; transform: translateX(0); }
}

@keyframes heroFadeLeft {
    0% { opacity: 0; transform: translateX(50px); }
    100% { opacity: 1; transform: translateX(0); }
}

@keyframes heroFadeUp {
    0% { opacity: 0; transform: translateY(30px); }
    100% { opacity: 1; transform: translateY(0); }
}

@keyframes heroPopIn {
    0% { opacity: 0; transform: scale(0.8); }
    100% { opacity: 1; transform: scale(1); }
}

.hero-anim-right { animation: heroFadeRight 1s cubic-bezier(0.2, 0.8, 0.2, 1) forwards; opacity: 0; }
.hero-anim-left  { animation: heroFadeLeft 1.2s cubic-bezier(0.2, 0.8, 0.2, 1) forwards; opacity: 0; }
.hero-anim-up    { animation: heroFadeUp 1s cubic-bezier(0.2, 0.8, 0.2, 1) forwards; opacity: 0; }
.hero-anim-pop   { animation: heroPopIn 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards; opacity: 0; }

.hero-delay-1 { animation-delay: 0.2s; }
.hero-delay-2 { animation-delay: 0.4s; }
.hero-delay-3 { animation-delay: 0.6s; }
.hero-delay-4 { animation-delay: 0.8s; }
.hero-delay-5 { animation-delay: 1.0s; }

/* --- Stats Animations --- */
.stat-card {
    opacity: 0;
    transform: translateY(30px);
    transition: all 0.8s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.scroll-reveal.reveal-visible .stat-card {
    opacity: 1;
    transform: translateY(0);
}

.stat-delay-1 { transition-delay: 0.2s; }
.stat-delay-2 { transition-delay: 0.4s; }
.stat-delay-3 { transition-delay: 0.6s; }

/* --- Services Animations --- */
.service-wrapper {
    opacity: 0;
    transform: translateY(40px) scale(0.95);
    transition: all 0.8s cubic-bezier(0.2, 0.8, 0.2, 1);
    will-change: opacity, transform;
}

.scroll-reveal.reveal-visible .service-wrapper {
    opacity: 1;
    transform: translateY(0) scale(1);
}

.service-delay-1 { transition-delay: 0.2s; }
.service-delay-2 { transition-delay: 0.4s; }
.service-delay-3 { transition-delay: 0.6s; }
.service-delay-4 { transition-delay: 0.8s; }

/* --- Benefits Animations --- */
.benefit-wrapper {
    opacity: 0;
    transform: translateY(40px);
    transition: all 0.7s cubic-bezier(0.2, 0.8, 0.2, 1);
    will-change: opacity, transform;
}

.scroll-reveal.reveal-visible .benefit-wrapper {
    opacity: 1;
    transform: translateY(0);
}

.benefit-delay-1 { transition-delay: 0.1s; }
.benefit-delay-2 { transition-delay: 0.3s; }
.benefit-delay-3 { transition-delay: 0.5s; }
.benefit-delay-4 { transition-delay: 0.7s; }

/* --- Partnership Animations --- */
.partner-anim-up,
.partner-wrapper {
    opacity: 0;
    transform: translateY(30px);
    transition: all 0.8s cubic-bezier(0.2, 0.8, 0.2, 1);
    will-change: opacity, transform;
}

.partner-anim-left {
    opacity: 0;
    transform: translateX(40px);
    transition: all 1s cubic-bezier(0.2, 0.8, 0.2, 1);
    will-change: opacity, transform;
}

.scroll-reveal.reveal-visible .partner-anim-up,
.scroll-reveal.reveal-visible .partner-wrapper {
    opacity: 1;
    transform: translateY(0);
}

.scroll-reveal.reveal-visible .partner-anim-left {
    opacity: 1;
    transform: translateX(0);
}

.partner-delay-1 { transition-delay: 0.2s; }
.partner-delay-2 { transition-delay: 0.4s; }
.partner-delay-3 { transition-delay: 0.6s; }
.partner-delay-4 { transition-delay: 0.8s; }
.partner-delay-5 { transition-delay: 1.0s; }

/* --- Testimonials Animations --- */
.testi-anim-up {
    opacity: 0;
    transform: translateY(40px);
    transition: all 0.8s cubic-bezier(0.2, 0.8, 0.2, 1);
    will-change: opacity, transform;
}

.scroll-reveal.reveal-visible .testi-anim-up {
    opacity: 1;
    transform: translateY(0);
}

.testi-delay-1 { transition-delay: 0.2s; }
.testi-delay-2 { transition-delay: 0.4s; }
.testi-delay-3 { transition-delay: 0.6s; }
.testi-delay-4 { transition-delay: 0.8s; }

/* --- CTA Animations --- */
.cta-anim-up {
    opacity: 0;
    transform: translateY(30px);
    transition: all 0.8s cubic-bezier(0.2, 0.8, 0.2, 1);
    will-change: opacity, transform;
}

.cta-anim-left {
    opacity: 0;
    transform: translateX(40px);
    transition: all 1s cubic-bezier(0.2, 0.8, 0.2, 1);
    will-change: opacity, transform;
}

.scroll-reveal.reveal-visible .cta-anim-up {
    opacity: 1;
    transform: translateY(0);
}

.scroll-reveal.reveal-visible .cta-anim-left {
    opacity: 1;
    transform: translateX(0);
}

.cta-delay-1 { transition-delay: 0.2s; }
.cta-delay-2 { transition-delay: 0.4s; }
.cta-delay-3 { transition-delay: 0.6s; }
.cta-delay-4 { transition-delay: 0.8s; }
.cta-delay-5 { transition-delay: 1.0s; }

/* --- Footer Animations --- */
.footer-anim-up {
    opacity: 0;
    transform: translateY(30px);
    transition: all 0.8s cubic-bezier(0.2, 0.8, 0.2, 1);
    will-change: opacity, transform;
}

.scroll-reveal.reveal-visible .footer-anim-up {
    opacity: 1;
    transform: translateY(0);
}

.footer-delay-1 { transition-delay: 0.2s; }
.footer-delay-2 { transition-delay: 0.4s; }
.footer-delay-3 { transition-delay: 0.6s; }
.footer-delay-4 { transition-delay: 0.8s; }
.footer-delay-5 { transition-delay: 0.2s; }