/* ============================================================
   UTILITIES — animações e scroll reveal
   ============================================================ */

/* ============================================================
   8. ANIMAÇÕES
   ============================================================ */

@keyframes dropdown-in {
  from { opacity: 0; transform: translateY(-6px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes slide-down {
  from { opacity: 0; transform: translateY(-8px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* Scroll reveal — JS adiciona .will-reveal antes de observar */
.will-reveal {
  opacity: 0;
  transform: translateY(36px);
  transition:
    opacity 700ms cubic-bezier(0.16, 1, 0.3, 1) var(--reveal-delay, 0ms),
    transform 700ms cubic-bezier(0.16, 1, 0.3, 1) var(--reveal-delay, 0ms);
}

/* .will-reveal permanece no elemento durante a animação para manter a transition */
.will-reveal.is-revealed {
  opacity: 1;
  transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  .will-reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }

  .header__nav--mobile-open,
  .header__dropdown--open {
    animation: none;
  }

  /* Desativa a animação de "respiração" do botão flutuante */
  .whatsapp-float,
  .whatsapp-float:hover,
  .whatsapp-float:focus-visible {
    animation: none;
  }

  /* Sem transição de transform no botão flutuante */
  .whatsapp-float {
    transition: background-color 220ms ease, box-shadow 220ms ease;
  }
}
