/* DMG Standortkarte 4.0. Zentraler Asset-Ordner; keine globalen Elementregeln. */
.dmg-map {
  --dm-accent:#326699; --dm-on-accent:#fff; --dm-ink:#182a39;
  --dm-muted:var(--dm-ink); --dm-line:#dce3e8; --dm-surface:#fff;
  --dm-background:#f6f8fa; --dm-radius:20px;
  position:relative; margin:2rem auto; color:var(--dm-ink);
  font-family:inherit; font-size:inherit; line-height:1.55;
}
.dmg-map *, .dmg-map *::before, .dmg-map *::after {box-sizing:border-box}
.dmg-map [hidden] {display:none!important}
.dmg-map button {font:inherit;letter-spacing:normal;text-transform:none;cursor:pointer}
.dmg-map button:focus-visible, .dmg-map a:focus-visible {outline:3px solid var(--dm-ink);outline-offset:4px}
.dmg-map-header {text-align:center;margin:0 auto 2rem;max-width:680px}
.dmg-map-eyebrow {font-size:.75rem;letter-spacing:.13em;font-weight:700;color:var(--dm-accent)}
.dmg-map-header h2 {font-size:clamp(1.8rem,3vw,2.6rem);line-height:1.2;margin:.65rem 0;color:inherit;font-family:inherit}
.dmg-map-header p {margin:0;color:var(--dm-muted)}
.dmg-map-header p:empty {display:none}
.dmg-map-layout {display:grid;grid-template-columns:minmax(0,1.35fr) minmax(260px,1fr);gap:clamp(20px,4vw,56px);align-items:center;padding:clamp(16px,3vw,36px);border:1px solid var(--dm-line);border-radius:var(--dm-radius);background:var(--dm-background);box-shadow:0 8px 28px #00000008}
.dmg-map-stage {min-width:0}
.dmg-map-canvas {position:relative;max-width:480px;margin:auto;aspect-ratio:600/801}
.dmg-map-image {display:block!important;width:100%!important;height:100%!important;object-fit:fill;filter:drop-shadow(0 6px 10px #0000000a)}
.dmg-map .dmg-map-pin {position:absolute;transform:translate(-50%,-50%);width:36px;height:36px;min-width:0;padding:0;border:3px solid var(--dm-surface);border-radius:50%;background:var(--dm-accent);color:var(--dm-on-accent);box-shadow:0 0 0 5px #ffffff80,0 3px 10px #00000030;display:grid;place-items:center;z-index:2;transition:box-shadow .18s,scale .18s}
.dmg-map-pin>span:first-child {font-size:12px;font-weight:750}
.dmg-map .dmg-map-pin.is-main {width:46px;height:46px;z-index:3;box-shadow:0 0 0 7px #ffffffb0,0 4px 14px #00000030}
.dmg-map .dmg-map-pin:hover, .dmg-map .dmg-map-pin.is-active {scale:1.1;z-index:5}
.dmg-map .dmg-map-pin-label {position:absolute;bottom:calc(100% + 9px);left:50%;transform:translateX(-50%);padding:5px 9px;border-radius:6px;background:var(--dm-accent);color:var(--dm-on-accent);font-size:10px;font-weight:800;letter-spacing:.08em;white-space:nowrap;pointer-events:none}
.dmg-map-help {text-align:center;font-size:.8rem;color:var(--dm-muted);margin:1rem 0 0}
.dmg-map-selector-title {display:flex;justify-content:space-between;align-items:center;font-weight:700;margin-bottom:1rem;gap:10px}
.dmg-map-selector-title>span {border:1px solid var(--dm-line);border-radius:20px;padding:2px 10px;font-size:.8rem}
.dmg-map .dmg-map-choice {width:100%;display:flex;align-items:center;gap:14px;text-align:left;background:var(--dm-surface);border:1px solid var(--dm-line);border-radius:12px;padding:17px;margin:0 0 10px;color:var(--dm-ink);box-shadow:none;transition:border-color .18s,box-shadow .18s}
.dmg-map .dmg-map-choice:hover, .dmg-map .dmg-map-choice.is-active {border-color:var(--dm-accent);box-shadow:0 4px 16px #0000000c}
.dmg-map .dmg-map-choice.is-main {border:2px solid var(--dm-accent);border-left-width:6px;padding-left:12px}
.dmg-map-number {flex:0 0 36px;width:36px;height:36px;display:grid;place-items:center;border-radius:9px;background:var(--dm-background);color:var(--dm-ink);font-weight:750}
.dmg-map-choice.is-main .dmg-map-number {background:var(--dm-accent);color:var(--dm-on-accent)}
.dmg-map-choice>span:nth-child(2) {flex:1;min-width:0}
.dmg-map-choice small {display:block;font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--dm-muted)}
.dmg-map-choice.is-main small {display:inline-block;padding:3px 8px;margin-bottom:5px;border-radius:5px;background:var(--dm-accent);color:var(--dm-on-accent);font-weight:800}
.dmg-map-choice strong {display:block;font-size:1rem;overflow-wrap:anywhere}
.dmg-map-choice span span {font-size:.85rem;color:var(--dm-muted)}
.dmg-map-arrow {font-size:1.3rem;color:var(--dm-accent)}
.dmg-map-selector-note {font-size:.8rem;color:var(--dm-muted);margin:1rem 0}
/* JS verschiebt Popups in einen eigenen Body-Container gegen Theme-Clipping. */
.dmg-map.dmg-map-portal {position:fixed;inset:0;max-width:none;margin:0;pointer-events:none;z-index:10000}
.dmg-map .dmg-map-popup {position:fixed;pointer-events:auto;width:min(360px,calc(100vw - 24px));max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);overflow:auto;overscroll-behavior:contain;border:1px solid var(--dm-line);border-top:4px solid var(--dm-accent);border-radius:var(--dm-radius);background:var(--dm-surface);color:var(--dm-ink);box-shadow:0 16px 60px #00000030}
.dmg-map .dmg-map-close {position:absolute;right:10px;top:10px;width:36px;height:36px;display:grid;place-items:center;border:1px solid var(--dm-line);border-radius:50%;background:var(--dm-surface);color:var(--dm-ink);font-size:24px;line-height:1;padding:0}
.dmg-map-card-head {padding:24px 56px 18px 24px;background:var(--dm-background);border-bottom:1px solid var(--dm-line)}
.dmg-map-type {display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--dm-ink);margin-bottom:8px}
.dmg-map-card-head.is-main .dmg-map-type {padding:5px 10px;border-radius:5px;background:var(--dm-accent);color:var(--dm-on-accent);font-weight:800}
.dmg-map-card-head h3 {font-size:1.2rem;line-height:1.3;margin:0;color:inherit;font-family:inherit;overflow-wrap:anywhere}
.dmg-map-card-head p {font-size:.9rem;color:var(--dm-muted);margin:5px 0 0}
.dmg-map-fields {margin:0;padding:5px 24px 24px}
.dmg-map-field {padding-top:14px}
.dmg-map-field dt {font-size:.72rem;letter-spacing:.05em;text-transform:uppercase;font-weight:700;color:var(--dm-muted);margin:0 0 4px}
.dmg-map-field dd {margin:0;font-size:.95rem;overflow-wrap:anywhere}
.dmg-map-field a {color:var(--dm-ink);text-decoration:underline;text-decoration-color:var(--dm-accent);text-underline-offset:3px}
.dmg-map-list {display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:20px;margin-top:24px}
.dmg-map-static {border:1px solid var(--dm-line);border-radius:var(--dm-radius);overflow:hidden;background:var(--dm-surface)}
.dmg-map-admin {font-size:.8rem;color:var(--dm-muted);margin-top:1rem}
.dmg-map-empty {padding:2rem;color:var(--dm-muted)}
.dmg-map-sr {position:absolute!important;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
/* Deutschlandkarte aus der lokalen WordPress-Farbpalette. */
.dmg-map svg.sk-karte {
    --dm-land: var(--wp--preset--color--ti-bg-alt, #f2f4f5);
    --dm-grenze: var(--wp--preset--color--ti-bg, #ffffff);
    --dm-umriss: var(--wp--preset--color--ti-border, #d8dde1);
}

/* Dezente Einfärbung mit der jeweiligen Primärfarbe. */
@supports (fill: color-mix(in srgb, red, white)) {
    .dmg-map svg.sk-karte {
        --dm-land: color-mix(
            in srgb,
            var(--wp--preset--color--ti-accent, #005a8c) 18%,
            var(--wp--preset--color--ti-bg-alt, #f2f4f5)
        );
    }
}

.dmg-map svg.sk-karte .sk-laender path {
    fill: var(--dm-land);
    stroke: var(--dm-grenze);
    stroke-width: 1.2;
    stroke-linejoin: round;
}

.dmg-map svg.sk-karte .sk-umriss {
    fill: none;
    stroke: var(--dm-umriss);
    stroke-width: 1.5;
    stroke-linejoin: round;
    pointer-events: none;
}
@media(max-width:700px) {
 .dmg-map-layout {grid-template-columns:1fr;gap:24px}
 .dmg-map-canvas {max-width:340px}
 .dmg-map .dmg-map-popup {width:calc(100vw - 24px);max-height:65vh;max-height:65dvh}
 .dmg-map .dmg-map-choice {padding:13px}
 .dmg-map .dmg-map-choice.is-main {padding-left:8px}
 .dmg-map-header {margin-bottom:1.5rem}
}
@media(prefers-reduced-motion:reduce) {.dmg-map * {transition:none!important;animation:none!important}}
