/* PRIMARY legal reading surface.
   Load after main.css; the existing tokens supply typography and both themes.
   Everything is scoped to this surface; shared chrome and .skip stay unchanged. */

.legal-page {
  box-sizing: border-box;
  width: 100%;
  max-width: calc(74ch + var(--s10));
  margin-inline: auto;
  padding: var(--s12) var(--s5) var(--s20);
  color: var(--ink);
  font-family: var(--sans);
  font-size: var(--fs-lg);
  line-height: var(--lh-read);
  overflow-wrap: anywhere;
  scroll-margin-top: calc(var(--hd-h, 65px) + var(--s6));
}

.legal-page > header {
  padding-bottom: var(--s8);
  border-bottom: 1px solid var(--line);
}

.legal-page h1 {
  margin: 0 0 var(--s4);
  font-family: var(--disp);
  font-size: var(--fs-lead);
  font-weight: 300;
  line-height: var(--lh-tight);
  letter-spacing: var(--tr-tight);
}

.legal-page .legal-version {
  margin: 0;
  color: var(--ink-2);
  font-size: var(--fs-sm);
  line-height: var(--lh-body);
  font-variant-numeric: tabular-nums;
}

.legal-page .legal-toc {
  margin-block: var(--s8) var(--s12);
  padding: var(--s5) var(--s6);
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--r-xs);
  font-size: var(--fs-base);
  line-height: var(--lh-body);
}

.legal-page .legal-toc ol {
  margin: 0;
  padding-inline-start: var(--s6);
  list-style: decimal;
}

.legal-page .legal-toc li {
  padding-inline-start: var(--s1);
}

.legal-page .legal-toc li + li {
  margin-top: var(--s2);
}

.legal-page .legal-toc li::marker {
  color: var(--ink-2);
  font-variant-numeric: tabular-nums;
}

.legal-page .legal-toc a {
  display: inline-block;
  padding-block: var(--s1);
}

.legal-page .legal-content {
  max-width: var(--measure);
  min-width: 0;
}

.legal-page .legal-content h2 {
  margin: var(--s12) 0 var(--s5);
  padding-top: var(--s6);
  border-top: 1px solid var(--line-2);
  font-family: var(--disp);
  font-size: var(--fs-2xl);
  font-weight: 300;
  line-height: var(--lh-head);
  letter-spacing: var(--tr-head);
}

.legal-page .legal-content > h2:first-child {
  margin-top: 0;
  padding-top: 0;
  border-top: 0;
}

.legal-page .legal-content h3 {
  margin: var(--s8) 0 var(--s3);
  font-family: var(--sans);
  font-size: var(--fs-lg);
  font-weight: 700;
  line-height: var(--lh-snug);
  letter-spacing: var(--tr-snug);
}

.legal-page .legal-content p {
  margin: 0 0 var(--s5);
}

.legal-page .legal-content ul {
  margin: 0 0 var(--s6);
  padding-inline-start: var(--s6);
  list-style: disc;
}

.legal-page .legal-content li {
  padding-inline-start: var(--s1);
}

.legal-page .legal-content li + li {
  margin-top: var(--s3);
}

.legal-page .legal-content li > ul {
  margin-block: var(--s3) 0;
}

.legal-page .legal-content li > p:last-child {
  margin-bottom: 0;
}

.legal-page a {
  color: var(--accent-ink);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: .2em;
  text-decoration-skip-ink: auto;
}

.legal-page a:hover {
  text-decoration-thickness: 2px;
}

.legal-page a:focus-visible,
.legal-page :is(h2[id], h3[id]):focus-visible,
.legal-page:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: var(--s1);
  box-shadow: none;
  border-radius: var(--r-xs);
}

.legal-page .legal-content :is(h2[id], h3[id]) {
  scroll-margin-top: calc(var(--hd-h, 65px) + var(--s8));
}

/* Keep a single reading column, including the contents list, on phones.
   No animated entrances: SSR content remains readable from the first paint. */
@media (max-width: 767px) {
  .legal-page {
    padding: var(--s8) var(--s5) var(--s14);
    font-size: var(--fs-md);
  }

  .legal-page > header {
    padding-bottom: var(--s6);
  }

  .legal-page .legal-toc {
    margin-block: var(--s6) var(--s10);
    padding: var(--s4) var(--s5);
  }

  .legal-page .legal-toc a {
    padding-block: var(--s2);
  }

  .legal-page .legal-content h2 {
    margin-top: var(--s10);
    font-size: var(--fs-xl);
  }
}

/* Preserve visible keyboard focus when user-agent forced colors replace ink. */
@media (forced-colors: active) {
  .legal-page a:focus-visible,
  .legal-page :is(h2[id], h3[id]):focus-visible,
  .legal-page:focus-visible {
    outline-color: Highlight;
  }
}
