/* shared by impressum.html, datenschutz.html, agb.html — fonts come from assets/fonts (self-hosted), no external requests */
:root {
  --ground:#010c1d; --surface:#0b1929; --card:#111f35; --border:#1e3050; --line:#16273f;
  --text:#f9f9fa; --dim:#a3acb9; --mute:#6f7b8c;
  --accent:#00b97a; --accent-bright:#00c481; --accent-deep:#007c52; --tint:rgba(0,185,122,.14);
  --warn:#d2a107; --maxw:1200px; --r:12px;
  --f-display:'Archivo','Helvetica Neue',Arial,sans-serif;
  --f-body:'IBM Plex Sans',-apple-system,'Segoe UI',system-ui,sans-serif;
  --f-mono:'IBM Plex Mono',ui-monospace,'SF Mono',Menlo,monospace;
}
* { box-sizing:border-box; }
body { margin:0; background:var(--ground); color:var(--text); font:400 1rem/1.7 var(--f-body); -webkit-font-smoothing:antialiased; }
h1,h2,h3 { font-family:var(--f-display); letter-spacing:-.02em; line-height:1.15; margin:0; }
p { margin:0; } a { color:inherit; } img { max-width:100%; display:block; }
:focus-visible { outline:2px solid var(--accent); outline-offset:2px; border-radius:4px; }
.wrap { max-width:var(--maxw); margin:0 auto; padding:0 28px; }

.nav { border-bottom:1px solid var(--line); background:rgba(1,12,29,.82); }
.nav__in { max-width:var(--maxw); margin:0 auto; padding:10px 28px; display:flex; align-items:center; gap:28px; }
.nav__logo { height:59px; width:auto; }
.nav__back { margin-left:auto; color:var(--dim); font-size:.9375rem; text-decoration:none; }
.nav__back:hover { color:var(--text); }
.nav__back { white-space:nowrap; } .nav__back .short { display:none; }
@media (max-width:480px){ .nav__back .long { display:none; } .nav__back .short { display:inline; } }

.legal { max-width:780px; margin:0 auto; padding:72px 28px 96px; }
.eyebrow { font:500 .8125rem var(--f-mono); letter-spacing:.14em; text-transform:uppercase; color:var(--accent); }
.legal h1 { font-size:clamp(1.9rem,3.5vw,2.5rem); font-weight:800; margin:12px 0 10px; }
.legal .stand { color:var(--mute); font-size:.8125rem; margin-bottom:40px; }
.legal h2 { font-size:1.375rem; font-weight:700; margin:44px 0 12px; }
.legal h3 { font-size:1.125rem; font-weight:600; margin:26px 0 8px; }
.legal p, .legal li { color:var(--dim); }
.legal p + p { margin-top:12px; }
.legal ul, .legal ol { margin:12px 0 0; padding-left:1.3em; }
.legal li + li { margin-top:6px; }
.legal li::marker { color:var(--accent); }
.legal a { color:var(--accent-bright); text-underline-offset:3px; }
.legal strong { color:var(--text); font-weight:600; }
.legal address { font-style:normal; color:var(--text); }
.legal .box { margin-top:16px; border:1px solid var(--border); background:var(--card); border-radius:var(--r); padding:18px 22px; }
.legal .toc { columns:2; column-gap:36px; margin:28px 0 0; padding:0; list-style:none; font-size:.9375rem; }
.legal .toc li { break-inside:avoid; margin:0 0 6px; } .legal .toc a { color:var(--dim); text-decoration:none; } .legal .toc a:hover { color:var(--text); }
@media (max-width:640px){ .legal .toc { columns:1; } }
/* an open point the developer still has to fill in — must be gone before the page goes live */
mark.todo { background:rgba(210,161,7,.18); color:var(--warn); padding:1px 6px; border-radius:4px; font:500 .875em var(--f-mono); }
.draft { border:1px dashed var(--warn); border-radius:var(--r); padding:14px 18px; color:var(--warn); font-size:.875rem; margin-bottom:36px; }

footer { border-top:1px solid var(--line); padding:34px 0 50px; color:var(--mute); font-size:.8125rem; }
.foot { display:flex; flex-wrap:wrap; gap:14px 36px; align-items:center; justify-content:space-between; }
.foot img { height:46px; }
.foot nav a { color:var(--mute); text-decoration:none; display:inline-block; padding:10px 0; } .foot nav a:hover { color:var(--text); }
.foot nav a + a::before { content:" · "; white-space:pre; color:var(--mute); }
