/**
 * Reduced Motion Support
 * Respects user's prefers-reduced-motion preference
 * Improves accessibility for users with motion sensitivity
 */

/* Disable animations for users who prefer reduced motion */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  
  /* Disable parallax effects */
  [data-parallax],
  .parallax,
  .parallax-bg {
    transform: none !important;
    will-change: auto !important;
  }
  
  /* Disable scroll animations */
  .fade-in-up,
  .fade-in-down,
  .fade-in-left,
  .fade-in-right,
  .slide-in-up,
  .slide-in-down,
  .scroll-reveal,
  [data-animate] {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
  
  /* Disable hover animations */
  .btn-hover-effect,
  .hover-effect,
  [class*="hover"] {
    transition: none !important;
  }
  
  /* Disable loading animations */
  .spinner,
  .spinner-border,
  .loading,
  .skeleton {
    animation: none !important;
    opacity: 0.5 !important;
  }
  
  /* Disable autoplay animations */
  .autoplay,
  [data-autoplay] {
    animation-play-state: paused !important;
  }
  
  /* Disable transform animations */
  [class*="transform"],
  [class*="rotate"],
  [class*="scale"] {
    transform: none !important;
  }
  
  /* Keep essential transitions (opacity, color) but make them instant */
  * {
    transition-property: opacity, color, background-color, border-color !important;
    transition-duration: 0.01ms !important;
  }
}

/* Additional JavaScript-based reduced motion support */
@media (prefers-reduced-motion: reduce) {
  /* Disable CSS animations via class */
  html.reduced-motion *,
  html.reduced-motion *::before,
  html.reduced-motion *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}
