.document-header { max-width: 54rem; margin-bottom: clamp(2rem, 5vw, 4rem); }
.document-header h1 { max-width: 26ch; }
.document-lead { max-width: 65ch; color: var(--body-text); font-size: clamp(1rem, 1.8vw, 1.18rem); line-height: 1.6; }
.draft-note { margin: 1.5rem 0 0; padding: 1rem 1.15rem; border-left: 0.25rem solid var(--signal); background: var(--accent-pale); }
.draft-note p { margin: 0; }

.document-body { max-width: 54rem; font-family: var(--font-body); font-size: 1rem; line-height: 1.65; }
.document-body h2,
.document-body h3,
.document-body h4 { font-family: var(--font-display); letter-spacing: -0.025em; }
.document-body h2 { margin: 3rem 0 1rem; font-size: clamp(1.45rem, 3vw, 2rem); }
.document-body h3 { margin: 2.2rem 0 0.75rem; font-size: clamp(1.05rem, 2vw, 1.3rem); }
.document-body p,
.document-body ul,
.document-body ol { max-width: 72ch; }
.document-body blockquote { max-width: 72ch; margin: 1.5rem 0; padding: 1rem 1.2rem; border-left: 0.25rem solid var(--accent); background: var(--surface-raised); }
.document-body blockquote p:last-child { margin-bottom: 0; }
.document-body code { overflow-wrap: anywhere; }
.table-scroll { max-width: 100%; overflow-x: auto; margin: 1rem 0 1.75rem; border: 1px solid var(--border); }
.table-scroll table { width: 100%; min-width: 46rem; margin: 0; border-collapse: collapse; }
.table-scroll th,
.table-scroll td { padding: 0.75rem; border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); vertical-align: top; text-align: left; }
.table-scroll th { background: var(--surface-raised); font-family: var(--font-display); font-size: 0.8rem; }
.table-scroll tr:last-child > * { border-bottom: 0; }
.table-scroll tr > *:last-child { border-right: 0; }
.rule { position: relative; padding: 0 0 2rem 3.5rem; border-bottom: 1px solid var(--border); }
.rule + .rule { padding-top: 2rem; }
.rule-number { position: absolute; left: 0; color: var(--accent-text); font: 700 0.72rem/1 var(--font-display); }
.rule h2 { margin-top: 0; }
.source-list { margin-top: 3rem; padding-top: 1.5rem; border-top: 1px solid var(--border); }

@media (max-width: 560px) {
  .rule { padding-left: 0; }
  .rule-number { position: static; display: block; margin-bottom: 0.65rem; }
}

