/* ==========================================================================
   ChamKhach CRM — animations.css
   Keyframes & scroll-reveal transitions
   ========================================================================== */

@keyframes fadeUp {
  from { opacity: 0; transform: translateY(28px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes fadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}
@keyframes floaty {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-9px); }
}
@keyframes pulseRing {
  0%   { box-shadow: 0 0 0 0 rgba(34,197,94,.45); }
  70%  { box-shadow: 0 0 0 12px rgba(34,197,94,0); }
  100% { box-shadow: 0 0 0 0 rgba(34,197,94,0); }
}

/* Scroll reveal — JS toggles .is-visible */
.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .7s cubic-bezier(.16,1,.3,1), transform .7s cubic-bezier(.16,1,.3,1);
  will-change: opacity, transform;
}
.reveal.is-visible { opacity: 1; transform: translateY(0); }

/* Staggered children */
.reveal-stagger > * {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity .6s cubic-bezier(.16,1,.3,1), transform .6s cubic-bezier(.16,1,.3,1);
}
.reveal-stagger.is-visible > * { opacity: 1; transform: translateY(0); }
.reveal-stagger.is-visible > *:nth-child(1) { transition-delay: .00s; }
.reveal-stagger.is-visible > *:nth-child(2) { transition-delay: .07s; }
.reveal-stagger.is-visible > *:nth-child(3) { transition-delay: .14s; }
.reveal-stagger.is-visible > *:nth-child(4) { transition-delay: .21s; }
.reveal-stagger.is-visible > *:nth-child(5) { transition-delay: .28s; }
.reveal-stagger.is-visible > *:nth-child(6) { transition-delay: .35s; }
.reveal-stagger.is-visible > *:nth-child(7) { transition-delay: .42s; }
.reveal-stagger.is-visible > *:nth-child(8) { transition-delay: .49s; }
.reveal-stagger.is-visible > *:nth-child(9) { transition-delay: .56s; }

/* Hero entrance */
.hero h1, .hero .sub, .hero-cta, .hero-proof { animation: fadeUp .8s cubic-bezier(.16,1,.3,1) both; }
.hero .sub    { animation-delay: .08s; }
.hero-cta     { animation-delay: .16s; }
.hero-proof   { animation-delay: .24s; }
.hero-visual  { animation: fadeIn 1s ease .2s both; }
.hero-float   { animation: floaty 4s ease-in-out infinite; }
.hero-float.f2 { animation-delay: 1.4s; }

/* Pricing price number swap */
.price-amount { transition: opacity .2s ease; }
.price-amount.swapping { opacity: 0; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
  .reveal, .reveal-stagger > * { opacity: 1 !important; transform: none !important; }
}
