/* ============================================
   GENYCOM — Animations v2
   ============================================ */

/* ---- Reveal on scroll ---- */
.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.7s cubic-bezier(0.4, 0, 0.2, 1),
              transform 0.7s cubic-bezier(0.4, 0, 0.2, 1);
}
.reveal.visible { opacity: 1; transform: translateY(0); }
.reveal-delay-1 { transition-delay: 0.12s; }
.reveal-delay-2 { transition-delay: 0.24s; }
.reveal-delay-3 { transition-delay: 0.36s; }
.reveal-delay-4 { transition-delay: 0.48s; }

/* ---- Float ---- */
@keyframes floatCard {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-10px); }
}

/* ---- WhatsApp pulse ---- */
@keyframes waPulse {
  0%  { box-shadow: 0 4px 20px rgba(37,211,102,.4), 0 0 0 0 rgba(37,211,102,.35); }
  70% { box-shadow: 0 4px 20px rgba(37,211,102,.4), 0 0 0 14px rgba(37,211,102,0); }
  100%{ box-shadow: 0 4px 20px rgba(37,211,102,.4), 0 0 0 0 rgba(37,211,102,0); }
}

/* ---- CTA subtle pulse ---- */
@keyframes ctaPulse {
  0%,100% { box-shadow: 0 4px 20px rgba(11,87,208,.35); }
  50% { box-shadow: 0 4px 28px rgba(11,87,208,.55); }
}
.btn-primary { animation: ctaPulse 4s ease infinite; }
.btn-primary:hover { animation: none; }

/* ---- Feature card shine on hover ---- */
.feature-card {
  --shine: rgba(255,255,255,.12);
  overflow: hidden;
}
.feature-card::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, transparent 30%, var(--shine) 50%, transparent 70%);
  transform: translateX(-100%);
  transition: none;
  pointer-events: none;
}
.feature-card:hover::after {
  animation: cardShine 0.55s ease forwards;
}
@keyframes cardShine {
  to { transform: translateX(100%); }
}

/* ---- Step icon hover ---- */
@keyframes stepPop {
  0% { transform: scale(1); }
  50% { transform: scale(1.18); }
  100% { transform: scale(1.1); }
}
.module-step:hover .step-icon { animation: stepPop 0.35s ease; }

/* ---- Page fade in ---- */
@keyframes pageFade { from { opacity: 0; } to { opacity: 1; } }
body { animation: pageFade 0.4s ease; }

/* ---- Scroll hint bounce ---- */
@keyframes scrollBounce {
  0%,100% { transform: translateX(-50%) translateY(0); opacity: .7; }
  50% { transform: translateX(-50%) translateY(7px); opacity: 1; }
}
