/* Homepage hero CTA buttons: one bounce after they fade in.
   The hero button row fades in with a 1.2s delay / 0.8s duration, so the
   bounce starts at 2s — just after the buttons have settled.
   No fill mode: once the animation ends the transform is released, so
   Framer Motion's hover/tap scale on these buttons still works. */

@keyframes hero-cta-bounce {
  0%   { transform: translateY(0); }
  28%  { transform: translateY(-14px); }
  50%  { transform: translateY(0); }
  66%  { transform: translateY(-6px); }
  82%  { transform: translateY(0); }
  91%  { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}

[data-testid="button-hero-free-wash"],
[data-testid="button-hero-membership"] {
  animation: hero-cta-bounce 0.9s cubic-bezier(0.28, 0.84, 0.42, 1) 2s 1;
}

/* Slight stagger so the two buttons don't bounce in lockstep. */
[data-testid="button-hero-membership"] {
  animation-delay: 2.12s;
}

@media (prefers-reduced-motion: reduce) {
  [data-testid="button-hero-free-wash"],
  [data-testid="button-hero-membership"] {
    animation: none;
  }
}
