/* ============================================================
   BADV — Componentes (identidade 2026)
   Tipografia suíça, preto sobre branco, um único traço vermelho.
   Regras: sem sombras, sem cantos arredondados em caixas,
   sem ícones decorativos, cor só via tokens.css.
   ============================================================ */

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; padding: 0; }

html {
  -webkit-text-size-adjust: 100%;
  scroll-padding-top: calc(var(--cabecalho-h-compacto) + var(--space-4));
}
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }

body {
  font-family: var(--fonte);
  font-size: var(--t-corpo-sm);
  line-height: var(--t-corpo-sm-lh);
  font-weight: var(--peso-normal);
  color: var(--tinta);
  background: var(--papel);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}

img, svg, picture, iframe { display: block; max-width: 100%; }
img { height: auto; }
ul, ol { list-style: none; }
button, input, textarea, select { font: inherit; color: inherit; }
button { cursor: pointer; background: none; border: 0; }
address { font-style: normal; }

a {
  color: inherit;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.2em;
  transition: color var(--rapido) var(--ease);
}
a:hover { color: var(--vermelho); }

:focus-visible {
  outline: var(--foco-largura) solid var(--foco);
  outline-offset: 2px;
}

::selection { background: var(--tinta); color: var(--papel); }

.sr-only {
  position: absolute; width: 1px; height: 1px; overflow: hidden;
  clip: rect(0 0 0 0); white-space: nowrap;
}

.pular {
  position: absolute; left: var(--gutter); top: -100px; z-index: 100;
  background: var(--tinta); color: var(--papel);
  padding: var(--space-2) var(--space-3); text-decoration: none;
}
.pular:focus { top: var(--space-2); color: var(--papel); }

/* ---------- Tipografia ---------- */
h1, h2, h3, h4 { font-weight: var(--peso-normal); text-wrap: balance; }

.display {
  font-size: var(--t-display);
  line-height: var(--t-display-lh);
  font-weight: var(--peso-leve);
  letter-spacing: -0.02em;
}
.titulo, h1, h2 {
  font-size: var(--t-titulo);
  line-height: var(--t-titulo-lh);
  letter-spacing: -0.01em;
}
.subtitulo, h3 {
  font-size: var(--t-subtitulo);
  line-height: var(--t-subtitulo-lh);
  font-weight: var(--peso-leve);
}
.corpo, .lead {
  font-size: var(--t-corpo);
  line-height: var(--t-corpo-lh);
}
.legenda {
  font-size: var(--t-legenda);
  line-height: var(--t-legenda-lh);
  color: var(--tinta-suave);
}
.suave { color: var(--tinta-suave); }

p { text-wrap: pretty; }
p + p { margin-top: var(--space-3); }

/* Rótulo: caixa-alta, 12px, 0,08em. Vermelho por padrão (a assinatura da seção);
   .rotulo--suave quando a seção já usa o fio ou a barra. */
.rotulo {
  display: block;
  font-size: var(--t-rotulo);
  line-height: var(--t-rotulo-lh);
  font-weight: var(--peso-forte);
  letter-spacing: var(--rotulo-tracking);
  text-transform: uppercase;
  color: var(--vermelho);
}
.rotulo--suave { color: var(--tinta-suave); }

/* ---------- Assinaturas gráficas ---------- */
/* Fio-assinatura: 8px, pontas arredondadas, acima do título, a 24px dele. */
.fio {
  display: block;
  width: clamp(64px, 12%, 120px);
  height: var(--space-2);
  border-radius: var(--radius-traco);
  background: var(--vermelho);
  margin-bottom: var(--space-4);
}

/* Barra diagonal: a perna do A. 22,83° da vertical (medido no A da Univers 55), degradê vivo → profundo. */
.barra {
  --barra-largura: 56px;
  --barra-altura: 420px;
  display: block;
  width: var(--barra-largura);
  height: var(--barra-altura);
  border-radius: calc(var(--barra-largura) / 2);
  background: linear-gradient(to bottom, var(--vermelho-vivo), var(--vermelho-profundo));
  transform: rotate(22.83deg);
  transform-origin: center;
}

/* ---------- Layout ---------- */
.wrap {
  width: 100%;
  max-width: calc(var(--largura-max) + 2 * var(--gutter));
  margin-inline: auto;
  padding-inline: var(--gutter);
}

.grade {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  column-gap: var(--coluna-gap);
}
.col-8  { grid-column: 1 / span 8; }
.col-4-fim { grid-column: 9 / span 4; }

.secao { padding-block: clamp(var(--space-6), 9vw, var(--space-8)); }
.secao--compacta { padding-block: var(--space-6); }
.secao--alt { background: var(--papel-2); }
.secao--noite { background: var(--noite); color: var(--sobre-noite); }
.secao + .secao:not(.secao--alt):not(.secao--noite) { border-top: var(--borda) solid var(--linha); }

.cabeca {
  grid-column: 1 / span 8;
  margin-bottom: var(--space-5);
}
.cabeca .rotulo, .cabeca .fio { margin-bottom: var(--space-4); }
.cabeca .lead { margin-top: var(--space-4); }
.cabeca--final, .chamada .cabeca { margin-bottom: 0; }

.acoes {
  display: flex; flex-wrap: wrap; gap: var(--space-3);
  margin-top: var(--space-5);
}

@media (max-width: 1024px) {
  .col-8, .cabeca { grid-column: 1 / -1; }
  .col-4-fim { grid-column: 1 / -1; }
}

/* ---------- Botões ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center;
  gap: var(--space-2);
  min-height: 48px;
  padding: 12px var(--space-4);
  border: var(--borda) solid var(--tinta);
  border-radius: var(--radius-0);
  font-size: var(--t-corpo-sm);
  line-height: 1.2;
  font-weight: var(--peso-normal);
  text-decoration: none;
  transition: background-color var(--rapido) var(--ease), color var(--rapido) var(--ease);
}
.btn--primario { background: var(--tinta); color: var(--papel); }
.btn--primario:hover { background: var(--papel); color: var(--tinta); }
.btn--secundario { background: transparent; color: var(--tinta); }
.btn--secundario:hover { background: var(--tinta); color: var(--papel); }
.btn--noite { border-color: var(--sobre-noite); color: var(--sobre-noite); background: transparent; }
.btn--noite:hover { background: var(--sobre-noite); color: var(--noite); }
.btn--pequeno { min-height: 40px; padding: 8px var(--space-3); font-size: var(--t-legenda); }
.btn[disabled] { opacity: .6; cursor: progress; }

/* Link com seta, para chamadas discretas */
.link-seta { text-decoration: none; border-bottom: var(--borda) solid currentColor; padding-bottom: 2px; }
.link-seta::after { content: " →"; }

/* ---------- Cabeçalho ---------- */
.cabecalho {
  position: sticky; top: 0; z-index: 50;
  background: var(--papel);
  border-bottom: var(--borda) solid transparent;
  transition: border-color var(--medio) var(--ease);
}
.cabecalho.is-compacto { border-bottom-color: var(--linha); }

.cabecalho__barra {
  display: flex; align-items: center; justify-content: space-between;
  gap: var(--space-4);
  height: var(--cabecalho-h);
  transition: height var(--medio) var(--ease);
}
.cabecalho.is-compacto .cabecalho__barra { height: var(--cabecalho-h-compacto); }

.logo { display: block; text-decoration: none; flex-shrink: 0; }
.logo img { height: auto; }
.logo__assinatura img { width: 220px; }
.logo__marca { display: none; }
.logo__marca img { width: 104px; }
.cabecalho.is-compacto .logo__assinatura { display: none; }
.cabecalho.is-compacto .logo__marca { display: block; }

.menu { display: flex; align-items: center; gap: var(--space-5); }
.menu a { text-decoration: none; }
.menu a:not(.btn)[aria-current="page"] {
  text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.35em;
}

.menu-botao {
  display: none;
  width: 44px; height: 44px;
  align-items: center; justify-content: center; flex-direction: column; gap: 6px;
}
.menu-botao span { display: block; width: 24px; height: 1px; background: var(--tinta); transition: transform var(--medio) var(--ease), opacity var(--medio); }
.menu-botao[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.menu-botao[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.menu-botao[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

.menu-movel {
  display: none;
  position: fixed; inset: var(--cabecalho-h-compacto) 0 0 0; z-index: 49;
  background: var(--papel);
  padding: var(--space-5) var(--gutter);
  border-top: var(--borda) solid var(--linha);
  overflow-y: auto;
}
.menu-movel.is-aberto { display: block; }
.menu-movel a {
  display: block;
  padding-block: var(--space-3);
  border-bottom: var(--borda) solid var(--linha);
  font-size: var(--t-subtitulo);
  font-weight: var(--peso-leve);
  text-decoration: none;
}
.menu-movel a[aria-current="page"] { color: var(--tinta-suave); }

@media (max-width: 900px) {
  .cabecalho__barra { height: var(--cabecalho-h-compacto); }
  .logo__assinatura { display: none; }
  .logo__marca { display: block; }
  .menu { display: none; }
  .menu-botao { display: inline-flex; }
}

/* ---------- Hero (home) ---------- */
.hero { padding-block: clamp(var(--space-6), 10vw, 160px) clamp(var(--space-6), 8vw, var(--space-8)); }
.hero__texto { grid-column: 1 / span 8; }
.hero__texto .rotulo { margin-bottom: var(--space-4); }
.hero__sintese { margin-top: var(--space-4); max-width: 36ch; color: var(--tinta-suave); }
/* As quatro áreas como índice numerado: 2×2, fios finos, link discreto */
.hero__areas ol {
  margin-top: var(--space-5);
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--coluna-gap);
}
.hero__areas li { border-top: var(--borda) solid var(--linha); }
.hero__areas li:nth-last-child(-n+2) { border-bottom: var(--borda) solid var(--linha); }
.hero__areas a {
  display: flex; align-items: baseline; gap: var(--space-3);
  padding-block: var(--space-3);
  text-decoration: none;
}
.hero__areas a::after { content: "→"; margin-left: auto; color: var(--tinta-suave); transition: transform var(--rapido) var(--ease), color var(--rapido) var(--ease); }
.hero__areas a:hover::after { color: var(--vermelho); transform: translateX(4px); }
.hero__num { color: var(--tinta-suave); font-variant-numeric: tabular-nums; font-size: var(--t-legenda); }
.hero__arte {
  grid-column: 10 / span 3;
  display: flex; align-items: center; justify-content: center;
}
@media (max-width: 1024px) {
  .hero__texto { grid-column: 1 / span 10; }
  .hero__arte { grid-column: 11 / span 2; }
  .hero__arte .barra { --barra-largura: 40px; --barra-altura: 300px; }
}
@media (max-width: 720px) {
  .hero__texto { grid-column: 1 / -1; }
  .hero__arte { display: none; }
  .hero__areas ol { grid-template-columns: 1fr; }
  .hero__areas li:nth-last-child(2) { border-bottom: 0; }
}

/* ---------- Fotografia ----------
   Fotos autorais em P&B, sem filtro, sombra, canto ou sobreposição. */
.foto, .area__foto, .servico__foto, .pessoa__foto { display: block; background: var(--papel-2); overflow: hidden; }
.area__foto img, .servico__foto img, .pessoa__foto img {
  display: block; width: 100%; height: 100%; object-fit: cover;
}

/* ---------- Cabeçalho de página interna ---------- */
.abertura { background: var(--papel-2); padding-block: var(--space-6) clamp(var(--space-5), 6vw, var(--space-7)); }
.abertura__texto { grid-column: 1 / span 8; }
.migalhas { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-bottom: var(--space-5); }
.migalhas a { color: var(--tinta-suave); }
.migalhas a:hover { color: var(--vermelho); }
@media (max-width: 1024px) { .abertura__texto { grid-column: 1 / -1; } }

/* ---------- Pilares / colunas de texto ---------- */
.colunas {
  grid-column: 1 / -1;
  display: grid; gap: var(--space-5) var(--coluna-gap);
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.colunas--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.colunas--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1024px) {
  .colunas, .colunas--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
  .colunas, .colunas--2, .colunas--4 { grid-template-columns: 1fr; }
}

.pilar { border-top: var(--borda) solid var(--tinta); padding-top: var(--space-4); }
.pilar h3 { font-size: 1.375rem; line-height: 1.3; font-weight: var(--peso-normal); margin-bottom: var(--space-3); }
.pilar p { color: var(--tinta-suave); }
.pilar .lista { margin-top: var(--space-4); }

.lista li {
  padding-block: var(--space-2);
  border-top: var(--borda) solid var(--linha);
}
.lista li:last-child { border-bottom: var(--borda) solid var(--linha); }

.mais { grid-column: 1 / -1; margin-top: var(--space-5); }

/* ---------- Números ---------- */
.numeros {
  grid-column: 1 / -1;
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--coluna-gap);
}
.numero { border-top: var(--borda) solid var(--tinta); padding-top: var(--space-4); }
.numero__valor {
  display: block;
  font-size: var(--t-display); line-height: var(--t-display-lh);
  font-weight: var(--peso-leve); letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums;
}
.numero--chave .numero__valor { color: var(--vermelho); }
.numero__legenda { display: block; margin-top: var(--space-2); }
@media (max-width: 720px) { .numeros { grid-template-columns: 1fr; gap: var(--space-4); } }

/* ---------- Passos (Como trabalhamos) ---------- */
.passo__num {
  display: block;
  font-size: var(--t-subtitulo); line-height: 1; font-weight: var(--peso-leve);
  color: var(--tinta-suave);
  font-variant-numeric: tabular-nums;
  margin-bottom: var(--space-4);
}

/* ---------- Cartões de área ---------- */
.area {
  display: flex; flex-direction: column;
  border-top: var(--borda) solid var(--tinta);
  padding-top: var(--space-4);
  text-decoration: none;
  min-height: 100%;
}
.area__etiquetas { margin-bottom: var(--space-3); }
/* Com foto: a foto abre o cartão e o fio preto passa para baixo dela */
.area:has(.area__foto) { border-top: 0; padding-top: 0; }
.area__foto { aspect-ratio: 4 / 3; margin-bottom: var(--space-3); }
.area:has(.area__foto) .area__etiquetas { display: block; padding-top: var(--space-3); border-top: var(--borda) solid var(--tinta); }
.area h3 { font-size: 1.375rem; line-height: 1.3; font-weight: var(--peso-normal); margin-bottom: var(--space-2); transition: color var(--rapido) var(--ease); }
.area p { color: var(--tinta-suave); flex-grow: 1; }
.area .link-seta { align-self: flex-start; margin-top: var(--space-4); font-size: var(--t-legenda); }
.area:hover { color: inherit; }
.area:hover h3, .area:hover .link-seta { color: var(--vermelho); }

/* Etiquetas: texto corrido em legenda, separadas por ponto médio */
.etiquetas { font-size: var(--t-legenda); line-height: var(--t-legenda-lh); color: var(--tinta-suave); }
.etiquetas span + span::before { content: " · "; }

/* ---------- Chamada (noite) ---------- */
.chamada .cabeca { margin-bottom: 0; }
.chamada p { color: var(--sobre-noite-suave); }
.chamada a:not(.btn):hover { color: var(--sobre-noite); }

/* ---------- Áreas: navegação e linhas de serviço ---------- */
.indice {
  border-bottom: var(--borda) solid var(--linha);
  background: var(--papel);
}
.indice ul { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-5); padding-block: var(--space-3); }
.indice a { text-decoration: none; color: var(--tinta-suave); }
.indice a:hover { color: var(--vermelho); }

.servico { padding-block: clamp(var(--space-5), 6vw, var(--space-7)); border-top: var(--borda) solid var(--linha); }
.servico:first-child { border-top: 0; }
/* Capa da área: foto panorâmica com a chamada sobreposta num véu translúcido.
   O véu é papel a ~84% com desfoque da foto por trás; sem suporte a desfoque,
   vira papel sólido. Sem sombra e sem canto arredondado. */
.servico__capa { position: relative; }
.servico__foto { aspect-ratio: 21 / 9; }
.servico__chamada {
  position: absolute; left: var(--space-5); bottom: var(--space-5);
  width: min(600px, calc(100% - 2 * var(--space-5)));
  padding: var(--space-5);
  background: var(--veu);
  -webkit-backdrop-filter: blur(var(--veu-desfoque)) saturate(1.1);
  backdrop-filter: blur(var(--veu-desfoque)) saturate(1.1);
}
/* Quando o assunto da foto está à esquerda, o véu vai para a direita */
.servico__capa--direita .servico__chamada { left: auto; right: var(--space-5); }
@media (max-width: 1024px) { .servico__capa--direita .servico__chamada { right: var(--space-4); } }
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .servico__chamada { background: var(--papel); }
}
.servico__meta { display: flex; align-items: baseline; gap: var(--space-3); margin-bottom: var(--space-3); }
.servico__meta .passo__num { margin-bottom: 0; font-size: var(--t-subtitulo); }
.servico__chamada h2 { font-size: clamp(1.75rem, 1.4rem + 1.2vw, 2.5rem); line-height: 1.15; }
.servico__chamada .subtitulo { font-size: clamp(1.125rem, 1rem + .4vw, 1.375rem); line-height: 1.4; color: var(--tinta-suave); margin-top: var(--space-2); }

.servico__corpo { grid-column: 1 / span 8; margin-top: var(--space-5); }
.servico__corpo .texto { margin-top: 0; }
.servico__corpo .etiquetas { margin-top: var(--space-5); }

@media (max-width: 1024px) {
  .servico__foto { aspect-ratio: 16 / 9; }
  .servico__chamada { left: var(--space-4); bottom: var(--space-4); width: min(520px, calc(100% - 2 * var(--space-4))); padding: var(--space-4); }
  .servico__corpo { grid-column: 1 / -1; }
}
/* No celular o véu desce e encosta só na borda inferior da foto */
@media (max-width: 720px) {
  .servico__foto { aspect-ratio: 3 / 2; }
  .servico__chamada {
    position: relative; left: auto; bottom: auto; width: auto;
    margin: calc(-1 * var(--space-6)) var(--space-3) 0;
    padding: var(--space-4) var(--space-3);
  }
  .servico__capa--direita .servico__chamada { right: auto; }
  .servico__corpo { margin-top: var(--space-4); }
}

/* ---------- Texto longo ---------- */
.texto { max-width: 68ch; }
.texto > * + * { margin-top: var(--space-3); }
.texto h2 { font-size: var(--t-subtitulo); line-height: var(--t-subtitulo-lh); font-weight: var(--peso-normal); margin-top: var(--space-5); }
.texto h2:first-child { margin-top: 0; }
.texto h3 { font-size: 1.25rem; line-height: 1.4; font-weight: var(--peso-normal); margin-top: var(--space-5); }
.texto h4 { font-size: 1rem; font-weight: var(--peso-forte); margin-top: var(--space-4); }
.texto ul { border-top: var(--borda) solid var(--linha); }
.texto ul li { padding-block: var(--space-2); border-bottom: var(--borda) solid var(--linha); }
.texto hr { border: 0; border-top: var(--borda) solid var(--linha); margin-block: var(--space-5); }
.texto code { font-size: .9em; background: var(--papel-2); padding: 0 .3em; }
.servico .texto { margin-top: var(--space-4); }

/* ---------- Equipe ---------- */
.pessoa__foto, .pessoa__iniciais {
  aspect-ratio: 4 / 5; width: 100%;
  margin-bottom: var(--space-3);
  background: var(--papel);
}
.pessoa__iniciais {
  display: flex; align-items: flex-end; padding: var(--space-3);
  font-size: var(--t-titulo); font-weight: var(--peso-leve); line-height: 1;
  color: var(--tinta-suave);
}
.pessoa h3 { font-size: 1.25rem; line-height: 1.35; font-weight: var(--peso-normal); }
.pessoa .legenda { margin-top: var(--space-1); }
.pessoa a { display: inline-block; margin-top: var(--space-2); font-size: var(--t-legenda); word-break: break-all; }
/* Cartão com biografia: foto à esquerda, texto à direita */
.pessoa--bio {
  display: grid; grid-template-columns: 160px minmax(0, 1fr); grid-template-rows: auto auto 1fr;
  column-gap: var(--space-4); align-items: start;
  border-top: var(--borda) solid var(--tinta); padding-top: var(--space-4);
}
.pessoa--bio > .pessoa__foto, .pessoa--bio > .pessoa__iniciais { grid-row: 1 / span 3; margin-bottom: 0; }
.pessoa--bio > :not(.pessoa__foto):not(.pessoa__iniciais) { grid-column: 2; }
.pessoa__bio { margin-top: var(--space-3); }
.pessoa__bio p { font-size: var(--t-corpo-sm); line-height: var(--t-corpo-sm-lh); }
@media (max-width: 1024px) and (min-width: 721px) { .pessoa--bio { grid-template-columns: 120px minmax(0, 1fr); } }
@media (max-width: 720px) {
  .pessoa.pessoa--bio { grid-template-columns: 96px minmax(0, 1fr); grid-template-rows: auto 1fr auto; }
  .pessoa.pessoa--bio > .pessoa__foto, .pessoa.pessoa--bio > .pessoa__iniciais { grid-row: 1 / span 2; }
  .pessoa.pessoa--bio > div.pessoa__bio { grid-column: 1 / -1; grid-row: 3; }
  /* listas curtas (rede de parceiros) ficam em 2 colunas no celular */
  .colunas.colunas--compactas { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4) var(--space-3); }
  .colunas--compactas .pilar h3 { font-size: 1.125rem; }
}

@media (max-width: 720px) {
  .pessoa { display: grid; grid-template-columns: 96px minmax(0, 1fr); grid-template-rows: auto auto 1fr; column-gap: var(--space-3); align-items: start; }
  .pessoa > :not(.pessoa__foto):not(.pessoa__iniciais) { grid-column: 2; }
  .pessoa__foto, .pessoa__iniciais { grid-row: 1 / span 3; margin-bottom: 0; }
  .pessoa__iniciais { font-size: var(--t-subtitulo); padding: var(--space-2); }
}

/* ---------- Contato ---------- */
.contato__info { grid-column: 1 / span 5; }
.contato__form { grid-column: 7 / span 6; }
@media (max-width: 1024px) {
  .contato__info, .contato__form { grid-column: 1 / -1; }
  .contato__form { margin-top: var(--space-6); }
}
.dado { padding-block: var(--space-3); border-top: var(--borda) solid var(--linha); }
.dado:last-of-type { border-bottom: var(--borda) solid var(--linha); }
.dado .rotulo { margin-bottom: var(--space-1); }
.mapa { margin-top: var(--space-5); aspect-ratio: 4 / 3; background: var(--papel-2); }
.mapa iframe { width: 100%; height: 100%; border: 0; filter: grayscale(1); }

/* ---------- Formulário ---------- */
.form h2 { font-size: var(--t-subtitulo); line-height: var(--t-subtitulo-lh); font-weight: var(--peso-normal); margin-bottom: var(--space-5); }
.campo { display: flex; flex-direction: column; gap: var(--space-2); margin-bottom: var(--space-4); }
.campo label { font-size: var(--t-legenda); line-height: var(--t-legenda-lh); }
.campo .req { color: var(--tinta-suave); }
.campo input:not([type="checkbox"]), .campo textarea {
  width: 100%;
  padding: 12px 14px;
  border: var(--borda) solid var(--tinta-suave);
  border-radius: var(--radius-0);
  background: var(--papel);
  font-size: var(--t-corpo-sm);
  line-height: 1.5;
  -webkit-appearance: none; appearance: none;
}
.campo textarea { resize: vertical; min-height: 9rem; }
.campo input:not([type="checkbox"]):hover, .campo textarea:hover { border-color: var(--tinta); }
.campo input:not([type="checkbox"]):focus-visible, .campo textarea:focus-visible { outline-offset: 0; border-color: var(--tinta); }
.campo input::placeholder, .campo textarea::placeholder { color: var(--tinta-suave); opacity: 1; }
.campo .erro-msg { display: none; font-size: var(--t-legenda); color: var(--vermelho); }
.campo .error { border-color: var(--vermelho); }
.campo .error ~ .erro-msg, .campo:has(.error) > .erro-msg { display: block; }

.consentimento { display: flex; gap: var(--space-3); align-items: flex-start; margin-bottom: var(--space-5); font-size: var(--t-legenda); line-height: 1.5; color: var(--tinta-suave); }
/* Checkbox nativo (com o ✓ do sistema), na cor tinta */
.consentimento input[type="checkbox"] { -webkit-appearance: auto; appearance: auto; width: 20px; height: 20px; margin: 1px 0 0; padding: 0; flex-shrink: 0; accent-color: var(--tinta); cursor: pointer; }
.consentimento input.error { outline: var(--foco-largura) solid var(--vermelho); outline-offset: 2px; }
.consentimento label { cursor: pointer; }

.honeypot { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.aviso { display: none; margin-top: var(--space-4); padding: var(--space-3); border-left: var(--space-1) solid var(--tinta); background: var(--papel-2); }
.aviso p[hidden] + p { margin-top: 0; }
.aviso.visible { display: block; }
.aviso--erro { border-left-color: var(--vermelho); }

/* ---------- Rodapé ---------- */
.rodape { border-top: var(--borda) solid var(--linha); padding-block: var(--space-6) var(--space-5); }
.rodape__grade { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: var(--space-5) var(--coluna-gap); }
.rodape .logo img { width: 200px; }
.rodape .rotulo { margin-bottom: var(--space-3); }
.rodape address, .rodape li { line-height: 1.75; }
.rodape__pe {
  display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--space-3);
  margin-top: var(--space-6); padding-top: var(--space-4);
  border-top: var(--borda) solid var(--linha);
}
.rodape__pe ul { display: flex; gap: var(--space-4); }
.rodape__pe a { color: var(--tinta-suave); }
@media (max-width: 1024px) { .rodape__grade { grid-template-columns: 1fr 1fr; } .rodape__marca { grid-column: 1 / -1; } }
@media (max-width: 520px) { .rodape__grade { grid-template-columns: 1fr; } }

/* ---------- Banner de cookies ---------- */
.cookies {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 60;
  background: var(--papel);
  border-top: var(--borda) solid var(--tinta);
  padding: var(--space-3) var(--gutter);
  display: none;
  align-items: center; justify-content: space-between; flex-wrap: wrap; gap: var(--space-3);
}
.cookies.visible { display: flex; }
.cookies p { font-size: var(--t-legenda); line-height: 1.5; max-width: 70ch; }
.cookies__acoes { display: flex; gap: var(--space-2); }

/* ---------- Voltar ao topo ---------- */
.topo {
  position: fixed; right: var(--gutter); bottom: var(--space-4); z-index: 40;
  width: 44px; height: 44px;
  display: none; align-items: center; justify-content: center;
  background: var(--papel); color: var(--tinta);
  border: var(--borda) solid var(--tinta);
  font-size: 1.125rem; line-height: 1;
}
.topo.visible { display: inline-flex; }
.topo:hover { background: var(--tinta); color: var(--papel); }

/* ---------- 404 ---------- */
.erro { min-height: calc(100vh - var(--cabecalho-h)); display: flex; align-items: center; }
.erro .hero__texto .lead { margin-top: var(--space-4); color: var(--tinta-suave); }
