/* ============================================================
   TRAFEGOBI · MARKETING (vitrine)
   ------------------------------------------------------------
   CAMADA DE ISOLAMENTO da frente de Marketing/Conversão.

   POR QUE ESTE ARQUIVO EXISTE
   tokens.css, base.css e components.css são COMPARTILHADOS com o produto:
   são carregados por 19 páginas do dashboard/app. Mudar a tipografia, a
   paleta ou o estilo de botão lá redesenha o painel inteiro junto — e a
   frente de marketing não tem autorização para isso.

   Decisão do fundador em 26/07/2026: a vitrine sobrescreve aqui, num arquivo
   que SÓ ela carrega. O produto segue intocado.

   REGRA DE USO
   1. Precisa mudar algo visual só na vitrine?  →  escreva AQUI.
   2. Precisa mudar algo que também deve valer no app?  →  PARE e peça
      autorização antes de tocar em tokens/base/components.
   3. Estilo de bloco novo e exclusivo da vitrine (uma seção nova da home)
      continua indo para home.css / page.css — que já são só de marketing.
      Este arquivo é para SOBRESCREVER o que vem dos compartilhados.

   ORDEM DE CARGA (importa): este arquivo entra por ÚLTIMO no <head>, depois
   de tokens/base/components/layout/home/page, para vencer sem precisar de
   !important. Se algo aqui não estiver pegando, confira a ordem antes de
   apelar para !important.

   Mapa completo de quem-carrega-o-quê: docs/FRONTEIRA_MARKETING_PRODUTO.md
   ============================================================ */

/* ── Escopo ───────────────────────────────────────────────────
   As páginas de marketing recebem data-site="marketing" no <html>, então
   qualquer regra aqui pode se ancorar nesse atributo quando precisar de
   especificidade extra sem recorrer a !important. */

/* ── FIX: conteúdo invisível sem JavaScript ───────────────────
   `.reveal` em base.css:178 nasce com `opacity: 0` e só ganha `.is-visible`
   quando o IntersectionObserver do main.js roda. Sem JS, TODO o conteúdo
   animado da vitrine nunca aparece — incluindo os 4 cards de preço da
   /planos, que usam `class="plan reveal"`. Uma página de preços que carrega
   em branco é o pior defeito possível numa página de preços.

   Não dá pra corrigir na origem: base.css é COMPARTILHADO com 19 telas do
   produto (regra do fundador: parar e pedir). Então o conserto mora aqui,
   escopado à vitrine, via <noscript> no <head> de cada página de marketing
   — que só é aplicado quando o script realmente não roda, e por isso não
   causa flash em quem tem JS.

   O caso "IntersectionObserver ausente" já é tratado dentro do main.js.
   O caso "JS desligado/bloqueado" é coberto pelo <noscript> no <head> de
   cada página da vitrine — procure por "FIX sem-JS" no HTML. Ele não vive
   aqui porque uma regra normal de CSS valeria também para quem TEM JS,
   matando a animação de todo mundo. */

/* ── Overrides da vitrine ─────────────────────────────────────
   (sem overrides visuais ainda — a Onda M1 não precisou de nenhum:
   tudo que ela mexeu vive em home.css e layout.css, que já são
   exclusivos de marketing.)

   Exemplo do padrão a seguir quando a Onda M2 precisar:

   :root[data-site="marketing"] {
     --fs-4xl: clamp(2.5rem, 6vw, 4.25rem);
   }
   [data-site="marketing"] .btn--primary {
     box-shadow: 0 10px 30px var(--brand-glow);
   }
*/
