/*
 * UI Kit for Elementor — Global accessibility layer.
 *
 * Honors the user's OS-level `prefers-reduced-motion: reduce` preference
 * (WCAG 2.3.3 — Animation from Interactions). When active, this stylesheet:
 *   - Pauses auto-playing/looping animations (marquees, dividers, spins, rotations).
 *   - Collapses transition/animation durations to 0.01ms so JS listeners
 *     for transitionend/animationend still fire and component lifecycles complete.
 *   - Restores final visual state (no half-translated marquees, no spinning icons).
 *
 * Deliberately scoped to UI Kit selectors (`.uikfe-*`) — does NOT touch
 * Elementor core, third-party widgets, or Lordicon player-driven loops
 * (which manage their own motion via the <lord-icon> web component).
 *
 * When the preference is NOT active, this file is completely inert.
 */

@media (prefers-reduced-motion: reduce) {

   /* ---------- Marquee Text / Image / Post / NewsTicker / Testimonial / Video ---------- */
   .uikfe-marquee-track,
   .uikfe-marquee-container .uikfe-marquee-track,
   .uikfe-mnt-marquee-track,
   .uikfe-mp-track,
   .uikfe-marquee-item,
   .uikfe-marquee-image,
   .uikfe-marquee-text {
      animation-play-state: paused !important;
      animation-duration: 0.01ms !important;
      animation-iteration-count: 1 !important;
      transition-duration: 0.01ms !important;
   }

   /* ---------- Marquee Card ---------- */
   .uikfe-mc-track,
   .uikfe-mc-item {
      animation-play-state: paused !important;
      animation-duration: 0.01ms !important;
      animation-iteration-count: 1 !important;
      transition-duration: 0.01ms !important;
   }

   /* ---------- Marquee Grid 3D ---------- */
   [class*="uikfe-3dg-"] {
      animation-play-state: paused !important;
      animation-duration: 0.01ms !important;
      animation-iteration-count: 1 !important;
   }

   /* ---------- Circular Text rotation ---------- */
   .uikfe-circular-text {
      animation-play-state: paused !important;
      animation-duration: 0.01ms !important;
      animation-iteration-count: 1 !important;
   }
   .uikfe-circular-text-wrapper,
   .uikfe-circular-text-button,
   .uikfe-circular-button-icon,
   .uikfe-circular-button-icon i,
   .uikfe-circular-button-icon svg,
   .uikfe-circular-button-text {
      transition-duration: 0.01ms !important;
   }
   .uikfe-ct-zoom-in-hover:hover,
   .uikfe-ct-zoom-out-hover:hover {
      scale: 1 !important;
   }

   /* ---------- Rolling Words ---------- */
   .uikfe-rw-item {
      transition-duration: 0.01ms !important;
   }

   /* ---------- Divider auto-scroll animation ---------- */
   .uikfe-divider-anim-yes .elementor-divider-separator,
   .uikfe-divider-anim-yes .elementor-divider-separator::before,
   .uikfe-divider-anim-yes .elementor-divider-separator::after {
      animation-play-state: paused !important;
      animation-duration: 0.01ms !important;
      animation-iteration-count: 1 !important;
   }

   /* ---------- Spin Rotation extension (always-spin) ---------- */
   .uikfe-spin-always img,
   .uikfe-spin-always .elementor-icon {
      animation-play-state: paused !important;
      animation-duration: 0.01ms !important;
      animation-iteration-count: 1 !important;
   }
   .uikfe-spin-hover img,
   .uikfe-spin-hover .elementor-icon,
   .uikfe-spin-hover:hover img,
   .uikfe-spin-hover:hover .elementor-icon {
      transition-duration: 0.01ms !important;
      transform: none !important;
   }

   /* ---------- Back to Top — already had a partial rule in Extension.php,
                 we mirror it here so the layer is consistent and future-proof. ---------- */
   .uikfe-btt,
   .uikfe-btt-track,
   .uikfe-btt-fill,
   .uikfe-btt-icon {
      transition-duration: 0.01ms !important;
   }

   /* ---------- Custom Cursor — DOM-driven cursor follow; soften the easing ---------- */
   .uikfe-cursor,
   .uikfe-cursor-dot,
   .uikfe-cursor-ring {
      transition-duration: 0.01ms !important;
   }

   /* ---------- Image Accordion / Before-After hover transitions ---------- */
   [class*="uikfe-image-accordion"] *,
   [class*="uikfe-before-after"] * {
      transition-duration: 0.01ms !important;
   }

   /* ---------- Button widgets — keep micro-interactions snappy but not zero
                 (buttons rely on transitions for the visual hover feedback;
                 0.01ms preserves the state change without the motion). ---------- */
   [class*="uikfe-btn-style"] *,
   [class*="uikfe-button"] * {
      transition-duration: 0.01ms !important;
      animation-duration: 0.01ms !important;
   }
}
