/* ═══════════════════════════════════════════
   IGNITE ADSOLUTION — ANIMATIONS
   animations.css
═══════════════════════════════════════════ */

@keyframes pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.5; transform: scale(1.35); }
}
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(28px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes fadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}
@keyframes scaleIn {
  from { opacity: 0; transform: scale(0.4); }
  to   { opacity: 1; transform: scale(1); }
}
@keyframes glowPulse {
  0%, 100% { opacity: 0.15; transform: translateX(-50%) scale(1); }
  50%       { opacity: 0.28; transform: translateX(-50%) scale(1.1); }
}
@keyframes shimmer {
  0%   { left: -100%; }
  100% { left: 200%; }
}
@keyframes float {
  0%, 100% { transform: translateY(0); }
  50%       { transform: translateY(-8px); }
}
@keyframes drawCheck {
  from { opacity: 0; transform: scale(0.4); }
  to   { opacity: 1; transform: scale(1); }
}

/* ── HERO ENTRANCE ── */
.hero-animate > * { animation: fadeUp 0.7s ease both; }
.hero-animate > *:nth-child(1) { animation-delay: 0.1s; }
.hero-animate > *:nth-child(2) { animation-delay: 0.25s; }
.hero-animate > *:nth-child(3) { animation-delay: 0.4s; }
.hero-animate > *:nth-child(4) { animation-delay: 0.55s; }
.hero-animate > *:nth-child(5) { animation-delay: 0.7s; }

/* ── SCROLL REVEAL ── */
.reveal {
  opacity: 0;
  transform: translateY(32px);
  transition: opacity 0.65s ease, transform 0.65s ease;
}
.reveal.visible { opacity: 1; transform: translateY(0); }

/* ── STAGGER CHILDREN ── */
.stagger > * {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.55s ease, transform 0.55s ease;
}
.stagger.visible > *:nth-child(1) { opacity:1; transform:translateY(0); transition-delay:0s; }
.stagger.visible > *:nth-child(2) { opacity:1; transform:translateY(0); transition-delay:0.08s; }
.stagger.visible > *:nth-child(3) { opacity:1; transform:translateY(0); transition-delay:0.16s; }
.stagger.visible > *:nth-child(4) { opacity:1; transform:translateY(0); transition-delay:0.24s; }
.stagger.visible > *:nth-child(5) { opacity:1; transform:translateY(0); transition-delay:0.32s; }
.stagger.visible > *:nth-child(6) { opacity:1; transform:translateY(0); transition-delay:0.40s; }
.stagger.visible > *:nth-child(7) { opacity:1; transform:translateY(0); transition-delay:0.48s; }
.stagger.visible > *:nth-child(8) { opacity:1; transform:translateY(0); transition-delay:0.56s; }

/* ── SHIMMER BUTTON ── */
.shimmer-btn { position: relative; overflow: hidden; }
.shimmer-btn::after {
  content: '';
  position: absolute;
  top: 0; left: -100%;
  width: 60%; height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.18), transparent);
  animation: shimmer 3.5s ease-in-out infinite;
  pointer-events: none;
}

/* ── FLOAT ── */
.float { animation: float 3s ease-in-out infinite; }

/* ── GLOW DOT ── */
.glow-dot {
  width: 8px; height: 8px;
  background: var(--blue);
  border-radius: 50%;
  box-shadow: 0 0 10px rgba(43,143,232,0.7);
  animation: pulse 2s infinite;
}

/* ── SCROLL PROGRESS BAR ── */
#progress-bar {
  position: fixed;
  top: 0; left: 0;
  height: 3px;
  width: 0%;
  background: linear-gradient(90deg, var(--blue), var(--blue-light));
  z-index: 9999;
  transition: width 0.08s linear;
}

/* ── FAQ SMOOTH OPEN ── */
.faq-body {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.38s ease, padding 0.28s ease;
  padding: 0 24px;
}
.faq-item.open .faq-body { max-height: 400px; padding: 16px 24px 22px; }
.faq-icon { transition: transform 0.28s ease; }
.faq-item.open .faq-icon { transform: rotate(45deg); }

/* ── CHECK CIRCLE ── */
.check-circle-anim {
  animation: scaleIn 0.6s cubic-bezier(0.175, 0.885, 0.32, 1.275) 0.2s both;
}
.check-circle-anim svg path { animation: drawCheck 0.5s ease 0.65s both; }

/* ── HERO GLOW ── */
.hero-glow {
  position: absolute;
  top: -200px; left: 50%;
  transform: translateX(-50%);
  width: 800px; height: 800px;
  background: radial-gradient(circle, rgba(43,143,232,0.14) 0%, transparent 65%);
  pointer-events: none;
  animation: glowPulse 4.5s ease-in-out infinite;
}

/* ── REDUCE MOTION ── */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
}