/* =========================================
   Ixvoria – ix-animations.css
   ========================================= */

/* Keyframes */
@keyframes ix-float-up-1 {
  0%,100%{transform:translateY(0) rotate(0deg)}
  50%{transform:translateY(-20px) rotate(3deg)}
}
@keyframes ix-float-up-2 {
  0%,100%{transform:translateY(0) rotate(0deg)}
  50%{transform:translateY(-14px) rotate(-2deg)}
}
@keyframes ix-float-up-3 {
  0%,100%{transform:translateY(0) rotate(45deg)}
  50%{transform:translateY(-10px) rotate(48deg)}
}
@keyframes ix-fade-in-up {
  from{opacity:0;transform:translateY(40px)}
  to{opacity:1;transform:translateY(0)}
}
@keyframes ix-fade-in {
  from{opacity:0}
  to{opacity:1}
}
@keyframes ix-slide-in-left {
  from{opacity:0;transform:translateX(-40px)}
  to{opacity:1;transform:translateX(0)}
}
@keyframes ix-scale-in {
  from{opacity:0;transform:scale(0.88)}
  to{opacity:1;transform:scale(1)}
}
@keyframes ix-pulse-ring {
  0%{box-shadow:0 0 0 0 rgba(74,124,89,0.4)}
  70%{box-shadow:0 0 0 16px rgba(74,124,89,0)}
  100%{box-shadow:0 0 0 0 rgba(74,124,89,0)}
}
@keyframes ix-shimmer {
  0%{background-position:-200% 0}
  100%{background-position:200% 0}
}
@keyframes ix-spin-slow {
  from{transform:rotate(0deg)}
  to{transform:rotate(360deg)}
}
@keyframes ix-count-up {
  from{opacity:0;transform:translateY(10px)}
  to{opacity:1;transform:translateY(0)}
}

/* Hero animations */
.ix-hero-badge { animation: ix-fade-in-up 0.6s ease 0.2s both; }
.ix-hero-headline-wrap { animation: ix-fade-in-up 0.7s ease 0.4s both; }
.ix-hero-subtext { animation: ix-fade-in-up 0.7s ease 0.55s both; }
.ix-hero-actions { animation: ix-fade-in-up 0.7s ease 0.7s both; }
.ix-hero-stats-strip { animation: ix-fade-in-up 0.7s ease 0.9s both; }

/* Geometric shape animations */
.ix-geo-circle-1 { animation: ix-float-up-1 8s ease-in-out infinite; }
.ix-geo-circle-2 { animation: ix-float-up-2 10s ease-in-out infinite 1s; }
.ix-geo-rect { animation: ix-float-up-3 12s ease-in-out infinite 2s; }

/* Process step hover */
.ix-process-step-num { animation-fill-mode: both; }
.ix-process-step-block.ix-revealed .ix-process-step-num {
  animation: ix-scale-in 0.5s ease both;
}

/* Stat numbers pulse on reveal */
.ix-hero-stat-number.ix-count-animate {
  animation: ix-count-up 0.5s ease both;
}

/* Service card stagger (applied via JS) */
.ix-svc-stagger-1 { transition-delay: 0.05s; }
.ix-svc-stagger-2 { transition-delay: 0.1s; }
.ix-svc-stagger-3 { transition-delay: 0.15s; }
.ix-svc-stagger-4 { transition-delay: 0.2s; }
.ix-svc-stagger-5 { transition-delay: 0.25s; }
.ix-svc-stagger-6 { transition-delay: 0.3s; }

/* FAQ open/close */
.ix-faq-answer-body {
  animation: ix-fade-in 0.25s ease;
}

/* Newsletter input focus ring */
.ix-newsletter-email-input:focus {
  animation: ix-pulse-ring 0.6s ease;
}

/* Loading shimmer (for images) */
.ix-img-loading {
  background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
  background-size: 200% 100%;
  animation: ix-shimmer 1.5s infinite;
}

/* Team card hover glow */
.ix-team-member-card:hover .ix-team-photo-wrap img {
  filter: brightness(1.03);
}

/* Scroll reveal base (JS adds ix-revealed) */
.ix-reveal-on-scroll {
  opacity: 0;
  transform: translateY(32px);
  transition: opacity 0.65s ease, transform 0.65s ease;
}
.ix-reveal-on-scroll.ix-revealed {
  opacity: 1;
  transform: translateY(0);
}

/* Stagger delay variants */
.ix-reveal-delay-1 { transition-delay: 0.08s; }
.ix-reveal-delay-2 { transition-delay: 0.16s; }
.ix-reveal-delay-3 { transition-delay: 0.24s; }
.ix-reveal-delay-4 { transition-delay: 0.32s; }
