/* Páginas legais (privacidade, termos, exclusão de dados).
 *
 * Texto corrido longo é um problema diferente do resto do site: aqui ninguém
 * navega, as pessoas leem — ou, mais provavelmente, procuram um parágrafo
 * específico. Por isso a medida é curta, os títulos ficam ancorados e o sumário
 * é a primeira coisa depois do cabeçalho.
 */

.legal {
  padding-block: var(--space-8) var(--space-9);
}

.legal-inner {
  width: min(100%, 48rem);
  margin-inline: auto;
}

.legal-eyebrow {
  font-family: var(--font-mono);
  font-size: var(--text-small);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-signal);
  margin-bottom: var(--space-3);
}

.legal h1 {
  font-size: clamp(2.1rem, 4.6vw, 3.25rem);
  line-height: 1.1;
  margin-bottom: var(--space-4);
}

.legal-lead {
  font-size: var(--text-lead);
  color: var(--color-mist);
  margin-bottom: var(--space-5);
}

.legal-meta {
  font-family: var(--font-mono);
  font-size: var(--text-small);
  color: var(--color-muted);
  padding-block: var(--space-4);
  border-top: 1px solid var(--color-line);
  border-bottom: 1px solid var(--color-line);
  margin-bottom: var(--space-7);
}

/* Sumário: numeração automática para não desencontrar dos títulos. */
.legal-toc {
  counter-reset: toc;
  list-style: none;
  padding: var(--space-5);
  margin-bottom: var(--space-8);
  border: 1px solid var(--color-line);
  border-radius: var(--radius-medium);
  background: color-mix(in oklab, var(--color-deep) 35%, transparent);
}

.legal-toc li {
  counter-increment: toc;
  margin-block: var(--space-2);
}

.legal-toc li::before {
  content: counter(toc) ".";
  font-family: var(--font-mono);
  font-size: var(--text-small);
  color: var(--color-muted);
  margin-right: var(--space-3);
}

.legal-toc a {
  color: var(--color-ice);
  text-decoration-color: var(--color-line-strong);
  text-underline-offset: 0.2em;
}

.legal-toc a:hover {
  color: var(--color-signal-strong);
}

.legal section {
  counter-increment: sec;
  margin-bottom: var(--space-7);
  scroll-margin-top: calc(var(--header-height) + var(--space-5));
}

.legal-body {
  counter-reset: sec;
}

.legal section h2 {
  font-size: var(--text-h3);
  line-height: 1.2;
  margin-bottom: var(--space-4);
  padding-top: var(--space-5);
  border-top: 1px solid var(--color-line);
}

.legal section h2::before {
  content: counter(sec) ". ";
  font-family: var(--font-mono);
  font-size: 0.7em;
  color: var(--color-signal);
  vertical-align: 0.15em;
}

.legal h3 {
  font-size: 1.05rem;
  margin-block: var(--space-5) var(--space-3);
  color: var(--color-ice);
}

.legal p,
.legal li {
  color: var(--color-mist);
  line-height: 1.7;
}

.legal p {
  margin-bottom: var(--space-4);
}

.legal ul,
.legal ol {
  margin-bottom: var(--space-4);
  padding-left: var(--space-5);
}

.legal li {
  margin-bottom: var(--space-2);
}

.legal a {
  color: var(--color-signal-strong);
  text-underline-offset: 0.2em;
}

.legal strong {
  color: var(--color-ice);
  font-weight: 600;
}

/* Bloco de destaque: o passo prático que a pessoa veio buscar. */
.legal-callout {
  padding: var(--space-5);
  margin-bottom: var(--space-5);
  border: 1px solid var(--color-line-strong);
  border-left: 3px solid var(--color-accent);
  border-radius: var(--radius-small);
  background: color-mix(in oklab, var(--color-deep) 45%, transparent);
}

.legal-callout p:last-child {
  margin-bottom: 0;
}

.legal-contact {
  font-family: var(--font-mono);
  font-size: 1.05rem;
  word-break: break-word;
}

/* Tabelas de dados tratados / prazos. Rolam sozinhas no celular. */
.legal-table-wrap {
  overflow-x: auto;
  margin-bottom: var(--space-5);
  border: 1px solid var(--color-line);
  border-radius: var(--radius-small);
}

.legal table {
  width: 100%;
  min-width: 32rem;
  border-collapse: collapse;
  font-size: 0.9375rem;
}

.legal th,
.legal td {
  padding: var(--space-3) var(--space-4);
  text-align: left;
  border-bottom: 1px solid var(--color-line);
  color: var(--color-mist);
  vertical-align: top;
}

.legal th {
  font-family: var(--font-mono);
  font-size: var(--text-small);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--color-ice);
  background: color-mix(in oklab, var(--color-deep) 40%, transparent);
}

.legal tbody tr:last-child td {
  border-bottom: 0;
}

/* Navegação entre as três páginas legais. */
.legal-related {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  padding-top: var(--space-6);
  border-top: 1px solid var(--color-line);
}

.legal-related a {
  padding: var(--space-2) var(--space-4);
  border: 1px solid var(--color-line-strong);
  border-radius: var(--radius-pill);
  font-size: var(--text-small);
  color: var(--color-ice);
  text-decoration: none;
  transition: border-color var(--duration-fast) var(--ease-out),
              color var(--duration-fast) var(--ease-out);
}

.legal-related a:hover {
  border-color: var(--color-signal);
  color: var(--color-signal-strong);
}

/* Links legais no rodapé do site. */
.footer-legal {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-4);
  margin-block: var(--space-4);
}

.footer-legal a {
  font-size: var(--text-small);
  color: var(--color-mist);
  text-underline-offset: 0.2em;
}

.footer-legal a:hover {
  color: var(--color-signal-strong);
}
