.kvmap{--kv-blue:var(--kneipp-blue,#014495);--kv-line:#dce5ee;color:#172c42;background:#fff;border:1px solid var(--kv-line);border-radius:20px;overflow:hidden;text-align:left;font:inherit;line-height:1.55}
.kvmap *{box-sizing:border-box}
.kvmap [hidden]{display:none!important}
.kvmap h2,.kvmap h3,.kvmap h4,.kvmap p{margin:0 0 12px}
.kvmap h2{color:var(--kv-blue);font-size:clamp(1.65rem,3vw,2.3rem);line-height:1.2;font-weight:700}
.kvmap h3{font-size:1.3rem;line-height:1.3;color:var(--kv-blue)}
.kvmap h4{font-size:1rem;line-height:1.35}
.kvmap a{color:var(--kv-blue);text-decoration:underline;text-underline-offset:3px}
.kvmap button,.kvmap input,.kvmap select{font:inherit;line-height:1.3}
.kvmap button{cursor:pointer;min-height:44px;border:1px solid #b6c9dc;border-radius:8px;background:white;color:var(--kv-blue);padding:8px 13px}
.kvmap button:hover{background:#eaf2fa}
.kvmap :is(button,a,input,select):focus-visible{outline:3px solid #014495;outline-offset:3px}
.kvmap-header{padding:30px 32px 18px;max-width:860px}
.kvmap-eyebrow{font-size:.76rem;letter-spacing:.12em;font-weight:700;color:var(--kv-blue)}
.kvmap-filters{display:flex;flex-wrap:wrap;gap:14px;align-items:end;padding:0 32px 24px}
.kvmap-filters label{display:flex;flex:1 1 230px;flex-direction:column;gap:6px;font-weight:600;font-size:.9rem}
.kvmap-filters input,.kvmap-filters select{width:100%;min-height:46px;padding:10px 12px;border:1px solid #8ba4bb;border-radius:8px;background:#fff;color:#172c42}
.kvmap-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(290px,1fr);border-top:1px solid var(--kv-line)}
.kvmap-map-panel{background:#f3f7fb;padding:18px;min-width:0}
.kvmap-map-frame{position:relative;overflow:hidden;border:1px solid #dce5ee;border-radius:14px;background:radial-gradient(ellipse at 20% 10%,#e4eff8,#f9fbfd 70%)}
.kvmap-svg{display:block;width:100%;height:auto;aspect-ratio:600/760;touch-action:pan-y}
.kvmap-svg.is-zoomed{touch-action:none;cursor:grab}
.kvmap-region{stroke:#fff;stroke-width:1.8;vector-effect:non-scaling-stroke;fill:var(--region);transition:opacity .15s}
.kvmap-bludenz{--region:#dce9f8;--district:#014495}
.kvmap-bregenz{--region:#d7eee7;--district:#14664d}
.kvmap-dornbirn{--region:#f7e7c8;--district:#85500a}
.kvmap-feldkirch{--region:#e9dff2;--district:#6b3b86}
.kvmap-outline{fill:none;stroke:#667d92;stroke-width:1.3;vector-effect:non-scaling-stroke;pointer-events:none}
.kvmap-marker{cursor:pointer}
.kvmap-marker .kvmap-pin{fill:var(--district,#234e78);stroke:#fff;stroke-width:1.4;vector-effect:non-scaling-stroke}
.kvmap-marker .kvmap-pin-center{fill:#0003;stroke:none}
.kvmap-marker text{fill:#fff;font-family:Arial,sans-serif;font-weight:700;text-anchor:middle;dominant-baseline:central;pointer-events:none}
.kvmap-marker:focus{outline:none}
.kvmap-marker:focus .kvmap-pin,.kvmap-marker:hover .kvmap-pin,.kvmap-marker.is-selected .kvmap-pin{stroke:#172c42;stroke-width:2.5}
.kvmap-municipality{fill:none;stroke:#78899a;stroke-width:.45;vector-effect:non-scaling-stroke;stroke-linejoin:round;pointer-events:none}
.kvmap-municipality.is-club-selected{fill:#ebad3540;stroke:#865600;stroke-width:1.5}
.kvmap-municipal-labels,.kvmap-capitals{pointer-events:none}
.kvmap-municipal-labels{display:none}
.kvmap-municipal-label text{font:5.7px Arial,sans-serif;fill:#435367;text-anchor:middle;dominant-baseline:central;paint-order:stroke;stroke:#fff;stroke-width:1.7;stroke-linejoin:round}
.kvmap-municipal-label path{fill:none;stroke:#8a99a8;stroke-width:.3}
.kvmap-capital text{font:bold 9px Arial,sans-serif;fill:#163650;paint-order:stroke;stroke:#fff;stroke-width:2.5}
.kvmap-capital circle{fill:#163650;stroke:#fff;stroke-width:1}
.kvmap[data-label-mode="all"] .kvmap-municipal-labels,.kvmap[data-label-mode="kac"] .kvmap-municipal-labels{display:block}
.kvmap[data-label-mode="all"] .kvmap-capitals,.kvmap[data-label-mode="kac"] .kvmap-capitals{display:none}
.kvmap[data-label-mode="kac"] .kvmap-municipal-label:not(.has-kac-name){display:none}
.kvmap[data-label-mode="kac"] .kvmap-municipality.has-kac-name{fill:#b8dac8;fill-opacity:.65;stroke:#36775b;stroke-width:1}
.kvmap[data-label-mode="kac"] .kvmap-municipality.is-club-selected{fill:#edb557;stroke:#865600;stroke-width:2}
.kvmap-label-control{padding:0 32px 18px}
.kvmap-label-control label{display:flex;align-items:center;flex-wrap:wrap;gap:10px;font-size:.9rem;font-weight:600}
.kvmap-label-control select{max-width:100%;min-height:44px;padding:8px;border:1px solid #8ba4bb;border-radius:8px;background:#fff;color:#172c42}
.kvmap-label-control p{font-size:.8rem;color:#526274;margin:8px 0 0}
.kvmap-north{position:absolute;right:14px;top:12px;color:#425f79;font-size:.85rem;pointer-events:none}
.kvmap-toolbar{position:absolute;left:10px;bottom:10px;display:flex;gap:6px}
.kvmap-toolbar button{box-shadow:0 2px 5px #193b5718;font-weight:700;min-width:44px}
.kvmap-map-help,.kvmap-footnote{font-size:.8rem;color:#42556a;margin-top:12px!important}
.kvmap-legend{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:9px 16px;font-size:.83rem}
.kvmap-legend li{display:flex;align-items:center;gap:6px}
.kvmap-swatch{width:12px;height:12px;background:var(--district);border-radius:50%;display:inline-block}
.kvmap-sidebar{padding:22px;min-width:0}
.kvmap-detail{background:#f0f5fb;border:1px solid #d6e3ef;border-top:4px solid var(--kv-blue);border-radius:12px;padding:20px;margin-bottom:18px;scroll-margin-top:100px}
.kvmap-detail:focus{outline:2px solid #014495;outline-offset:2px}
.kvmap-detail .kvmap-contact{display:inline-block;background:var(--kv-blue);color:white!important;border-radius:8px;padding:11px 15px;text-decoration:none;margin-top:4px}
.kvmap-detail .kvmap-location{font-weight:600}
.kvmap-note{font-size:.86rem;color:#45566a}
.kvmap-group-choices{display:flex;flex-direction:column;gap:6px}
.kvmap-count{font-size:.86rem;font-weight:700;color:#42556a}
.kvmap-list{list-style:none;padding:0;margin:0}
.kvmap-item{padding:14px 0;border-bottom:1px solid var(--kv-line)}
.kvmap-location{font-size:.86rem;color:#42556a}
.kvmap.is-ready .kvmap-results{max-height:390px;overflow-y:auto;overscroll-behavior:contain;padding:4px 10px 4px 4px}
.kvmap.is-ready .kvmap-item{padding:4px 0 9px}
.kvmap.is-ready .kvmap-item h4{margin-bottom:0}
.kvmap.is-ready .kvmap-item .kvmap-card-body,.kvmap.is-ready .kvmap-nojs-name{display:none}
.kvmap-pick{width:100%;text-align:left;font-weight:700!important;border:none!important;padding-left:0!important}
.kvmap-item.is-selected{background:#edf4fb}
.kvmap-footer{padding:18px 32px;border-top:1px solid var(--kv-line);font-size:.75rem;color:#526274}
.kvmap-footer p:last-child{margin-bottom:0}
@media(max-width:760px){.kvmap-layout{grid-template-columns:1fr}.kvmap-header{padding:24px 20px 14px}.kvmap-filters{padding:0 20px 20px;gap:10px}.kvmap-filters label{flex-basis:100%}.kvmap-map-panel{padding:12px}.kvmap-sidebar{padding:20px}.kvmap-map-frame{max-height:580px}.kvmap-svg{height:min(125vw,580px);aspect-ratio:auto}.kvmap-footer{padding:18px 20px}.kvmap-map-help{font-size:.78rem}}
@media(prefers-reduced-motion:reduce){.kvmap *{transition:none!important;scroll-behavior:auto!important}}
@media print{.kvmap-layout{display:block}.kvmap-filters,.kvmap-toolbar,.kvmap-detail{display:none!important}.kvmap.is-ready .kvmap-results{max-height:none;overflow:visible}.kvmap.is-ready .kvmap-item .kvmap-card-body,.kvmap.is-ready .kvmap-nojs-name{display:block}.kvmap-pick{display:none}.kvmap-item[hidden]{display:block!important}.kvmap-map-panel{max-width:430px}}
