/* core: legal, platform-duty and explainer pages. Builds on static/base.css. */

.legal { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-6); }
@media (min-width: 900px) {
  .legal.has-toc { grid-template-columns: 240px minmax(0, 1fr); align-items: start; }
  .legal .toc { position: sticky; top: var(--space-4); }
}
.toc { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); padding: var(--space-4) var(--space-5); font-size: 0.9rem; }
.toc h2 { font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--muted); margin: 0 0 var(--space-3); }
.toc ol { margin: 0; padding-left: 1.2rem; }
.toc li { margin-bottom: var(--space-1); }
.toc a { color: var(--ink); text-decoration: none; }
.toc a:hover { color: var(--accent-2); text-decoration: underline; }

.prose.legal-body { max-width: 72ch; }
.legal-body h2 { scroll-margin-top: var(--space-4); }
.legal-body h3 { scroll-margin-top: var(--space-4); }
.legal-body ol.articles { counter-reset: none; padding-left: 0; list-style: none; }
.legal-body ol.articles > li { position: relative; padding-left: 3rem; margin-bottom: var(--space-3); }
.legal-body ol.articles > li > .art { position: absolute; left: 0; top: 0; font-weight: 650; color: var(--muted); font-variant-numeric: tabular-nums; }
.legal-body blockquote.clause { margin: 0; padding: 0; }
.legal-body .construction { background: var(--paper-2); border-left: 4px solid var(--accent-2); padding: var(--space-3) var(--space-4); margin: var(--space-4) 0; }
.legal-meta { margin-top: var(--space-8); padding-top: var(--space-4); border-top: 1px solid var(--line); font-size: 0.85rem; color: var(--muted); }
.legal-meta dl { display: grid; grid-template-columns: max-content 1fr; gap: var(--space-1) var(--space-4); margin: 0; }
.legal-meta dt { font-weight: 600; }
.legal-meta dd { margin: 0; }
.legal-body table td, .legal-body table th { white-space: normal; }
.legal-body .table td.num, .legal-body .table th.num { white-space: nowrap; }

/* landing pages */
.hero { padding: var(--space-6) 0 var(--space-4); }
.hero h1 { max-width: 24ch; }
.hero .lead { max-width: 60ch; }
.hero .cta { display: flex; flex-wrap: wrap; gap: var(--space-3); margin-top: var(--space-4); }
.steps { list-style: none; padding: 0; margin: 0 0 var(--space-6); display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: var(--space-4); counter-reset: step; }
.steps li { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); padding: var(--space-4) var(--space-4) var(--space-4) 3.5rem; position: relative; }
.steps li::before { counter-increment: step; content: counter(step); position: absolute; left: var(--space-4); top: var(--space-4); width: 2rem; height: 2rem; border-radius: 999px; background: var(--accent); color: var(--white); font-weight: 700; display: grid; place-items: center; }
.steps h3 { font-size: 1rem; margin-bottom: var(--space-1); }
.steps p { margin: 0; font-size: 0.95rem; color: var(--muted); }
.compare .table td.num, .compare .table th.num { white-space: nowrap; }
.compare .table tr.total td { font-weight: 700; background: var(--paper-2); }
.compare .table td.ours, .compare .table th.ours { background: var(--success-bg); }
.pillars { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: var(--space-4); list-style: none; padding: 0; margin: 0 0 var(--space-6); }
.pillars li { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); padding: var(--space-4); }
.pillars h3 { font-size: 1rem; margin-bottom: var(--space-2); }
.pillars p { margin: 0; font-size: 0.95rem; }
.faq dt { font-weight: 650; margin-top: var(--space-4); }
.faq dd { margin: var(--space-1) 0 0; }
.contact-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: var(--space-4); margin-bottom: var(--space-6); }
.contact-cards .panel { margin: 0; }
.contact-cards address { font-style: normal; }
.notice-form fieldset { background: var(--white); }
.notice-ref { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 1.25rem; font-weight: 700; letter-spacing: 0.06em; }
