/* Rechtliche Seiten und 404: gleiche Tokens und Kopf/Fuß wie Startseite und Einwilligung. */
:root{
  --paper:#FFFFFF; --warm:#F8F6F2; --ink:#24211E; --muted:#6A635C; --line:#E6E0D8;
  --clay:#9C6B4E;
  --sans:'Jost', ui-sans-serif, system-ui, sans-serif;
  --serif:'Newsreader', Georgia, 'Times New Roman', serif;
  --gut:clamp(16px, 4.2vw, 48px);
}
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; }
body{ margin:0; min-height:100vh; display:flex; flex-direction:column; background:var(--paper); color:var(--ink); font:400 17px/1.65 var(--sans); -webkit-font-smoothing:antialiased; }
a{ color:inherit; }
:focus-visible{ outline:2px solid var(--clay); outline-offset:3px; }
.wrap{ width:100%; max-width:calc(1240px + 2 * var(--gut)); margin-inline:auto; padding-inline:var(--gut); }
.tlink{ text-decoration:none; background:linear-gradient(currentColor,currentColor) 0 100%/100% 1px no-repeat; padding-bottom:2px; transition:color .25s; }
.tlink:hover{ color:var(--clay); }

.head .wrap{ display:flex; align-items:center; justify-content:space-between; height:72px; gap:16px; }
@media (min-width:960px){ .head .wrap{ height:88px; } }
.brand{ text-decoration:none; display:flex; flex-direction:column; gap:2px; padding:6px 0; }
.brand b{ font:500 13px/1.2 var(--sans); letter-spacing:.22em; text-transform:uppercase; white-space:nowrap; }
.brand span{ font-size:12px; line-height:1.2; color:var(--muted); letter-spacing:.04em; }
@media (min-width:960px){ .brand b{ font-size:15px; letter-spacing:.28em; } .brand span{ font-size:13px; } }
.back{ font-size:15px; letter-spacing:.02em; white-space:nowrap; }

main{ flex:1; }
.doc{ max-width:46rem; padding-block:clamp(32px, 6vw, 88px) clamp(64px, 9vw, 128px); }
.kicker{ font:500 12px/1.4 var(--sans); letter-spacing:.24em; text-transform:uppercase; color:var(--muted); margin:0 0 18px; }
h1,h2,h3{ font-family:var(--serif); font-weight:500; margin:0; text-wrap:balance; }
h1{ font-size:clamp(2.4rem, 1.6rem + 3vw, 4rem); line-height:1.04; letter-spacing:-.015em; margin-bottom:clamp(28px, 4vw, 48px); }
h1 em{ font-style:italic; }
h2{ font-size:clamp(1.45rem, 1.2rem + .8vw, 1.85rem); line-height:1.15; margin:clamp(40px, 5vw, 56px) 0 14px; padding-top:22px; border-top:1px solid var(--line); }
h3{ font:500 17px/1.4 var(--sans); margin:24px 0 6px; }
p,ul,address{ margin:0 0 1em; }
address{ font-style:normal; }
ul{ padding-left:1.2em; }
li{ margin-bottom:.35em; }
li::marker{ color:var(--clay); }
.muted{ color:var(--muted); }
.lead{ color:var(--muted); font-size:18px; max-width:36em; }
/* Platzhalter, die vor dem Livegang ausgefüllt werden müssen (_tools/check.py findet sie) */
mark.todo{ background:#FBEBD9; color:var(--ink); padding:0 .25em; outline:1px dashed var(--clay); }

.foot{ border-top:1px solid var(--line); background:var(--warm); padding:28px 0 calc(28px + env(safe-area-inset-bottom)); font-size:13px; color:var(--muted); }
.foot .wrap{ align-items:center; display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px 24px; }
.foot a{ text-decoration:none; display:inline-block; padding:12px 0; }
.foot a:hover,.foot a[aria-current="page"]{ color:var(--ink); }
.foot nav{ display:flex; flex-wrap:wrap; gap:0 20px; }
