/* =====================================================================
 * Animations CSS — Phase 6.5 r15
 *
 * NOTE: We intentionally DO NOT redefine .reveal here — style.css already
 * has a working .reveal/.in system that's been live for a while. This file
 * only ADDS new effects without overriding what exists.
 * ===================================================================== */

/* ----- Subtle hover lift on product cards + price cards ----- */
.ap-product-card,
.ap-price-card {
  transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1),
              box-shadow 0.4s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: transform;
}
.ap-product-card:hover,
.ap-price-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 22px 60px -12px rgba(0, 0, 0, 0.18);
}

/* ----- Mouse-tracked glow on product cards (radial gradient follows the
   cursor on hover, set by JS via --mx and --my CSS vars) ----- */
.ap-product-wa::after,
.ap-product-ll::after,
.ap-product-team::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  background: radial-gradient(circle at var(--mx, 50%) var(--my, 50%),
              rgba(255, 255, 255, 0.18), transparent 50%);
  opacity: 0;
  transition: opacity 0.35s ease;
  mix-blend-mode: screen;
}
.ap-product-wa:hover::after,
.ap-product-ll:hover::after,
.ap-product-team:hover::after {
  opacity: 1;
}

/* ----- Soft pulse on the call-pulse circle ----- */
.ap-mp-pulse {
  animation: pulse-soft 2.4s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}
@keyframes pulse-soft {
  0%, 100% { transform: scale(1); opacity: 0.95; }
  50%      { transform: scale(1.08); opacity: 0.7; }
}

/* ----- Float-up animation for hero / mini-phone visuals ----- */
.float-y {
  animation: float-y 4.5s ease-in-out infinite;
}
@keyframes float-y {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-8px); }
}

/* ----- FAQ details/summary fade-in on open ----- */
.ap-faq-item[open] > div {
  animation: faq-open 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}
@keyframes faq-open {
  from { opacity: 0; transform: translateY(-4px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ----- Tabular numbers (so counters don't jitter as digits change) ----- */
[data-count],
[data-counter] {
  font-variant-numeric: tabular-nums;
}

/* ----- Smooth scroll for anchor links ----- */
html {
  scroll-behavior: smooth;
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .float-y { animation: none !important; }
  .ap-mp-pulse { animation: none !important; }
}
