/* Page layout only; components live in assets/components.css. Calm atmosphere (no bokeh) keeps legal text the focus. */
body { overflow-x: clip; }
.legal-hero { position: relative; isolation: isolate; overflow: hidden; padding: calc(var(--nav-h) + var(--s-9)) 0 var(--s-9); --glow-x: 78%; --glow-y: 30%; }
.legal-hero .container { position: relative; z-index: 1; }
.legal-hero h1 { font-size: clamp(2.25rem, 1rem + 4vw, 4rem); max-width: 20ch; }
.legal-hero .lead { max-width: 62ch; margin-top: var(--s-5); }
.legal-hero .lead a, .legal a { color: var(--accent-text); }
.crumbs { margin-bottom: var(--s-6); font-size: var(--fs-small); color: var(--text-3); }
.crumbs a { color: var(--text-2); }
.legal__updated { margin-top: var(--s-4); font-size: var(--fs-meta); color: var(--text-3); }
.legal__chips { margin-top: var(--s-6); }
.legal { padding-bottom: var(--sec-y); counter-reset: legal; }
.legal-layout { display: grid; gap: var(--s-6); align-items: start; }
.toc { display: none; padding: var(--s-5); }
.toc h2 { margin-bottom: var(--s-3); font-size: var(--fs-small); font-weight: 500; color: var(--text-3); }
.toc ol { display: grid; gap: 2px; margin: 0; padding: 0; list-style: none; counter-reset: toc; }
.toc li { counter-increment: toc; }
.toc a { display: flex; gap: var(--s-3); padding: 7px var(--s-2); color: var(--text-2); font-size: var(--fs-small); transition: color var(--dur-1), background var(--dur-1); }
.toc a::before { content: counter(toc); min-width: 1.4em; color: var(--accent-text); font-variant-numeric: tabular-nums; }
.toc a:hover { color: var(--text-1); background: var(--bg-2); }
.legal__body { padding: var(--s-5); }
.legal__body section { padding: var(--s-6) 0; border-top: 1px solid var(--line-1); }
.legal__body section:first-child { padding-top: 0; border-top: 0; }
.legal__body h2 { font-size: var(--fs-h3); counter-increment: legal; scroll-margin-top: calc(var(--nav-h) + var(--s-5)); }
/* Numbered headings make clauses easy to cite in emails without hardcoding numbers. */
.legal__body h2::before { content: counter(legal) ". "; color: var(--accent-text); font-variant-numeric: tabular-nums; }
.legal__body p, .legal__body li { max-width: 66ch; color: var(--text-2); }
.legal__body p + p, .legal__body h2 + p, .legal__body h2 + ul, .legal__body ul + p, .legal__body p + ul { margin-top: var(--s-4); }
.legal__body ul { padding-left: 1.25em; list-style: disc; }
.legal__body li + li { margin-top: var(--s-2); }
.legal__body strong { color: var(--text-1); font-weight: 600; }
@media (min-width: 768px) {
  .toc { display: block; }
  .toc ol { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .legal__body { padding: var(--s-7); }
}
@media (min-width: 1024px) {
  .legal-layout { grid-template-columns: 280px minmax(0, 1fr); gap: var(--s-7); }
  .toc { position: sticky; top: calc(var(--nav-h) + var(--s-5)); }
  .toc ol { grid-template-columns: 1fr; }
  .legal__body { padding: var(--s-8); }
}
