/**
 * File Path: public/assets/css/frontend/shared/animations.css
 * Shared Animations for FinPluss
 */

/* ============================================================================
   Enhanced Lazy Loading Animations
   ============================================================================ */
.lazy-load-item {
    opacity: 0;
    transition: all 1.2s cubic-bezier(0.25, 0.1, 0.25, 1);
    transition-delay: 0.1s;
    will-change: transform, opacity;
}

.lazy-load-item.visible {
    opacity: 1;
}

/* Fade Animations */
.lazy-load-item.fade-up {
    transform: translateY(30px);
}

.lazy-load-item.fade-up.visible {
    transform: translateY(0);
}

.lazy-load-item.fade-down {
    transform: translateY(-30px);
}

.lazy-load-item.fade-down.visible {
    transform: translateY(0);
}

.lazy-load-item.fade-right {
    transform: translateX(20px);
}

.lazy-load-item.fade-right.visible {
    transform: translateX(0);
}

.lazy-load-item.fade-left {
    transform: translateX(-20px);
}

.lazy-load-item.fade-left.visible {
    transform: translateX(0);
}

.lazy-load-item.fade-in {
    transform: scale(0.95);
}

.lazy-load-item.fade-in.visible {
    transform: scale(1);
}

/* Staggered animation for child elements */
.lazy-load-item.visible .stagger-item {
    animation: fadeInUpGentle 0.8s ease-out forwards;
    opacity: 0;
    animation-fill-mode: both;
}

.lazy-load-item.visible .stagger-item:nth-child(1) {
    animation-delay: 0.2s;
}

.lazy-load-item.visible .stagger-item:nth-child(2) {
    animation-delay: 0.3s;
}

.lazy-load-item.visible .stagger-item:nth-child(3) {
    animation-delay: 0.4s;
}

.lazy-load-item.visible .stagger-item:nth-child(4) {
    animation-delay: 0.5s;
}

.lazy-load-item.visible .stagger-item:nth-child(5) {
    animation-delay: 0.6s;
}

@keyframes fadeInUpGentle {
    from {
        opacity: 0;
        transform: translateY(20px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}