/* ============================================================
   MediUS Healthcare — Animations
   Scroll fade-ins, hover lifts, counters
   ============================================================ */

/* Fade / rise in on scroll.
   Initial hidden state only applies when JS is active (html.js) so that
   without JavaScript all content stays fully visible (progressive enhancement). */
.js .reveal        { opacity: 0; transform: translateY(30px); }
.js .reveal-left   { opacity: 0; transform: translateX(-40px); }
.js .reveal-right  { opacity: 0; transform: translateX(40px); }
.reveal, .reveal-left, .reveal-right {
  transition: opacity .7s ease, transform .7s ease;
  will-change: opacity, transform;
}
.reveal.visible, .reveal-left.visible, .reveal-right.visible {
  opacity: 1; transform: none;
}

/* Staggered children delays */
.reveal.d1 { transition-delay: .12s; }
.reveal.d2 { transition-delay: .24s; }
.reveal.d3 { transition-delay: .36s; }

/* Card hover lift */
.testi-card, .faq-card, .refer-card { transition: transform .3s ease, box-shadow .3s ease; }
.testi-card:hover, .faq-card:hover { transform: translateY(-5px); box-shadow: 0 14px 30px rgba(0,0,0,.1); }

/* Button pulse for primary CTAs */
@keyframes softPulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(215,42,46,.35); }
  50% { box-shadow: 0 0 0 10px rgba(215,42,46,0); }
}
.pulse { animation: softPulse 2.4s infinite; }

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce) {
  * { animation: none !important; transition: none !important; }
  .reveal, .reveal-left, .reveal-right { opacity: 1 !important; transform: none !important; }
  html { scroll-behavior: auto; }
}

/* Additional motion helpers (v2) */
@keyframes fadeInUp { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }
@keyframes zoomIn { from { opacity: 0; transform: scale(.9); } to { opacity: 1; transform: none; } }

/* Hover lift for cards, buttons, seal */
.blog-card, .joint-links .btn, .stats > .grid > div { transition: transform .3s ease; }
.joint-seal img { transition: transform .6s ease; }
.joint-seal:hover img { transform: rotate(6deg) scale(1.04); }

/* Animated gradient underline for section titles */
.section-title, .testimonials h2, .faq-section h2 { position: relative; }

/* Button shine */
.btn { position: relative; overflow: hidden; }
.btn::before {
  content: ""; position: absolute; top: 0; left: -120%; width: 60%; height: 100%;
  background: linear-gradient(120deg, transparent, rgba(255,255,255,.35), transparent);
  transform: skewX(-20deg); transition: left .6s ease;
}
.btn:hover::before { left: 140%; }

/* Stat number pop */
.stats__num { display: inline-block; }
.reveal.visible .stats__num { animation: zoomIn .6s ease; }
