:root {
  color-scheme: light dark;
  --legal-bg: #f6f2ea;
  --legal-surface: #fbf8f3;
  --legal-ink: #1c201e;
  --legal-soft: #343a37;
  --legal-muted: #57605c;
  --legal-border: #d6cec2;
  --legal-accent: #2e5345;
}

html[data-color-scheme="dark"] {
  --legal-bg: #111a16;
  --legal-surface: #1b2922;
  --legal-ink: #f3f0e8;
  --legal-soft: #d0d9d2;
  --legal-muted: #a3b1a8;
  --legal-border: #3a4a40;
  --legal-accent: #a3d4bd;
  color-scheme: dark;
}

@media (prefers-color-scheme: dark) {
  html:not([data-color-scheme="light"]) {
    --legal-bg: #111a16;
    --legal-surface: #1b2922;
    --legal-ink: #f3f0e8;
    --legal-soft: #d0d9d2;
    --legal-muted: #a3b1a8;
    --legal-border: #3a4a40;
    --legal-accent: #a3d4bd;
    color-scheme: dark;
  }
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--legal-bg);
  color: var(--legal-ink);
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  line-height: 1.7;
}
a { color: var(--legal-accent); text-underline-offset: 0.2em; }
a:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; border-radius: 2px; }
.legal-shell { max-width: 1440px; min-height: 100vh; margin: 0 auto; padding: 0 24px; }
.legal-topbar { display: flex; align-items: center; justify-content: space-between; gap: 18px; border-bottom: 1px solid var(--legal-border); padding: 24px 0; }
.legal-topbar nav, .legal-footer { display: flex; flex-wrap: wrap; gap: 18px; align-items: center; }
.legal-topbar a, .legal-home { font-size: 14px; font-weight: 700; }
.legal-home { color: var(--legal-soft); text-decoration: none; }
.legal-heading { max-width: 900px; padding: 64px 0 40px; }
.legal-kicker { color: var(--legal-accent); font-size: 12px; font-weight: 700; letter-spacing: .16em; }
h1, h2 { font-family: Newsreader, Georgia, serif; line-height: 1.2; }
h1 { margin: 12px 0 20px; font-size: clamp(2.2rem, 5vw, 3.6rem); letter-spacing: -.025em; }
.legal-description { max-width: 760px; color: var(--legal-soft); font-size: 17px; }
.legal-dates { margin-top: 20px; color: var(--legal-muted); font-size: 13px; }
.legal-grid { display: grid; grid-template-columns: minmax(220px, 260px) minmax(0, 780px); gap: clamp(32px, 6vw, 92px); align-items: start; }
.legal-toc { position: sticky; top: 24px; padding: 20px; border: 1px solid var(--legal-border); border-radius: 12px; background: var(--legal-surface); }
.legal-toc h2 { margin: 0 0 12px; font-family: inherit; font-size: 14px; }
.legal-toc ol { margin: 0; padding-left: 20px; }
.legal-toc li { margin: 0 0 9px; font-size: 13px; line-height: 1.45; }
.legal-toc a { color: var(--legal-soft); }
.legal-sections section { scroll-margin-top: 24px; border-bottom: 1px solid var(--legal-border); padding: 30px 0; }
.legal-sections section:first-child { padding-top: 0; }
.legal-sections h2 { margin: 0 0 14px; font-size: clamp(1.5rem, 3vw, 2rem); }
.legal-sections p, .legal-sections li { color: var(--legal-soft); font-size: 15px; }
.legal-sections p { margin: 0 0 14px; }
.legal-sections p:last-child { margin-bottom: 0; }
.legal-sections ul { padding-left: 24px; }
.legal-footer { border-top: 1px solid var(--legal-border); margin-top: 48px; padding: 24px 0 40px; font-size: 14px; font-weight: 700; }
@media (max-width: 760px) {
  .legal-shell { padding: 0 16px; }
  .legal-heading { padding-top: 42px; }
  .legal-grid { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .legal-toc { position: static; }
}
@media (max-width: 380px) {
  .legal-topbar { align-items: flex-start; flex-direction: column; }
  .legal-topbar nav { gap: 12px; }
}
