/* Aqui a leitura vem antes do enfeite; são documentos, não uma landing page. */
.legal-policy-page,
.legal-hub {
  --legal-bg: #071725;
  --legal-surface: #0a1c2a;
  --legal-ink: #eef4f6;
  --legal-muted: #aebfc7;
  --legal-faint: #7f949e;
  --legal-rule: rgb(169 200 211 / 22%);
  --legal-rule-strong: rgb(169 200 211 / 40%);
  --legal-accent: #43d2bc;
  --legal-number: #edbd58;
  min-height: 100%;
  color: var(--legal-ink);
  background: var(--legal-bg);
}

.legal-policy-page *,
.legal-hub * { letter-spacing: 0; }

.legal-policy-page :is(h1, h2, h3),
.legal-hub :is(h1, h2, h3) { color: var(--legal-ink); }

.legal-policy-page p,
.legal-hub p { color: var(--legal-muted); }

.legal-document-shell,
.legal-hub-masthead > .content,
.legal-hub-body > .content {
  width: min(980px, calc(100% - 48px));
  max-width: none;
}

.legal-policy-masthead,
.legal-hub-masthead {
  border-bottom: 1px solid var(--legal-rule-strong);
  color: var(--legal-ink);
  background: var(--legal-bg);
}

.legal-institution {
  display: flex;
  align-items: center;
  gap: 13px;
  padding: 34px 0 25px;
  border-bottom: 1px solid var(--legal-rule);
}

.legal-institution img {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: #fff;
}

.legal-institution p { display: grid; gap: 2px; margin: 0; }
.legal-institution strong { color: var(--legal-ink); font-size: .8rem; text-transform: uppercase; }
.legal-institution span { color: var(--legal-faint); font-size: .74rem; font-weight: 700; }

.legal-policy-title,
.legal-hub-title { padding: 47px 0 40px; }

.legal-document-type {
  margin: 0 0 12px;
  color: var(--legal-accent) !important;
  font-size: .69rem;
  font-weight: 900;
  text-transform: uppercase;
}

.legal-policy-title h1,
.legal-hub-title h1 {
  max-width: 850px;
  margin: 0;
  font-family: Inter, Arial, sans-serif;
  font-size: clamp(2.55rem, 4.5vw, 3.35rem);
  font-weight: 700;
  line-height: 1.08;
}

.legal-policy-title > p:last-child,
.legal-hub-title > p:last-child {
  max-width: 720px;
  margin-top: 17px;
  font-size: .98rem;
  line-height: 1.68;
}

.legal-control-grid {
  display: grid;
  margin: 0;
  padding: 0;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-top: 1px solid var(--legal-rule);
}

.legal-control-grid > div { min-width: 0; padding: 16px 16px 18px 0; }
.legal-control-grid > div + div { border-left: 1px solid var(--legal-rule); padding-left: 16px; }
.legal-control-grid dt { margin-bottom: 5px; color: var(--legal-faint); font-size: .64rem; font-weight: 900; text-transform: uppercase; }
.legal-control-grid dd { margin: 0; color: var(--legal-ink); font-size: .78rem; font-weight: 800; line-height: 1.42; overflow-wrap: anywhere; }

.legal-policy-body,
.legal-hub-body {
  padding: 0 0 84px;
  color: var(--legal-ink);
  background: var(--legal-bg);
}

.legal-policy-page .legal-document { border: 0; padding: 0; background: transparent; box-shadow: none; }

.legal-document-stamp {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  min-height: 62px;
  border-bottom: 1px solid var(--legal-rule);
  color: var(--legal-faint);
  font-size: .67rem;
  font-weight: 900;
  text-transform: uppercase;
}

.legal-preamble {
  display: grid;
  grid-template-columns: 250px minmax(0, 1fr);
  column-gap: 56px;
  padding: 46px 0 49px;
  border-bottom: 2px solid var(--legal-rule-strong);
}

.legal-preamble .legal-document-type { grid-column: 1; margin-bottom: 9px; }
.legal-preamble h2 { grid-column: 1; font-family: Inter, Arial, sans-serif; font-size: 1.34rem; line-height: 1.32; }
.legal-preamble > p:not(.legal-document-type) { grid-column: 2; grid-row: 1 / span 2; margin: 0; font-size: .98rem; line-height: 1.75; }

.legal-contact-line {
  display: flex;
  grid-column: 2;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 8px 18px;
  margin-top: 23px;
  padding-top: 18px;
  border-top: 1px solid var(--legal-rule);
}

.legal-contact-line span { color: var(--legal-faint); font-size: .67rem; font-weight: 900; text-transform: uppercase; }
.legal-contact-line a { color: var(--legal-accent); font-size: .85rem; font-weight: 800; overflow-wrap: anywhere; }

.legal-policy-page .legal-section {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr);
  gap: 0 18px;
  border: 0;
  border-bottom: 1px solid var(--legal-rule);
  padding: 36px 0 38px;
  scroll-margin-top: 92px;
}

.legal-policy-page .legal-section header { display: contents; }
.legal-policy-page .legal-section header > span {
  grid-column: 1;
  color: var(--legal-number);
  font-family: Inter, Arial, sans-serif;
  font-size: .74rem;
  font-weight: 900;
  font-variant-numeric: tabular-nums;
}

.legal-policy-page .legal-section h2 { grid-column: 2; margin: 0; font-family: Inter, Arial, sans-serif; font-size: 1.36rem; line-height: 1.3; }
.legal-policy-page .legal-section > p { grid-column: 2; max-width: 760px; margin: 13px 0 0; color: var(--legal-muted); font-size: .98rem; line-height: 1.78; }

.legal-document-footer {
  display: grid;
  grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr);
  gap: 34px;
  margin-top: 28px;
  border-top: 2px solid var(--legal-rule-strong);
  padding-top: 25px;
}

.legal-document-footer > div { display: grid; gap: 5px; }
.legal-document-footer strong { color: var(--legal-ink); font-size: .7rem; text-transform: uppercase; }
.legal-document-footer span { color: var(--legal-faint); font-size: .77rem; font-weight: 700; }
.legal-document-footer > p { margin: 0; color: var(--legal-faint); font-size: .79rem; line-height: 1.6; }

.legal-hub-layout { display: block; padding-top: 48px; }
.legal-register-intro {
  display: grid;
  grid-template-columns: 250px minmax(0, 1fr);
  gap: 56px;
  position: static;
  max-width: none;
  padding-bottom: 39px;
}

.legal-register-intro .legal-document-type { grid-column: 1; }
.legal-register-intro h2 { grid-column: 1; font-family: Inter, Arial, sans-serif; font-size: 1.55rem; }
.legal-register-intro > p:last-child { grid-column: 2; grid-row: 1 / span 2; margin: 0; font-size: .9rem; line-height: 1.7; }
.legal-register { border-top: 2px solid var(--legal-rule-strong); }

.legal-register-row {
  display: grid;
  min-height: 102px;
  grid-template-columns: 54px minmax(0, 1fr) 108px;
  align-items: center;
  gap: 18px;
  border-bottom: 1px solid var(--legal-rule);
  color: inherit;
  text-decoration: none;
  transition: background-color var(--motion-feedback) var(--ease-standard), transform var(--motion-structure) var(--ease-out);
}

.legal-register-index { color: var(--legal-number); font-size: .75rem; font-weight: 900; }
.legal-register-copy { display: grid; gap: 5px; }
.legal-register-copy strong { color: var(--legal-ink); font-family: Inter, Arial, sans-serif; font-size: 1rem; }
.legal-register-copy small { color: var(--legal-muted); font-size: .82rem; line-height: 1.46; }
.legal-register-action { display: inline-flex; align-items: center; justify-content: flex-end; gap: 7px; color: var(--legal-accent); font-size: .72rem; font-weight: 900; text-transform: uppercase; }
.legal-register-action svg { width: 15px; height: 15px; transition: transform var(--motion-feedback) var(--ease-out); }
@media (hover: hover) and (pointer: fine) {
  .legal-register-row:hover { transform: translateX(12px); background: rgb(67 210 188 / 6%); }
  .legal-register-row:hover .legal-register-action svg { transform: translate(5px, -5px); }
}

.legal-official-channels {
  display: grid;
  grid-template-columns: 250px minmax(0, 1fr);
  gap: 56px;
  margin-top: 49px;
  border-top: 2px solid var(--legal-rule-strong);
  padding-top: 34px;
}

.legal-official-channels h2 { font-family: Inter, Arial, sans-serif; font-size: 1.35rem; }
.legal-official-channels dl { display: grid; margin: 0; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.legal-official-channels dt { margin-bottom: 7px; color: var(--legal-faint); font-size: .66rem; font-weight: 900; text-transform: uppercase; }
.legal-official-channels dd { margin: 0; }
.legal-official-channels a { color: var(--legal-accent); font-size: .79rem; font-weight: 800; overflow-wrap: anywhere; }

:root[data-theme="light"] .legal-policy-page,
:root[data-theme="light"] .legal-hub {
  --legal-bg: #f7f9f9;
  --legal-surface: #f7f9f9;
  --legal-ink: #17313c;
  --legal-muted: #526b75;
  --legal-faint: #72868e;
  --legal-rule: rgb(47 83 96 / 18%);
  --legal-rule-strong: rgb(47 83 96 / 34%);
  --legal-accent: #087f74;
  --legal-number: #a86500;
}

@media (max-width: 650px) {
  .legal-document-shell,
  .legal-hub-masthead > .content,
  .legal-hub-body > .content { width: min(100% - 32px, 980px); }

  .legal-institution { padding: 27px 0 22px; }
  .legal-institution img { width: 40px; height: 40px; }
  .legal-policy-title,
  .legal-hub-title { padding: 34px 0 30px; }
  .legal-policy-title h1,
  .legal-hub-title h1 { font-size: 2.08rem; line-height: 1.12; }
  .legal-policy-title > p:last-child,
  .legal-hub-title > p:last-child { margin-top: 13px; font-size: .9rem; line-height: 1.62; }

  .legal-control-grid { grid-template-columns: 1fr 1fr; }
  .legal-control-grid > div { padding: 13px 11px 14px 0; border-bottom: 1px solid var(--legal-rule); }
  .legal-control-grid > div + div { padding-left: 11px; }
  .legal-control-grid > div:nth-child(3) { border-left: 0; padding-left: 0; }
  .legal-control-grid dd { font-size: .72rem; }

  .legal-policy-body,
  .legal-hub-body { padding-bottom: 58px; }
  .legal-document-stamp { min-height: 54px; font-size: .61rem; }
  .legal-preamble { display: block; padding: 32px 0 35px; }
  .legal-preamble h2 { font-size: 1.2rem; }
  .legal-preamble > p:not(.legal-document-type) { margin-top: 13px; font-size: .91rem; line-height: 1.7; }
  .legal-contact-line { display: grid; gap: 5px; margin-top: 21px; padding-top: 16px; }

  .legal-policy-page .legal-section { grid-template-columns: 34px minmax(0, 1fr); gap: 0 7px; padding: 29px 0 31px; }
  .legal-policy-page .legal-section header > span { font-size: .69rem; }
  .legal-policy-page .legal-section h2 { font-size: 1.16rem; }
  .legal-policy-page .legal-section > p { grid-column: 1 / -1; margin-top: 13px; font-size: .92rem; line-height: 1.72; }
  .legal-document-footer { grid-template-columns: 1fr; gap: 16px; margin-top: 23px; padding-top: 21px; }

  .legal-hub-layout { padding-top: 34px; }
  .legal-register-intro { display: block; padding-bottom: 29px; }
  .legal-register-intro h2 { font-size: 1.35rem; }
  .legal-register-intro > p:last-child { margin-top: 12px; font-size: .87rem; }
  .legal-register-row { min-height: 116px; grid-template-columns: 33px minmax(0, 1fr); gap: 11px; padding: 14px 0; }
  .legal-register-action { grid-column: 2; justify-content: flex-start; }
  .legal-official-channels { grid-template-columns: 1fr; gap: 22px; margin-top: 38px; padding-top: 28px; }
  .legal-official-channels dl { grid-template-columns: 1fr; gap: 18px; }
}

@media print {
  .legal-policy-page,
  .legal-hub,
  .legal-policy-masthead,
  .legal-hub-masthead,
  .legal-policy-body,
  .legal-hub-body { color: #111; background: #fff; }
  .legal-document-shell,
  .legal-hub-masthead > .content,
  .legal-hub-body > .content { width: 100%; }
  .legal-policy-page .legal-section { break-inside: avoid; }
}
