/* Gemeinsame Bausteine: Stations-Steckbriefe und Karten. Farben kommen aus den Variablen der jeweiligen Variante. */
.nur-vorleser{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* Unsichtbare Vorlesetexte in scrollbaren Tabellen dürfen die Seite nicht verbreitern */
.woche,.station-text,.fuss,.rechtliches,.faq{position:relative}

.stationen{display:grid;gap:28px}
.station{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1fr) minmax(0,1.15fr);background:var(--st-flaeche,#fff);border:1px solid var(--st-rand,#ddd);border-radius:var(--st-radius,8px);overflow:hidden;scroll-margin-top:90px}
.station-bild{width:100%;height:100%;object-fit:cover;min-height:280px}
.station-text{padding:24px 26px}
.station-adresse{margin:2px 0 6px;color:var(--st-leise,#666)}
.station-notiz{margin:0 0 6px;font-size:.95rem}
.station-plan{width:100%;border-collapse:collapse;font-size:.92rem;margin:12px 0 18px}
.station-plan th{text-align:left;font-weight:400;padding:3px 0;color:var(--st-leise,#666)}
.station-plan td{text-align:right;padding:3px 0}
.station-plan tr.heute th,.station-plan tr.heute td{font-weight:700;color:var(--st-text,#222)}
.station-route{display:inline-block;padding:3px 0;font-weight:600;color:var(--st-text,#222)}
.station-karte{min-height:280px;background:var(--st-karte,#ECEAE3);position:relative}

.karte-gross{height:460px;border-radius:var(--st-radius,8px);overflow:hidden;background:var(--st-karte,#ECEAE3);border:1px solid var(--st-rand,#ddd)}
.karte-aus{display:flex;align-items:center;justify-content:center}
.karte-zu{padding:24px;text-align:center;max-width:340px}
.karte-knopf{font:inherit;font-weight:600;cursor:pointer;padding:11px 22px;border-radius:var(--st-knopf-radius,999px);border:0;background:var(--st-knopf,#333);color:var(--st-knopf-text,#fff)}
.karte-knopf:hover{filter:brightness(1.12)}
.karte-hinweis{font-size:.875rem;line-height:1.45;color:var(--st-leise,#666);margin:12px auto 0}
.leaflet-container{font:inherit;z-index:0}

.legende{display:flex;flex-wrap:wrap;gap:8px 22px;margin:14px 0 0;padding:0;list-style:none;font-size:.92rem}
.legende li{display:flex;align-items:center;gap:8px}
.legende span{width:14px;height:14px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px rgba(0,0,0,.15)}

@media (max-width:900px){
  .station{grid-template-columns:1fr}
  .station-bild{min-height:0;aspect-ratio:16/9;height:auto}
  .station-karte{min-height:240px}
  .karte-gross{height:360px}
}

/* Fußzeile (von bauen.py erzeugt) */
.fuss-titel{font:inherit;font-weight:700;font-size:.95rem;letter-spacing:normal;text-transform:none;margin:0 0 6px;color:inherit}
.fuss p{margin:0 0 16px}
.fuss-liste{list-style:none;margin:0 0 16px;padding:0}
.fuss-liste li{padding:3px 0}
.fuss a{color:inherit}

/* Kurz & knapp mit FAQ */
.fakten{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start;margin-top:28px}
.fakten-kurz{font-size:1.08rem;max-width:none}
.faq details{border-top:1px solid var(--st-rand,#ddd);padding:14px 0}
.faq details:last-child{border-bottom:1px solid var(--st-rand,#ddd)}
.faq summary{cursor:pointer;font-weight:600;list-style-position:outside}
.faq details p{margin:10px 0 0}

/* Rechtliches */
.rechtliches .wrap{max-width:820px}
.rechtliches h1{font-size:clamp(2.2rem,4.4vw,3.2rem);margin:0 0 24px}
.rechtliches h2{font-size:1.25rem;letter-spacing:normal;text-transform:none;margin:2em 0 .5em;line-height:1.3}
.hinweis-entwurf{background:#FFF3CC;color:#3A2E00;border-left:4px solid #B98900;padding:12px 16px}

/* Feinschliff aus den Web-Richtlinien */
h1,h2{text-wrap:balance}
.station-plan,.woche table,.zeiten table,.zeitliste{font-variant-numeric:tabular-nums}
a,button,summary{touch-action:manipulation}

@media (max-width:900px){ .fakten{grid-template-columns:1fr;gap:20px} }
html{scroll-padding-top:90px}
.leaflet-popup-content a{display:inline-block;padding:5px 0}
.rechtliches h1,.rechtliches h2,.rechtliches p{hyphens:auto;overflow-wrap:break-word}
@media (max-width:520px){.rechtliches h1{font-size:1.9rem}}
