/* Shared shell for the three policy pages. Same Industry grammar as the rest
   of the site: a numbered brief in the left column, prose on the right, one
   hairline between every section. */

.legal-hd { border-bottom: 1px solid var(--color-divider); padding: var(--space-8) 0; }
.legal-hd h1 { font-size: 42px; max-width: 20ch; }
.legal-hd .meta {
  margin-top: var(--space-4); font-size: 11px; letter-spacing: .1em;
  text-transform: uppercase; color: var(--color-neutral-600);
}

/* Contents rail, sticky beside the prose on a wide screen. */
.legal-body { display: grid; grid-template-columns: 280px 1fr; gap: var(--space-8);
              align-items: start; padding: var(--space-8) 0 var(--space-8); }
.toc { position: sticky; top: 80px; }
.toc-title {
  font-family: var(--font-heading); font-size: 11px; font-weight: 600;
  letter-spacing: .14em; text-transform: uppercase; color: var(--color-accent-700);
  margin-bottom: var(--space-4);
}
.toc ol { list-style: none; padding: 0; margin: 0; counter-reset: c; }
.toc li { counter-increment: c; border-top: 1px solid var(--color-divider); }
.toc a {
  display: flex; gap: var(--space-3); padding: var(--space-2) 0;
  font-size: 13px; color: var(--color-neutral-700); text-decoration: none;
}
/* decimal-leading-zero, not a literal "0" — item 10 must be 10, not 010. */
.toc a::before {
  content: counter(c, decimal-leading-zero); flex: none; color: var(--color-accent-700);
  font-family: var(--font-heading); font-variant-numeric: tabular-nums;
}
.toc a:hover { color: var(--color-accent); }

.legal-prose { max-width: 78ch; counter-reset: s; }
.legal-prose section { border-top: 1px solid var(--color-divider); padding: var(--space-6) 0; }
.legal-prose section:first-child { border-top: none; padding-top: 0; }
.legal-prose h2 {
  counter-increment: s; font-size: 25px; margin-bottom: var(--space-3);
  scroll-margin-top: 80px;
}
.legal-prose h2::before {
  content: counter(s, decimal-leading-zero) " — "; color: var(--color-accent-700);
  font-size: 15px; letter-spacing: .08em;
}
.legal-prose h3 {
  font-size: 15px; letter-spacing: .06em; text-transform: uppercase;
  color: var(--color-neutral-700); margin: var(--space-6) 0 var(--space-2);
}
.legal-prose p { font-size: 15px; color: var(--color-neutral-700); max-width: 72ch; }
.legal-prose ul { padding-left: 0; list-style: none; margin: 0 0 var(--space-4); }
.legal-prose li {
  display: flex; gap: var(--space-3); padding: var(--space-2) 0;
  border-top: 1px solid var(--color-divider);
  font-size: 14px; color: var(--color-neutral-700);
}
.legal-prose li::before { content: "—"; color: var(--color-neutral-500); flex: none; }
.legal-prose strong { color: var(--color-text); }
.legal-prose a { color: var(--color-accent); }

/* A definition or a hard rule, called out of the flow. */
.callout {
  background: var(--color-accent-100); border: 1px solid var(--color-accent-200);
  padding: var(--space-4) var(--space-6); margin: var(--space-4) 0;
}
.callout p { color: var(--color-accent-900); margin: 0; font-size: 14px; }

table.legal { width: 100%; border-collapse: collapse; font-size: 14px; margin: var(--space-4) 0; }
table.legal th, table.legal td {
  text-align: left; padding: var(--space-3);
  border: 1px solid var(--color-divider); vertical-align: top;
}
table.legal th {
  font-family: var(--font-heading); font-size: 11px; font-weight: 600;
  letter-spacing: .08em; text-transform: uppercase;
  color: var(--color-neutral-600); background: var(--color-neutral-200);
}

@media (max-width: 900px) {
  .legal-body { grid-template-columns: 1fr; }
  .toc { position: static; }
  .legal-hd h1 { font-size: 32px; }
}
