/* TSV Wehdel – Design v2
   Vereinsgrün #007A33, Papierweiß, Bahamas für Überschriften. */

@font-face { font-family:"Bahamas"; src:url("/fonts/bahamasn.ttf") format("truetype"); font-weight:400; font-display:swap; }
@font-face { font-family:"Bahamas"; src:url("/fonts/bahamasb.ttf") format("truetype"); font-weight:700; font-display:swap; }
@font-face { font-family:"Bahamas"; src:url("/fonts/bahamahn.ttf") format("truetype"); font-weight:800; font-display:swap; }

:root{
  --gruen:#007A33; --gruen-d:#00411c; --gruen-l:#e2ecdf;
  --papier:#f2f1ec; --weiss:#ffffff; --sand:#f6f5f0; --sand2:#ebe9e2;
  --linie:#d9d7cd; --linie2:#e3e1d8; --rahmen:#cbc8bd;
  --tinte:#1b1d18; --tinte2:#40453c; --tinte3:#4a5048; --grau:#6b7280; --grau2:#8a8f84;
  --dunkel:#11150f;
  --sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --mono: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
  --serif-display: Bahamas, var(--sans);
}

*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{margin:0;background:var(--papier);color:var(--tinte);font-family:var(--sans);font-size:16px;line-height:1.5;}
img{max-width:100%;}
a{color:var(--gruen);}
a:hover{color:var(--gruen-d);}
input,select,textarea,button{font-family:inherit;font-size:inherit;}

/* ---------- Grundlayout ---------- */
.layout{display:flex;flex-wrap:wrap;align-items:stretch;min-height:100vh;}
.sidebar{flex:1 1 240px;max-width:288px;background:var(--dunkel);color:#e9ece6;display:flex;flex-direction:column;gap:24px;padding:26px 22px 22px;}
.main{flex:999 1 560px;min-width:0;display:flex;flex-direction:column;}
.inhalt{padding:clamp(24px,5vw,56px);display:flex;flex-direction:column;gap:28px;width:100%;max-width:1240px;margin:0 auto;}
.inhalt.schmal{max-width:900px;}
.inhalt.text{max-width:820px;}

/* ---------- Marke / Seitenleiste ---------- */
.marke{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;text-decoration:none;}
.marke img{width:104px;height:104px;display:block;}
.marke-text{display:flex;flex-direction:column;line-height:1.02;}
.marke-name{font-family:var(--serif-display);font-weight:800;font-size:26px;color:#fff;}
.marke-sub{font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:#7e8a79;margin-top:6px;}

.marke-social{display:flex;gap:8px;margin-top:-10px;}
.marke-social a{flex:1;display:flex;align-items:center;justify-content:center;gap:7px;border:1px solid #3a4335;border-radius:3px;padding:8px 6px;text-decoration:none;color:#c3ccbe;font-size:12px;line-height:1;}
.marke-social a:hover{border-color:#6e7a69;color:#fff;}
.marke-social img{width:17px;height:17px;flex-shrink:0;}

.nav{display:flex;flex-direction:column;gap:2px;}
.nav + .nav{padding-top:4px;border-top:1px solid #262c22;}
.nav-titel{font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:#6e7a69;padding:14px 0 8px 12px;}
.nav:first-of-type .nav-titel{padding-top:0;}
.nav a{display:block;padding:9px 12px;border-radius:3px;text-decoration:none;font-size:15px;line-height:1.3;color:#b9c2b4;}
.nav a:hover{color:#fff;}
.nav a.aktiv{background:var(--gruen);color:#fff;font-weight:600;}
.subnav{display:flex;flex-direction:column;gap:1px;margin:2px 0 6px 12px;padding-left:10px;border-left:1px solid #2c3327;}
.subnav a{padding:6px 10px;font-size:13.5px;color:#8a9385;}
.subnav a.aktiv{background:none;color:#8fe0b0;font-weight:600;}

.sidebar-fuss{margin-top:auto;display:flex;flex-direction:column;gap:14px;padding-top:20px;}
.social{display:flex;gap:10px;align-items:center;}
.social img{width:22px;height:22px;}
.adresse{font-family:var(--mono);font-size:10.5px;line-height:1.7;color:#6e7a69;}
.abmelden{background:none;border:1px solid #3a4335;color:#c3ccbe;padding:9px 14px;border-radius:3px;font-size:13px;text-decoration:none;display:inline-block;text-align:left;}
.abmelden:hover{border-color:#6e7a69;color:#fff;}

.nav-toggle{display:none;}

/* ---------- Kopfbereiche ---------- */
.hero{position:relative;min-height:clamp(340px,26vw,560px);display:flex;align-items:flex-end;
  background-image:linear-gradient(90deg,rgba(9,14,7,.82) 0%,rgba(9,14,7,.35) 70%),url("/bilder/sportplatz.jpg");
  background-size:cover;background-position:center 60%;}
.hero-inner{padding:clamp(32px,5vw,56px);display:flex;flex-direction:column;gap:14px;width:100%;max-width:1240px;margin:0 auto;}
.hero .kicker{font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#9fdcb6;}
.hero h1{font-family:var(--serif-display);font-weight:800;font-size:clamp(38px,6.5vw,72px);line-height:.98;letter-spacing:-.02em;color:#fff;margin:0;max-width:14ch;}
.hero .hero-meta{margin:0;font-family:var(--mono);font-size:12.5px;letter-spacing:.1em;text-transform:uppercase;color:#cfe3d5;}

.kicker{font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--grau);margin-bottom:10px;}
.seitenkopf h1{font-family:var(--serif-display);font-weight:800;font-size:clamp(30px,4.5vw,52px);line-height:1.02;margin:0 0 12px;}
.seitenkopf p{margin:0;font-size:17px;color:var(--tinte3);max-width:62ch;line-height:1.6;}
.titel-app{display:flex;align-items:flex-end;justify-content:space-between;gap:12px 16px;flex-wrap:wrap;margin:0 0 12px;}
.titel-app h1{margin:0;}
.app-knopf{display:inline-flex;align-items:center;gap:8px;padding:8px 14px 8px 8px;}
.app-knopf img{border-radius:6px;display:block;}

h2{font-family:var(--serif-display);font-weight:800;font-size:clamp(24px,3vw,30px);letter-spacing:-.01em;margin:0 0 14px;}
h3{font-family:var(--serif-display);font-weight:700;font-size:21px;margin:0 0 8px;}
.abschnitt-titel{border-bottom:1px solid var(--linie);padding-bottom:10px;margin-bottom:18px;}
.titelzeile{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap;border-bottom:1px solid var(--linie);padding-bottom:10px;margin-bottom:18px;}
.titelzeile h2{margin:0;}
.mehr{font-family:var(--mono);font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;white-space:nowrap;}
p{text-wrap:pretty;}
.fliess p{margin:0 0 14px;font-size:16.5px;line-height:1.72;color:var(--tinte2);max-width:76ch;}
.fliess p:last-child{margin-bottom:0;}
.hinweis{margin:14px 0 0;font-size:14.5px;line-height:1.65;color:var(--grau);max-width:76ch;}

/* ---------- Buttons ---------- */
.btn{display:inline-block;background:var(--gruen);color:#fff;text-decoration:none;font-weight:600;font-size:14.5px;padding:12px 18px;border:0;border-radius:3px;cursor:pointer;white-space:nowrap;}
.btn:hover{background:var(--gruen-d);color:#fff;}
.btn.rahmen{background:#fff;border:1px solid var(--rahmen);color:var(--tinte);}
.btn.rahmen:hover{border-color:var(--gruen);color:var(--gruen);background:#fff;}
.btn.klein{padding:8px 13px;font-size:13.5px;}
.btn.rot{background:#fff;border:1px solid #d8bdbd;color:#9a3131;}
.btn.rot:hover{background:#9a3131;color:#fff;border-color:#9a3131;}
.btn-reihe{display:flex;flex-wrap:wrap;gap:10px;}

/* ---------- Karten / Raster ---------- */
.raster{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1px;background:var(--linie);border:1px solid var(--linie);}
.raster > *{background:#fff;padding:22px 20px;}
.karten{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;}
.karte{background:#fff;border:1px solid var(--linie);padding:22px;display:flex;flex-direction:column;gap:7px;text-decoration:none;color:var(--tinte);}
a.karte:hover,button.karte:hover{border-color:var(--gruen);color:var(--tinte);}
.karte-titel{font-family:var(--serif-display);font-weight:700;font-size:21px;line-height:1.15;}
.karte-text{font-size:14.5px;line-height:1.5;color:var(--tinte3);}
.karte-fuss{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--gruen);margin-top:auto;}
button.karte{text-align:left;cursor:pointer;font:inherit;width:100%;}

.akzent{border-left:3px solid var(--gruen);padding-left:22px;}
.akzent h2{font-size:24px;}

/* ---------- Tabellen als Raster ---------- */
.tabelle{display:flex;flex-direction:column;gap:1px;background:var(--linie);border:1px solid var(--linie);}
.tabelle .kopf,.tabelle .zeile{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:14px;padding:14px 16px;background:#fff;align-items:baseline;}
.tabelle .kopf{background:var(--sand2);font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--grau);}
.tabelle .zeile span{font-size:15px;line-height:1.5;color:var(--tinte2);}
.tabelle .zeile strong{font-weight:600;font-size:16px;color:var(--tinte);}
.tabelle .betrag{font-family:var(--mono);font-size:16px;color:var(--gruen);}

/* ---------- Personen ---------- */
.person{display:flex;flex-direction:column;gap:5px;min-height:124px;}
.person .rolle{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--gruen);line-height:1.5;}
.person .name{font-family:var(--serif-display);font-weight:700;font-size:20px;line-height:1.2;}
.person .adr{font-size:14px;line-height:1.5;color:var(--grau);white-space:pre-line;}
.person a{font-size:14px;text-decoration:none;word-break:break-word;}

/* ---------- News ---------- */
.news-karten{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px;}
.news-karte{background:#fff;border:1px solid var(--linie2);padding:20px;display:flex;flex-direction:column;gap:10px;}
.news-meta{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;}
.badge{color:var(--gruen-d);background:var(--gruen-l);padding:4px 8px;border-radius:2px;}
.news-datum{color:var(--grau2);}
.news-karte h3{margin:0;font-size:20px;}
.news-karte h3 a{text-decoration:none;color:var(--tinte);}
.news-karte h3 a:hover{color:var(--gruen);}
.news-karte p{margin:0;font-size:15px;line-height:1.6;color:var(--tinte3);flex:1;}
.news-liste{display:flex;flex-direction:column;gap:1px;background:var(--linie);border:1px solid var(--linie);}
.news-eintrag{background:#fff;padding:26px clamp(18px,3vw,32px);display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;}
.news-eintrag .links{display:flex;flex-direction:column;gap:8px;align-items:flex-start;}
.news-eintrag h2{margin:4px 0 0;font-size:24px;line-height:1.15;font-weight:700;}
.news-eintrag h2 a{text-decoration:none;color:var(--tinte);}
.news-eintrag p{margin:0;font-size:16px;line-height:1.68;color:var(--tinte2);}
.artikel{background:#fff;border:1px solid var(--linie);padding:clamp(20px,3vw,32px);max-width:76ch;}
.artikel p{font-size:16.5px;line-height:1.75;color:var(--tinte2);}
.news-karte-bild{display:block;margin:-20px -20px 4px;aspect-ratio:16/10;overflow:hidden;background:var(--linie2);}
.news-karte-bild img{width:100%;height:100%;object-fit:cover;display:block;}
.news-archiv-bild{display:block;aspect-ratio:16/9;overflow:hidden;margin:0 0 14px;background:var(--linie2);}
.news-archiv-bild img{width:100%;height:100%;object-fit:cover;display:block;}
.news-titelbild{margin:0;max-width:76ch;display:flex;flex-direction:column;gap:8px;}
.news-titelbild img{width:100%;height:auto;display:block;max-height:560px;object-fit:cover;}
.news-titelbild figcaption,.news-galerie figcaption{font-size:14px;line-height:1.5;color:var(--grau);}
.news-galerie{max-width:76ch;display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;}
.news-galerie figure{margin:0;display:flex;flex-direction:column;gap:6px;}
.news-galerie a{display:block;aspect-ratio:1;overflow:hidden;background:var(--linie2);}
.news-galerie img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .2s;}
.news-galerie a:hover img{transform:scale(1.03);}
.bild-verwaltung{display:flex;flex-direction:column;gap:1px;background:var(--linie);border:1px solid var(--linie);margin-bottom:10px;}
.bild-zeile{background:#fff;padding:10px;display:grid;grid-template-columns:96px minmax(0,1fr);gap:12px;align-items:center;}
.bild-zeile img{width:96px;height:72px;object-fit:cover;display:block;}
.bild-felder{display:flex;flex-direction:column;gap:8px;min-width:0;}
.bild-optionen{display:flex;gap:18px;flex-wrap:wrap;font-size:14px;}
.bild-optionen label{display:flex;gap:6px;align-items:center;cursor:pointer;}

/* ---------- Termine ---------- */
.termin-liste{display:flex;flex-direction:column;}
.termin{display:grid;grid-template-columns:96px 1fr auto;gap:18px;align-items:center;padding:15px 12px;border-bottom:1px solid var(--linie2);width:100%;background:none;border-left:0;border-right:0;border-top:0;text-align:left;cursor:pointer;}
.termin:hover{background:var(--sand2);}
.termin .datum{font-family:var(--mono);font-size:12.5px;color:var(--gruen);letter-spacing:.02em;}
.termin .titel{display:block;font-weight:600;font-size:16.5px;}
.termin .meta{display:block;font-size:13.5px;color:var(--grau);margin-top:2px;}
.termin .kat{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--gruen-d);background:var(--gruen-l);padding:4px 9px;border-radius:2px;white-space:nowrap;}
.termin.intern{background:var(--sand);}
.termin.intern .datum{color:var(--gruen-d);}
.termin.intern .kat{background:var(--gruen-d);color:#fff;}
.intern-hinweis{font-size:14px;color:var(--tinte2);background:var(--sand);border:1px dashed var(--gruen-d);padding:10px 14px;margin:0 0 6px;}

.filter{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;}
.feld{display:flex;flex-direction:column;gap:6px;}
.feld > span,.feld > label{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--grau);}
.feld input,.feld select,.feld textarea{border:1px solid var(--rahmen);background:#fff;padding:10px 12px;border-radius:2px;font-size:15px;color:var(--tinte);width:100%;}
.feld textarea{resize:vertical;min-height:90px;}
.feld.breit{flex:1 1 260px;min-width:0;}
.checkfeld{display:flex;gap:9px;align-items:center;font-size:15px;color:var(--tinte2);cursor:pointer;}
.checkfeld input{width:17px;height:17px;accent-color:var(--gruen);}

.kal-nav{display:flex;gap:6px;margin-left:auto;}
.kal-nav .btn.rahmen{padding:0 16px;height:40px;line-height:38px;}
.kalender{background:#fff;border:1px solid var(--linie);padding:10px;}
.fc .fc-toolbar-title{font-family:var(--serif-display);color:var(--gruen-d);}
.fc .fc-button{border-radius:2px;background:#fff;border:1px solid var(--rahmen);color:var(--tinte);font-weight:600;}
.fc .fc-button:hover{background:var(--sand2);color:var(--tinte);}
.fc .fc-button-primary:not(:disabled).fc-button-active{background:var(--gruen);border-color:var(--gruen);color:#fff;}
.fc-event{border-radius:2px;}
.fc .fc-cat{display:inline-block;margin-right:8px;padding:2px 8px;border-radius:2px;background:var(--gruen-l);color:var(--gruen-d);font-family:var(--mono);font-size:.8em;}
.kal-notiz{font-family:var(--mono);font-size:11.5px;color:var(--grau2);margin-top:10px;}

/* ---------- Dialog ---------- */
.dialog-bg{position:fixed;inset:0;background:rgba(11,14,9,.55);z-index:900;}
.dialog{position:fixed;inset:0;z-index:910;display:flex;align-items:center;justify-content:center;padding:24px;}
.dialog-inner{background:#fff;max-width:520px;width:100%;padding:28px;display:flex;flex-direction:column;gap:12px;}
.dialog-kopf{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;}
.dialog-kopf h3{margin:0;font-size:25px;line-height:1.15;}
.dialog-schliessen{border:0;background:var(--papier);width:32px;height:32px;cursor:pointer;font-size:17px;color:var(--tinte3);flex-shrink:0;}
.dialog-wann{font-family:var(--mono);font-size:12.5px;color:var(--gruen);}
.dialog-meta{font-size:15.5px;color:var(--tinte3);}
.dialog-text{margin:4px 0 0;font-size:15.5px;line-height:1.6;color:var(--tinte2);white-space:pre-line;}
[hidden]{display:none !important;}

/* ---------- Formulare / Meldungen ---------- */
.formular{background:#fff;border:1px solid var(--linie);padding:clamp(20px,3vw,30px);display:flex;flex-direction:column;gap:16px;}
.formular h2{margin:0;font-size:22px;}
.zwei-spalten{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;}
.pflicht{margin:0;font-family:var(--mono);font-size:11.5px;color:var(--grau2);}
.meldung{padding:12px 14px;border:1px solid var(--gruen);background:var(--gruen-l);color:var(--gruen-d);font-size:15px;}
.meldung.fehler{border-color:#d8bdbd;background:#fbeeee;color:#9a3131;}
.wiederholung{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px;background:var(--sand);border:1px solid var(--linie2);padding:14px;}

.verwaltung{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px;align-items:start;}
.eintrag-liste{display:flex;flex-direction:column;gap:1px;background:var(--linie);border:1px solid var(--linie);}
.eintrag{background:#fff;padding:14px 16px;display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;}
.eintrag .name{font-weight:600;font-size:16px;}
.eintrag .meta{font-family:var(--mono);font-size:11.5px;color:var(--grau2);margin-top:3px;}
.eintrag-aktionen{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;align-items:center;}
.eintrag form{margin:0;}
.btn:disabled{opacity:.4;cursor:default;}
details > summary{cursor:pointer;}
details > summary::-webkit-details-marker{display:none;}

.platzhalter{border:1px dashed var(--rahmen);background:var(--sand);padding:26px;}

/* ---------- Galerie ---------- */
.galerie{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px;}
.galerie figure{margin:0;background:#fff;border:1px solid var(--linie);padding:12px;display:flex;flex-direction:column;gap:10px;}
.galerie a{display:block;line-height:0;}
.galerie img{width:100%;height:auto;display:block;}
.galerie figcaption{font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:var(--grau);line-height:1.5;}

.platzhalter .karte-titel{margin-bottom:8px;}

/* ---------- Sponsoren ---------- */
.sponsoren{background:#fff;border:1px solid var(--linie2);padding:clamp(20px,3vw,32px);display:flex;flex-wrap:wrap;align-items:center;gap:30px 40px;}
.sponsoren a,.sponsoren span{display:block;line-height:0;}
.sponsoren img{width:auto;max-width:100%;display:block;}
.sponsoren a:hover img{opacity:.75;}

/* ---------- TSV Journal ---------- */
.journal-gitter{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:18px;}
.journal{display:flex;flex-direction:column;gap:11px;text-decoration:none;color:var(--tinte);}
.journal-bild{display:block;aspect-ratio:1/1.414;background:#fff;border:1px solid var(--linie2);overflow:hidden;position:relative;transition:border-color .15s;}
.journal:hover .journal-bild{border-color:var(--gruen);}
.journal-bild img{width:100%;height:100%;object-fit:cover;object-position:top center;display:block;}
.journal-ersatz{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;overflow:hidden;}
.journal-band{position:absolute;top:26%;left:-24%;width:150%;background:var(--gruen);color:#fff;transform:rotate(-19deg);text-align:center;font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.18em;padding:5px 0;}
.journal-nr{font-family:var(--serif-display);font-size:38px;font-weight:800;line-height:1;color:var(--tinte);margin-top:34%;}
.journal-jahr{font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--grau);}
.journal-text{display:flex;flex-direction:column;gap:3px;}
.journal-titel{font-weight:600;font-size:15.5px;}
.journal-meta{font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:var(--grau);}

.jahr-block{border:1px solid var(--linie);background:#fff;}
.jahr-block summary{cursor:pointer;list-style:none;padding:14px 18px;display:flex;justify-content:space-between;align-items:baseline;gap:14px;font-weight:600;font-size:17px;}
.jahr-block summary::-webkit-details-marker{display:none;}
.jahr-block summary:hover{background:var(--sand);}
.jahr-anzahl{font-family:var(--mono);font-size:11.5px;font-weight:400;letter-spacing:.1em;color:var(--grau);}
.jahr-liste{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1px;background:var(--linie);border-top:1px solid var(--linie);}
.jahr-liste a{background:#fff;padding:13px 18px;display:flex;justify-content:space-between;align-items:baseline;gap:12px;text-decoration:none;color:var(--tinte);font-size:15px;}
.jahr-liste a:hover{background:var(--sand);color:var(--gruen-d);}
.jahr-pdf{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;color:var(--grau2);}

/* ---------- Protokoll ---------- */
.protokoll{display:flex;flex-direction:column;gap:1px;background:var(--linie);border:1px solid var(--linie);}
.prot-kopf,.prot-zeile{display:grid;grid-template-columns:132px 1fr 1fr 1fr 1.6fr;gap:14px;padding:11px 14px;background:#fff;align-items:baseline;}
.prot-kopf{background:var(--sand2);font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--grau);}
.prot-zeile{font-size:14.5px;line-height:1.5;color:var(--tinte2);}
.prot-zeile.warn .prot-was{color:#9a3131;font-weight:600;}
.prot-zeit{font-family:var(--mono);font-size:12.5px;color:var(--gruen);white-space:nowrap;}
.prot-wer{font-weight:600;color:var(--tinte);}
.prot-wo{font-family:var(--mono);font-size:12px;color:var(--grau);}
.prot-betrifft{min-width:0;word-break:break-word;}
.prot-notiz{display:block;font-family:var(--mono);font-size:11.5px;color:var(--grau2);margin-top:2px;}
@media (max-width:820px){
  .prot-kopf{display:none;}
  .prot-zeile{grid-template-columns:1fr;gap:3px;padding:14px;}
}

/* ---------- Abteilungsseiten ---------- */
.abt-oben{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(24px,4vw,44px);align-items:start;}
@media (min-width:1080px){
  .abt-oben{grid-template-columns:minmax(0,1.5fr) minmax(300px,1fr);}
  .abt-kontakte .raster{grid-template-columns:minmax(0,1fr);}
  .abt-kontakte .person{min-height:0;}
}

/* ---------- Fußzeile ---------- */
.fusszeile{margin-top:auto;border-top:1px solid var(--linie);padding:22px clamp(24px,5vw,56px);display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;align-items:center;font-size:14px;color:var(--grau);}
.fusszeile a{color:var(--grau);text-decoration:none;}
.fusszeile a:hover{color:var(--gruen);}
.fuss-links{display:flex;gap:16px;flex-wrap:wrap;}
.fusszeile{max-width:1240px;width:100%;margin-left:auto;margin-right:auto;}

/* ---------- Mobil ---------- */
@media (max-width:860px){
  .layout{display:block;}
  .sidebar{position:sticky;top:0;z-index:60;max-width:none;padding:14px 16px;gap:0;flex-direction:row;align-items:center;flex-wrap:wrap;}
  .marke{flex-direction:row;gap:12px;text-align:left;}
  .marke img{width:52px;height:52px;}
  .marke-name{font-size:21px;}
  .marke-sub{font-size:9.5px;margin-top:3px;}
  .sidebar-fuss{margin:0 0 0 auto;padding:0;flex-direction:row;align-items:center;gap:12px;}
  .marke-social{margin:0 0 0 auto;gap:12px;}
  .marke-social a{flex:0 0 auto;border:0;padding:0;}
  .marke-social a span{display:none;}
  .marke-social img{width:22px;height:22px;}
  .adresse{display:none;}
  .nav-toggle{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border:1px solid #3a4335;background:none;color:#e9ece6;font-size:20px;cursor:pointer;border-radius:3px;margin-left:12px;}
  .sidebar .nav{display:none;width:100%;}
  .sidebar.offen .nav{display:flex;margin-top:14px;}
  .sidebar.offen .nav + .nav{margin-top:8px;}
  .hero{min-height:260px;}
  .termin{grid-template-columns:1fr;gap:6px;}
  .termin .kat{justify-self:start;}
}
