/* ==========================================================================
   Utilities & Accessibility
   ========================================================================== */

.fade-in {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity var(--transition-slow), transform var(--transition-slow);
}
.fade-in.visible { opacity: 1; transform: translateY(0); }

.text-primary { color: var(--primary); }
.text-center { text-align: center; }
.text-muted { color: var(--muted); }

.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border-width: 0;
}

@media (prefers-reduced-motion: reduce) {
  .fade-in, .faq-answer { transition: none; }
  .fade-in { opacity: 1; transform: none; }
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-delay: 0ms !important;
    transition-duration: 0.01ms !important;
  }
  .hero__tagline, .hero__title .word, .hero__description, .hero__cta-primary, .hero__cta-secondary {
    opacity: 1 !important; transform: none !important;
  }
  .hero__track { animation-play-state: paused !important; }
}
