/* Stadtplan: Ebenenwahl + "Ganze Karte"-Knopf im Vice-Locals-Look */
.leaflet-control-layers { background: rgba(18, 10, 34, .92) !important; color: #fff; border: 1px solid var(--line2, #3a2a5c) !important; border-radius: 8px !important; }
.leaflet-control-layers-toggle { filter: invert(1) hue-rotate(180deg); }
.leaflet-control-layers-expanded { padding: 8px 10px !important; font-size: 13px; }
.leaflet-control-layers label { display: flex; gap: 6px; align-items: center; margin: 2px 0; cursor: pointer; }
.vl-home a { font-size: 17px; line-height: 30px !important; font-weight: 700; }

/* Kachelnähte (Chrome, gebrochener Zoom): Kacheln überlappen 1 px (map-core.js) –
   Leaflets plus-lighter würde die Überlappung aufhellen, daher normal mischen. */
.leaflet-container .vl-tiles img.leaflet-tile { mix-blend-mode: normal; }

/* ---------- Cluster (zusammengefasste Orte) ---------- */
.vl-cluster { background: none; border: 0; }
.vl-cl-ring {
  --c: var(--pink, #ff2e88);
  position: relative; display: grid; place-items: center; width: 100%; height: 100%; border-radius: 50%; box-sizing: border-box;
  background: radial-gradient(circle at 50% 45%, color-mix(in srgb, var(--c) 55%, #14061f) 0 48%, rgba(11, 6, 20, .88) 50% 100%);
  border: 2px solid var(--c);
  box-shadow: 0 0 0 3px rgba(46, 230, 214, .28), 0 0 10px var(--c), 0 0 18px rgba(46, 230, 214, .35), inset 0 0 8px rgba(0, 0, 0, .55);
  cursor: pointer; transition: transform .15s ease-out, box-shadow .15s;
}
.vl-cl-ring::after { content: ""; position: absolute; inset: -6px; border-radius: 50%; border: 1px dashed rgba(46, 230, 214, .55); pointer-events: none; }
.vl-cl-ring b { font: 800 11.5px/1 "Unbounded", system-ui, sans-serif; color: #fff; letter-spacing: -.02em; text-shadow: 0 0 6px rgba(0, 0, 0, .9), 0 0 2px #000; }
.vl-cluster-m .vl-cl-ring b { font-size: 12.5px; }
.vl-cluster-l .vl-cl-ring b { font-size: 13.5px; }
.vl-cluster-xl .vl-cl-ring b { font-size: 14.5px; }
.vl-cluster-xl .vl-cl-ring::after { inset: -7px; border-color: rgba(255, 46, 136, .55); }
.vl-cluster:hover .vl-cl-ring, .vl-cluster:focus-visible .vl-cl-ring { transform: scale(1.08); box-shadow: 0 0 0 3px rgba(46, 230, 214, .5), 0 0 14px var(--c), 0 0 26px rgba(46, 230, 214, .55), inset 0 0 8px rgba(0, 0, 0, .55); }
.vl-cluster:focus-visible { outline: none; }
@media (prefers-reduced-motion: reduce) { .vl-cl-ring { transition: none; } .leaflet-cluster-anim .leaflet-marker-icon { transition: none; } }
/* Namensschilder offizieller Orte liegen über den Clustern, ihr Punkt darunter */
.vl-pin-labelonly { pointer-events: none; }
.vl-pin-labelonly .vl-pin-label { pointer-events: auto; cursor: pointer; }
