/* Otimizações das prévias (home e gestão). Carregar DEPOIS de preview.css, gestao.css e brand-refinement.css. */

/* 1. Fundo sem banding: o brilho vira uma camada desfocada de verdade, e um grão fino faz o dithering. */
body { position: relative; isolation: isolate; }
body::after {
  content: "";
  position: fixed; inset: 0; z-index: 9999; pointer-events: none;
  opacity: .045; mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  background-size: 160px 160px;
}
.management-hero::before,
.section::before { filter: blur(48px); opacity: .9; }
@media (prefers-reduced-motion: no-preference) {
  .management-hero::before { will-change: filter; }
}

/* 2. Revelação nunca deixa buraco: se o observer não disparar, o conteúdo aparece sozinho. */
.motion-ready [data-reveal] { animation: reveal-fallback 0s 2.5s forwards; }
@keyframes reveal-fallback { to { opacity: 1; transform: none; } }

/* 3. Toques de conversão */
.hero-copy .actions { align-items: center; }
.meeting-note { font-size: .85rem; color: var(--muted); max-width: 44ch; }
.faq details p { max-width: 62ch; }
