/* Legal documents · long-form reading on top of the shared tokens in styles.css */

.legal { max-width: 760px; padding-top: 48px; }

.legal-head { border-bottom: 1px solid var(--line); padding-bottom: 28px; }
.legal-head h1 { font-size: clamp(2rem, 4.5vw, 2.9rem); }
.legal-head .legal-lede { margin-top: 14px; color: var(--muted); }
.legal-dates {
  margin-top: 18px;
  font-size: 0.8125rem;
  color: var(--faint);
  display: flex;
  flex-wrap: wrap;
  gap: 6px 20px;
}

.legal-toc { margin-top: 28px; font-size: 0.9375rem; }
.legal-toc p { color: var(--faint); font-size: 0.8125rem; letter-spacing: 0.08em; text-transform: uppercase; }
.legal-toc ol { list-style: none; margin-top: 12px; display: grid; gap: 6px; counter-reset: toc; }
.legal-toc li { counter-increment: toc; padding-left: 32px; position: relative; }
.legal-toc li::before {
  content: counter(toc, decimal-leading-zero);
  position: absolute;
  left: 0;
  color: var(--faint);
  font-variant-numeric: tabular-nums;
}
.legal-toc a { color: var(--muted); text-decoration: none; }
.legal-toc a:hover { color: var(--ink); text-decoration: underline; }

.legal-body { counter-reset: sec; }
.legal-body section { padding-top: 44px; scroll-margin-top: 2rem; }
.legal-body h2 {
  font-size: 1.45rem;
  counter-increment: sec;
}
.legal-body h2::before {
  content: counter(sec, decimal-leading-zero) " · ";
  font-family: var(--sans);
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  color: var(--faint);
  vertical-align: 0.35em;
}
.legal-body h3 { font-size: 1.0625rem; margin-top: 24px; }
.legal-body p { margin-top: 14px; color: var(--muted); }
.legal-body ul { margin-top: 14px; list-style: none; display: grid; gap: 8px; color: var(--muted); }
.legal-body li { padding-left: 20px; position: relative; }
.legal-body li::before { content: "·"; position: absolute; left: 0; color: var(--faint); }
.legal-body a { color: var(--ink); }
.legal-body strong { color: var(--ink); font-weight: 500; }

.legal-table-wrap { margin-top: 20px; overflow-x: auto; }
.legal-table { width: 100%; min-width: 480px; border-collapse: collapse; font-size: 0.9375rem; }
.legal-table th, .legal-table td {
  text-align: left;
  vertical-align: top;
  padding: 12px 16px 12px 0;
  border-bottom: 1px solid var(--line);
  color: var(--muted);
}
.legal-table th { color: var(--ink); font-weight: 500; font-size: 0.8125rem; letter-spacing: 0.04em; text-transform: uppercase; }
.legal-table td:first-child { color: var(--ink); white-space: nowrap; }

.legal-note {
  margin-top: 20px;
  background: var(--card);
  border: 1px solid var(--line);
  border-left: 3px solid var(--ink);
  border-radius: var(--radius);
  padding: 18px 20px;
}
.legal-note p { margin-top: 0; }
.legal-note p + p { margin-top: 12px; }

.legal-foot {
  margin-top: 56px;
  padding-top: 24px;
  border-top: 1px solid var(--line);
  font-size: 0.875rem;
  color: var(--faint);
}
.legal-foot a { color: var(--ink); }

/* index of documents */
.legal-index { max-width: 760px; padding-top: 48px; }
.doc-list { margin-top: 40px; display: grid; gap: 14px; }
.doc-card {
  display: flex;
  align-items: baseline;
  gap: 20px;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: calc(var(--radius) + 2px);
  padding: 22px 24px;
  text-decoration: none;
  transition: background 0.15s ease, transform 0.15s ease;
}
.doc-card:hover { background: var(--card-bright); transform: translateY(-1px); }
.doc-num { font-family: var(--serif); font-size: 0.9375rem; color: var(--faint); }
.doc-copy strong { display: block; font-family: var(--serif); font-size: 1.25rem; font-weight: 460; }
.doc-copy span { display: block; margin-top: 4px; font-size: 0.9375rem; color: var(--muted); }
.doc-arrow { margin-left: auto; color: var(--faint); }

.footer-links { margin-top: 10px; display: flex; flex-wrap: wrap; gap: 6px 16px; }
.footer-links a { color: var(--muted); }
.footer-links a:hover { color: var(--ink); }

@media (max-width: 640px) {
  .legal-table { min-width: 420px; font-size: 0.875rem; }
  .legal-table th, .legal-table td { padding: 10px 12px 10px 0; }
  .legal-table td:first-child { white-space: normal; }
  .legal-toc li { padding-left: 28px; }
}

@media (prefers-reduced-motion: reduce) {
  .doc-card { transition: none; }
}
