* { box-sizing: border-box; }
html, body { margin: 0; background: #fff; color: #252525; font-family: Arial, Helvetica, sans-serif; }
.wegener-map-component { padding: 24px; margin: 0 auto; max-width: 1600px; }
.wegener-map-shell { position: relative; overflow: hidden; border-radius: 30px; background: #f0f0f0; isolation: isolate; }
#wegener-map { height: 600px; width: 100%; background: #ededed; font-family: inherit; }
/* Nur Kartenkacheln entfärben. Logos, Links und Quellen bleiben unberührt. */
#wegener-map .leaflet-tile-pane { filter: grayscale(1) brightness(1.15) contrast(.72); opacity: .72; }
#wegener-map .leaflet-control-attribution { color: #444; background: rgba(255,255,255,.94); padding: 3px 8px; font-size: 11px; }
#wegener-map .leaflet-control-attribution a { color: #333; text-decoration: underline; }
.wegener-marker { background: transparent; border: 0; }
.wegener-marker::after { content: ''; position: absolute; inset: -10px; }
.wegener-marker img { display: block; width: 100%; height: 100%; object-fit: contain; background: white; box-shadow: 0 1px 5px #00000016; }
.wegener-marker:hover img, .wegener-marker:focus-visible img { box-shadow: 0 3px 14px #0004; }
.wegener-marker:focus-visible { outline: 3px solid #252525; outline-offset: 4px; }
.wegener-overview { position: absolute; z-index: 500; right: 16px; top: 16px; border: 1px solid #ddd; border-radius: 7px; padding: 11px 14px; background: #fff; color: #252525; font: 600 13px Arial, sans-serif; cursor: pointer; box-shadow: 0 1px 5px #0002; }
.wegener-overview:hover { background: #f5f5f5; }
.wegener-map-status { position: absolute; z-index: 500; left: 14px; right: 14px; bottom: 32px; width: fit-content; max-width: calc(100% - 28px); padding: 10px 14px; background: white; border-radius: 7px; font-size: 13px; box-shadow: 0 1px 5px #0002; }
#wegener-map .leaflet-popup-content-wrapper { border-radius: 12px; }
#wegener-map .leaflet-popup-content { margin: 22px; font-size: 14px; line-height: 1.55; }
.wegener-popup h2 { margin: 0 0 10px; font-size: 20px; line-height: 1.2; }
.wegener-popup p { margin: 8px 0; }
.wegener-popup .wegener-route, .wegener-route { display: inline-block; margin-top: 10px; padding: 9px 14px; border-radius: 5px; background: #252525; color: white; text-decoration: none; }
.wegener-phone { color: #252525; }
.wegener-locations { margin-top: 16px; font-size: 14px; }
.wegener-locations summary { cursor: pointer; padding: 8px 0; width: fit-content; }
.wegener-location-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(230px,1fr)); gap: 16px; margin-top: 12px; }
.wegener-location { padding: 20px; background: #f7f7f7; border-radius: 12px; line-height: 1.5; }
.wegener-location h2 { font-size: 17px; margin: 0 0 8px; }
.wegener-location p { margin: 8px 0; }
:focus-visible { outline: 3px solid #444; outline-offset: 3px; }
@media (max-width: 600px) {
  .wegener-map-component { padding: 12px; }
  .wegener-map-shell { border-radius: 20px; }
  #wegener-map { height: 520px; }
  .wegener-overview { right: 10px; top: 10px; font-size: 12px; padding: 10px; }
}
@media (prefers-reduced-motion: reduce) { .leaflet-zoom-animated { transition: none !important; } }
