// ───────────────────────────────────────────────────────────────────────────── // Component: Legal document prose // File: src/scss/components/_legal.scss // // Scopes typography and visual treatment for markdown-rendered legal pages // (privacy policy, terms of service, DMCA) under the .legal-page wrapper. // // Tokens: --text-primary, --text-secondary, --text-muted, --color-accent-link // --font-size-*, --font-mono, --bg-surface, --bg-overlay, --bg-hover // --border-default, --border-subtle // Usage: // ───────────────────────────────────────────────────────────────────────────── .legal-page { color: var(--text-secondary); line-height: 1.75; font-size: var(--text-base); // ── Headings ─────────────────────────────────────────────────────────────── h1 { font-size: var(--text-2xl); font-weight: 700; color: var(--text-primary); margin: 0 0 var(--space-2); padding-bottom: var(--space-4); border-bottom: 1px solid var(--border-default); } h2 { font-size: var(--text-lg); font-weight: 600; color: var(--text-primary); margin: var(--space-10) 0 var(--space-3); padding-bottom: var(--space-2); border-bottom: 1px solid var(--border-subtle); } h3 { font-size: var(--text-md); font-weight: 600; color: var(--text-primary); margin: var(--space-6) 0 var(--space-2); } // ── Body text ────────────────────────────────────────────────────────────── p { margin: 0 0 var(--space-4); } a { color: var(--color-accent-link); text-decoration: none; &:hover { text-decoration: underline; } } strong { color: var(--text-primary); font-weight: 600; } // ── Lists ────────────────────────────────────────────────────────────────── ol, ul { margin: 0 0 var(--space-4); padding-left: var(--space-6); } li { margin-bottom: var(--space-2); } // ── Horizontal rules ─────────────────────────────────────────────────────── hr { border: none; border-top: 1px solid var(--border-subtle); margin: var(--space-8) 0; } // ── Tables ───────────────────────────────────────────────────────────────── table { width: 100%; border-collapse: collapse; font-size: var(--text-sm); margin: var(--space-4) 0 var(--space-6); background: var(--bg-surface); border: 1px solid var(--border-default); border-radius: 6px; overflow: hidden; } thead { background: var(--bg-overlay); } th { text-align: left; font-weight: 600; color: var(--text-primary); padding: var(--space-2) var(--space-4); border-bottom: 1px solid var(--border-default); white-space: nowrap; } td { padding: var(--space-2) var(--space-4); color: var(--text-secondary); border-bottom: 1px solid var(--border-subtle); vertical-align: top; } tbody tr:last-child td { border-bottom: none; } tbody tr:hover td { background: var(--bg-hover); } // ── Inline code ──────────────────────────────────────────────────────────── code { font-family: var(--font-mono); font-size: var(--text-xs); background: var(--bg-overlay); border: 1px solid var(--border-subtle); border-radius: 3px; padding: 1px 5px; color: var(--text-primary); } // ── Effective-date line (bold text on its own after h1) ──────────────────── p strong:only-child { display: block; color: var(--text-muted); font-size: var(--text-sm); font-weight: 400; margin-top: calc(-1 * var(--space-2)); margin-bottom: var(--space-6); } }