/* =========================================================
   Innovity Technologies - Motion and Animation Styles
   ========================================================= */

@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}

@keyframes shimmerText {
  0% {
    background-position: 0% 50%;
  }
  100% {
    background-position: 200% 50%;
  }
}

@keyframes floatSoft {
  0%,
  100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-8px);
  }
}

@keyframes pulseGlow {
  0%,
  100% {
    box-shadow: 0 0 0 0 rgba(11, 95, 255, 0.3);
  }
  60% {
    box-shadow: 0 0 0 10px rgba(11, 95, 255, 0);
  }
}

.spinner-ring {
  animation: spin 1s linear infinite;
}

.animated-highlight {
  animation: shimmerText 5.5s linear infinite;
}

.tech-float-cards li:nth-child(odd) {
  animation: floatSoft 3.6s ease-in-out infinite;
}

.tech-float-cards li:nth-child(even) {
  animation: floatSoft 4.4s ease-in-out infinite;
}

.scroll-top {
  animation: pulseGlow 2.4s ease-in-out infinite;
}

.service-card,
.why-grid article,
.industry-grid article,
.testimonial-card,
.generic-card,
.stat-grid article,
.timeline li,
.faq-item {
  transition: transform 0.28s ease, box-shadow 0.28s ease, border-color 0.28s ease;
}

.why-grid article:hover,
.industry-grid article:hover,
.testimonial-card:hover,
.generic-card:hover,
.stat-grid article:hover,
.timeline li:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 30px rgba(7, 26, 53, 0.12);
}

@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;
  }
}
