/* Animations */
@keyframes fadeUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes fadeLeft {
    from {
        opacity: 0;
        transform: translateX(30px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes fadeRight {
    from {
        opacity: 0;
        transform: translateX(-30px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes fadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

@keyframes slideIn {
    from {
        transform: translateX(100%);
    }
    to {
        transform: translateX(0);
    }
}

@keyframes pulse {
    0%, 100% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.05);
    }
}

@keyframes float {
    0%, 100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-20px);
    }
}

.animate-fade-up {
    animation: fadeUp 0.8s ease-out forwards;
}

.animate-fade-up-delay {
    animation: fadeUp 0.8s ease-out 0.2s forwards;
    opacity: 0;
}

.animate-fade-up-delay-2 {
    animation: fadeUp 0.8s ease-out 0.4s forwards;
    opacity: 0;
}

.animate-fade-up-delay-3 {
    animation: fadeUp 0.8s ease-out 0.6s forwards;
    opacity: 0;
}

.animate-fade-up-delay-4 {
    animation: fadeUp 0.8s ease-out 0.8s forwards;
    opacity: 0;
}

.animate-fade-left {
    animation: fadeLeft 1s ease-out forwards;
}

.animate-fade-right {
    animation: fadeRight 1s ease-out forwards;
}

.animate-fade-in {
    animation: fadeIn 0.6s ease-out forwards;
}

/* Scroll animations */
.fade-in-on-scroll {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.fade-in-on-scroll.visible {
    opacity: 1;
    transform: translateY(0);
}

/* Hover animations */
.hover-lift {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.hover-lift:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
}

/* Loading animations */
@keyframes shimmer {
    0% {
        background-position: -1000px 0;
    }
    100% {
        background-position: 1000px 0;
    }
}

.shimmer {
    animation: shimmer 2s infinite;
    background: linear-gradient(to right, #f0f0f0 0%, #e0e0e0 50%, #f0f0f0 100%);
    background-size: 1000px 100%;
}

/* Pulse animation for CTAs */
.pulse-animation {
    animation: pulse 2s infinite;
}

/* Float animation */
.float-animation {
    animation: float 3s ease-in-out infinite;
}

[dir="ltr"] .animate-fade-left {
    animation: fadeRight 1s ease-out forwards;
}

[dir="ltr"] .animate-fade-right {
    animation: fadeLeft 1s ease-out forwards;
}
