@font-face{font-family:'Source Sans 3';font-weight:400;font-display:swap;src:url(fonts/source-sans-3-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Source Sans 3';font-weight:600;font-display:swap;src:url(fonts/source-sans-3-latin-600-normal.woff2) format('woff2')}
@font-face{font-family:'Source Sans 3';font-weight:700;font-display:swap;src:url(fonts/source-sans-3-latin-700-normal.woff2) format('woff2')}

:root{--navy:#1c3f73;--rot:#a3262e;--grau:#4f5b63;--hell:#f3f5f8;--linie:#dde2e8;--text:#222}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:#fff;color:var(--text);font-family:'Source Sans 3',system-ui,sans-serif;font-size:18px;line-height:1.6}
a{color:var(--navy)} a:hover{color:var(--rot)}
img{max-width:100%;height:auto}

header.kopf{border-bottom:3px solid var(--rot);padding:28px 16px 0;text-align:center}
header.kopf .signet{display:block;width:min(560px,92vw);margin:0 auto}
nav.haupt{display:flex;justify-content:center;flex-wrap:wrap;gap:6px 30px;margin:18px 0 0;padding-bottom:14px}
nav.haupt a{color:var(--grau);text-decoration:none;font-weight:600;font-size:15px;letter-spacing:.06em;text-transform:uppercase;padding:4px 0;border-bottom:2px solid transparent}
nav.haupt a:hover,nav.haupt a[aria-current=page]{color:var(--navy);border-bottom-color:var(--rot)}

main{max-width:880px;margin:0 auto;padding:44px 16px 56px}
h1{color:var(--navy);font-size:clamp(28px,4vw,38px);line-height:1.2;margin:0 0 16px;font-weight:700}
h2{color:var(--navy);font-size:24px;line-height:1.3;margin:44px 0 12px;font-weight:700}
h3{color:var(--navy);font-size:19px;margin:24px 0 6px;font-weight:600}
p{margin:0 0 14px}
.lead{font-size:21px;color:#333}
.klein{font-size:15px;color:var(--grau)}

.motto{background:var(--hell);border-left:4px solid var(--rot);padding:18px 22px;margin:28px 0}
.motto p:last-child{margin:0}
.motto .lat{font-weight:600;color:var(--navy);letter-spacing:.03em}

.drei{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px;margin:22px 0}
.karte{border:1px solid var(--linie);border-top:3px solid var(--navy);padding:18px 18px 8px;background:#fff}
.karte h3{margin-top:0}

.kurs{border:1px solid var(--linie);padding:22px 24px 10px;margin:20px 0}
.kurs .status{display:inline-block;font-size:13px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:2px 10px;margin-bottom:8px}
.status.verfuegbar{background:var(--navy);color:#fff}
.status.vorbereitung{background:var(--hell);color:var(--navy);border:1px solid var(--linie)}
ul.liste{padding-left:22px;margin:0 0 14px} ul.liste li{margin:0 0 6px}
dl.fakten{display:grid;grid-template-columns:max-content 1fr;gap:4px 18px;margin:0 0 14px}
dl.fakten dt{color:var(--grau)} dl.fakten dd{margin:0}

.person{display:grid;grid-template-columns:220px 1fr;gap:32px;align-items:start}
.person figure{margin:0}
.person figcaption{font-size:14px;color:var(--grau);margin-top:6px}
@media (max-width:640px){.person{grid-template-columns:1fr}.person figure{max-width:220px}}

.kontakt{background:var(--hell);padding:22px 24px;margin:40px 0 0}
.kontakt h2{margin-top:0}

footer.fuss{border-top:1px solid var(--linie);color:var(--grau);font-size:15px}
footer.fuss div{max-width:880px;margin:0 auto;padding:22px 16px 30px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 24px}
footer.fuss a{color:var(--grau)}
@media (max-width:480px){nav.haupt{gap:6px 16px}nav.haupt a{font-size:13px;letter-spacing:.03em}body{font-size:17px}}

.ablauf{display:grid;grid-template-columns:1fr 280px;gap:32px;align-items:start}
.ablauf figure{margin:0}
.ablauf figcaption{font-size:14px;color:var(--grau);margin-top:6px}
@media (max-width:640px){.ablauf{grid-template-columns:1fr}.ablauf figure{max-width:280px}}

/* Kontaktformular */
.formular fieldset{border:1px solid var(--linie);padding:16px 20px 8px;margin:0 0 22px}
.formular legend{color:var(--navy);font-weight:600;padding:0 6px}
.formular .zeile{margin:0 0 12px}
.formular .zeile.zwei{display:grid;grid-template-columns:120px 1fr;gap:12px}
.formular label{display:block;font-size:16px;color:var(--grau);margin-bottom:3px}
.formular input[type=text],.formular input[type=email],.formular input[type=tel],.formular textarea{width:100%;font:inherit;font-size:17px;padding:8px 10px;border:1px solid #aab2bb;border-radius:3px;background:#fff;color:var(--text)}
.formular input:focus,.formular textarea:focus{outline:2px solid var(--navy);outline-offset:1px;border-color:var(--navy)}
.formular .haken label,.formular label.einzel{display:flex;gap:10px;align-items:flex-start;color:var(--text);font-size:17px;margin:0 0 10px}
.formular input[type=checkbox]{width:19px;height:19px;flex:none;margin:3px 0 0;accent-color:var(--navy)}
.formular button{font:inherit;font-weight:600;font-size:17px;color:#fff;background:var(--navy);border:0;border-radius:3px;padding:10px 26px;cursor:pointer}
.formular button:hover,form button:hover{background:var(--rot)}
form button{font:inherit;font-weight:600;color:#fff;background:var(--navy);border:0;border-radius:3px;padding:10px 26px;cursor:pointer}
.fehler{background:#fbeeee;border-left:4px solid var(--rot);padding:14px 18px;margin:0 0 20px}
.fehler p{margin:0 0 6px} .fehler ul{margin:0;padding-left:20px}
.hp{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
@media (max-width:480px){.formular .zeile.zwei{grid-template-columns:1fr}}
.formular select{width:100%;font:inherit;font-size:17px;padding:8px 10px;border:1px solid #aab2bb;border-radius:3px;background:#fff;color:var(--text)}
@media (max-width:480px){.formular .zeile.zwei>div{grid-template-columns:1fr!important}}
