/* Shared styling for the legal pages (accessibility / privacy / terms).
   Extracted so the three cannot drift apart. Tokens mirror the hub's :root.
   Contrast note: every colour pair here was checked against WCAG 2.2 AA —
   --fg-dim #91a5d4 on --ink #0a1730 is 7.25:1, --blue-hi #6d9bd0 is 5.9:1.
   Do not swap in --blue #5689C4 for body text; it is 4.2:1 and fails. */
:root {
  --ink:#0a1730; --ink-2:#0e1c38; --line:rgba(145,165,212,.28);
  --fg:#d4e7f4; --fg-dim:#91a5d4; --blue:#5689C4; --blue-hi:#6d9bd0;
  --s-3:12px; --s-4:16px; --s-5:24px; --s-6:32px; --s-10:64px;
  --font-body:Georgia,"Iowan Old Style",Palatino,serif;
  --font-mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}
*,*::before,*::after { box-sizing:border-box; }
/* The UA sheet's [hidden] rule is the weakest on the page; any author display
   rule beats it. Make `hidden` mean hidden. */
[hidden] { display:none !important; }
html,body { margin:0; padding:0; }
body {
  background:var(--ink); color:var(--fg);
  font:400 17px/1.7 var(--font-body); -webkit-font-smoothing:antialiased;
}
.wrap { max-width:760px; margin:0 auto; padding:0 var(--s-5); }
a { color:var(--blue-hi); }
a:focus-visible, .skip:focus { outline:3px solid var(--blue-hi); outline-offset:3px; }
/* Skip link — WCAG 2.4.1 Bypass Blocks. */
.skip {
  position:absolute; left:-9999px; top:0; background:var(--ink-2); color:var(--fg);
  padding:var(--s-3) var(--s-4); z-index:10; border:1px solid var(--line);
}
.skip:focus { left:var(--s-5); top:var(--s-3); }
header.site { border-bottom:1px solid var(--line); padding:var(--s-5) 0; }
.brand {
  display:inline-flex; align-items:center; gap:10px; color:var(--fg);
  text-decoration:none; font:400 13px/1 var(--font-mono);
  letter-spacing:.14em; text-transform:uppercase;
}
h1 { font-size:clamp(1.8rem,4vw,2.4rem); line-height:1.2; margin:var(--s-10) 0 var(--s-4); }
h2 { font-size:1.25rem; margin:var(--s-6) 0 var(--s-3); }
.meta {
  font:400 13px/1.6 var(--font-mono); letter-spacing:.1em;
  text-transform:uppercase; color:var(--fg-dim); margin:0 0 var(--s-6);
}
.dim { color:var(--fg-dim); }
ul { padding-left:1.2em; }
li { margin:0 0 8px; }
/* Wide tables must scroll inside their own box, never the page body. */
.scroll { overflow-x:auto; }
table { border-collapse:collapse; width:100%; margin:var(--s-4) 0; font-size:.95rem; }
th, td { text-align:left; padding:10px 12px; border-bottom:1px solid var(--line); vertical-align:top; }
th {
  font:400 12px/1.4 var(--font-mono); letter-spacing:.1em;
  text-transform:uppercase; color:var(--fg-dim);
}
.callout {
  border-left:4px solid var(--blue); padding:var(--s-3) 0 var(--s-3) var(--s-4);
  margin:var(--s-5) 0; color:var(--fg-dim);
}
code { font-family:var(--font-mono); font-size:.9em; color:var(--fg); }
.footer-nav {
  display:flex; flex-wrap:wrap; gap:var(--s-3) var(--s-5); margin:0 0 var(--s-4);
  font:400 14px/1.6 var(--font-mono); letter-spacing:.08em; text-transform:uppercase;
}
footer.site {
  border-top:1px solid var(--line); margin-top:var(--s-10);
  padding:var(--s-6) 0 var(--s-10);
  font:400 14px/1.7 var(--font-mono); letter-spacing:.08em;
  text-transform:uppercase; color:var(--fg-dim);
}
@media (prefers-reduced-motion:reduce) {
  * { transition:none !important; animation:none !important; }
}
