/* =========================================
   Animations
   ========================================= */
@keyframes fadeInDown {
  from {
    opacity: 0;
    transform: translateY(-30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.animate-in {
  animation: fadeInDown 0.6s ease forwards;
  opacity: 0;
}

.animate-delay-1 { animation-delay: 0.1s; }
.animate-delay-2 { animation-delay: 0.2s; }
.animate-delay-3 { animation-delay: 0.3s; }
.animate-delay-4 { animation-delay: 0.4s; }
.animate-delay-5 { animation-delay: 0.5s; }

/* Pre-hide elements that JS will animate in.
   Prevents flash on mobile refresh (content visible → JS hides → observer reveals). */
.js-anim .hero-tag,
.js-anim .hero-text h1,
.js-anim .hero-text p,
.js-anim .hero-actions,
.js-anim .hero-card,
.js-anim .page-header .section-tag,
.js-anim .page-header h1,
.js-anim .page-header p,
.js-anim .footer-top,
.js-anim .footer-brand,
.js-anim .footer-links,
.js-anim .service-card,
.js-anim .service-card-link,
.js-anim .team-card,
.js-anim .team-card-large,
.js-anim .about-stats .stat,
.js-anim .stat-item,
.js-anim .contact-item,
.js-anim .detail-item,
.js-anim .checklist-item,
.js-anim .sidebar-card,
.js-anim .insurance-item,
.js-anim .insurance-logo,
.js-anim .insurance-content h2,
.js-anim .insurance-content > p,
.js-anim .insurance-note,
.js-anim .value-card,
.js-anim .service-detail-main,
.js-anim .service-detail-sidebar,
.js-anim .about-content,
.js-anim .about-visual,
.js-anim .section-header,
.js-anim .cta-content,
.js-anim .policy-content,
.js-anim .map-container,
.js-anim .contact-form-wrapper,
.js-anim .stats-grid,
.js-anim .team-values,
.js-anim .services-checklist-inline,
.js-anim .testimonials .section-tag,
.js-anim .testimonials > .container > h2,
.js-anim .testimonials-wrapper,
.js-anim .testimonial-dots,
.js-anim .contact-info h2,
.js-anim .contact-info > p,
.js-anim .footer-top-contact,
.js-anim .footer-top-hours,
.js-anim .not-found-content p,
.js-anim .not-found-content .btn {
  opacity: 0;
}
