/* Groß Briesen Connect — Info-Website. Groß, kontrastreich, ohne externe Abhängigkeiten. */
:root { --primary:#0B5ED7; --text:#1C1C1E; --muted:#5F5F66; --bg:#F7F7F9; --card:#FFFFFF; --border:#E5E5EA; }
* { box-sizing:border-box; }
html { font-size:18px; }
body { margin:0; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif; color:var(--text); background:var(--bg); line-height:1.6; }
a { color:var(--primary); }
a:focus, button:focus { outline:3px solid var(--primary); outline-offset:2px; }
header { background:var(--primary); color:#fff; padding:1.25rem 1rem; }
header .wrap { max-width:56rem; margin:0 auto; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:.75rem; }
header a { color:#fff; text-decoration:none; font-weight:700; }
header nav a { margin-left:1.25rem; font-weight:600; text-decoration:underline; }
main { max-width:56rem; margin:0 auto; padding:1.5rem 1rem 3rem; }
h1 { font-size:2rem; line-height:1.2; margin:.5rem 0 1rem; }
h2 { font-size:1.4rem; margin:2rem 0 .75rem; }
h3 { font-size:1.15rem; margin:1.5rem 0 .5rem; }
p, li { max-width:42rem; }
.lead { font-size:1.2rem; color:var(--muted); }
.card { background:var(--card); border:1px solid var(--border); border-radius:16px; padding:1.25rem 1.5rem; margin:1rem 0; }
.grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(15rem,1fr)); gap:1rem; }
.grid .card { margin:0; }
.card h3 { margin-top:0; }
.steps { counter-reset:s; padding-left:0; list-style:none; }
.steps li { counter-increment:s; position:relative; padding-left:3rem; margin:.75rem 0; }
.steps li::before { content:counter(s); position:absolute; left:0; top:0; width:2.2rem; height:2.2rem; border-radius:50%; background:var(--primary); color:#fff; font-weight:800; display:flex; align-items:center; justify-content:center; }
.btn { display:inline-block; background:var(--primary); color:#fff; padding:.9rem 1.4rem; border-radius:12px; text-decoration:none; font-weight:700; min-height:3.2rem; }
.muted { color:var(--muted); }
footer { border-top:1px solid var(--border); padding:1.5rem 1rem 2.5rem; color:var(--muted); }
footer .wrap { max-width:56rem; margin:0 auto; display:flex; flex-wrap:wrap; gap:1.25rem; }
dl dt { font-weight:700; margin-top:.75rem; }
dl dd { margin:0 0 .25rem; }
table { border-collapse:collapse; width:100%; margin:.5rem 0 1rem; }
th, td { text-align:left; vertical-align:top; padding:.5rem .6rem; border-bottom:1px solid var(--border); }
th { background:#EEF3FC; }
@media (max-width:40rem) { html{font-size:17px;} h1{font-size:1.6rem;} header nav a{margin:0 1rem 0 0;} }
