/* ==========================================================================
   AudiTax Micro-Animations & Professional Transitions
   ========================================================================== */

/* Keyframe: Subtle Reveal Fade-Up */
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(24px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Keyframe: Pulse Glow for Accents */
@keyframes subtleGlow {
  0%, 100% {
    box-shadow: 0 0 15px rgba(197, 168, 128, 0.2);
  }
  50% {
    box-shadow: 0 0 25px rgba(197, 168, 128, 0.45);
  }
}

/* Keyframe: Shimmer Effect */
@keyframes shimmer {
  0% {
    background-position: -200% 0;
  }
  100% {
    background-position: 200% 0;
  }
}

/* Scroll reveal utility classes */
.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 600ms cubic-bezier(0.16, 1, 0.3, 1), transform 600ms cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}

.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Stagger delay helpers */
.delay-100 { transition-delay: 100ms; }
.delay-200 { transition-delay: 200ms; }
.delay-300 { transition-delay: 300ms; }
.delay-400 { transition-delay: 400ms; }
.delay-500 { transition-delay: 500ms; }

/* Subtle floating animation for hero widgets */
.float-subtle {
  animation: floatAnim 4.5s ease-in-out infinite;
}

.float-subtle-reverse {
  animation: floatAnimReverse 5s ease-in-out infinite;
  animation-delay: -2.5s;
}

@keyframes floatAnim {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-7px); }
}

@keyframes floatAnimReverse {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(8px); }
}

/* Live Online Status Dot */
.live-dot {
  display: inline-block;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background-color: #10B981;
  box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.7);
  animation: livePulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
  margin-inline-end: 0.5rem;
  vertical-align: middle;
}

@keyframes livePulse {
  0% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.75); }
  70% { transform: scale(1); box-shadow: 0 0 0 8px rgba(16, 185, 129, 0); }
  100% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(16, 185, 129, 0); }
}

/* Atmospheric Ambient Glowing Orbs Animation */
@keyframes floatOrb {
  0% {
    transform: translate3d(0, 0, 0) scale(1);
  }
  50% {
    transform: translate3d(50px, -40px, 0) scale(1.15);
  }
  100% {
    transform: translate3d(-40px, 50px, 0) scale(0.95);
  }
}

/* Button Shimmer Beam Animation */
@keyframes btnShimmer {
  0%, 65% {
    left: -120%;
  }
  100% {
    left: 220%;
  }
}

/* Metallic Shimmer for Highlight Text */
.brand-highlight-shimmer {
  background: linear-gradient(120deg, #D4AF37 0%, #FFF5D0 30%, #D4AF37 60%, #E5C358 100%);
  background-size: 200% auto;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: textShimmer 6s linear infinite;
}

@keyframes textShimmer {
  0% { background-position: 0% 50%; }
  100% { background-position: 200% 50%; }
}

/* Floating WhatsApp Quick Action Button Pulse */
@keyframes fabPulse {
  0% {
    box-shadow: 0 0 0 0 rgba(37, 211, 102, 0.6), 0 8px 24px rgba(0, 0, 0, 0.35);
  }
  70% {
    box-shadow: 0 0 0 14px rgba(37, 211, 102, 0), 0 12px 30px rgba(0, 0, 0, 0.45);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(37, 211, 102, 0), 0 8px 24px rgba(0, 0, 0, 0.35);
  }
}

/* Service Card Filter Fade-In Animation */
@keyframes serviceFadeIn {
  0% {
    opacity: 0;
    transform: translateY(18px) scale(0.98);
  }
  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.service-card.is-visible {
  opacity: 1 !important;
  transform: translateY(0) !important;
}

/* Infinite Smooth Marquee Animations for Client Logos */
@keyframes marqueeSlideLeft {
  0% {
    transform: translate3d(0, 0, 0);
  }
  100% {
    transform: translate3d(-50%, 0, 0);
  }
}

@keyframes marqueeSlideRight {
  0% {
    transform: translate3d(-50%, 0, 0);
  }
  100% {
    transform: translate3d(0, 0, 0);
  }
}

.marquee-track-left {
  animation: marqueeSlideLeft 48s linear infinite;
}

.marquee-track-right {
  animation: marqueeSlideRight 48s linear infinite;
}

.marquee-track-wrapper:hover .marquee-track {
  animation-play-state: paused !important;
}

.client-logo-card:focus-visible {
  outline: 2px solid var(--accent);
}

/* --------------------------------------------------------------------------
   Accessibility: Strict Respect for prefers-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;
  }

  .reveal {
    opacity: 1 !important;
    transform: none !important;
  }
}
