/* Shared by privacy.html and terms.html. Colors and font come from brand.css (generated from brand/); keep contrast and focus rules in step with index.html. */
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin:0; background:var(--bg); color:var(--text); font:17px/1.65 var(--font); -webkit-font-smoothing:antialiased; }
a { color:var(--link); }
:focus-visible { outline:3px solid var(--primary); outline-offset:3px; border-radius:6px; }
footer.site :focus-visible { outline-color:var(--accent-on-dark); }
.wrap { max-width:760px; margin:0 auto; padding:0 24px; }
.skip { position:absolute; left:-999px; top:8px; background:var(--accent); color:var(--accent-text); padding:10px 16px; border-radius:8px; z-index:10; font-weight:700; }
.skip:focus { left:8px; }
header.site { border-bottom:1px solid var(--line); }
header.site .wrap { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:68px; max-width:1120px; }
.brand { display:flex; align-items:center; gap:10px; font-weight:800; font-size:1.25rem; color:var(--text); text-decoration:none; white-space:nowrap; }
.brand img { display:block; }
main { padding:48px 0 72px; }
h1, h2 { font-family:var(--font-heading); }
h1 { font-size:clamp(2rem,5vw,2.8rem); line-height:1.15; margin:0 0 8px; letter-spacing:-.01em; }
h2 { font-size:1.35rem; line-height:1.25; margin:2.2em 0 .5em; }
p, ul { margin:0 0 1em; } ul { padding-left:1.3em; } li { margin-bottom:.4em; }
.meta { color:var(--muted); margin-bottom:1.6em; }
.draft { border:2px solid var(--accent); border-radius:12px; background:var(--surface); padding:14px 18px; margin:0 0 2em; }
table { width:100%; border-collapse:collapse; margin:0 0 1.2em; font-size:.97rem; }
th, td { text-align:left; padding:10px 8px; border-bottom:1px solid var(--line); vertical-align:top; }
th { color:var(--muted); font-weight:600; }
.table-wrap { overflow-x:auto; }
footer.site { border-top:4px solid var(--accent); background:var(--primary-dark); padding:28px 0; color:var(--on-primary); font-size:.95rem; }
footer.site a { color:var(--accent-on-dark); }
html.reading-font { --font:var(--font-reading); --font-heading:var(--font-reading); }
footer.site .wrap { display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px 24px; max-width:1120px; }
footer.site ul { display:flex; flex-wrap:wrap; gap:8px 20px; margin:0; padding:0; list-style:none; }
@media (max-width:380px) { .wrap { padding:0 16px; } .brand { font-size:1.1rem; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
