/* ============================================================
   LEGAL — estilo das páginas de documentos (Termos, Privacidade,
   Consentimento). Reaproveita os tokens da marca (tokens.css).
   Layout de leitura: coluna única, ~70ch, hierarquia tipográfica.
   ============================================================ */

.legal-body {
  margin: 0;
  background: var(--cinza-claro);
  color: var(--texto);
  font-family: var(--font-ui);
  line-height: var(--lh-normal);
  -webkit-font-smoothing: antialiased;
}

/* ---- Topo ---- */
.legal-top {
  background: var(--vinho);
  color: #fff;
  padding: var(--sp-4) var(--sp-5);
}
.legal-top__inner {
  max-width: 820px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-4);
}
.legal-logo {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  color: #fff;
}
.legal-logo img { width: 30px; height: 30px; object-fit: contain; }
.legal-logo__word {
  font-family: var(--font-display);
  font-size: 1.25rem;
  font-weight: 700;
}
.legal-back {
  color: rgba(255, 255, 255, 0.9);
  text-decoration: none;
  font-size: var(--fs-sm);
  font-weight: 600;
  white-space: nowrap;
}
.legal-back:hover { color: #fff; text-decoration: underline; }

/* ---- Folha do documento ---- */
.legal-sheet {
  max-width: 820px;
  margin: var(--sp-6) auto var(--sp-8);
  background: #fff;
  border: 1px solid var(--cinza-borda);
  border-radius: var(--radius-card);
  box-shadow: var(--shadow-md);
  padding: clamp(24px, 5vw, 56px);
}

.legal-eyebrow {
  text-transform: uppercase;
  letter-spacing: 0.16em;
  font-size: var(--fs-caption);
  font-weight: 700;
  color: var(--vinho);
  margin: 0 0 10px;
}
.legal-sheet h1 {
  font-family: var(--font-display);
  font-size: clamp(1.7rem, 4vw, 2.3rem);
  line-height: var(--lh-tight);
  margin: 0 0 8px;
  color: var(--vinho-escuro);
  text-wrap: balance;
}
.legal-updated {
  font-size: var(--fs-sm);
  color: var(--texto-sutil);
  margin: 0 0 var(--sp-5);
}

/* Aviso de revisão jurídica */
.legal-note {
  background: #fbf1dd;
  border: 1px solid #e6cf94;
  border-left: 4px solid #b7791f;
  border-radius: var(--radius-sm);
  padding: 14px 16px;
  font-size: var(--fs-sm);
  color: #6b4a12;
  margin: 0 0 var(--sp-5);
}
.legal-note strong { color: #5a3d0c; }

.legal-sheet h2 {
  font-size: var(--fs-h2);
  color: var(--vinho-escuro);
  margin: var(--sp-6) 0 var(--sp-2);
  padding-top: var(--sp-3);
  border-top: 1px solid var(--cinza-borda);
}
.legal-sheet h2:first-of-type { border-top: 0; padding-top: 0; }
.legal-sheet h3 {
  font-size: var(--fs-h3);
  margin: var(--sp-4) 0 var(--sp-1);
  color: var(--cinza-escuro);
}
.legal-sheet p { margin: 0 0 var(--sp-3); max-width: 68ch; }
.legal-sheet ul, .legal-sheet ol { margin: 0 0 var(--sp-3); padding-left: 22px; max-width: 68ch; }
.legal-sheet li { margin-bottom: 6px; }
.legal-sheet a { color: var(--vinho); }
.legal-sheet strong { color: var(--cinza-escuro); }

/* Campos a preencher */
.fill {
  background: #fdeaf5;
  border-bottom: 1px dashed var(--vinho-claro);
  padding: 0 4px;
  color: var(--vinho-escuro);
  font-weight: 600;
}

/* Tabela de dados/subprocessadores */
.legal-table-wrap { overflow-x: auto; margin: 0 0 var(--sp-4); }
.legal-table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--fs-sm);
  min-width: 480px;
}
.legal-table th, .legal-table td {
  text-align: left;
  padding: 10px 12px;
  border-bottom: 1px solid var(--cinza-borda);
  vertical-align: top;
}
.legal-table th {
  background: var(--rosa-suave);
  color: var(--vinho-escuro);
  font-weight: 700;
}

/* Bloco de assinatura (consentimento) */
.sign-block {
  margin-top: var(--sp-6);
  padding-top: var(--sp-5);
  border-top: 2px solid var(--cinza-borda);
  display: grid;
  gap: var(--sp-5);
}
.sign-line { display: grid; gap: 4px; }
.sign-line .rule {
  border-bottom: 1px solid var(--cinza-escuro);
  height: 28px;
}
.sign-line small { color: var(--texto-sutil); font-size: var(--fs-caption); }

/* Rodapé */
.legal-foot {
  max-width: 820px;
  margin: 0 auto;
  padding: 0 var(--sp-5) var(--sp-7);
  color: var(--texto-sutil);
  font-size: var(--fs-caption);
  text-align: center;
}
.legal-foot a { color: var(--vinho); }

@media print {
  .legal-top, .legal-back, .legal-foot { display: none; }
  .legal-body { background: #fff; }
  .legal-sheet { box-shadow: none; border: 0; margin: 0; padding: 0; }
  .legal-note { display: none; }
}
