// ─────────────────────────────────────────────────────────────────────────────
// 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:
{{ doc.body | markdown | safe }}
// ─────────────────────────────────────────────────────────────────────────────
.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);
}
}