:root { --bg:#f6f7f9; --fg:#1b1f24; --muted:#5b6470; --card:#fff; --line:#dde1e6; --accent:#0b57d0; }
@media (prefers-color-scheme: dark) {
  :root { --bg:#12151a; --fg:#e8ebef; --muted:#9aa4b0; --card:#1b2027; --line:#2b323b; --accent:#6ea8ff; }
}
* { box-sizing: border-box; }
body { margin:0; background:var(--bg); color:var(--fg); font:16px/1.5 system-ui, sans-serif; }
main { max-width:44rem; margin:0 auto; padding:3rem 1rem 2rem; }
h1 { margin:0 0 .25rem; font-size:clamp(1.5rem, 8vw, 2rem); }
h1, h2, h3, p { overflow-wrap:anywhere; hyphens:auto; }
.lead { margin:0 0 2rem; color:var(--muted); }
.kacheln { display:grid; gap:1rem; grid-template-columns:repeat(auto-fit, minmax(min(16rem, 100%), 1fr)); }
.kachel { display:block; padding:1.25rem; background:var(--card); border:1px solid var(--line);
          border-radius:.75rem; color:inherit; text-decoration:none; }
.kachel:hover, .kachel:focus-visible { border-color:var(--accent); outline:none; }
.kachel h2 { margin:0 0 .35rem; font-size:1.25rem; color:var(--accent); }
.kachel p { margin:0; color:var(--muted); }
footer { max-width:44rem; margin:0 auto; padding:1rem; color:var(--muted); font-size:.875rem; }

h2 { margin:2rem 0 .5rem; font-size:1.25rem; }
h3 { margin:1.5rem 0 .25rem; font-size:1.05rem; }
main p, main address { margin:.5rem 0; }
address { font-style:normal; }
a { color:var(--accent); }
.zurueck { display:inline-block; margin-bottom:1.5rem; }
footer a { display:inline-block; margin-left:.25rem; padding:.4rem .5rem; }
