/* Opening sequence for the homepage hero */
.hero-opening::before { content: ''; position: absolute; z-index: 3; inset: 0; pointer-events: none; background: #061d4e; animation: hero-curtain .9s cubic-bezier(.7,0,.2,1) forwards; }
.hero-opening .hero-copy { animation: hero-copy-in .75s .28s both cubic-bezier(.2,.8,.2,1); }
.hero-opening .hero-benefits span { opacity: 0; animation: fade-up .45s both; }
.hero-opening .hero-benefits span:nth-child(1) { animation-delay: .7s; }.hero-opening .hero-benefits span:nth-child(2) { animation-delay: .79s; }.hero-opening .hero-benefits span:nth-child(3) { animation-delay: .88s; }.hero-opening .hero-benefits span:nth-child(4) { animation-delay: .97s; }

/* Every homepage block rises in with its content staggered. */
.section-enter { opacity: 0; transform: translateY(34px); transition: opacity .7s ease, transform .7s cubic-bezier(.2,.8,.2,1); }.section-enter.section-visible { opacity: 1; transform: none; }
.section-enter .service-card, .section-enter .solution-list a, .section-enter .stats > div, .section-enter .partner-card { opacity: 0; transform: translateY(22px) scale(.985); transition: opacity .5s var(--reveal-delay, 0ms) ease, transform .5s var(--reveal-delay, 0ms) cubic-bezier(.2,.8,.2,1); }
.section-enter.section-visible .service-card, .section-enter.section-visible .solution-list a, .section-enter.section-visible .stats > div, .section-enter.section-visible .partner-card { opacity: 1; transform: none; }
.section-enter .section-heading, .section-enter .about-copy, .section-enter .partners-heading, .section-enter .partners-mission, .section-enter .cta>.container { opacity: 0; transform: translateY(18px); transition: opacity .55s .08s ease, transform .55s .08s cubic-bezier(.2,.8,.2,1); }.section-enter.section-visible .section-heading, .section-enter.section-visible .about-copy, .section-enter.section-visible .partners-heading, .section-enter.section-visible .partners-mission, .section-enter.section-visible .cta>.container { opacity: 1; transform: none; }
@keyframes hero-curtain { from { transform: scaleX(1); transform-origin: right; } to { transform: scaleX(0); transform-origin: right; } }
@keyframes hero-copy-in { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: none; } }
@keyframes fade-up { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .hero-opening::before { display: none; }.section-enter, .section-enter .service-card, .section-enter .solution-list a, .section-enter .stats > div, .section-enter .partner-card, .section-enter .section-heading, .section-enter .about-copy, .section-enter .partners-heading, .section-enter .partners-mission, .section-enter .cta>.container { opacity: 1; transform: none; transition: none; animation: none; } }

.service-card {
    transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease;
}

.service-card:hover,
.section-enter.section-visible .service-card:hover {
    transform: translateY(-7px);
    border-color: rgba(7, 91, 234, .28);
    box-shadow: 0 18px 38px rgba(3, 39, 99, .14);
}

.service-card .service-icon {
    transition: transform .28s ease, background-color .28s ease, color .28s ease;
}

.service-card:hover .service-icon {
    transform: scale(1.08);
    color: #fff;
    background-color: var(--blue);
}

@media (prefers-reduced-motion: reduce) {
    .service-card,
    .service-card .service-icon {
        transition: none;
    }

    .service-card:hover,
    .section-enter.section-visible .service-card:hover {
        transform: none;
    }
}
