/**
 * Animation Controls
 * 
 * CSS classes to disable animations when admin setting is off
 * or when user prefers reduced motion.
 */

/* ==========================================================================
   NO ANIMATIONS CLASS
   ========================================================================== */

.no-animations *,
.no-animations *::before,
.no-animations *::after {
  animation: none !important;
  transition: none !important;
  transform: none !important;
}

/* Reveal items should be visible immediately */
.no-animations .reveal-item {
  opacity: 1 !important;
  transform: none !important;
}

.no-animations .reveal-item.revealed {
  opacity: 1 !important;
  transform: none !important;
}

/* Disable hover transforms */
.no-animations .carousel-property-card:hover,
.no-animations .featured-property-card:hover {
  transform: none !important;
}

/* Disable mobile animations */
.no-animations .hero-content,
.no-animations .hero-title,
.no-animations .hero-subtitle,
.no-animations .hero-cta,
.no-animations .hero-features {
  animation: none !important;
}

/* Disable smooth scroll */
.no-animations html {
  scroll-behavior: auto !important;
}

/* ==========================================================================
   GRANULAR ANIMATION CONTROLS
   ========================================================================== */

/* Disable mobile animations only */
.no-mobile-animations .hero-content,
.no-mobile-animations .hero-title,
.no-mobile-animations .hero-subtitle,
.no-mobile-animations .hero-cta,
.no-mobile-animations .hero-features {
  animation: none !important;
}

@media (max-width: 768px) {
  .no-mobile-animations * {
    animation: none !important;
  }
  
  .no-mobile-animations .reveal-item {
    opacity: 1 !important;
    transform: none !important;
  }
}

/* Disable scroll reveal only */
.no-scroll-reveal .reveal-item {
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
}

.no-scroll-reveal .reveal-item.revealed {
  opacity: 1 !important;
  transform: none !important;
}

/* ==========================================================================
   REDUCED MOTION SUPPORT (Additional)
   ========================================================================== */

@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;
  }
  
  .reveal-item {
    opacity: 1 !important;
    transform: none !important;
  }
}
