/* ============================================================
   GOLD CAR — animations.css
   ============================================================ */

/* ---- Reveal ao rolar a página ---- */
.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .8s cubic-bezier(0.16,1,0.3,1), transform .8s cubic-bezier(0.16,1,0.3,1);
}
.reveal.is-visible { opacity: 1; transform: translateY(0); }

.reveal-stagger > * {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity .7s cubic-bezier(0.16,1,0.3,1), transform .7s cubic-bezier(0.16,1,0.3,1);
}
.reveal-stagger.is-visible > * { opacity: 1; transform: translateY(0); }
.reveal-stagger.is-visible > *:nth-child(1) { transition-delay: .05s; }
.reveal-stagger.is-visible > *:nth-child(2) { transition-delay: .12s; }
.reveal-stagger.is-visible > *:nth-child(3) { transition-delay: .19s; }
.reveal-stagger.is-visible > *:nth-child(4) { transition-delay: .26s; }
.reveal-stagger.is-visible > *:nth-child(5) { transition-delay: .33s; }
.reveal-stagger.is-visible > *:nth-child(6) { transition-delay: .40s; }

/* ---- Hero (banner rotativo) ---- */
@keyframes heroFadeUp {
  from { opacity: 0; transform: translateY(26px); }
  to { opacity: 1; transform: translateY(0); }
}
.hero-slide.is-active .eyebrow { animation: heroFadeUp .8s var(--ease) both .1s; }
.hero-slide.is-active h1 { animation: heroFadeUp .9s var(--ease) both .2s; }
.hero-slide.is-active p { animation: heroFadeUp .9s var(--ease) both .3s; }
.hero-slide.is-active .hero-actions { animation: heroFadeUp .9s var(--ease) both .4s; }
.quick-actions { animation: heroFadeUp .8s var(--ease) both .2s; }
.search-panel { animation: heroFadeUp .8s var(--ease) both .3s; }

/* ---- WhatsApp flutuante ---- */
@keyframes waPulse {
  0%, 100% { box-shadow: 0 12px 30px -8px rgba(31,174,88,0.7), 0 0 0 0 rgba(31,174,88,0.55); }
  50% { box-shadow: 0 12px 30px -8px rgba(31,174,88,0.7), 0 0 0 12px rgba(31,174,88,0); }
}

/* ---- Crédito Visionário Dev ---- */
@keyframes devColorShift {
  0%, 100% { color: #ffffff; }
  50% { color: #00E1FF; }
}

/* ---- Contadores numéricos: leve escala ao surgir ---- */
@keyframes counterPop {
  from { opacity: 0; transform: scale(.9); }
  to { opacity: 1; transform: scale(1); }
}
.counter.is-visible b { animation: counterPop .5s var(--ease) both; }

/* ---- Micro-interação em botões ---- */
.btn { will-change: transform; }
.btn:active { transform: scale(.97); }

/* ---- Skeleton (carregamento de cards, se necessário) ---- */
@keyframes skeletonShine {
  0% { background-position: -200px 0; }
  100% { background-position: 200px 0; }
}
.skeleton {
  background: linear-gradient(90deg, var(--surface) 0%, var(--surface-2) 50%, var(--surface) 100%);
  background-size: 400px 100%;
  animation: skeletonShine 1.4s ease-in-out infinite;
}

/* ---- Painel de filtros mobile ---- */
@keyframes slideUpPanel {
  from { transform: translateY(100%); }
  to { transform: translateY(0); }
}

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