/* Portal – Grundfunktionen (immer geladen, unabhängig vom Design) */
.s5-bg { position: relative; }
.s5-rel { position: relative; z-index: 1; }
.uk-flex-column > .s5-rel { width: 100%; }
.s5-overlay { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.s5-justify-end { justify-content: flex-end; }
.tm-grid-expand > * { flex-grow: 1; }

.s5-skip { position: absolute; left: -9999px; top: 0; z-index: 1000; background: #fff; color: #000; padding: 10px 16px; }
.s5-skip:focus { left: 10px; top: 10px; }
.s5-header-overlay { position: absolute; top: 0; left: 0; right: 0; z-index: 980; }
.s5-logo-img { width: var(--s5-logo-width); max-width: 60vw; height: auto; }
.s5-logo-inverse { display: none; }
.s5-langs svg { display: inline-block; vertical-align: middle; border-radius: 2px; box-shadow: 0 0 0 1px rgba(0,0,0,.12); }
.s5-langs img { display: inline-block; vertical-align: middle; }
.s5-flag-code { font-size: .8rem; font-weight: 600; }
.s5-langs .uk-hidden { display: none !important; }

.s5-embed { position: relative; width: 100%; background: #111; }
.s5-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.s5-consent { position: relative; width: 100%; }
.s5-consent-box { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; text-align: center; padding: 20px; background: #e9ecef center/cover no-repeat; color: #333; }
.s5-consent-map .s5-consent-box { background-color: #e5e3df; background-image: repeating-linear-gradient(45deg, rgba(255,255,255,.35) 0 2px, transparent 2px 22px); }
.s5-consent-inner { max-width: 380px; background: rgba(255,255,255,.94); padding: 20px 24px; border-radius: 4px; box-shadow: 0 4px 20px rgba(0,0,0,.08); }
.s5-consent-inner p { margin: 10px 0 14px; font-size: .9rem; color: #333; }
.s5-map { width: 100%; z-index: 0; }
.s5-map-gray .leaflet-tile-pane { filter: grayscale(1); }
.s5-map .leaflet-popup-content { text-align: center; }
.s5-map .leaflet-popup-content img { max-width: 100%; height: auto; }

.s5-hp { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }
.s5-req { color: #d33; }
.s5-privacy { font-size: .9rem; }
.s5-form-success { font-size: 1.05rem; }
.s5-quote p { font-style: italic; }
.s5-quote cite { font-style: normal; font-weight: 600; }
.s5-empty-el { padding: 10px; border: 1px dashed #bbb; color: #999; font-size: .85rem; text-align: center; }
.s5-img-border { border: 1px solid rgba(0,0,0,.12); padding: 4px; background: #fff; }

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
.el-slidenav { border-radius: 500px; }
/* Formulare (an das bisherige Kontaktformular angelehnt) */
.s5-form .uk-form-label { text-transform: none; font-size: 15px; font-weight: 400; letter-spacing: 0; color: inherit; margin-bottom: 4px; display: block; }
.s5-form .uk-input, .s5-form .uk-textarea, .s5-form .uk-select { background: #f5f6f5; border: 1px solid #e3e6e4; border-radius: 4px; }
.s5-form .uk-input:focus, .s5-form .uk-textarea:focus, .s5-form .uk-select:focus { background: #fff; border-color: currentColor; }
.s5-form .uk-form-danger { border-color: #d33 !important; }
.s5-form .uk-button { border-radius: 9px; min-height: 52px; }
/* Karten-Popup wie im Original: Bild max. 1/3 der Kartenhöhe, Button-Text weiß (Leaflet färbt Links sonst blau) */
.leaflet-popup-content .map-kleine-bilder > img.el-image { display: block !important; width: auto !important; height: auto !important; max-width: 100% !important; max-height: 33cqh !important; margin: 0 auto 8px !important; object-fit: contain !important; }
.leaflet-container a.uk-button-default { color: #fff; }
.leaflet-container a.uk-button-default:hover { color: #2b5840; }
/* Fett im Fließtext wie im Original (700); das Original-Stylesheet setzt b nur „bolder“ – bei dünner Grundschrift bleibt das normal */
b { font-weight: 700; }
