/* =========================================================
   GLOBAL ANIMATIONS
   - Number counters
   - Scroll reveal for headings/cards
   - Up/down floating effect
   - Testimonial / client blink + rotation highlight
   ========================================================= */

/* ---------- Scroll reveal (bouncy up/down entrance) ---------- */
.sr-reveal {
    opacity: 0;
    transform: translateY(40px);
    transition: opacity 0.6s ease, transform 0.85s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.sr-reveal.sr-visible {
    opacity: 1;
    transform: translateY(0);
}

/* ---------- Floating (up/down) ---------- */
@keyframes floatUpDown {
    0%   { transform: translateY(0px); }
    50%  { transform: translateY(-10px); }
    100% { transform: translateY(0px); }
}
.float-anim {
    animation: floatUpDown 3.2s ease-in-out infinite;
}
.float-anim:nth-child(2n) { animation-delay: 0.4s; }
.float-anim:nth-child(3n) { animation-delay: 0.8s; }
.float-anim:nth-child(4n) { animation-delay: 1.2s; }

/* ---------- Testimonial / client rotating highlight ---------- */
@keyframes autoBlink {
    0%, 100% { box-shadow: 0 0 0 rgba(59,130,246,0); border-color: inherit; }
    50% { box-shadow: 0 0 22px rgba(59,130,246,0.45); border-color: #3b82f6; }
}
.auto-highlight {
    transition: box-shadow 0.6s ease, border-color 0.6s ease, transform 0.6s ease;
}
.auto-highlight.is-active {
    animation: autoBlink 1.6s ease-in-out 1;
    transform: translateY(-4px);
}

/* ---------- Counter number, keeps layout stable while counting ---------- */
.js-counter {
    display: inline-block;
    font-variant-numeric: tabular-nums;
}
