/* Scroll-triggered reveal pour la home offline.
   Activé uniquement si <html> porte .js-scroll-reveal (injecté en <head>).
   Sans JS, les éléments restent visibles (fallback gracieux). */

.js-scroll-reveal .animated.fadeInUp {
    opacity: 0;
    transform: translateY(60px);
    transition: opacity 0.9s cubic-bezier(0.22, 1, 0.36, 1),
                transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
    animation: none !important;
    will-change: opacity, transform;
}

.js-scroll-reveal .animated.fadeInUp.atpk-reveal--in {
    opacity: 1;
    transform: none;
}

/* Stagger : les éléments siblings dans une même row se révèlent en cascade */
.js-scroll-reveal .row > * .animated.fadeInUp,
.js-scroll-reveal .row > .animated.fadeInUp {
    transition-delay: 0s;
}
.js-scroll-reveal .row > *:nth-child(2) .animated.fadeInUp,
.js-scroll-reveal .row > .animated.fadeInUp:nth-child(2) {
    transition-delay: 0.12s;
}
.js-scroll-reveal .row > *:nth-child(3) .animated.fadeInUp,
.js-scroll-reveal .row > .animated.fadeInUp:nth-child(3) {
    transition-delay: 0.24s;
}
.js-scroll-reveal .row > *:nth-child(4) .animated.fadeInUp,
.js-scroll-reveal .row > .animated.fadeInUp:nth-child(4) {
    transition-delay: 0.36s;
}

@media (prefers-reduced-motion: reduce) {
    .js-scroll-reveal .animated.fadeInUp,
    .js-scroll-reveal .animated.fadeInUp.atpk-reveal--in {
        opacity: 1;
        transform: none;
        transition: none;
        animation: none !important;
    }
}
