.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.65s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.65s cubic-bezier(0.16, 1, 0.3, 1);
}

.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}

.reveal-stagger > * {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.65s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.65s cubic-bezier(0.16, 1, 0.3, 1);
}

.reveal-stagger.visible > *:nth-child(1) { transition-delay: 0ms; }
.reveal-stagger.visible > *:nth-child(2) { transition-delay: 75ms; }
.reveal-stagger.visible > *:nth-child(3) { transition-delay: 150ms; }
.reveal-stagger.visible > *:nth-child(4) { transition-delay: 225ms; }
.reveal-stagger.visible > *:nth-child(5) { transition-delay: 300ms; }
.reveal-stagger.visible > *:nth-child(6) { transition-delay: 375ms; }

.reveal-stagger.visible > * {
  opacity: 1;
  transform: translateY(0);
}

/* Savings proof — dollar amount pops in with spring scale when card enters */
.cp-proof-saved-lead {
  transform: scale(0.92);
  transition: transform 0.4s cubic-bezier(0.34, 1.26, 0.64, 1) 0.3s;
}

.reveal-stagger.visible .cp-proof-saved-lead {
  transform: scale(1);
}

/* Receipt card: card slides up, then line items print in sequence */
.receipt-reveal {
  opacity: 0;
  transform: scale(0.97) translateY(16px);
  transition: opacity 0.45s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.45s cubic-bezier(0.16, 1, 0.3, 1);
}

.receipt-reveal.visible {
  opacity: 1;
  transform: scale(1) translateY(0);
}

.receipt-reveal .receipt-item {
  opacity: 0;
  transform: translateY(6px);
  transition: opacity 0.3s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.receipt-reveal.visible .receipt-item:nth-child(1) { transition-delay: 0.20s; }
.receipt-reveal.visible .receipt-item:nth-child(2) { transition-delay: 0.26s; }
.receipt-reveal.visible .receipt-item:nth-child(3) { transition-delay: 0.32s; }
.receipt-reveal.visible .receipt-item:nth-child(4) { transition-delay: 0.38s; }
.receipt-reveal.visible .receipt-item:nth-child(5) { transition-delay: 0.44s; }

.receipt-reveal.visible .receipt-item {
  opacity: 1;
  transform: translateY(0);
}

/* ── HERO ENTRANCE (page load, one-time) ── */
@keyframes hero-enter {
  from { opacity: 0; transform: translateY(14px); }
  to   { opacity: 1; transform: translateY(0); }
}

.hero-left   { animation: hero-enter 0.7s cubic-bezier(0.16, 1, 0.3, 1) 0.05s both; }
.hero-visual { animation: hero-enter 0.9s cubic-bezier(0.16, 1, 0.3, 1) 0.00s both; }

/* ── CTA SHIMMER (idle attention draw — not a glow) ── */
@keyframes cta-shimmer {
  0%   { transform: skewX(-20deg) translateX(-200%); }
  18%  { transform: skewX(-20deg) translateX(500%); }
  100% { transform: skewX(-20deg) translateX(500%); }
}

.hero-cta,
.final-cta-btn,
.steps-cta-btn,
.steps-bottom-cta-btn,
.cp-about-cta,
.nav-drawer-cta {
  position: relative;
  overflow: hidden;
}

.hero-cta::before,
.final-cta-btn::before,
.steps-cta-btn::before,
.steps-bottom-cta-btn::before,
.cp-about-cta::before,
.nav-drawer-cta::before {
  content: '';
  position: absolute;
  top: -50%;
  left: 0;
  width: 40%;
  height: 200%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.20), transparent);
  transform: skewX(-20deg) translateX(-200%);
  animation: cta-shimmer 5s linear 1.5s infinite;
  pointer-events: none;
}

/* ── ARROW BECKON (primary CTAs) ── */
@keyframes arrow-beckon {
  0%, 72%, 100% { transform: translateX(0); }
  80%           { transform: translateX(5px); }
  90%           { transform: translateX(3px); }
}

.btn-arrow {
  display: inline-block;
  animation: arrow-beckon 3s ease-in-out 1s infinite;
}

@media (hover: hover) and (pointer: fine) {
  .hero-cta:hover .btn-arrow,
  .final-cta-btn:hover .btn-arrow,
  .steps-cta-btn:hover .btn-arrow,
  .steps-bottom-cta-btn:hover .btn-arrow {
    animation: none;
    transform: translateX(4px);
    transition: transform 0.15s ease;
  }
}

@media (prefers-reduced-motion: reduce) {
  .reveal, .reveal-stagger > * {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
  .cp-proof-saved-lead {
    transform: none !important;
    transition: none !important;
  }
  .receipt-reveal,
  .receipt-reveal .receipt-item {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
  .hero-left,
  .hero-visual {
    animation: none !important;
  }
  .hero-cta::before,
  .final-cta-btn::before,
  .steps-cta-btn::before,
  .steps-bottom-cta-btn::before,
  .nav-drawer-cta::before {
    display: none;
  }
  .sol-problem-item {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
  .btn-arrow {
    animation: none !important;
  }
  .cp-wwh-card {
    transform: none !important;
    transition: background 0.2s !important;
  }
  /* solution-cards.css new animations */
  .sol-who-item {
    opacity: 1 !important;
    transform: none !important;
    transition: background 0.18s ease, border-left-color 0.18s ease !important;
  }
  .sol-problem-item::before {
    transform: scaleY(1) !important;
    transition: none !important;
  }
  .sol-pricing-item::before {
    transform: scaleX(1) !important;
    transition: none !important;
  }
  .sol-hw-card-top::after {
    display: none !important;
  }
  .sol-hardware .section-title,
  .sol-hardware .sol-hw-card,
  .sol-hardware .sol-hw-spec-row,
  .sol-hw-video-wrap {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}
