/* Intersection Observer Reveal Classes */
.reveal {
    opacity: 0;
    transition: all 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.reveal.active {
    opacity: 1;
}

.reveal-up { transform: translateY(60px); }
.reveal-up.active { transform: translateY(0); }

.reveal-down { transform: translateY(-60px); }
.reveal-down.active { transform: translateY(0); }

.reveal-left { transform: translateX(-150px); }
.reveal-left.active { transform: translateX(0); }

.reveal-right { transform: translateX(150px); }
.reveal-right.active { transform: translateX(0); }

.scale-in { transform: scale(0.8); }
.scale-in.active { transform: scale(1); }

.fade-in { /* Just opacity */ }

/* Continuous Animations */
@keyframes float {
    0% { transform: translateY(0px); }
    50% { transform: translateY(-15px); }
    100% { transform: translateY(0px); }
}

.float-anim {
    animation: float 4s ease-in-out infinite;
}

@keyframes float-subtle {
    0% { transform: translateY(0px); }
    50% { transform: translateY(-8px); }
    100% { transform: translateY(0px); }
}

.float-subtle {
    animation: float-subtle 5s ease-in-out infinite;
}

@keyframes pulse-shadow {
    0% { box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.4); }
    70% { box-shadow: 0 0 0 15px rgba(255, 255, 255, 0); }
    100% { box-shadow: 0 0 0 0 rgba(255, 255, 255, 0); }
}

.pulse-anim {
    animation: pulse-shadow 2s infinite;
}

.whatsapp-btn {
    animation: pulse-shadow-green 2s infinite;
}

@keyframes pulse-shadow-green {
    0% { box-shadow: 0 0 0 0 rgba(37, 211, 102, 0.7); }
    70% { box-shadow: 0 0 0 20px rgba(37, 211, 102, 0); }
    100% { box-shadow: 0 0 0 0 rgba(37, 211, 102, 0); }
}

/* Hover Effects */
.hover-zoom {
    transition: transform 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.product-row:hover .hover-zoom {
    transform: scale(1.15) rotate(5deg);
}

.product-row.reverse:hover .hover-zoom {
    transform: scale(1.15) rotate(-5deg);
}
