/* ============================================================
   REGNUMM — folha de estilo do site
   Sistema visual v6. Substitui o sistema anterior (off-white +
   serifa + champagne no claro) inteiro.

   Os três princípios, na ordem em que mandam:
   1. Branco é o fundo padrão de tudo.
   2. Azul-marinho vira fundo sólido só quando um bloco precisa
      se separar do resto.
   3. Champagne só existe dentro de um bloco azul, como o ponto
      mais alto de ênfase — nunca como fundo, nunca sobre branco.

   Duas vozes tipográficas, mais o logo:
   · rótulo  — DM Sans, caixa alta, rastreada, 700, pequena
   · texto   — DM Sans caixa normal, títulos em 800, corpo em 400
   · logo    — Cormorant Garamond 500, a única serifa que sobrou

   Sumário
   01  Reset e tokens
   02  Utilitários
   03  Navegação
   04  Hero da home
   05  Hero de página interna
   06  Prosa e blocos de texto
   07  Botões
   08  Drawers
   09  Mapa Financeiro
   10  Processo e jornada
   11  Para quem
   12  FAQ
   13  Sobre
   14  Evidência
   15  Escada de ofertas
   16  CTA final e redes
   17  Os quatro perfis
   18  Blog — listagem
   19  Blog — artigo
   20  Documentos legais
   21  Rodapé
   22  Animações e reveal
   23  Responsivo
   ============================================================ */

/* ── 01 · RESET E TOKENS ───────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --anchor: #0A1628;
  --base:   #FFFFFF;
  --accent: #C9B99A;

  --sans: 'DM Sans', system-ui, -apple-system, sans-serif;
  --logo: 'Cormorant Garamond', Georgia, serif;
  /* Só para <code>/<pre> do markdown, onde alinhamento é função e não
     estilo. Pilha do sistema: nenhuma família nova é carregada. */
  --mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;

  /* Texto sobre branco. Sempre o azul-marinho com opacidade — o sistema
     não tem cinza próprio, e preto puro nunca entra. */
  --texto:      rgba(10, 22, 40, .82);
  --texto-2:    rgba(10, 22, 40, .70);
  --texto-3:    rgba(10, 22, 40, .62);
  --linha:      rgba(10, 22, 40, .14);
  --linha-fina: rgba(10, 22, 40, .08);
  --lavado:     rgba(10, 22, 40, .04);

  /* Texto sobre azul-marinho. */
  --claro:   rgba(255, 255, 255, .82);
  --claro-2: rgba(255, 255, 255, .66);
  --linha-clara: rgba(255, 255, 255, .16);

  --foco: var(--anchor);
}

html { scroll-behavior: smooth; }

/* ── FOCO DE TECLADO ──
   Quem navega por teclado precisa enxergar onde está (WCAG 2.4.7). */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 2px solid var(--foco);
  outline-offset: 3px;
}
/* Dentro de bloco azul o anel vira champagne: 9,40:1 sobre midnight. */
.cta-sec, .autonomia, .faixa-anchor, .oferta,
.callout, .evidencia-quote, .pf-pergunta { --foco: var(--accent); }

/* A nav gruda no topo, então um alvo de âncora pararia atrás dela. */
section[id], .etapa[id] { scroll-margin-top: 6rem; }

body {
  background: var(--base);
  color: var(--anchor);
  font-family: var(--sans);
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

::-webkit-scrollbar { width: 3px; }
::-webkit-scrollbar-thumb { background: var(--anchor); }

/* ── 02 · UTILITÁRIOS ──────────────────────────────────────── */

/* Dado numérico. O sistema não carrega monoespaçada: o número ganha
   peso, não outra família. */
.data-stat { font-weight: 700; letter-spacing: -.01em; font-variant-numeric: tabular-nums; }

/* Faixas de seção */
.faixa        { padding: 0 5vw; }
.faixa-base   { background: var(--base); }
.faixa-anchor { background: var(--anchor); color: var(--base); }
.faixa-alta   { padding: 12vh 5vw; }
.borda-topo   { border-top: 1px solid var(--linha-fina); }

.limite-760 { max-width: 760px; }

/* ── Voz 1: rótulo ──
   Caixa alta, rastreada, 700, pequena. Vale para olho-de-texto, tag e
   label de seção, no claro e no escuro. */
.sec-label,
.hero-eyebrow,
.hero-int-eyebrow,
.captura-label,
.autonomia-eyebrow,
.autonomia-card-tag,
.oferta-nome,
.mapa-card-label,
.drawer-eixo,
.drawer-trigger-label,
.pf-label,
.blog-card-tag,
.blog-card-more,
.post-meta,
.redes-label,
.principio-nome,
.story-label,
.cta-note,
.legal-atualizado {
  font-size: .72rem; font-weight: 700; letter-spacing: .11em;
  text-transform: uppercase; color: var(--texto-3);
}
.sec-label { margin-bottom: 1.8rem; }

/* Sobre azul o rótulo vira champagne: é o ponto mais alto do bloco. */
.faixa-anchor .sec-label, .sec-label-claro,
.autonomia-eyebrow, .autonomia-card-tag,
.mapa-card-label,
.cta-sec .cta-note { color: var(--accent); }

/* Título de seção interna */
h2.secao-titulo {
  font-weight: 800; font-size: clamp(1.9rem, 3.6vw, 3rem);
  line-height: 1.02; letter-spacing: -.02em;
  color: var(--anchor); margin-bottom: 1.8rem;
}
h2.secao-titulo em { font-style: normal; }
.faixa-anchor h2.secao-titulo { color: var(--base); }
.faixa-anchor h2.secao-titulo em { color: var(--accent); }

/* ── 03 · NAVEGAÇÃO ────────────────────────────────────────── */
nav {
  position: sticky; top: 0; z-index: 100;
  display: flex; align-items: center; justify-content: space-between;
  padding: 1.6rem 5vw;
  background: var(--base);
  border-bottom: 1px solid transparent;
  transition: padding .3s, border-color .3s;
}
nav.scrolled { padding: 1.1rem 5vw; border-bottom-color: var(--linha-fina); }

.nav-logo {
  font-family: var(--logo); font-weight: 500;
  font-size: 1.2rem; letter-spacing: .2em; text-transform: uppercase;
  color: var(--anchor); text-decoration: none;
}
.nav-logo span { color: var(--accent); }

.nav-links { display: flex; gap: 2.5rem; list-style: none; }
.nav-links a {
  font-size: .72rem; font-weight: 700; letter-spacing: .11em;
  text-transform: uppercase; color: var(--texto-3);
  text-decoration: none; transition: color .2s;
}
.nav-links a:hover,
.nav-links a[aria-current="page"] { color: var(--anchor); }

/* botão hambúrguer — só aparece quando o menu horizontal não cabe */
.nav-toggle {
  display: none;
  width: 2.4rem; height: 2.4rem; padding: 0;
  background: none; border: none; cursor: pointer;
  flex-direction: column; justify-content: center; align-items: flex-end; gap: 5px;
}
.nav-toggle span {
  display: block; height: 2px; width: 1.5rem; background: var(--anchor);
  transition: transform .3s, opacity .2s, width .3s;
}
.nav-toggle span:nth-child(2) { width: 1.1rem; }
nav.menu-aberto .nav-toggle span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
nav.menu-aberto .nav-toggle span:nth-child(2) { opacity: 0; }
nav.menu-aberto .nav-toggle span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); width: 1.5rem; }

.nav-links-cta { display: none; }

/* ── 04 · HERO DA HOME ─────────────────────────────────────── */
.hero {
  padding: 7vh 5vw 10vh;
  border-bottom: 1px solid var(--linha-fina);
}
.hero-inner { max-width: 1180px; }
.hero-eyebrow { margin-bottom: 2rem; }

h1.hero-headline {
  font-weight: 800;
  font-size: clamp(3rem, 8vw, 7.5rem);
  line-height: .98; letter-spacing: -.03em;
  color: var(--anchor); max-width: 22ch;
  margin-bottom: 2rem;
  opacity: 0; animation: fadeUp .8s .1s forwards;
}
h1.hero-headline em { font-style: normal; }

.hero-subtitle {
  font-size: clamp(1.1rem, 1.7vw, 1.5rem); font-weight: 500;
  line-height: 1.35; color: var(--anchor);
  max-width: 30ch; margin-bottom: 1.2rem;
  opacity: 0; animation: fadeUp .8s .25s forwards;
}
.hero-sub {
  font-size: 1.05rem; font-weight: 400; line-height: 1.7;
  color: var(--texto-2); max-width: 44ch; margin-bottom: 3rem;
  opacity: 0; animation: fadeUp .8s .4s forwards;
}
.hero-actions {
  display: flex; align-items: center; gap: 2rem; flex-wrap: wrap;
  opacity: 0; animation: fadeUp .8s .55s forwards;
}
.hero-social { display: flex; align-items: center; gap: 1.2rem; margin-top: 3rem; }
.hero-social a { color: var(--texto-3); transition: color .2s, transform .2s; display: flex; }
.hero-social a:hover { color: var(--anchor); transform: translateY(-2px); }

/* ── 05 · HERO DE PÁGINA INTERNA ───────────────────────────── */
.hero-int {
  padding: 7vh 5vw 8vh;
  border-bottom: 1px solid var(--linha-fina);
}
.hero-int-inner { max-width: 1100px; }
.hero-int-eyebrow {
  margin-bottom: 1.8rem;
  display: flex; align-items: center; gap: .7rem; flex-wrap: wrap;
}
.hero-int-eyebrow .sep { opacity: .45; }

h1.hero-int-headline {
  font-weight: 800;
  font-size: clamp(2.4rem, 5.6vw, 4.8rem);
  line-height: 1; letter-spacing: -.03em;
  color: var(--anchor); max-width: 20ch; margin-bottom: 1.8rem;
}
h1.hero-int-headline em { font-style: normal; }
.hero-int-sub {
  font-size: 1.05rem; font-weight: 400; line-height: 1.7;
  color: var(--texto-2); max-width: 56ch;
}

/* ── 06 · PROSA E BLOCOS DE TEXTO ──────────────────────────── */
.pb {
  font-size: 1rem; font-weight: 400;
  line-height: 1.75; color: var(--texto); margin-bottom: 1.7rem;
}
.pb strong { font-weight: 700; color: var(--anchor); }
.pb:last-child { margin-bottom: 0; }

/* ── Citação em destaque ──
   Antes era uma barra champagne com fundo champagne translúcido sobre
   claro; as duas coisas saíram do sistema. Uma citação É um bloco que
   precisa se separar do resto, então vira o bloco azul. */
.callout, .evidencia-quote, .pf-pergunta, .post-prose blockquote {
  background: var(--anchor); border: none;
  padding: 2.4rem 2.6rem; margin: 3rem 0 0;
}
.callout p, .evidencia-quote p, .pf-pergunta p, .post-prose blockquote p {
  font-size: clamp(1.15rem, 1.9vw, 1.45rem); font-weight: 500;
  font-style: normal; line-height: 1.45; color: var(--base);
  margin-bottom: 0;
}
.post-prose blockquote { margin: 3rem 0; }
.post-prose blockquote p + p { margin-top: 1rem; }
.callout cite, .evidencia-quote cite, .post-prose blockquote cite {
  display: block; margin-top: 1.4rem; font-style: normal;
  font-size: .72rem; font-weight: 700; letter-spacing: .11em;
  text-transform: uppercase; color: var(--accent);
}

/* ── 07 · BOTÕES ───────────────────────────────────────────── */
/* Um botão só: pílula azul-marinho com texto champagne em negrito.
   Dentro de um bloco azul ele ganha o contorno champagne para se
   destacar do próprio fundo. */
.btn-primary, .cta-btn, .mapa-btn, .pf-btn, .oferta-btn, .nav-cta,
.nav-links-cta a {
  display: inline-block; text-align: center; text-decoration: none;
  background: var(--anchor); color: var(--accent);
  font-family: var(--sans); font-size: .76rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: .12em; line-height: 1;
  padding: 1.05rem 2.2rem; border: 1px solid var(--anchor);
  border-radius: 999px; cursor: pointer;
  transition: opacity .2s, transform .2s, background .2s;
}
.btn-primary:hover, .cta-btn:hover, .mapa-btn:hover, .pf-btn:hover,
.oferta-btn:hover, .nav-cta:hover, .nav-links-cta a:hover {
  opacity: .88; transform: translateY(-1px);
}
.nav-cta { font-size: .7rem; padding: .85rem 1.7rem; }

/* Sobre azul o mesmo botão ganha contorno champagne. */
.cta-sec .cta-btn, .autonomia .pf-btn, .faixa-anchor .mapa-btn, .oferta-btn {
  border-color: var(--accent);
}
.cta-sec .cta-btn:hover, .oferta-btn:hover { background: rgba(201,185,154,.12); opacity: 1; }

/* Ação secundária no claro: link sublinhado, sem caixa. */
.btn-ghost {
  font-size: .88rem; font-weight: 500; color: var(--anchor);
  text-decoration: underline; text-underline-offset: 4px;
  text-decoration-thickness: 1px; transition: opacity .2s;
}
.btn-ghost:hover { opacity: .6; }

/* Ação terciária: pílula vazada. */
.btn-linha {
  display: inline-block; margin-top: 1.6rem;
  font-size: .7rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: .12em;
  color: var(--anchor); text-decoration: none;
  border: 1px solid var(--linha); border-radius: 999px;
  padding: .8rem 1.5rem; transition: border-color .2s, background .2s;
}
.btn-linha:hover { background: var(--lavado); border-color: var(--anchor); }
.btn-linha-claro {
  color: var(--accent); border-color: var(--accent); background: transparent;
}
.btn-linha-claro:hover { background: rgba(201,185,154,.12); border-color: var(--accent); }

/* ── 08 · DRAWERS ──────────────────────────────────────────── */
.drawer { border-bottom: 1px solid var(--linha-fina); }
.drawer:first-of-type { border-top: 1px solid var(--linha-fina); }
.drawer-trigger {
  width: 100%; padding: 2rem 0;
  display: flex; align-items: center; justify-content: space-between; gap: 2rem;
  background: none; border: none; cursor: pointer; text-align: left;
}
.drawer-trigger-label, .drawer-eixo { margin-bottom: .7rem; }
.drawer-trigger-title {
  font-family: var(--sans); font-weight: 800;
  font-size: clamp(1.5rem, 2.8vw, 2.4rem); line-height: 1.05;
  letter-spacing: -.02em; color: var(--anchor);
}
.drawer-trigger-title em { font-style: normal; }
.drawer-icon {
  width: 2.4rem; height: 2.4rem; flex-shrink: 0;
  border: 1px solid var(--linha); border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 1.1rem; font-weight: 400; color: var(--anchor);
  transition: transform .35s, background .25s;
}
.drawer.open .drawer-icon { transform: rotate(45deg); background: var(--lavado); }
.drawer-body {
  max-height: 0; overflow: hidden;
  transition: max-height .5s cubic-bezier(.4,0,.2,1), padding .35s ease;
}
.drawer.open .drawer-body { max-height: 2400px; padding-bottom: 3rem; }

/* ── 09 · MAPA FINANCEIRO ──────────────────────────────────── */
.mapa-inner {
  display: grid; grid-template-columns: 1fr 1fr; gap: 8vw; align-items: center;
}
.mapa-desc {
  font-size: 1rem; font-weight: 400; line-height: 1.7;
  color: var(--claro); margin-bottom: 1.4rem;
}
.mapa-desc strong { font-weight: 700; color: var(--base); }
.mapa-cta-block { margin-top: 3rem; }
.mapa-social { display: flex; align-items: center; gap: 1.1rem; margin-top: 1.4rem; }
.mapa-social a { color: var(--claro-2); transition: color .2s, transform .2s; display: flex; }
.mapa-social a:hover { color: var(--accent); transform: translateY(-1px); }
.mapa-note { margin-top: 1.2rem; font-size: .8rem; color: var(--claro-2); line-height: 1.6; }

.mapa-card { border: 1px solid var(--linha-clara); padding: 3rem 2.5rem; }
.mapa-card-label { margin-bottom: 2rem; }
.mapa-card-title {
  font-weight: 800; font-size: 1.6rem; line-height: 1.15;
  letter-spacing: -.02em; color: var(--base); margin-bottom: 1.4rem;
}
.mapa-card-body { font-size: .95rem; font-weight: 400; line-height: 1.7; color: var(--claro); }
.mapa-card-divider { width: 100%; height: 1px; background: var(--linha-clara); margin: 2rem 0; }
.mapa-card-detail { font-size: .88rem; font-weight: 400; line-height: 1.7; color: var(--claro-2); }
.mapa-card-preco { display: flex; align-items: baseline; gap: .7rem; margin-top: .5rem; }
.mapa-card-preco .valor { font-size: 1.8rem; font-weight: 700; color: var(--accent); }
.mapa-card-preco .unidade {
  font-size: .72rem; font-weight: 700; letter-spacing: .1em;
  text-transform: uppercase; color: var(--claro-2);
}

/* ── 10 · PROCESSO E JORNADA ───────────────────────────────── */
.etapa { border-bottom: 1px solid var(--linha-fina); padding: 3rem 0; }
.etapa:first-of-type { border-top: 1px solid var(--linha-fina); }
.etapa-head { margin-bottom: 1.8rem; }
.etapa-body { max-width: 760px; }

.step-continuidade {
  margin-top: 1.6rem; padding-top: 1.6rem;
  border-top: 1px solid var(--linha-fina);
  font-size: .82rem; font-weight: 500; font-style: normal; color: var(--texto-3);
}
.step-continuidade-solta { margin-top: 0; padding-top: 0; border: none; }

.story { display: flex; align-items: stretch; }
.story-borda { margin-top: 5vh; border-top: 1px solid var(--linha-fina); }
.story-item {
  flex: 1; text-align: center; padding: 2rem 1rem;
  text-decoration: none; color: inherit;
  border-bottom: 2px solid transparent;
  transition: background .25s, border-color .25s;
}
.story-verb {
  font-family: var(--sans); font-weight: 800; font-size: 1.15rem;
  letter-spacing: -.02em; color: var(--texto-2); margin-bottom: .5rem;
  transition: color .25s;
}
.story-label { font-size: .68rem; letter-spacing: .12em; }
.story-sep { color: var(--texto-3); font-size: 1rem; align-self: center; }
a.story-item:hover { background: var(--lavado); border-bottom-color: var(--anchor); }
a.story-item:hover .story-verb { color: var(--anchor); }
a.story-item-fim .story-verb { color: var(--anchor); }

.jornada { padding: 9vh 5vw 0; background: var(--base); }
.jornada-inner { max-width: 1100px; margin: 0 auto; }

/* ── 11 · PARA QUEM ────────────────────────────────────────── */
.paraquem-inner { display: grid; grid-template-columns: 1fr 1px 1fr; gap: 6vw; }
.paraquem-div { background: var(--linha-clara); align-self: stretch; }
.pq-text {
  font-size: 1rem; font-weight: 400; line-height: 1.75;
  color: var(--claro); margin-bottom: 1.3rem;
}
.pq-text strong { font-weight: 700; color: var(--base); }
.pq-sintese {
  font-size: 1.15rem; font-weight: 700; font-style: normal;
  line-height: 1.45; letter-spacing: -.01em;
  color: var(--accent); margin-top: 2rem;
}
.pq-nao .pq-text { color: var(--claro-2); }

/* ── 12 · FAQ ──────────────────────────────────────────────── */
.faq { padding: 12vh 5vw; background: var(--base); border-top: 1px solid var(--linha-fina); }
.faq-inner { max-width: 760px; }
.faq-item { border-bottom: 1px solid var(--linha-fina); padding: 2rem 0; }
.faq-item:first-of-type { border-top: 1px solid var(--linha-fina); }
.faq-q {
  font-family: var(--sans); font-weight: 700;
  font-size: 1.15rem; line-height: 1.4; letter-spacing: -.01em;
  color: var(--anchor); cursor: pointer;
  display: flex; justify-content: space-between; align-items: flex-start; gap: 2rem;
}
.faq-q::after {
  content: '+'; font-family: var(--sans); font-size: 1.3rem; font-weight: 400;
  color: var(--texto-3); flex-shrink: 0; transition: transform .3s;
}
.faq-item.open .faq-q::after { transform: rotate(45deg); }
.faq-a {
  font-size: .97rem; font-weight: 400; line-height: 1.75;
  color: var(--texto); max-height: 0; overflow: hidden;
  transition: max-height .4s ease, padding .3s ease;
}
.faq-item.open .faq-a { max-height: 500px; padding-top: 1.2rem; }

/* ── 13 · SOBRE ────────────────────────────────────────────── */
/* Composição assimétrica: a foto ocupa quase metade da largura, e as duas
   colunas começam em alturas diferentes. A diagonal nasce desse desencontro,
   não de rotação — girar a foto brigaria com a régua reta que o sistema usa
   em todo lugar. */
.sobre {
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  gap: 6vw;
  align-items: start;
}
.sobre-visual { position: relative; }
/* O texto desce; a foto sobe e passa da linha de base dele. */
.sobre-corpo { padding-top: 9vh; }
.sobre-box { width: 100%; overflow: hidden; position: relative; padding: .6rem; background: var(--anchor); }
.sobre-box::after {
  content: ''; position: absolute; inset: .6rem;
  border: 1px solid rgba(201,185,154,.35); pointer-events: none;
}
.sobre-box img { width: 100%; height: auto; display: block; }
.sobre-text {
  font-size: 1rem; font-weight: 400; line-height: 1.75;
  color: var(--texto); margin-bottom: 1.5rem;
}
.principios { display: grid; grid-template-columns: 1fr 1fr; gap: 1.8rem; margin-top: 3rem; }
.principio { border-top: 1px solid var(--linha); padding-top: 1.2rem; }
.principio-nome { margin-bottom: .5rem; color: var(--anchor); }
.principio-desc { font-size: .88rem; font-weight: 400; line-height: 1.6; color: var(--texto-2); }

/* ── 13b · IDENTIFICAÇÃO ─────────────────────── */
/* Estende em lista o que o paragrafo do hero ja diz em prosa. Regua reta,
   o mesmo idioma de .principio, em duas colunas no desktop. */
.reconhece { padding: 0 5vw 10vh; background: var(--base); }
.reconhece-inner { max-width: 1180px; margin: 0 auto; }
.reconhece-lista {
  list-style: none; display: grid; grid-template-columns: 1fr 1fr;
  gap: 1.8rem 4vw;
}
.reconhece-lista li {
  border-top: 1px solid var(--linha); padding-top: 1.1rem;
  font-size: 1rem; font-weight: 400; line-height: 1.6; color: var(--texto-2);
}

/* ── 14 · EVIDÊNCIA ────────────────────────────────────────── */
h2.evidencia-h {
  font-weight: 800; font-size: clamp(1.9rem, 3.6vw, 3rem);
  line-height: 1.02; letter-spacing: -.02em;
  color: var(--anchor); margin-bottom: 2rem;
}
h2.evidencia-h em { font-style: normal; }
.evidencia-corpo { font-size: 1rem; font-weight: 400; line-height: 1.75; color: var(--texto); }
.evidencia-corpo p { margin-bottom: 1.4rem; }
.evidencia-corpo p:last-child { margin-bottom: 0; }
/* Testemunho secundario: mesmo idioma do principal, em escala menor, para
   nao competir com o caso completo que vem acima. */
.evidencia-quote-menor { margin-top: 2rem; }
.evidencia-quote-menor p { font-size: 1.02rem; }


/* ── 15 · ESCADA DE OFERTAS ────────────────────────────────── */
/* Os dois níveis pagos sempre juntos: é a comparação lado a lado que
   faz a escada funcionar. Cada oferta é um bloco azul sobre branco. */
.captura { padding: 12vh 5vw; background: var(--base); border-top: 1px solid var(--linha-fina); }
.captura-inner { max-width: 900px; margin: 0 auto; }
.captura-label { margin-bottom: 1.4rem; color: var(--texto-3); }
h2.captura-h {
  font-weight: 800; font-size: clamp(2rem, 4.4vw, 3.4rem);
  line-height: 1; letter-spacing: -.03em;
  color: var(--anchor); margin-bottom: 1.4rem; max-width: 18ch;
}
h2.captura-h em { font-style: normal; }
.captura-sub {
  font-size: 1.05rem; font-weight: 400; line-height: 1.7;
  color: var(--texto-2); max-width: 52ch; margin-bottom: 3.5rem;
}

.ofertas { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
.oferta {
  display: flex; flex-direction: column;
  background: var(--anchor); border: 1px solid var(--anchor);
  padding: 2.6rem 2.2rem;
}
.oferta-destaque { border-color: var(--accent); }
.oferta-nome { color: var(--accent); margin-bottom: 1.2rem; }
.oferta-preco {
  font-size: 2.6rem; font-weight: 800; letter-spacing: -.03em;
  line-height: 1; color: var(--base); margin-bottom: 1.4rem;
}
.oferta-entrega {
  font-size: .95rem; font-weight: 400; line-height: 1.7;
  color: var(--claro-2); margin-bottom: 2.2rem; flex-grow: 1;
}
/* O card com lista para de esticar o paragrafo de abertura: quem cresce
   para alinhar os dois botoes passa a ser a lista. */
.oferta-destaque .oferta-entrega { flex-grow: 0; margin-bottom: 1.4rem; }
.oferta-itens { list-style: none; flex-grow: 1; margin-bottom: 2.2rem; }
.oferta-itens li {
  border-top: 1px solid var(--linha-clara); padding: .7rem 0 0;
  margin-top: .7rem;
  font-size: .88rem; font-weight: 400; line-height: 1.55;
  color: var(--claro-2);
}
.oferta-itens li:first-child { margin-top: 0; }
.oferta-btn { display: block; width: 100%; }
.oferta-duvida {
  display: block; margin-top: 1.2rem; text-align: center;
  font-size: .8rem; font-weight: 500; line-height: 1.5;
  color: var(--claro-2); text-decoration: underline;
  text-underline-offset: 3px; transition: color .2s;
}
.oferta-duvida:hover { color: var(--accent); }

.ofertas-comparacao {
  margin: 2.4rem 0 0;
  font-size: clamp(1.05rem, 1.7vw, 1.35rem); font-weight: 500;
  font-style: normal; line-height: 1.5;
  color: var(--anchor); text-align: center;
}

/* ── 16 · CTA FINAL E REDES ────────────────────────────────── */
.cta-sec { padding: 14vh 5vw; background: var(--anchor); text-align: center; }
.cta-inner { max-width: 720px; margin: 0 auto; }
.cta-pre {
  font-size: .72rem; font-weight: 700; letter-spacing: .11em;
  text-transform: uppercase; font-style: normal;
  color: var(--accent); margin-bottom: 2rem;
}
h2.cta-h {
  font-weight: 800; font-size: clamp(2.2rem, 5.4vw, 4.6rem);
  line-height: .98; letter-spacing: -.03em;
  color: var(--base); margin-bottom: 1.5rem;
}
h2.cta-h em { font-style: normal; color: var(--accent); }
.cta-sub {
  font-size: 1.02rem; font-weight: 400; line-height: 1.7;
  color: var(--claro-2); margin-bottom: 3rem;
  max-width: 52ch; margin-left: auto; margin-right: auto;
}
.cta-note { margin-top: 1.5rem; }

.redes { padding: 7vh 5vw; background: var(--base); text-align: center; border-top: 1px solid var(--linha-fina); }
.redes-label { color: var(--texto-3); margin-bottom: 1.6rem; }
.redes-lista { display: flex; justify-content: center; align-items: center; gap: 2.2rem; }
.redes-lista a { color: var(--texto-3); transition: color .2s, transform .2s; display: flex; }
.redes-lista a:hover { color: var(--anchor); transform: translateY(-2px); }

/* ── 17 · OS QUATRO PERFIS ─────────────────────────────────── */
.disclaimer { padding: 8vh 5vw 2vh; }
.disclaimer-inner { max-width: 680px; }
.disclaimer p {
  font-size: .97rem; font-weight: 400; font-style: normal;
  line-height: 1.75; color: var(--texto-2); margin-bottom: 1.2rem;
}
.disclaimer p:last-child { margin-bottom: 0; }
.disclaimer p strong { font-weight: 700; color: var(--anchor); }

.perfis { padding: 4vh 5vw 10vh; }
.pf-label { margin-bottom: .6rem; margin-top: 1.8rem; }
.pf-label:first-child { margin-top: 0; }
.pf-pergunta { margin-top: 2.4rem; }
.pf-btn { margin-top: 2rem; }

.autonomia { padding: 12vh 5vw; background: var(--anchor); }
.autonomia-inner { max-width: 760px; }
.autonomia-eyebrow { margin-bottom: 1.6rem; }
h2.autonomia-h {
  font-weight: 800; font-size: clamp(1.9rem, 3.6vw, 3rem);
  line-height: 1.02; letter-spacing: -.02em;
  color: var(--base); margin-bottom: 1.8rem;
}
h2.autonomia-h em { font-style: normal; color: var(--accent); }
.autonomia p {
  font-size: 1rem; font-weight: 400; line-height: 1.75;
  color: var(--claro); margin-bottom: 1.3rem;
}
.autonomia p strong { font-weight: 700; color: var(--base); }
.autonomia-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; margin-top: 2.5rem; }
.autonomia-card { border: 1px solid var(--linha-clara); padding: 1.8rem; }
.autonomia-card-tag { margin-bottom: .9rem; }
.autonomia-card p { font-size: .9rem; margin-bottom: 0; color: var(--claro-2); }

/* ── 18 · BLOG · LISTAGEM ──────────────────────────────────── */
.blog { padding: 4vh 5vw 10vh; background: var(--base); }
.blog-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.blog-card {
  padding: 2.6rem 2.2rem; border: 1px solid var(--linha-fina);
  display: flex; flex-direction: column; min-height: 280px;
  text-decoration: none; transition: background .25s, border-color .25s;
}
.blog-card:hover { background: var(--lavado); border-color: var(--linha); }
.blog-card-tag {
  margin-bottom: 1.4rem;
  display: flex; align-items: center; gap: .6rem; flex-wrap: wrap;
}
.blog-card-tag .sep { opacity: .45; }
.blog-card-title {
  font-family: var(--sans); font-weight: 800;
  font-size: 1.45rem; line-height: 1.1; letter-spacing: -.02em;
  color: var(--anchor); margin-bottom: 1rem;
}
.blog-card-excerpt { font-size: .92rem; font-weight: 400; line-height: 1.65; color: var(--texto-2); flex-grow: 1; }
.blog-card-more { margin-top: 1.6rem; color: var(--anchor); }
.blog-empty {
  grid-column: 1 / -1; padding: 4rem 2rem; text-align: center;
  border: 1px dashed var(--linha);
  font-size: .95rem; font-weight: 400; font-style: normal; color: var(--texto-3);
}

/* ── 19 · BLOG · ARTIGO ────────────────────────────────────── */
.post-lead {
  font-size: clamp(1.1rem, 1.7vw, 1.4rem); font-weight: 400; font-style: normal;
  line-height: 1.55; color: var(--texto-2); max-width: 46ch; margin-bottom: 1.8rem;
}
.post-meta { display: flex; align-items: center; gap: .7rem; flex-wrap: wrap; }
.post-meta .sep { opacity: .45; }

.post-body { padding: 9vh 5vw 4vh; }
.post-prose { max-width: 680px; }

.post-prose p {
  font-size: 1rem; font-weight: 400; line-height: 1.8;
  color: var(--texto); margin-bottom: 1.7rem;
}
.post-prose p strong { font-weight: 700; color: var(--anchor); }
.post-prose p em { font-style: normal; font-weight: 700; }
.post-prose a {
  color: var(--anchor); text-decoration: none;
  border-bottom: 1px solid var(--linha);
  transition: border-color .2s;
}
.post-prose a:hover { border-color: var(--anchor); }

.post-prose h2 {
  font-family: var(--sans); font-weight: 800;
  font-size: clamp(1.6rem, 2.8vw, 2.2rem); line-height: 1.08;
  letter-spacing: -.02em; color: var(--anchor); margin: 4rem 0 1.4rem;
}
.post-prose h2 em { font-style: normal; }
.post-prose h3 {
  font-family: var(--sans); font-weight: 700;
  font-size: clamp(1.2rem, 2vw, 1.5rem); line-height: 1.2;
  letter-spacing: -.01em; color: var(--anchor); margin: 3rem 0 1rem;
}
.post-prose h4 {
  font-size: .72rem; font-weight: 700; letter-spacing: .11em;
  text-transform: uppercase; color: var(--texto-3); margin: 2.6rem 0 .6rem;
}

.post-prose ul, .post-prose ol { margin: 0 0 1.7rem 1.2rem; }
.post-prose li {
  font-size: 1rem; font-weight: 400; line-height: 1.8;
  color: var(--texto); margin-bottom: .6rem; padding-left: .4rem;
}
.post-prose li::marker { color: var(--texto-3); }

.post-prose hr { border: none; width: 2.5rem; height: 2px; background: var(--linha); margin: 3.5rem 0; }
.post-prose img { width: 100%; height: auto; display: block; margin: 3rem 0; }

.post-prose code {
  font-family: var(--mono); font-size: .86em;
  background: var(--lavado); padding: .15em .4em;
}
.post-prose pre {
  font-family: var(--mono); font-size: .84rem; line-height: 1.7;
  background: var(--anchor); color: var(--claro);
  padding: 1.6rem 1.8rem; overflow-x: auto; margin: 2.5rem 0;
}
.post-prose pre code { background: none; padding: 0; }

.post-prose .tabela-scroll { overflow-x: auto; margin: 2.5rem 0; -webkit-overflow-scrolling: touch; }
.post-prose table { width: auto; min-width: 100%; border-collapse: collapse; margin: 0; }
.post-prose th, .post-prose td {
  text-align: left; padding: .9rem 1rem;
  border-bottom: 1px solid var(--linha-fina);
  font-size: .92rem; font-weight: 400; color: var(--texto);
}
.post-prose th {
  font-size: .72rem; font-weight: 700; letter-spacing: .11em;
  text-transform: uppercase; color: var(--texto-3);
}

/* notas de rodapé (markdown-it-footnote) */
.post-prose .footnote-ref a {
  font-size: .8em; font-weight: 700; color: var(--anchor);
  border-bottom: none; padding: 0 .12em; text-decoration: none;
  vertical-align: super;
}
.post-prose .footnote-ref a[id] { scroll-margin-top: 7rem; }
.post-prose .footnotes-sep { border: none; width: 100%; height: 1px; background: var(--linha); margin: 5rem 0 0; }
.post-prose .footnotes { padding-top: 2.2rem; }
.post-prose .footnotes::before {
  content: 'Notas'; display: block;
  font-size: .72rem; font-weight: 700; letter-spacing: .11em;
  text-transform: uppercase; color: var(--texto-3); margin-bottom: 1.6rem;
}
.post-prose .footnotes-list { margin: 0 0 0 1.2rem; }
.post-prose .footnote-item { margin-bottom: .9rem; padding-left: .3rem; scroll-margin-top: 7rem; }
.post-prose .footnote-item::marker { font-size: .82em; color: var(--texto-3); }
.post-prose .footnote-item p {
  font-size: .88rem; font-weight: 400; line-height: 1.7;
  color: var(--texto-2); margin-bottom: 0;
}
.post-prose .footnote-item p + p { margin-top: .5rem; }
.post-prose .footnote-backref { border-bottom: none; color: var(--texto-3); text-decoration: none; margin-left: .35rem; }
.post-prose .footnote-backref:hover { color: var(--anchor); }

/* ── 20 · DOCUMENTOS LEGAIS ────────────────────────────────── */
.legal { padding: 9vh 5vw 4vh; }
.legal-prose { max-width: 680px; }
.legal-prose h2 {
  font-family: var(--sans); font-weight: 800;
  font-size: clamp(1.4rem, 2.4vw, 1.9rem); line-height: 1.15;
  letter-spacing: -.02em; color: var(--anchor); margin: 3.5rem 0 1.2rem;
}
.legal-prose h2:first-child { margin-top: 0; }
.legal-prose h3 {
  font-size: .72rem; font-weight: 700; letter-spacing: .11em;
  text-transform: uppercase; color: var(--texto-3); margin: 2.4rem 0 .7rem;
}
.legal-prose p {
  font-size: .97rem; font-weight: 400; line-height: 1.8;
  color: var(--texto); margin-bottom: 1.4rem;
}
.legal-prose p strong { font-weight: 700; color: var(--anchor); }
.legal-prose ul { margin: 0 0 1.6rem 1.2rem; }
.legal-prose li {
  font-size: .97rem; font-weight: 400; line-height: 1.8;
  color: var(--texto); margin-bottom: .7rem; padding-left: .4rem;
}
.legal-prose li::marker { color: var(--texto-3); }
.legal-prose a { color: var(--anchor); text-decoration: none; border-bottom: 1px solid var(--linha); }
.legal-prose a:hover { border-color: var(--anchor); }
.legal-prose .tabela-scroll { overflow-x: auto; margin: 2rem 0; }
.legal-prose table { width: auto; min-width: 100%; border-collapse: collapse; }
.legal-prose th, .legal-prose td {
  text-align: left; padding: .85rem 1rem;
  border-bottom: 1px solid var(--linha-fina);
  font-size: .9rem; font-weight: 400; color: var(--texto);
}
.legal-prose th {
  font-size: .72rem; font-weight: 700; letter-spacing: .11em;
  text-transform: uppercase; color: var(--texto-3);
}
.legal-atualizado { margin-top: 4rem; padding-top: 1.6rem; border-top: 1px solid var(--linha); }

/* ── 21 · RODAPÉ ───────────────────────────────────────────── */
footer {
  padding: 3rem 5vw; background: var(--base);
  border-top: 1px solid var(--linha-fina);
  display: flex; align-items: center; justify-content: space-between; gap: 1.5rem;
}
.f-logo {
  font-family: var(--logo); font-weight: 500;
  font-size: 1rem; letter-spacing: .2em; text-transform: uppercase;
  color: var(--texto-2); text-decoration: none;
}
.f-logo span { color: var(--accent); }
.f-copy { font-size: .74rem; font-weight: 400; color: var(--texto-3); }
.f-copy a { color: inherit; text-decoration: none; border-bottom: 1px solid var(--linha); }
.f-links { display: flex; gap: 2rem; list-style: none; flex-wrap: wrap; }
.f-links a {
  font-size: .74rem; font-weight: 500; color: var(--texto-3);
  text-decoration: none; transition: color .2s;
}
.f-links a:hover { color: var(--anchor); }

/* ── 22 · ANIMAÇÕES E REVEAL ───────────────────────────────── */
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* A animação só é armada quando o JS confirma que está rodando (classe .js
   no <html>). Sem isso, um erro de JS deixaria blocos inteiros de texto em
   opacity: 0 — ou seja, tela em branco. */
.js .r { opacity: 0; transform: translateY(24px); transition: opacity .7s ease, transform .7s ease; }
.js .r.v { opacity: 1; transform: translateY(0); }
.d1 { transition-delay: .1s; }
.d2 { transition-delay: .22s; }
.d3 { transition-delay: .34s; }
.d4 { transition-delay: .46s; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .js .r { opacity: 1; transform: none; transition: none; }
  h1.hero-headline, .hero-subtitle, .hero-sub, .hero-actions { animation: none; opacity: 1; }
}

/* ── 23 · RESPONSIVO ───────────────────────────────────────── */
@media (max-width: 960px) {
  nav { padding: 1.3rem 5vw; }
  .nav-toggle { display: flex; }
  .nav-cta { display: none; }

  /* O menu vira painel branco em tela cheia. */
  .nav-links {
    position: fixed; inset: 0; z-index: -1;
    display: flex; flex-direction: column; justify-content: center; align-items: flex-start;
    gap: 0; padding: 18vh 8vw 8vh;
    background: var(--base);
    opacity: 0; pointer-events: none;
    transition: opacity .3s ease;
  }
  nav.menu-aberto .nav-links { z-index: 1; opacity: 1; pointer-events: auto; }
  .nav-links li { width: 100%; border-bottom: 1px solid var(--linha-fina); }
  .nav-links li:first-child { border-top: 1px solid var(--linha-fina); }
  .nav-links a {
    display: block; padding: 1.4rem 0;
    font-size: 1.5rem; font-weight: 800; letter-spacing: -.02em;
    text-transform: none; color: var(--anchor);
  }
  .nav-links-cta { display: block; border-bottom: none !important; margin-top: 2.4rem; }
  /* A regra de cor do painel (.nav-links a) vem depois da regra de botao e
     tem a mesma especificidade, entao ganhava: o CTA ficava com texto
     azul-marinho sobre o proprio fundo azul-marinho, invisivel. Repor a cor
     aqui e o conserto mais direto. */
  .nav-links-cta a { width: 100%; font-size: .76rem; color: var(--accent); }
  body.menu-travado { overflow: hidden; }

  .mapa-inner { grid-template-columns: 1fr; gap: 5vh; }
  .paraquem-inner { grid-template-columns: 1fr; gap: 4vh; }
  .paraquem-div { display: none; }
  .pq-nao { border-top: 1px solid var(--linha-clara); padding-top: 4vh; }
  .sobre { grid-template-columns: 1fr; gap: 4vh; }
  .reconhece-lista { grid-template-columns: 1fr; gap: 1.4rem; }
  /* Em coluna única não existe diagonal: o escalonamento viraria só um vão. */
  .sobre-corpo { padding-top: 0; }
  .sobre-box { max-width: 420px; }
  .story { flex-wrap: wrap; }
  .blog-grid { grid-template-columns: 1fr; }
  footer { flex-direction: column; gap: 1.2rem; text-align: center; }
  .f-links { justify-content: center; }
}
@media (max-width: 700px) {
  .blog, .post-body, .legal, .cta-sec, .captura { padding-left: 6vw; padding-right: 6vw; }
  .ofertas { grid-template-columns: 1fr; }
  .autonomia-grid { grid-template-columns: 1fr; }
  .disclaimer, .perfis, .autonomia { padding-left: 6vw; padding-right: 6vw; }
}
@media (max-width: 600px) {
  .principios { grid-template-columns: 1fr; }
  nav { padding: 1.1rem 5vw; }
  .hero { padding: 5vh 5vw 8vh; }
  h1.hero-headline { font-size: clamp(2.5rem, 11vw, 3.4rem); max-width: 100%; }
  .hero-subtitle { font-size: 1.15rem; max-width: 100%; }
  .hero-sub { font-size: 1rem; max-width: 100%; }
  .hero-actions { flex-direction: column; align-items: stretch; gap: 1.2rem; }
  .btn-primary { width: 100%; }
  .btn-ghost { text-align: center; }
  .hero-int { padding: 5vh 6vw 6vh; }
  h1.hero-int-headline { max-width: 100%; }
  .mapa-card { padding: 2rem 1.5rem; }
  .faq-q { font-size: 1.05rem; }
  .sobre-box { max-width: 100%; }
  .post-body { padding-top: 7vh; }
  .callout, .evidencia-quote, .pf-pergunta, .post-prose blockquote { padding: 1.8rem 1.6rem; }
  .cta-sec { padding: 11vh 6vw; }
  .cta-btn { width: 100%; }
  .oferta { padding: 2rem 1.6rem; }
  .f-copy { display: none; }
}
