/* Legal pages (privacy, cookies, terms, privacy request) for the book site.
   Same tokens and fonts as index.html; the document HTML is generated from
   central-backend/contracts/privacy and copied in by tools/sync-legal.mjs. */
:root {
  --ink: #0d1217; --paper: #f5f4f7; --white: #fff; --text: #0d1217; --muted: #58626d;
  --line: rgba(13, 18, 23, 0.1); --on-dark: #eef1f4; --on-dark-muted: #929dab; --violet: #5b2d8e; --no: #b0413e;
  --sans: 'Geist', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', sans-serif;
  --serif: 'Newsreader', 'Iowan Old Style', Georgia, serif;
  --mono: 'Geist Mono', ui-monospace, 'SF Mono', Menlo, monospace;
  --wrap: 1180px; --gutter: clamp(16px, 4vw, 40px);
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 24px; }
body { margin: 0; background: var(--paper); color: var(--text); font: 16px/1.7 var(--sans); -webkit-font-smoothing: antialiased; }
a { color: var(--violet); }
:focus-visible { outline: 2px solid var(--violet); outline-offset: 3px; border-radius: 4px; }
.wrap { max-width: var(--wrap); margin: 0 auto; padding: 0 var(--gutter); }

.lg-head { background: var(--ink); color: var(--on-dark); }
.lg-head .wrap { display: flex; align-items: center; justify-content: space-between; gap: 16px; height: 64px; }
.lg-brand { color: var(--on-dark); text-decoration: none; font-weight: 600; letter-spacing: -.01em; }
.lg-cta { display: inline-flex; align-items: center; height: 38px; padding: 0 16px; border-radius: 999px; background: var(--white); color: var(--ink); font-size: 13.5px; font-weight: 600; text-decoration: none; }
.lg-hero { background: var(--ink); color: var(--on-dark); padding: 40px 0 56px; }
.lg-hero h1 { margin: 0; font: italic 500 clamp(36px, 6vw, 60px)/1.05 var(--serif); letter-spacing: -.01em; }
.lg-hero p { margin: 14px 0 0; max-width: 60ch; color: var(--on-dark-muted); }

.lg-main { padding: 48px 0 80px; }
.lg-grid { display: grid; gap: 32px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 960px) { .lg-grid { grid-template-columns: 280px minmax(0, 1fr); align-items: start; } }
.lg-toc { background: var(--white); border: 1px solid var(--line); border-radius: 16px; padding: 22px; }
@media (min-width: 960px) { .lg-toc { position: sticky; top: 24px; } }
.lg-toc h2 { margin: 0 0 10px; font: 500 11px/1 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.lg-toc ol { margin: 0; padding-left: 18px; display: grid; gap: 6px; font-size: 14.5px; }
.lg-toc a { color: var(--text); text-decoration: none; }
.lg-toc a:hover { text-decoration: underline; }
.lg-updated { margin: 14px 0 0; font-size: 13px; color: var(--muted); }
.lg-btn { display: inline-flex; align-items: center; justify-content: center; margin-top: 16px; height: 44px; padding: 0 20px; border: 0; border-radius: 999px; background: var(--ink); color: var(--white); font: 600 14px var(--sans); text-decoration: none; cursor: pointer; }
.lg-btn[disabled] { opacity: .6; cursor: wait; }

.legal-prose { min-width: 0; background: var(--white); border: 1px solid var(--line); border-radius: 16px; padding: clamp(20px, 4vw, 36px); }
.legal-prose section + section { margin-top: 36px; padding-top: 36px; border-top: 1px solid var(--line); }
.legal-prose h2 { margin: 0; font: italic 500 28px/1.2 var(--serif); }
.legal-prose h3 { margin: 22px 0 0; font-size: 17px; }
.legal-prose p, .legal-prose ul, .legal-prose .legal-table { margin: 12px 0 0; }
.legal-prose ul { padding-left: 20px; }
.legal-prose li + li { margin-top: 6px; }
.legal-prose a { overflow-wrap: anywhere; }
.legal-prose code { font: .9em var(--mono); overflow-wrap: anywhere; }
.legal-table { overflow-x: auto; border: 1px solid var(--line); border-radius: 12px; }
.legal-table table { width: 100%; border-collapse: collapse; font-size: 14.5px; }
.legal-table th, .legal-table td { padding: 10px 14px; text-align: left; vertical-align: top; border-top: 1px solid var(--line); }
.legal-table thead th { border-top: 0; background: var(--paper); }

.lg-form { background: var(--white); border: 1px solid var(--line); border-radius: 16px; padding: clamp(20px, 4vw, 32px); }
.lg-form h2 { margin: 0 0 16px; font: italic 500 28px/1.2 var(--serif); }
.lg-fields { display: grid; gap: 14px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 640px) { .lg-fields { grid-template-columns: 1fr 1fr; } .lg-fields .wide { grid-column: 1 / -1; } }
.lg-field label { display: block; margin-bottom: 6px; font-size: 13.5px; font-weight: 600; }
.lg-field input, .lg-field select, .lg-field textarea { width: 100%; padding: 11px 13px; border: 1px solid var(--line); border-radius: 10px; background: var(--white); font: 15px var(--sans); color: var(--text); }
.lg-field [aria-invalid="true"] { border-color: var(--no); }
.lg-err { display: block; min-height: 0; margin-top: 4px; font-size: 13px; color: var(--no); }
.lg-check { display: flex; gap: 10px; align-items: flex-start; margin-top: 16px; font-size: 14.5px; }
.lg-check input { margin-top: 5px; width: 18px; height: 18px; flex: none; accent-color: var(--ink); }
.lg-note { margin: 12px 0 0; font-size: 14px; }
.lg-small { margin: 10px 0 0; font-size: 13px; color: var(--muted); }
.lg-side { background: var(--white); border: 1px solid var(--line); border-radius: 16px; padding: 22px; font-size: 15px; }
.lg-side h2 { margin: 0 0 10px; font: italic 500 24px/1.2 var(--serif); }
.lg-side h3 { margin: 20px 0 4px; font-size: 16px; }
.lg-side ol { margin: 0; padding-left: 20px; display: grid; gap: 8px; }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.lg-foot { background: var(--ink); color: var(--on-dark-muted); font-size: 13px; padding: 28px 0; }
.lg-foot .wrap { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px 24px; }
.lg-foot nav { display: flex; flex-wrap: wrap; gap: 6px 16px; }
.lg-foot a { color: inherit; }
