/* Lemur — casca pública (dono: frente P): landing, preços, login, termos, newsletter, CRA, erro. Só os tokens do 2.0
   (static/v2/tokens.css) e os componentes da base (static/v2/base.css: .v2-btn, .v2-card, .v2-tabela, .v2-aviso, .v2-chip).
   Três partes: (1) a casca, (2) as páginas do site público e (3) a ponte para as páginas que vestem a casca nova mas ainda usam as
   classes e as variáveis da V1 (sai junto com elas). */

/* ------------------------------------------------------------------ (1) casca */
body.v2.pub { min-height: 100vh; display: flex; flex-direction: column; font-size: 15px; line-height: 1.55; }
.pub-pular { position: absolute; left: 12px; top: -48px; z-index: 50; padding: 8px 12px; border-radius: var(--v2-raio-p); background: var(--v2-azul);
  color: #fff; }
.pub-pular:focus { top: 10px; }
body.v2.pub :focus-visible { outline: 2px solid var(--v2-azul-2); outline-offset: 2px; }

.pub-topo { position: sticky; top: 0; z-index: 20; display: flex; align-items: center; gap: 18px; min-height: 60px;
  padding: 8px max(24px, calc((100% - 1120px) / 2)); background: var(--v2-topo-bg); border-bottom: 1px solid var(--v2-linha);
  backdrop-filter: saturate(180%) blur(20px); -webkit-backdrop-filter: saturate(180%) blur(20px); }
.pub-marca { display: inline-flex; align-items: center; gap: 10px; color: var(--v2-ink); }
body.v2.pub .pub-marca, body.v2.pub a.v2-btn:not(.prim) { color: var(--v2-ink); }
body.v2.pub .pub-marca:hover, body.v2.pub a.v2-btn:hover { text-decoration: none; }
.pub-logo { width: 30px; height: 30px; border-radius: 8px; background: var(--v2-azul); color: #fff; display: inline-flex; align-items: center;
  justify-content: center; flex: none; }
.pub-marca-txt b { display: block; font-size: 18px; letter-spacing: -.3px; line-height: 1.1; }
.pub-marca-txt small { display: block; font-size: 11px; color: var(--v2-muted); line-height: 1.2; }
.pub-nav { display: flex; gap: 4px; }
body.v2.pub .pub-nav a { color: var(--v2-ink-2); padding: 6px 10px; border-radius: 8px; font-size: 14px; }
body.v2.pub .pub-nav a:hover { color: var(--v2-ink); background: var(--v2-card); text-decoration: none; }
body.v2.pub .pub-nav a.on { color: var(--v2-ink); font-weight: 600; }
.pub-acoes { margin-left: auto; display: flex; align-items: center; gap: 8px; }
.pub-acoes form { margin: 0; }

.pub-main { flex: 1; width: 100%; max-width: 1168px; margin: 0 auto; padding: 28px 24px 72px; min-width: 0; }
.pub-aviso { margin: 0 0 18px; }

.pub-rodape { border-top: 1px solid var(--v2-linha); padding: 32px max(24px, calc((100% - 1120px) / 2)) 28px; color: var(--v2-muted);
  font-size: 13px; background: var(--v2-bg-2); }
.pub-rodape-grade { display: grid; grid-template-columns: minmax(0, 2fr) repeat(3, minmax(0, 1fr)); gap: 24px 32px; }
.pub-rodape-marca b { color: var(--v2-ink); font-size: 15px; }
.pub-rodape-marca p { margin: 6px 0 0; max-width: 46ch; }
.pub-rodape nav { display: flex; flex-direction: column; gap: 6px; align-items: flex-start; }
.pub-rodape nav b { color: var(--v2-ink-2); font-size: 12.5px; font-weight: 600; margin-bottom: 2px; }
body.v2.pub .pub-rodape a { color: var(--v2-muted); }
body.v2.pub .pub-rodape a:hover { color: var(--v2-ink); }
.pub-link { background: none; border: 0; padding: 0; color: var(--v2-muted); font: inherit; cursor: pointer; text-align: left; }
.pub-link:hover { color: var(--v2-ink); text-decoration: underline; }
.pub-rodape-fim { margin: 24px 0 0; padding-top: 16px; border-top: 1px solid var(--v2-linha); font-size: 12px; color: var(--v2-muted-2); }

/* ------------------------------------------------------------------ (2) site público */
.v2-btn.grande { height: 44px; padding: 0 18px; font-size: 15px; border-radius: 11px; }
.pub-main h1 { font-size: 30px; line-height: 1.15; letter-spacing: -.5px; margin: 0 0 10px; font-weight: 700; }
.pub-main h2 { font-size: 22px; line-height: 1.2; letter-spacing: -.3px; margin: 0 0 14px; font-weight: 700; }
.pub-main h3 { font-size: 16px; line-height: 1.3; margin: 0 0 6px; font-weight: 650; }
.pub-lead { font-size: 18px; line-height: 1.5; color: var(--v2-ink-2); max-width: 62ch; margin: 0 0 24px; }
.pub-nota { font-size: 13px; color: var(--v2-muted); margin: 12px 0 0; }
.pub-cta { display: flex; flex-wrap: wrap; gap: 10px; }
.pub-secao { margin-top: 80px; }
.pub-duas { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 48px; }
.pub-duas ul { margin: 10px 0 0; padding-left: 18px; color: var(--v2-ink-2); }
.pub-duas li { margin: 8px 0; }
.pub-duas p { margin: 0; color: var(--v2-ink-2); }

/* landing: a manchete e a ficha da base lado a lado; a ficha lê como uma página com notas de rodapé (o número e a fonte dele) */
.pub-hero { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 56px; align-items: start; padding-top: 40px; }
.pub-hero h1 { font-size: clamp(34px, 4.8vw, 54px); line-height: 1.04; letter-spacing: -1.4px; max-width: 15ch; margin-bottom: 20px; }
.pub-ficha { background: var(--v2-card); border: 1px solid var(--v2-linha); border-radius: var(--v2-raio); padding: 22px 24px 18px;
  box-shadow: var(--v2-sombra); }
.pub-main .pub-ficha h2 { font-size: 15px; letter-spacing: -.1px; margin: 0 0 2px; }
.pub-ficha-sub { margin: 0 0 14px; font-size: 13px; color: var(--v2-muted); }
/* tabela de duas colunas: a coluna do número tem a largura do maior número, alinhado à direita (as casas batem) */
.pub-ficha-linhas { list-style: none; margin: 0; padding: 0; display: table; width: 100%; border-collapse: collapse; }
.pub-ficha-linhas li { display: table-row; border-top: 1px solid var(--v2-linha); }
.pub-ficha-linhas li:first-child { border-top: 0; }
.pub-ficha-linhas .n, .pub-ficha-linhas .r { display: table-cell; padding: 9px 0; vertical-align: baseline; }
.pub-ficha-linhas .n { padding-right: 14px; font-size: 22px; font-weight: 700; letter-spacing: -.4px; text-align: right;
  font-variant-numeric: tabular-nums; white-space: nowrap; width: 1%; }
.pub-ficha-linhas .r { color: var(--v2-ink-2); }
.pub-ficha-linhas .r small { display: block; color: var(--v2-muted); font-size: 12px; }
.pub-ficha-linhas li.indisp .n { color: var(--v2-indisp); }
.pub-ficha-linhas sup { font-size: 10.5px; margin-left: 2px; }
body.v2.pub .pub-ficha-linhas sup a { color: var(--v2-azul-2); }
.pub-ficha-fontes { margin: 14px 0 0; padding: 12px 0 0 18px; border-top: 1px solid var(--v2-linha-forte); font-size: 12px; color: var(--v2-muted);
  line-height: 1.45; }
.pub-ficha-fontes li { margin: 3px 0; }
.pub-ficha-fontes li:target { color: var(--v2-ink); }
.pub-ficha-vazia { margin: 8px 0 0; color: var(--v2-muted); }
.pub-areas { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px 40px; margin: 0; }
.pub-areas dt { font-weight: 650; font-size: 16px; }
.pub-areas dd { margin: 6px 0 0; color: var(--v2-ink-2); font-size: 14.5px; }
.pub-regras { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px 40px; }
.pub-regras > div { border-top: 2px solid var(--v2-azul); padding-top: 14px; }
.pub-regras p { margin: 0; color: var(--v2-ink-2); }
.pub-fecho { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: 32px 56px; margin-top: 88px; padding: 32px;
  border-radius: var(--v2-raio); background: var(--v2-card); border: 1px solid var(--v2-linha); }
.pub-fecho p { color: var(--v2-ink-2); margin: 0 0 18px; }
.pub-main .pub-fecho h2 { font-size: 20px; }

/* preços */
.pub-cab { max-width: 760px; }
.pub-planos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 8px; align-items: stretch; }
.pub-plano { display: flex; flex-direction: column; gap: 6px; background: var(--v2-card); border: 1px solid var(--v2-linha); border-radius: var(--v2-raio);
  padding: 22px; min-width: 0; }
.pub-plano.destaque { border-color: var(--v2-azul-borda); box-shadow: inset 0 0 0 1px var(--v2-azul-borda); }
.pub-main .pub-plano h2 { font-size: 17px; margin: 0; }
.pub-preco { margin: 4px 0 0; }
.pub-preco .valor { font-size: 30px; font-weight: 700; letter-spacing: -.6px; font-variant-numeric: tabular-nums; }
.pub-preco .valor.sem { font-size: 17px; font-weight: 600; letter-spacing: 0; color: var(--v2-ink-2); }
.pub-preco .per { color: var(--v2-muted); font-size: 14px; }
.pub-preco-anual { margin: 0; font-size: 13.5px; color: var(--v2-ink-2); }
.pub-plano-quem { margin: 8px 0 0; color: var(--v2-muted); font-size: 14px; }
.pub-plano-acao { margin-top: auto; padding-top: 16px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.pub-plano-acao form { margin: 0; }
.pub-comparar tbody th { position: static; background: none; color: var(--v2-ink); font-weight: 500; font-size: 13px; white-space: normal; }
.pub-comparar td { font-size: 13px; }
.pub-rodape-nota { margin: 40px 0 0; color: var(--v2-muted); font-size: 13px; }

/* erro (404, 410, 5xx) */
.pub-erro { max-width: 600px; margin: 48px auto; padding: 28px; }
.pub-erro h1 { font-size: 26px; }
.pub-erro p { color: var(--v2-ink-2); }
.pub-erro .pub-erro-codigo { margin: 0 0 6px; }
.pub-erro-acoes { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }

/* ------------------------------------------------------------------ (3) ponte para as páginas com classes V1 */
/* Variáveis da V1 apontando para os tokens do 2.0: newsletter, termos, login, lista de espera, CRA e equipe leem a paleta nova. */
body.v2.pub { --green: var(--v2-azul-2); --green-2: var(--v2-azul); --mint: var(--v2-azul-borda); --soft: var(--v2-azul-soft);
  --soft-2: var(--v2-card-2); --ink: var(--v2-ink); --muted: var(--v2-muted); --line: var(--v2-linha); --line-2: var(--v2-linha);
  --bg: var(--v2-bg); --panel: var(--v2-painel); --card: var(--v2-card); --card-on: var(--v2-card-on); --accent-soft: var(--v2-azul-soft);
  --mark: var(--v2-azul-soft); --deep: var(--v2-card-on); --cite-bg: var(--v2-azul-soft); --warn: var(--v2-neg); --ok: var(--v2-pos);
  --warn-bg: var(--v2-alerta-soft); --warn-line: var(--v2-alerta); --shadow: transparent; --r: var(--v2-raio); --on-accent: #fff; }
.pub-main .sub { color: var(--v2-muted); margin: 0 0 18px; }
.pub-main .muted { color: var(--v2-muted); }
.pub-main .small { font-size: 12.5px; }
.pub-main .mono { font-family: var(--v2-mono); font-size: 12px; }
.pub-main .flash { max-width: 760px; margin: 10px auto; background: var(--v2-azul-soft); border: 1px solid var(--v2-azul-borda); border-radius: var(--v2-raio-p);
  padding: 10px 14px; font-size: 13px; }
.pub-main .card, .pub-main .box { border: 1px solid var(--v2-linha); border-radius: var(--v2-raio); background: var(--v2-card); padding: 16px 18px; }
.pub-main .narrow { max-width: 440px; margin: 48px auto; }
.pub-main .kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; margin: 14px 0 22px; }
.pub-main .kpi { border: 1px solid var(--v2-linha); border-radius: var(--v2-raio); padding: 12px 14px; background: var(--v2-card); }
.pub-main .kpi .n { font-size: 22px; font-weight: 700; line-height: 1.1; }
.pub-main .kpi .l { font-size: 12px; color: var(--v2-muted); margin-top: 4px; }
.pub-main .wordmark { font-weight: 700; }
.pub-main .brandword { color: var(--v2-ink); letter-spacing: 4px; font-weight: 800; }
.pub-main label { display: block; font-size: 12.5px; color: var(--v2-muted); margin: 10px 0 4px; font-weight: 600; }
.pub-main label.check { display: flex; gap: 8px; align-items: flex-start; font-size: 14px; color: var(--v2-ink); font-weight: 500; }
.pub-main label.check input { width: auto; margin-top: 4px; }
.pub-main input:not([type=checkbox]):not([type=radio]):not([type=hidden]), .pub-main select, .pub-main textarea { width: 100%; font: inherit;
  font-size: 14px; padding: 9px 12px; border: 1px solid var(--v2-linha-forte); border-radius: var(--v2-raio-p); background: var(--v2-card-2);
  color: var(--v2-ink); outline: none; }
.pub-main input:focus, .pub-main select:focus, .pub-main textarea:focus { border-color: var(--v2-azul-borda); box-shadow: 0 0 0 3px var(--v2-azul-soft); }
.pub-main button:not([class]), .pub-main .ghost { font: inherit; font-size: 13.5px; cursor: pointer; background: var(--v2-card); color: var(--v2-ink);
  border: 1px solid var(--v2-linha-forte); padding: 8px 14px; border-radius: var(--v2-raio-p); font-weight: 600; text-decoration: none; display: inline-block; }
.pub-main .primary { font: inherit; font-size: 13.5px; cursor: pointer; background: var(--v2-azul); color: #fff; border: 1px solid var(--v2-azul);
  padding: 9px 16px; border-radius: var(--v2-raio-p); font-weight: 600; text-decoration: none; display: inline-block; }
.pub-main .primary:hover { background: var(--v2-azul-2); text-decoration: none; }
.pub-main .ghost:hover, .pub-main button:not([class]):hover { border-color: var(--v2-azul-borda); text-decoration: none; }
.pub-main .link { background: none; border: none; color: var(--v2-azul-2); text-decoration: underline; padding: 0; cursor: pointer; font: inherit; }
.pub-main .google-login { display: block; text-align: center; text-decoration: none; margin: 18px 0 4px; padding: 11px 16px; }
.pub-main form.inline { display: inline-flex; gap: 4px; align-items: center; margin: 0; }
.pub-main .filters { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 0 0 14px; }
.pub-main .filters input, .pub-main .filters select { width: auto; flex: 1 1 140px; }
.pub-main table:not(.v2-tabela) { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.pub-main table:not(.v2-tabela) th { text-align: left; font-size: 12px; color: var(--v2-muted); border-bottom: 1px solid var(--v2-linha); padding: 8px; font-weight: 600; }
.pub-main table:not(.v2-tabela) td { padding: 9px 8px; border-bottom: 1px solid var(--v2-linha); vertical-align: top; }
.pub-main td.num, .pub-main th.num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.pub-main .tbl { overflow-x: auto; border: 1px solid var(--v2-linha); border-radius: var(--v2-raio); background: var(--v2-card); }
.pub-main .tag { display: inline-block; font-size: 11px; border: 1px solid var(--v2-linha-forte); color: var(--v2-muted); border-radius: 999px; padding: 1px 8px;
  font-weight: 600; white-space: nowrap; }
.pub-main .tag.g, .pub-main .tag.m { border-color: var(--v2-azul-borda); color: var(--v2-azul-2); background: var(--v2-azul-soft); }
.pub-main .tag.w { border-color: var(--v2-alerta); color: var(--v2-alerta); background: var(--v2-alerta-soft); }
.pub-main .badge { display: inline-block; font-size: 11px; color: var(--v2-azul-2); background: var(--v2-azul-soft); border-radius: 999px; padding: 1px 8px; }
.pub-main .item { padding: 10px 0; border-bottom: 1px solid var(--v2-linha); }
.pub-main .item .t { font-weight: 600; }
.pub-main .empty { color: var(--v2-muted); text-align: center; padding: 40px 0; }
.pub-main .pager { display: flex; gap: 10px; align-items: center; margin: 14px 0; font-size: 13px; }
.pub-main .chips { display: flex; flex-wrap: wrap; gap: 6px; }
.pub-main .chip { font-size: 12px; border: 1px solid var(--v2-linha); border-radius: 999px; padding: 3px 10px; color: var(--v2-ink); }
.pub-main mark { background: var(--v2-azul-soft); color: inherit; padding: 0 2px; }
.pub-main .hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
/* termos e privacidade (texto da frente L) */
.pub-main .legal { max-width: 72ch; margin: 8px auto 40px; line-height: 1.7; }
.pub-main .legal h1 { font-size: 30px; }
.pub-main .legal h2 { font-size: 18px; margin-top: 30px; }
.pub-main .legal li { margin: 4px 0; }
/* lista de espera e equipe */
.pub-main .espera { max-width: 560px; margin: 40px auto; }
.pub-main .espera fieldset { border: 0; padding: 0; margin: 0 0 6px; }
.pub-main .espera legend { margin-bottom: 6px; }
.pub-main .espera .publico { display: grid; grid-template-columns: auto 1fr; column-gap: 8px; align-items: baseline; border: 1px solid var(--v2-linha-forte);
  border-radius: var(--v2-raio-p); padding: 10px 12px; margin: 0 0 8px; cursor: pointer; }
.pub-main .espera .publico span { grid-column: 2; }
.pub-main .espera .publico:has(input:checked) { border-color: var(--v2-azul-borda); background: var(--v2-azul-soft); }
.pub-main .espera-form:not(:has(input[value=institucional]:checked)) .inst { display: none; }
.pub-main .landing-cta { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 10px; }
.pub-main .landing-cta a { padding: 11px 18px; font-size: 15px; }
.pub-main .landing-foot { margin-top: 26px; }
/* newsletter (sessão do boletim): as regras da V1, agora sobre os tokens */
.pub-main .nl { max-width: 980px; margin: 0 auto; }
.pub-main .nl-hero { padding: 32px 0 18px; }
.pub-main .nl-hero h1 { font-size: 34px; line-height: 1.15; font-weight: 700; letter-spacing: -.6px; margin: 12px 0; max-width: 760px; }
.pub-main .nl-hero .lead, .pub-main .lead { font-size: 17px; color: var(--v2-ink-2); max-width: 720px; margin: 0 0 18px; }
.pub-main .nl-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; margin: 10px 0 6px; }
.pub-main .nl-ed { border: 1px solid var(--v2-linha); border-radius: var(--v2-raio); background: var(--v2-card); padding: 14px 16px; display: flex;
  flex-direction: column; gap: 6px; min-width: 0; }
.pub-main .nl-ed b { color: var(--v2-azul-2); font-size: 15px; }
.pub-main .nl-ed .cad { font-size: 12px; color: var(--v2-muted); font-weight: 600; }
.pub-main .nl-ed p { margin: 0; font-size: 13px; line-height: 1.5; }
.pub-main .nl-ed .quem { margin-top: auto; padding-top: 6px; }
.pub-main .nl-ed.breve { border-style: dashed; }
.pub-main .nl-ed.breve b, .pub-main .nl-form .tipo.breve b { color: var(--v2-muted); }
.pub-main .nl-two { display: grid; grid-template-columns: 1.1fr .9fr; gap: 22px; align-items: start; margin-top: 18px; }
.pub-main .nl-two > div { min-width: 0; }
.pub-main .nl-form .tipos { display: grid; gap: 6px; margin: 4px 0 8px; }
.pub-main .nl-form .tipo { display: grid; grid-template-columns: auto 1fr; column-gap: 8px; align-items: baseline; border: 1px solid var(--v2-linha-forte);
  border-radius: var(--v2-raio-p); padding: 9px 12px; cursor: pointer; font-size: 14px; }
.pub-main .nl-form .tipo input { width: auto; margin: 0; }
.pub-main .nl-form .tipo span { grid-column: 2; }
.pub-main .nl-form .tipo:has(input:checked) { border-color: var(--v2-azul-borda); background: var(--v2-azul-soft); }
.pub-main .nl-ed .tag, .pub-main .nl-form .tipo .tag, .pub-main .nl-table .tag { font-size: 10px; vertical-align: middle; margin-left: 4px; }
.pub-main .nl-table td, .pub-main .nl-table th { font-size: 13px; }
.pub-main .nl-table .sim { color: var(--v2-pos); }
.pub-main .nl-table .nao { color: var(--v2-muted); }
.pub-main .nl-nao li { margin: 5px 0; }
.pub-main .nl-teaser .marca { display: inline-block; font-size: 11px; color: var(--v2-muted); border: 1px dashed var(--v2-linha-forte); border-radius: 999px;
  padding: 2px 10px; }
.pub-main .nl-teaser .sub { font-size: 16px; }
.pub-main .nl-teaser table { font-size: 13px; }

/* ------------------------------------------------------------------ celular */
@media (max-width: 960px) {
  .pub-hero { grid-template-columns: minmax(0, 1fr); gap: 32px; padding-top: 16px; }
  .pub-areas, .pub-regras { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pub-planos { grid-template-columns: minmax(0, 1fr); }
  .pub-rodape-grade { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pub-main .nl-two { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 640px) {
  .pub-topo { gap: 10px; padding: 8px 16px; flex-wrap: wrap; }
  .pub-marca-txt small, .pub-so-largo { display: none; }
  .pub-nav { order: 3; width: 100%; margin: 0 -10px; }
  .pub-main { padding: 20px 16px 56px; }
  .pub-hero h1 { letter-spacing: -.8px; }
  .pub-lead { font-size: 16.5px; }
  .pub-duas, .pub-areas, .pub-regras, .pub-fecho { grid-template-columns: minmax(0, 1fr); }
  .pub-secao { margin-top: 56px; }
  .pub-fecho { padding: 22px 18px; margin-top: 64px; }
  .pub-ficha { padding: 18px 16px 14px; }
  .pub-ficha-linhas .n { font-size: 19px; }
  .pub-rodape { padding: 28px 16px 24px; }
  .pub-rodape-grade { grid-template-columns: minmax(0, 1fr); }
  .pub-main .nl-hero h1 { font-size: 28px; }
}
@media (prefers-reduced-motion: reduce) { body.v2.pub * { scroll-behavior: auto !important; transition: none !important; } }
