/* ─────────────────────────────
   ARROW SVG HELPER
───────────────────────────── */
.arrow {
  flex-shrink: 0;
  transition: transform 0.25s;
}
a:hover .arrow { transform: translateX(6px); }

/* ─────────────────────────────
   SCROLL REVEAL
───────────────────────────── */
.reveal {
  opacity: 0; transform: translateY(24px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}
.reveal.visible { opacity: 1; transform: none; }
.reveal-delay-1 { transition-delay: 0.1s; }
.reveal-delay-2 { transition-delay: 0.2s; }
.reveal-delay-3 { transition-delay: 0.3s; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
  /* Sem isto o hero ficaria vazio: os elementos dele nascem com opacity 0 e
     só a animação os revela. */
  .reveal,
  .hero-eyebrow, .hero-title, .hero-tagline, .hero-cta, .hero-meta { opacity: 1; transform: none; }
  html { scroll-behavior: auto; }
}
