/* ============================================================
   CALRAX HEALTHCARE — Animations
   Custom keyframes + AOS complements.
   ============================================================ */

/* ---------- Keyframes ---------- */
@keyframes floatY {
    0%, 100% { transform: translateY(0); }
    50%      { transform: translateY(-14px); }
}

@keyframes pulseRing {
    0%   { box-shadow: 0 0 0 0 rgba(234, 77, 10, .45); }
    70%  { box-shadow: 0 0 0 18px rgba(234, 77, 10, 0); }
    100% { box-shadow: 0 0 0 0 rgba(234, 77, 10, 0); }
}

@keyframes gradientShift {
    0%   { background-position: 0% 50%; }
    50%  { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}

@keyframes spinSlow {
    to { transform: rotate(360deg); }
}

@keyframes fadeUpSoft {
    from { opacity: 0; transform: translateY(24px); }
    to   { opacity: 1; transform: translateY(0); }
}

@keyframes marquee {
    from { transform: translateX(0); }
    to   { transform: translateX(-50%); }
}

/* ---------- Helper classes ---------- */
.anim-float      { animation: floatY 5s ease-in-out infinite; }
.anim-pulse-ring { animation: pulseRing 2.4s ease-out infinite; }
.anim-spin-slow  { animation: spinSlow 22s linear infinite; }
.anim-fade-up    { animation: fadeUpSoft .8s ease both; }

.anim-gradient {
    background-size: 220% 220%;
    animation: gradientShift 8s ease infinite;
}

/* Client-logo marquee (used on home page) */
.marquee-track {
    display: flex; width: max-content;
    animation: marquee 28s linear infinite;
}
.marquee-track:hover { animation-play-state: paused; }

/* Hover zoom for gallery/blog thumbnails */
.img-zoom { overflow: hidden; border-radius: var(--radius-md); }
.img-zoom img { transition: transform .6s ease; }
.img-zoom:hover img { transform: scale(1.07); }

/* Reduced motion — respect user preference */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
        scroll-behavior: auto !important;
    }
}

/* WhatsApp green pulse */
@keyframes pulseGreen {
    0%   { box-shadow: 0 0 0 0 rgba(37, 211, 102, .5); }
    70%  { box-shadow: 0 0 0 16px rgba(37, 211, 102, 0); }
    100% { box-shadow: 0 0 0 0 rgba(37, 211, 102, 0); }
}
.whatsapp-float { animation: pulseGreen 2.4s ease-out infinite; }
