/* Shared styles for Impressum, Datenschutz and 404 – same tokens as index.html */
@font-face { font-family: "Fraunces"; src: url("./fonts/fraunces-soft.woff2") format("woff2"); font-weight: 100 900; font-style: normal; font-display: swap; }
@font-face { font-family: "Manrope"; src: url("./fonts/manrope.woff2") format("woff2"); font-weight: 200 800; font-style: normal; font-display: swap; }
:root {
    --ink: #0b1512;
    --forest: #0d1915;
    --paper: #e1ebe2;
    --green: #b6c96d;
    --muted: #aabdb2;
    --amber: #d99a5b;
    --serif: "Fraunces", Georgia, "Times New Roman", serif;
    --sans: "Manrope", system-ui, -apple-system, "Segoe UI", sans-serif;
}
* { box-sizing: border-box; }
html { font-variation-settings: "SOFT" 100; }
.icon { display: inline-block; width: 1em; height: 1em; vertical-align: -.125em; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
body { margin: 0; color: var(--paper); background: var(--forest); font-family: var(--sans); line-height: 1.6; }
a { color: var(--green); }
:focus-visible { outline: 2px solid var(--green); outline-offset: 3px; }
.legal-top { display: flex; justify-content: space-between; align-items: center; padding: 20px 5vw; }
.brand { display: inline-flex; align-items: center; gap: 12px; color: var(--paper); font-size: 1.1rem; font-weight: 800; letter-spacing: .14em; text-decoration: none; }
.brand img { width: 64px; height: 36px; object-fit: contain; filter: invert(1); }
.back { color: var(--paper); font-size: .7rem; letter-spacing: .12em; text-decoration: none; text-transform: uppercase; }
.back:hover { color: var(--green); }
.legal { width: min(760px, 100% - 10vw); margin: 0 auto; padding: 60px 0 100px; }
.kicker { margin: 0 0 18px; color: var(--green); font-size: .7rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.legal h1 { margin: 0 0 40px; font-family: var(--serif); font-size: clamp(2.8rem, 7vw, 5rem); font-weight: 400; line-height: .95; letter-spacing: -.05em; }
.legal h2 { margin: 40px 0 10px; font-family: var(--serif); font-size: 1.5rem; font-weight: 400; }
.legal p { margin: 0 0 14px; color: var(--muted); }
.legal strong { color: var(--paper); font-weight: 400; }
.todo { padding: .1em .35em; color: var(--ink); background: var(--amber); font-weight: 700; }
footer { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem 2rem; padding: 25px 5vw; color: #aab5ae; background: var(--ink); font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; }
footer nav { display: flex; gap: 22px; }
footer a { color: var(--paper); text-decoration: none; }
.notfound { display: grid; place-items: center; min-height: 100vh; padding: 5vw; text-align: center; }
.notfound h1 { margin: 0 0 20px; font-family: var(--serif); font-size: clamp(3rem, 9vw, 7rem); font-weight: 400; line-height: .9; letter-spacing: -.06em; }
.notfound p:not(.kicker) { margin: 0 0 30px; color: var(--muted); }
.notfound .button { display: inline-block; padding: 14px 20px; color: var(--ink); background: var(--green); font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-decoration: none; text-transform: uppercase; }
