/* Páginas legais: uma única folha sobre design-system/tokens.css e components.css.
   A página inteira segue o tema escolhido (data-theme no html). Medidas sem token equivalente
   ficam numéricas e estão na tabela "sem token equivalente" da EP87-S6.0. */

body { margin: 0; min-width: 320px; overflow-x: hidden; }
a { color: var(--highlight); text-underline-offset: .2em; }
a:hover { color: var(--text); }
a:focus-visible,
button:focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 3px; }
::selection { background: var(--accent); color: var(--ink); }

:root[data-theme="claro"] .logo-escuro,
:root[data-theme="escuro"] .logo-claro { display: none; }
.site-brand { display: inline-flex; align-items: center; }

.site-header { background: var(--surface-raised); border-bottom: 2px solid var(--line); }
.header-inner,
main,
.footer-inner { width: min(calc(100% - 48px), var(--wrap-wide)); margin: 0 auto; }
.header-inner { min-height: 74px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-rail) var(--space-blk); padding: var(--space-caps) 0; }
nav ul { display: flex; flex-wrap: wrap; gap: var(--space-caps) var(--space-blk); margin: 0; padding: 0; list-style: none; }
nav a { color: var(--text); font-weight: 700; text-decoration: none; }
nav a:hover { text-decoration: underline; }
nav a[aria-current="page"] { color: var(--highlight); text-decoration: underline; text-decoration-thickness: 2px; }
.theme-toggle { white-space: nowrap; }
.theme-toggle:hover { background: var(--tint); }

main { max-width: var(--wrap); padding: var(--pad-sec-hero) 0 var(--pad-sec); }
h1 { margin: var(--space-blk) 0 0; font-family:var(--font-head); font-weight: 900; font-size: var(--fs-h1); line-height: .92; text-transform: uppercase; text-wrap: balance; color: var(--text-strong); }
.lead { margin: var(--space-blk) 0 0; }
.meta { margin: var(--space-blk) 0 0; color: var(--text-muted); font-size: var(--fs-small); }
.legal-content { margin-top: var(--space-cta); border-top: 2px solid var(--line); }
section { padding: var(--space-divider) 0; border-bottom: 1px solid var(--hairline); }
h2 { margin: 0 0 var(--space-blk-sm); font-family:var(--font-head); font-weight: 900; font-size: var(--fs-h3); line-height: 1.04; text-transform: uppercase; text-wrap: balance; color: var(--text-strong); }
:where(.ds) main p { max-width: 68ch; margin: 0 0 var(--space-blk-sm); color: var(--text-muted); }
:where(.ds) main p:last-child { margin-bottom: 0; }
ul,
ol { max-width: 68ch; margin: var(--space-caps) 0 0; padding-left: 22px; color: var(--text-muted); font-size: var(--fs-body); line-height: 1.45; }
li + li { margin-top: 9px; }
nav li + li { margin-top: 0; }
li::marker { color: var(--highlight); font-weight: 800; }
strong { color: var(--text); font-weight: 700; }

.contact-card,
.request-card,
.notice { padding: var(--space-blk); border: 2px solid var(--line); border-radius: var(--radius-card); background: var(--surface-raised); box-shadow: var(--sh-card); }
.contact-card a,
.request-card a { overflow-wrap: anywhere; }

footer { border-top: 2px solid var(--line); padding: var(--space-divider) 0; background: var(--surface-raised); }
.footer-inner { color: var(--text-muted); font-size: var(--fs-small); }

@media (max-width: 680px) {
  .header-inner,
  main,
  .footer-inner { width: min(calc(100% - 32px), var(--wrap-wide)); }
  .header-inner { align-items: flex-start; flex-direction: column; padding: var(--space-rail) 0; }
  .contact-card,
  .request-card,
  .notice { padding: var(--space-rail); }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after { scroll-behavior: auto !important; transition: none !important; }
}
