/* Base (equivalente ao @layer base do style.css original) */
html { scroll-behavior: smooth; }
body { font-family: 'DM Sans', sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
h1, h2, h3, h4, h5, h6 { font-family: 'Outfit', sans-serif; }

/* Hero: fade-in */
@keyframes fadeIn {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}
.animate-fade-in { animation: fadeIn 0.6s ease-in; }

/* Modais: fade do fundo + escala do conteúdo */
.modal { transition: opacity 0.3s ease; }
.modal.is-hidden { opacity: 0; pointer-events: none; }
.modal .modal-panel { transition: transform 0.3s ease; }
.modal.is-hidden .modal-panel { transform: scale(0.95) translateY(20px); }
.modal.zoom.is-hidden .modal-panel { transform: scale(0.9); }

/* FAQ: abre/fecha com altura e opacidade */
.faq-answer { max-height: 0; opacity: 0; overflow: hidden; transition: all 0.3s ease; }
.faq-item.is-open .faq-answer { max-height: 300px; opacity: 1; }
.faq-item.is-open .faq-icon { transform: rotate(180deg); }

/* Botão voltar ao topo */
#scrollTop { transition: all 0.3s ease; }
#scrollTop.is-hidden { opacity: 0; transform: translateY(20px); pointer-events: none; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
