/* ==========================================================================
   ANIMATIONS.CSS — subtle, professional motion only
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.001ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.001ms !important;
        scroll-behavior: auto !important;
    }
}

/* Scroll reveal (class toggled by main.js via IntersectionObserver) */
.reveal {
    transition: opacity 0.7s ease, transform 0.7s ease;
}
.reveal.in-view {
    opacity: 1;
    transform: translateY(0);
}
.reveal-delay-1.in-view { transition-delay: 0.08s; }
.reveal-delay-2.in-view { transition-delay: 0.16s; }
.reveal-delay-3.in-view { transition-delay: 0.24s; }
.reveal-delay-4.in-view { transition-delay: 0.32s; }
.reveal-delay-5.in-view { transition-delay: 0.4s; }
.reveal-delay-6.in-view { transition-delay: 0.48s; }

/* Fade in (used for hero content on load) */
@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}
.fade-in { animation: fadeIn 0.8s ease both; }

/* Fade up */
@keyframes fadeUp {
    from { opacity: 0; transform: translateY(18px); }
    to { opacity: 1; transform: translateY(0); }
}
.fade-up { animation: fadeUp 0.7s ease both; }
.fade-up-delay-1 { animation: fadeUp 0.7s ease both 0.12s; }
.fade-up-delay-2 { animation: fadeUp 0.7s ease both 0.24s; }
.fade-up-delay-3 { animation: fadeUp 0.7s ease both 0.36s; }

/* Slide in (mobile panel) */
@keyframes slideDown {
    from { opacity: 0; transform: translateY(-12px); }
    to { opacity: 1; transform: translateY(0); }
}
.mobile-panel.is-open a { animation: slideDown 0.35s ease both; }
.mobile-panel.is-open a:nth-child(1) { animation-delay: 0.03s; }
.mobile-panel.is-open a:nth-child(2) { animation-delay: 0.08s; }
.mobile-panel.is-open a:nth-child(3) { animation-delay: 0.13s; }
.mobile-panel.is-open a:nth-child(4) { animation-delay: 0.18s; }
.mobile-panel.is-open a:nth-child(5) { animation-delay: 0.23s; }

/* Modal pop */
@keyframes modalPop {
    from { opacity: 0; transform: scale(0.94) translateY(10px); }
    to { opacity: 1; transform: scale(1) translateY(0); }
}

/* Button hover handled via transform in style.css; add a soft pulse for the
   WhatsApp floating button so it draws the eye without being distracting */
@keyframes whatsappPulse {
    0% { box-shadow: 0 0 0 0 rgba(37, 211, 102, 0.45); }
    70% { box-shadow: 0 0 0 14px rgba(37, 211, 102, 0); }
    100% { box-shadow: 0 0 0 0 rgba(37, 211, 102, 0); }
}
.whatsapp-float { animation: whatsappPulse 2.6s ease-out infinite; }
.whatsapp-float:hover { animation: none; }

/* Icon hover zoom on cards is handled in style.css via transform on hover */

/* Step number subtle entrance emphasis */
@keyframes popIn {
    from { transform: scale(0.85); opacity: 0; }
    to { transform: scale(1); opacity: 1; }
}
.step-card.in-view .step-number { animation: popIn 0.5s ease both; }
