/* ==========================================================================
   Animations — Joe Photography & Safaris
   ========================================================================== */

/* Fade-in on scroll */
.jps-animate {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.6s ease, transform 0.6s ease;
}

.jps-animate.is-visible {
    opacity: 1;
    transform: translateY(0);
}

/* Stagger children */
.jps-animate-stagger > * {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.5s ease, transform 0.5s ease;
}

.jps-animate-stagger.is-visible > *:nth-child(1) { transition-delay: 0s; }
.jps-animate-stagger.is-visible > *:nth-child(2) { transition-delay: 0.1s; }
.jps-animate-stagger.is-visible > *:nth-child(3) { transition-delay: 0.2s; }
.jps-animate-stagger.is-visible > *:nth-child(4) { transition-delay: 0.3s; }
.jps-animate-stagger.is-visible > *:nth-child(5) { transition-delay: 0.4s; }
.jps-animate-stagger.is-visible > *:nth-child(6) { transition-delay: 0.5s; }

.jps-animate-stagger.is-visible > * {
    opacity: 1;
    transform: translateY(0);
}

/* Fade variants */
.jps-animate--fade-left {
    transform: translateX(-30px);
}

.jps-animate--fade-left.is-visible {
    transform: translateX(0);
}

.jps-animate--fade-right {
    transform: translateX(30px);
}

.jps-animate--fade-right.is-visible {
    transform: translateX(0);
}

.jps-animate--scale {
    transform: scale(0.95);
}

.jps-animate--scale.is-visible {
    transform: scale(1);
}
