/* Karte „Was ist wo?“ (karte.html): Vollbild-Karte mit Ebenen + Liste.
   Telefon/Tablet (auch iPad quer, Touch): Bottom-Sheet mit Wischkarten bzw. Liste rechts.
   Desktop mit Maus (≥1000px, hover + feiner Zeiger): eigene Ergänzungen am Ende der Datei (.kz-desk).
   Teil 1: Kartenzeichnung aus karte.css (.karte--k4, Stand 2026-10-14) – hier kopiert, damit die Seite nicht von karte.css abhängt. */
.karte--k4{--k4-top:var(--head-h);--k4-land:#f3f2ed;--k4-out:#e7e8e3;--k4-lake:#a7cbe8;--k4-lake-s:#6fa3d1;--k4-wet:#d3e2c9;--k4-road:#fff;--k4-road-c:#d6d0c2;--k4-mw:#f2d7a1;--k4-mw-c:#cfa65c;--k4-green:#3e7a4c;--k4-ink:var(--c-text);--k4-ease:cubic-bezier(.2,.7,.2,1);position:relative;padding-block:clamp(3.5rem,8vw,6.5rem) clamp(2rem,5vw,4rem);background:var(--c-bg)}
.karte--k4 .k4-svg{position:absolute;inset:0;width:100%;height:100%;display:block}
.karte--k4 .k4-out{fill:var(--k4-out)}
.karte--k4 .k4-land{fill:var(--k4-land)}
.karte--k4 .k4-svg path{fill:none;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round}
.karte--k4 path.k4-lk{fill:var(--k4-lake);stroke:var(--k4-lake-s);stroke-width:.8}
.karte--k4 path.k4-wl{fill:var(--k4-wet);stroke:#a9c49a;stroke-width:.8}
.karte--k4 path.k4-rv{stroke:#7fb0dc;stroke-width:1.6}
.karte--k4 path.k4-rl{stroke:#8d93a3;stroke-width:1.2;stroke-dasharray:5 3}
.karte--k4 path.k4-r3{stroke:#e2ddd1;stroke-width:1.4}
.karte--k4 path.k4-r2c{stroke:var(--k4-road-c);stroke-width:4}
.karte--k4 path.k4-r2{stroke:var(--k4-road);stroke-width:2.4}
.karte--k4 path.k4-r1c{stroke:var(--k4-mw-c);stroke-width:4.6}
.karte--k4 path.k4-r1{stroke:var(--k4-mw);stroke-width:2.8}
.karte--k4 path.k4-bd{stroke:var(--c-accent);stroke-width:1.8;stroke-dasharray:7 4 1.5 4;opacity:.75}
.karte--k4 .k4-n{will-change:opacity}
.karte--k4 .k4-ln{stroke:var(--c-accent);stroke-width:2.2;stroke-dasharray:1 6;stroke-linecap:round;vector-effect:non-scaling-stroke;opacity:0;transition:opacity .3s}
.karte--k4 .has-ln .k4-ln{opacity:.9}
/* Overlay: Position aus Kartenkoordinaten (--x/--y) und aktuellem Ausschnitt – per JS als left/top */
.karte--k4 .k4-ov{position:absolute;inset:0;pointer-events:none}
.karte--k4 .k4-ov > *{position:absolute;left:0;top:0}  /* left/top in px setzt karte-zentrale.js (place) aus --x/--y und dem Ausschnitt */
.karte--k4 .k4-t{transform:translate(-50%,-50%);font:500 11.5px/1.15 var(--f);color:#5d6478;white-space:nowrap;text-shadow:0 0 2px var(--k4-land),0 0 2px var(--k4-land),0 0 4px var(--k4-land);transition:opacity .3s}
.karte--k4 .k4-t--tn{font-weight:650;color:#3f475c;font-size:12px}
.karte--k4 .k4-t--pk::before{content:"▲ ";font-size:.8em;color:#8a6a4c}
.karte--k4 .k4-t--w{font-style:italic;color:#2f6ea8;text-shadow:none}
.karte--k4 .k4-t--c{font-size:11px;font-weight:600;letter-spacing:.32em;color:#b4667f;color:color-mix(in srgb,var(--c-accent) 70%,#fff)}
.karte--k4 .k4-pin{width:40px;height:40px;margin:-20px 0 0 -20px;pointer-events:auto;color:var(--k4-ink);text-decoration:none;border-radius:50%;-webkit-tap-highlight-color:transparent;z-index:1}
.karte--k4 .k4-pin::before{content:"";position:absolute;left:13px;top:13px;width:14px;height:14px;box-sizing:border-box;border-radius:50%;background:var(--pc);border:2px solid #fff;box-shadow:0 1px 3px rgb(20 30 60 / .45);transition:transform .35s var(--k4-ease)}
.karte--k4 .k4-l{position:absolute;white-space:nowrap;font:600 12.5px/1 var(--f);padding:4px 7px 4px;border-radius:999px;background:rgb(255 255 255 / .9);color:var(--k4-ink);box-shadow:0 1px 3px rgb(20 30 60 / .18);transition:opacity .3s,background-color .3s,color .3s}
.karte--k4 .k4-l--r{left:30px;top:50%;transform:translateY(-50%)}
.karte--k4 .k4-l--l{right:30px;top:50%;transform:translateY(-50%)}
.karte--k4 .k4-l--t{bottom:30px;left:50%;transform:translateX(-50%)}
.karte--k4 .k4-l--b{top:30px;left:50%;transform:translateX(-50%)}
.karte--k4 .is-off{opacity:0;pointer-events:none}
.karte--k4 .k4-pin:hover,.karte--k4 .k4-pin.is-hl{z-index:6}
.karte--k4 .k4-pin:hover .k4-l,.karte--k4 .k4-pin.is-hl .k4-l{opacity:1}
.karte--k4 .k4-pin:hover::before,.karte--k4 .k4-pin.is-hl::before{transform:scale(1.3)}
.karte--k4 .k4-pin.is-on{z-index:7}
.karte--k4 .k4-pin.is-on::before{transform:scale(1.6);box-shadow:0 0 0 5px rgb(255 255 255 / .55),0 2px 6px rgb(20 30 60 / .45);box-shadow:0 0 0 5px color-mix(in srgb,var(--pc) 28%,transparent),0 2px 6px rgb(20 30 60 / .45)}
.karte--k4 .k4-pin.is-on .k4-l{opacity:1;background:var(--pt,var(--pc));color:#fff;font-size:13.5px;padding:5px 10px;border-radius:10px}
.karte--k4 .is-on [data-d]::after{content:attr(data-d);display:block;margin-top:3px;font-size:10.5px;font-weight:500;opacity:.88}
.karte--k4 .k4-edge.is-on b{border-radius:10px;padding:4px 8px}
.karte--k4 .k4-pin.is-on .k4-l--r{left:34px}
.karte--k4 .k4-pin.is-on .k4-l--l{right:34px}
.karte--k4 .k4-pin.is-on .k4-l--t{bottom:34px}
.karte--k4 .k4-pin.is-on .k4-l--b{top:34px}
.karte--k4 .k4-home{width:30px;height:30px;margin:-15px 0 0 -15px;border-radius:50%;background:var(--c-accent);box-shadow:0 0 0 3px #fff,0 2px 8px rgb(20 30 60 / .5);z-index:4;display:grid;place-items:center}
.karte--k4 .k4-home svg{width:18px;height:18px;fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.karte--k4 .k4-home .k4-l{background:var(--c-accent);color:#fff;font:600 12px/1 var(--f);padding:4px 8px;box-shadow:0 1px 3px rgb(20 30 60 / .25)}
.karte--k4 .k4-home .k4-l--l{right:24px}
.karte--k4 .k4-home .k4-l--r{left:24px}
.karte--k4 .k4-home::after{content:"";position:absolute;inset:-3px;border-radius:50%;border:2px solid var(--c-accent);opacity:0}
@media (prefers-reduced-motion:no-preference){.karte--k4 .k4-home::after{animation:k4-ping 2.6s ease-out infinite}
.karte--k4 .has-ln .k4-ln{animation:k4-dash 1.2s linear infinite}
}
@keyframes k4-ping{0%{transform:scale(.8);opacity:.7}100%{transform:scale(2.4);opacity:0}}
@keyframes k4-dash{to{stroke-dashoffset:-14}}
.karte--k4 .k4-edge{display:flex;align-items:center;gap:5px;min-height:40px;min-width:40px;padding:0 10px 0 6px;transform:translate(-50%,-50%);pointer-events:auto;text-decoration:none;color:var(--c-dark);font:600 12px/1 var(--f);border-radius:999px;z-index:2;-webkit-tap-highlight-color:transparent}
.karte--k4 .k4-edge i{flex:none;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgb(20 30 60 / .3);display:grid;place-items:center;transform:rotate(var(--a))}
.karte--k4 .k4-edge svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.karte--k4 .k4-edge b{font-weight:600;background:rgb(255 255 255 / .9);padding:3px 7px;border-radius:999px;box-shadow:0 1px 3px rgb(20 30 60 / .18);white-space:nowrap}
.karte--k4 .k4-edge.is-on{z-index:7}
.karte--k4 .k4-map:is([data-ch='1'],[data-ch='2']) .k4-edge:not(.is-on){opacity:0;pointer-events:none}
.karte--k4 .k4-edge{transition:opacity .3s}
.karte--k4 .k4-edge.is-on i{background:var(--c-dark);color:#fff}
.karte--k4 .k4-edge.is-on b{background:var(--c-dark);color:#fff}
.karte--k4 .k4-north,.karte--k4 .k4-sb,.karte--k4 .k4-attr{z-index:8}
.karte--k4 .k4-north{position:absolute;top:10px;right:10px;width:30px;height:30px;border-radius:50%;background:rgb(255 255 255 / .9);display:grid;place-items:center;font:700 12px/1 var(--f);color:var(--c-dark);box-shadow:0 1px 3px rgb(20 30 60 / .2)}
.karte--k4 .k4-north::before{content:"";position:absolute;top:-1px;border-bottom:7px solid var(--c-accent);border-inline:4px solid transparent}
.karte--k4 .k4-sb{position:absolute;left:6px;bottom:5px;padding:3px 5px 4px;box-sizing:content-box;background:rgb(255 255 255 / .9);border-radius:4px;display:flex;flex-direction:column;gap:2px;font:600 10.5px/1 var(--f);color:#3f475c;width:80px;transition:width .2s}
.karte--k4 .k4-sb i{height:5px;border:1.5px solid #3f475c;border-top:0}
.karte--k4 .k4-attr{position:absolute;right:0;bottom:0;padding:3px 7px;font:400 10px/1.2 var(--f);color:#4e5873;background:rgb(255 255 255 / .8);border-top-left-radius:6px;text-decoration:none}
@media (max-width:599px){.karte--k4 .k4-home b span{display:none}
.karte--k4 .k4-edge:not(.is-on) b{display:none}
.karte--k4 .k4-map:not([data-ch='0']) .k4-edge:not(.is-on){opacity:0;pointer-events:none}
.karte--k4 .k4-edge:not(.is-on){padding:0;justify-content:center}
.karte--k4 .k4-l{font-size:11.5px;padding:3px 6px}
.karte--k4 .k4-home .k4-l{font-size:11px;padding:3px 7px}
}
@media (prefers-reduced-motion:reduce){.karte--k4 *{transition:none !important}
}
/* Teil 2: Karten-Seite */
html:has(.kz-body){overflow:hidden;height:100%;scroll-padding-top:0}
.kz-body{height:100%;overflow:hidden;overscroll-behavior:none}
.kz{position:fixed;inset:var(--head-h) 0 0;display:block;--kz-ease:cubic-bezier(.2,.7,.2,1)}
/* Gäste-Info (vor-ort/karte.html, tools/site/karte.py): statt des Website-Kopfs die Leiste .vo-bar (vor-ort.css: 44px Knopf + Polster + 1px Linie) */
.kz-body--vo{--head-h:calc(max(.35rem,env(safe-area-inset-top)) + .35rem + 45px)}
.kz-body--vo .vo-bar{position:fixed;inset:0 0 auto;height:var(--head-h);box-sizing:border-box}
/* Sprachlink in der Leiste (tools/site/karte.py, a.vo-lang aus vor-ort.css): immer sichtbar, auch wenn der Fuß des Bottom-Sheets zu ist */
.kz-body--vo .vo-bar .vo-lang{flex:none;padding:0 .8rem;font-size:.85rem}
/* Farben je Ebene (Tokens des Originals); die Farben der 11 Themen der Ausflugsziele schreibt tools/site/karte.py aus
   regionlib (region.json themes[].color) als <style> in die Seite: .kz [data-c=<thema>]{--pc;--pt} */
.kz [data-c=baden]{--pc:var(--c-water);--pt:#246aa3}
.kz [data-c=einkaufen]{--pc:#3e7a4c}
.kz [data-c=ausflug]{--pc:var(--c-accent)}
.kz [data-c=essen]{--pc:var(--c-wood);--pt:#8c5734}
.kz [data-c=praktisch]{--pc:var(--c-primary)}
.kz [data-c=rad]{--pc:var(--c-dark)}
.kz [data-c=l1]{--pc:#2c7a57}.kz [data-c=l2]{--pc:var(--c-primary)}.kz [data-c=l3]{--pc:var(--c-accent)}
/* ------------------------------------------------ Karte */
.karte--k4.kz-mapwrap{position:absolute;inset:0;padding:0;background:var(--k4-out);--kb:0px}
.kz-map{position:absolute;inset:0;overflow:hidden;overflow:clip;touch-action:none;user-select:none;-webkit-user-select:none;cursor:grab;contain:layout paint;background:var(--k4-out)}
.kz-map.is-drag{cursor:grabbing}
.kz-map:focus-visible{outline:3px solid var(--c-primary);outline-offset:-3px;border-radius:0}
.kz-map .k4-svg{position:absolute;inset:0;width:100%;height:100%;display:block}
.kz-map .k4-ln{stroke-width:2.4}
.kz-map.has-ln .k4-ln{opacity:.9}
.kz-ctx path.k4-lk{stroke-width:.6}
/* außerhalb der Kartendaten Landfarbe statt Grau: keine harten Rechteck-Kanten, wo die Grundkarte endet */
.kz-map .k4-out{fill:var(--k4-land)}
.kz-map,.karte--k4.kz-mapwrap{background:var(--k4-land)}
/* Gehzeit-Ringe */
.kz-ring{fill:none;stroke:var(--c-dark);stroke-opacity:.55;stroke-width:1.4;stroke-dasharray:5 5;vector-effect:non-scaling-stroke}
.kz-ring--bike{stroke:var(--c-accent);stroke-opacity:.5;stroke-dasharray:2 6}
.kz-rings,.kz-rl{opacity:0;transition:opacity .35s}
.kz-map.has-rings .kz-rings,.kz-map.has-rings .kz-rl:not(.is-off){opacity:1}
.kz-rl{transform:translate(-50%,-50%);font:600 10.5px/1 var(--f);color:var(--c-dark);background:rgb(255 255 255 / .92);padding:3px 6px;border-radius:999px;box-shadow:0 1px 2px rgb(20 30 60 / .2);white-space:nowrap;transition:opacity .25s}
.kz-rl--bike{color:var(--c-accent)}
.kz-map.has-rings .kz-rl.is-cov{opacity:0}
/* Radtouren */
.kz-tr{fill:none;stroke:#2c7a57;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;opacity:.8;transition:opacity .3s,stroke-width .3s}
.kz-tr[data-lv="2"]{stroke:var(--c-primary)}.kz-tr[data-lv="3"]{stroke:var(--c-accent)}
.kz-map:not([data-l=radtouren]) .kz-trk{display:none}
.kz-map.has-trk .kz-tr:not(.is-on){opacity:.28}
.kz-tr.is-on{stroke-width:5.5;opacity:1}
/* Punkte */
.kz-pin{width:36px;height:36px;margin:-18px 0 0 -18px;display:grid;place-items:center;pointer-events:auto;border-radius:50%;color:var(--c-text);text-decoration:none;z-index:1;-webkit-tap-highlight-color:transparent;--pc:var(--c-primary)}
.kz-pin i{display:grid;place-items:center;box-sizing:border-box;border-radius:50%;background:var(--pc);border:2px solid #fff;box-shadow:0 1px 3px rgb(20 30 60 / .45);transition:transform .3s var(--kz-ease),box-shadow .3s;font-style:normal}
.kz-pi{width:24px;height:24px}
.kz-pi svg{width:13px;height:13px;fill:none;stroke:#fff;stroke-width:2.3;stroke-linecap:round;stroke-linejoin:round}
.kz-pd{width:15px;height:15px}
.kz-pn{width:24px;height:24px;font:700 11px/1 var(--f);color:#fff}
.kz-pa{width:26px;height:26px;transform:rotate(var(--a))}
.kz-pa svg{width:15px;height:15px;fill:none;stroke:#fff;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.kz-pin:hover,.kz-pin.is-hl{z-index:6}
.kz-pin:hover i,.kz-pin.is-hl i{transform:scale(1.22)}
.kz-pin.is-on{z-index:8}
.kz-pin.is-on i{transform:scale(1.4);box-shadow:0 0 0 5px color-mix(in srgb,var(--pc) 28%,transparent),0 2px 6px rgb(20 30 60 / .45)}
.kz-pin--edge.is-on i,.kz-pin--edge:hover i,.kz-pin--edge.is-hl i{transform:rotate(var(--a)) scale(1.3)}
.kz-l{opacity:0;pointer-events:none}
.kz-pin:hover .kz-l,.kz-pin.is-hl .kz-l,.kz-pin.is-on .kz-l{opacity:1}
.kz-pin--edge .kz-l{opacity:.95}
.kz-pin.is-on .kz-l{background:var(--pt,var(--pc));color:#fff;font-size:13.5px;padding:5px 10px;border-radius:10px;z-index:2}
.kz-l small{display:block;margin-top:3px;font-size:10.5px;font-weight:500;opacity:.9}
.kz-pin .k4-l--r{left:32px}.kz-pin .k4-l--l{right:32px}
.kz-map .k4-home{z-index:5}
/* Kartenecke */
.kz-map .k4-north{top:auto;bottom:calc(var(--kb) + 30px);right:10px}
.kz-map .kz-sb{bottom:calc(var(--kb) + 5px)}
.kz-map .k4-attr{bottom:var(--kb)}
.kz-ctl{position:absolute;top:.75rem;right:.75rem;z-index:9;display:flex;flex-direction:column;gap:.4rem}
.kz-btn{display:inline-grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:12px;background:rgb(255 255 255 / .95);color:var(--c-dark);box-shadow:0 1px 2px rgb(20 30 60 / .15),0 6px 18px -8px rgb(20 30 60 / .45);cursor:pointer;font:600 .78rem/1 var(--f)}
.kz-btn .ico{width:1.3rem;height:1.3rem}
.kz-btn:hover{background:#fff;color:var(--c-primary)}
.kz-btn--rings{grid-auto-flow:row;gap:2px;height:auto;padding:.4rem 0 .35rem}
.kz-btn--rings span{font-size:.6rem;letter-spacing:.02em;text-align:center}  /* englisch „Walk times“: zwei Zeilen im 42/44-px-Knopf */
.kz-btn[aria-pressed=true]{background:var(--c-dark);color:#fff}
/* ------------------------------------------------ Liste */
.kz-panel{position:absolute;z-index:20;display:flex;flex-direction:column;background:var(--c-bg);min-height:0}
.kz-top{flex:none;padding:0 1rem .55rem}
.kz-grip{display:block;width:calc(100% + 2rem);margin:0 -1rem;height:26px;padding:0;border:0;background:none;cursor:grab;touch-action:none}
.kz-grip i{display:block;width:42px;height:5px;margin:9px auto 0;border-radius:3px;background:color-mix(in srgb,var(--c-muted) 45%,transparent)}
.kz-head .crumbs{margin-bottom:.4rem;color:var(--c-muted)}
.kz-head :is(h1,h2){font-size:clamp(1.7rem,1.3rem + 1.2vw,2.5rem);letter-spacing:-.028em;margin:0 0 .35rem}
.kz-lead{font-size:.95rem;line-height:1.5;color:var(--c-muted);margin:0 0 1rem}
.kz-layers{display:flex;gap:.4rem}
.kz-chip{flex:none;display:inline-flex;align-items:center;gap:.4rem;min-height:42px;padding:.3rem .8rem .3rem .32rem;border-radius:999px;border:1px solid var(--c-line);background:var(--c-surface);color:var(--c-text);font:600 .88rem/1.1 var(--f);cursor:pointer;white-space:nowrap;transition:background-color .2s,border-color .2s,color .2s}
.kz-chip .ico{width:30px;height:30px;padding:6px;border-radius:50%;background:var(--pc);color:#fff;stroke-width:2.1}
.kz-chip small{font-size:.74rem;font-weight:600;color:var(--c-muted)}
.kz-chip:hover{border-color:var(--pc)}
.kz-chip[aria-pressed=true]{background:var(--c-dark);border-color:var(--c-dark);color:#fff}
.kz-chip[aria-pressed=true] small{color:rgb(255 255 255 / .72)}
.kz-chip[aria-pressed=true] .ico{box-shadow:0 0 0 2px rgb(255 255 255 / .9)}
.kz-subs{display:flex;gap:.35rem;overflow-x:auto;scrollbar-width:none;margin:.55rem -1rem 0;padding:.1rem 1rem}
.kz-subs::-webkit-scrollbar,.kz-layers::-webkit-scrollbar,.kz-list::-webkit-scrollbar{display:none}
.kz-sub{flex:none;display:inline-flex;align-items:center;gap:.3rem;min-height:34px;padding:.25rem .75rem;border-radius:999px;border:1px solid var(--c-line);background:var(--c-bg);color:var(--c-text);font:500 .82rem/1 var(--f);cursor:pointer;white-space:nowrap}
.kz-sub small{font-size:.7rem;color:var(--c-muted);font-weight:600}
.kz-sub:hover{border-color:var(--c-primary)}
.kz-sub[aria-pressed=true]{background:color-mix(in srgb,var(--c-primary) 11%,#fff);border-color:var(--c-primary);color:var(--c-primary);font-weight:600}
.kz-bar{display:flex;align-items:center;gap:.5rem;margin-top:.55rem;min-height:36px}
.kz-info{flex:1;min-width:0;margin:0;font-size:.82rem;font-weight:500;color:var(--c-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kz-step{display:flex;align-items:center;gap:.15rem}
.kz-btn--s{width:36px;height:36px;border-radius:50%;box-shadow:none;background:var(--c-surface)}
.kz-btn--s .ico{width:1.1rem;height:1.1rem}
.kz-pos{min-width:3.6rem;text-align:center;font:600 .82rem/1 var(--f);font-variant-numeric:tabular-nums;color:var(--c-text)}
.kz-more{display:inline-flex;align-items:center;gap:.35rem;min-height:36px;padding:.25rem .8rem;border-radius:999px;border:1px solid var(--c-line);background:var(--c-bg);color:var(--c-text);font:600 .82rem/1 var(--f);cursor:pointer}
.kz-more .ico{width:1.05rem;height:1.05rem}
.kz-scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:.6rem 1rem 2rem}
.kz-list{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}
.kz-card{--pc:var(--c-primary);position:relative;display:grid;grid-template-columns:auto 1fr;gap:.8rem;align-items:start;padding:.7rem;border-radius:calc(var(--r) * .8);background:var(--c-surface);border:1.5px solid transparent;transition:border-color .3s,background-color .3s,box-shadow .3s}
.kz-card:hover{border-color:color-mix(in srgb,var(--pc) 40%,transparent)}
.kz-card.is-on{background:#fff;border-color:var(--pc);box-shadow:0 10px 30px -14px rgb(20 30 60 / .45)}
.kz-card:has(.kz-sel:focus-visible){outline:3px solid var(--c-primary);outline-offset:2px}
.kz-ph{display:block;width:4.6rem;aspect-ratio:1;border-radius:12px;overflow:hidden;background:var(--c-surface-2)}
.kz-ph img{width:100%;height:100%;object-fit:cover;display:block}
.kz-ic{display:grid;place-items:center;width:2.75rem;height:2.75rem;border-radius:50%;background:color-mix(in srgb,var(--pc) 13%,#fff);color:var(--pc)}
.kz-ic svg{width:1.35rem;height:1.35rem;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.kz-ic--n{background:var(--pc);color:#fff;font:700 1rem/1 var(--f)}
.kz-tx{min-width:0}
.kz-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem .65rem;margin:.05rem 0 .25rem;font-size:.76rem;line-height:1.2;color:var(--c-muted)}
.kz-cat{font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--pt,var(--pc));font-size:.68rem}
.kz-fact{font-weight:600;color:var(--c-text)}
.kz .k4-tm{display:inline-flex;align-items:center;gap:.22rem;font-weight:600;color:var(--c-text);white-space:nowrap}
.kz .k4-tm svg{flex:none;width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;color:var(--c-muted)}
.kz-card h3{font-size:1.04rem;line-height:1.25;letter-spacing:-.01em;margin:0 0 .2rem;font-weight:650}
.kz-sel{all:unset;cursor:pointer}
.kz-sel::after{content:"";position:absolute;inset:0;border-radius:inherit}
.kz-card:hover .kz-sel{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.kz-sd{margin:0;font-size:.86rem;line-height:1.45;color:var(--c-muted)}
.kz-out{display:block;font-size:.78rem;margin-top:.15rem}
.kz-x{display:none}
.kz-card.is-on .kz-x{display:block}
.kz-adr,.kz-oh{margin:.45rem 0 0;font-size:.84rem;line-height:1.45}
.kz-oh b{font-weight:600}
.kz-links{position:relative;z-index:2;display:flex;flex-wrap:wrap;gap:.1rem .9rem;margin:.35rem 0 0}
.kz-a{display:inline-flex;align-items:center;gap:.3rem;min-height:32px;font-size:.84rem;font-weight:600;text-decoration:none;color:var(--c-primary)}
.kz-a:hover{text-decoration:underline}
.kz-a .ico{width:1rem;height:1rem}
.kz-foot{margin-top:1.6rem;padding-top:1rem;border-top:1px solid var(--c-line);font-size:.8rem;line-height:1.5;color:var(--c-muted)}
.kz-foot a:not(.btn){color:inherit}
.kz-lyr-lead{font-size:.9rem;color:var(--c-text)}
.kz-lyr-lead:empty{display:none}
.kz-cta{display:flex;flex-wrap:wrap;gap:.5rem}
.kz-cta .btn--ghost{color:var(--c-primary)}
.kz-legal{margin:1rem 0 0}
/* ------------------------------------------------ Telefon/Tablet: Bottom-Sheet */
@media (max-width:999px){.kz-panel{left:0;right:0;bottom:0;height:calc(100% - 3.25rem);border-radius:22px 22px 0 0;box-shadow:0 -1px 0 var(--c-line),0 -14px 34px -14px rgb(20 30 60 / .4);transform:translateY(var(--sy,62%));transition:transform .42s var(--kz-ease)}
.kz-panel.is-drag{transition:none}
.kz-head{display:none}
.kz-panel[data-s=full] .kz-head{display:block}
.kz-panel[data-s=full] .kz-head :is(h1,h2){font-size:1.6rem}
.kz-panel[data-s=full] .kz-lead{margin-bottom:.8rem}
.kz-layers{overflow-x:auto;scrollbar-width:none;margin-inline:-1rem;padding:0 1rem .1rem}
.kz-chip{min-height:40px}
.kz-panel:not([data-s=full]) .kz-scroll{overflow:hidden;padding:.15rem 0 1rem}
.kz-panel:not([data-s=full]) .kz-list{display:flex;gap:.6rem;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;padding:0 1rem .4rem;scroll-padding-inline:1rem}
.kz-panel:not([data-s=full]) .kz-card{flex:0 0 calc(100% - 3.1rem);scroll-snap-align:start;scroll-snap-stop:always;min-height:7.4rem}
.kz-panel:not([data-s=full]) .kz-card:last-child{margin-right:1rem}
.kz-panel:not([data-s=full]) .kz-x{display:block;margin-top:auto}
.kz-panel:not([data-s=full]) .kz-tx{display:flex;flex-direction:column;align-self:stretch}
.kz-panel:not([data-s=full]) .kz-x > :not(.kz-links){display:none}
.kz-panel:not([data-s=full]) .kz-card h3{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kz-panel:not([data-s=full]) .kz-meta{flex-wrap:nowrap;overflow:hidden}
.kz-panel:not([data-s=full]) .kz-meta > *{flex:none}
.kz-panel:not([data-s=full]) .kz-links{flex-wrap:nowrap;overflow:hidden}
.kz-panel:not([data-s=full]) .kz-a--osm{display:none}
.kz-panel:not([data-s=full]) .kz-sd{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.kz-panel:not([data-s=full]) .kz-out{display:none}
.kz-panel:not([data-s=full]) .kz-foot{display:none}
.kz-panel[data-s=full] .kz-step{display:none}
.kz-info i{display:none}
.kz-panel[data-s=full] .kz-more span::after{content:" zu"}
/* englische Seiten: „List zu“ → „Hide list“ */
:lang(en) .kz-panel[data-s=full] .kz-more span{font-size:0}
:lang(en) .kz-panel[data-s=full] .kz-more span::after{content:"Hide list";font-size:.82rem}
.kz-ph{width:4.25rem}
.kz-ctl{top:auto;bottom:calc(var(--kb) + 4.5rem);right:.6rem}
.kz-map .k4-north{bottom:auto;top:.6rem;right:.6rem}
.kz-ctl .kz-btn{width:42px;height:42px}
.kz-ctl .kz-btn--rings{height:auto}
}
@media (max-width:999px) and (min-width:600px){.kz-panel{left:auto;right:1rem;width:min(30rem,calc(100% - 2rem))}
.kz-ctl{right:auto;left:.75rem}
}
/* ------------------------------------------------ Desktop: Karte links, Liste rechts */
@media (min-width:1000px){.kz{display:grid;grid-template-columns:1fr clamp(25rem,30vw,29rem)}
.karte--k4.kz-mapwrap{position:relative;inset:auto}
.kz-panel{position:relative;border-left:1px solid var(--c-line);box-shadow:-14px 0 34px -24px rgb(20 30 60 / .35)}
.kz-grip{display:none}
.kz-top{padding:1.4rem 1.5rem .7rem;border-bottom:1px solid var(--c-line)}
.kz-layers{flex-wrap:wrap}
.kz-subs{margin-inline:0;padding-inline:0;flex-wrap:wrap;overflow:visible}
.kz-step,.kz-more{display:none}
.kz-scroll{padding:1rem 1.5rem 2.5rem;scroll-padding-block:1rem}
}
@media (prefers-reduced-motion:reduce){.kz *,.kz-panel{transition:none !important}
}
.kz-info i{font-style:normal}
/* Randpfeile: Beschriftung bei Überlappung nur bei Hover/Auswahl */
.kz-pin--edge.is-nolab .kz-l{opacity:0}
.kz-pin--edge.is-nolab:hover .kz-l,.kz-pin--edge.is-nolab.is-hl .kz-l{opacity:1}
.kz-pin--edge{z-index:4}
/* ------------------------------------------------ Teil 3: Desktop mit Maus (.kz-desk, von karte-zentrale.js gesetzt:
   ≥1000px, hover + feiner Zeiger). Touch-Geräte (auch iPad quer) behalten die Bedienung von Teil 2. */
/* Ebenen-Leiste auf der Karte (JS hängt .kz-layers in die Karte um) */
.kz-desk .kz-mapwrap > .kz-layers{position:absolute;z-index:10;top:.75rem;left:.75rem;right:4.75rem;display:flex;flex-wrap:wrap;gap:.4rem;pointer-events:none}
.kz-desk .kz-mapwrap > .kz-layers .kz-chip{pointer-events:auto;min-height:38px;padding:.2rem .75rem .2rem .25rem;gap:.4rem;font-size:.86rem;border-color:transparent;background:rgb(255 255 255 / .95);box-shadow:0 1px 2px rgb(20 30 60 / .15),0 6px 18px -8px rgb(20 30 60 / .45)}
.kz-desk .kz-mapwrap > .kz-layers .kz-chip .ico{width:28px;height:28px}
@media (max-width:1439px){.kz-desk .kz-mapwrap > .kz-layers .kz-chip small{display:none}}
.kz-desk .kz-mapwrap > .kz-layers .kz-chip:hover{border-color:var(--pc);background:#fff}
.kz-desk .kz-mapwrap > .kz-layers .kz-chip[aria-pressed=true]{background:var(--c-dark);border-color:var(--c-dark)}
/* Liste: ganzer Bereich scrollt, Kopf scrollt weg, Filter + Anzahl kleben oben */
.kz-desk .kz-panel{display:block;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
.kz-desk .kz-top{display:contents}
.kz-desk .kz-head{padding:1.4rem 1.5rem .1rem}
.kz-desk .kz-lead{margin-bottom:.6rem}
.kz-desk .kz-subs{position:sticky;top:0;z-index:3;margin:0;padding:.55rem 1.5rem .1rem;background:var(--c-bg);gap:.3rem}
.kz-desk .is-subs-tall .kz-subs{position:static}
.kz-desk .kz-sub{min-height:30px;padding:.2rem .65rem;font-size:.8rem}
.kz-desk .kz-bar{position:sticky;top:var(--subh,0px);z-index:3;margin:0;padding:.25rem 1.5rem .35rem;background:var(--c-bg);border-bottom:1px solid var(--c-line);min-height:32px}
.kz-desk .kz-scroll{overflow:visible;padding:1rem 1.5rem 2.5rem}
.kz-desk .kz-card{cursor:pointer}
.kz-desk .kz-card.is-hl:not(.is-on){border-color:color-mix(in srgb,var(--pc) 60%,transparent);background:#fff}
/* Namen an den Punkten (Platz per JS, keine Überlappung) */
.kz-desk .kz-pin .kz-l{font-size:12px;padding:3px 7px;background:rgb(255 255 255 / .92);transition:opacity .2s}
.kz-desk .kz-pin .k4-l--r{left:30px}.kz-desk .kz-pin .k4-l--l{right:30px}
.kz-desk .kz-pin.has-lab .kz-l{opacity:1}
.kz-desk .kz-pin:hover .kz-l,.kz-desk .kz-pin.is-hl .kz-l{background:#fff;box-shadow:0 2px 10px rgb(20 30 60 / .3);z-index:2}
.kz-desk .kz-pin.is-on .kz-l{font-size:13.5px;padding:5px 10px;background:var(--pt,var(--pc))}
.kz-desk .kz-pin.is-on .k4-l--r{left:34px}.kz-desk .kz-pin.is-on .k4-l--l{right:34px}
.kz-desk .kz-pin{cursor:pointer}
/* sichtbare Schilder sind auf dem Desktop klickbar (Klick/Hover wie auf den Punkt); Touch-Bedienung (Teil 2) bleibt unverändert */
.kz-desk .kz-pin.has-lab .kz-l,.kz-desk .kz-pin--edge:not(.is-nolab) .kz-l,.kz-desk .kz-pin.is-on .kz-l,.kz-desk .kz-pin.is-hl .kz-l{pointer-events:auto;cursor:pointer}
.kz-desk .kz-tr.is-hl{stroke-width:5.5;opacity:1}
/* Gruppen nah beieinander liegender Punkte */
.kz-pin.is-clu{visibility:hidden;pointer-events:none}
.kz-pin.is-clu:not(.is-hl){display:none}  /* ~400 Ziele: Punkte in Gruppen ganz aus dem Stil-/Layout-Durchlauf nehmen */
.kz-pin.is-clu.is-hl{visibility:visible;z-index:7}
.kz-pin.is-spi{translate:var(--sx,0) var(--sy,0);z-index:6}
.kz-pin.is-nudge{translate:var(--sx,0) var(--sy,0);z-index:6}
.kz-clu{position:absolute;width:40px;height:40px;margin:-20px 0 0 -20px;padding:0;border:0;background:none;display:grid;place-items:center;pointer-events:auto;cursor:zoom-in;z-index:6;--pc:var(--c-dark)}
.kz-clu[hidden]{display:none}
.kz-clu{translate:var(--ox,0) var(--oy,0)}
.kz-clu b{display:grid;place-items:center;min-width:30px;height:30px;padding:0 6px;box-sizing:border-box;border-radius:999px;background:var(--pc);color:#fff;font:700 12.5px/1 var(--f);border:2px solid #fff;box-shadow:0 0 0 4px color-mix(in srgb,var(--pc) 22%,transparent),0 1px 4px rgb(20 30 60 / .45);transition:transform .25s var(--kz-ease)}
.kz-clu[data-c=mix]{--pc:var(--c-dark)}
.kz-clu:hover,.kz-clu.is-hl{z-index:9}
.kz-clu:hover b,.kz-clu.is-hl b{transform:scale(1.15)}
.kz-clu.is-dim{opacity:.3}
.kz-clu .kz-l{max-width:22rem;white-space:normal;width:max-content;line-height:1.3;text-align:left}
.kz-clu:hover .kz-l{opacity:1;background:#fff;box-shadow:0 2px 10px rgb(20 30 60 / .3)}
.kz-clu .k4-l--r{left:36px}.kz-clu .k4-l--l{right:36px}
/* Detailkarte des gewählten Orts (unten links auf der Karte) */
.kz-det{position:absolute;z-index:11;left:.75rem;bottom:2.1rem;width:min(26rem,calc(100% - 6rem));max-height:calc(100% - 9rem);overflow:auto;display:flex;flex-direction:column;gap:.35rem;padding:.75rem .75rem .5rem;border-radius:calc(var(--r) * .8);background:#fff;border:1.5px solid var(--pc,var(--c-line));box-shadow:0 18px 40px -16px rgb(20 30 60 / .55),0 2px 6px rgb(20 30 60 / .15);--pc:var(--c-primary)}
.kz-det[hidden]{display:none}
.kz-det-bd{display:grid;grid-template-columns:auto 1fr;gap:.8rem;align-items:start}
.kz-det .kz-ph{width:5.5rem}
.kz-det h3{font-size:1.12rem;line-height:1.25;letter-spacing:-.01em;margin:0 0 .2rem;font-weight:650}
.kz-det .kz-x{display:block}
.kz-det-nav{display:flex;align-items:center;justify-content:flex-end;gap:.15rem;border-top:1px solid var(--c-line);padding-top:.35rem}
.kz-det-pos{min-width:3.6rem;text-align:center;font:600 .8rem/1 var(--f);font-variant-numeric:tabular-nums;color:var(--c-muted)}
.kz-det-x{margin-left:.4rem}
@media (prefers-reduced-motion:no-preference){.kz-det:not([hidden]){animation:kz-in .28s var(--kz-ease)}}
@keyframes kz-in{from{opacity:0;translate:0 10px}}
/* Steuerung: Beschriftung „Gehzeit“ lesbar */
.kz-desk .kz-btn--rings{width:auto;padding:.45rem .5rem .4rem}
.kz-desk .kz-btn--rings span{font-size:.68rem}
.kz-desk .kz-map .k4-north{bottom:calc(var(--kb) + 30px)}
/* Schmaler Desktop (Karte < ca. 900px breit): Ebenen-Leiste einzeilig – nur die gewählte Ebene mit Namen, die anderen als Symbol
   (Name als Tooltip/Screenreader-Text); Detailkarte kompakter */
@media (max-width:1279px){.kz-desk .kz-mapwrap > .kz-layers{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:4px}
.kz-desk .kz-mapwrap > .kz-layers .kz-chip:not([aria-pressed=true]){padding-right:.25rem;gap:0}
.kz-desk .kz-mapwrap > .kz-layers .kz-chip:not([aria-pressed=true]) .kz-cl{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
}
@media (max-width:1279px),(max-height:820px){.kz-desk .kz-det{max-height:max(14rem,46%);padding:.6rem .65rem .4rem}
.kz-desk .kz-det .kz-ph{width:4.25rem}
.kz-desk .kz-det h3{font-size:1.02rem}
.kz-desk .kz-det .kz-sd{font-size:.82rem}
}
/* iPhone: Home-Indikator und Notch (viewport-fit=cover) */
@media (max-width:999px){.kz-panel{padding-bottom:env(safe-area-inset-bottom,0px)}
.kz-top,.kz-panel[data-s=full] .kz-scroll{padding-inline:max(1rem,env(safe-area-inset-left,0px)) max(1rem,env(safe-area-inset-right,0px))}
.kz-ctl{right:max(.6rem,env(safe-area-inset-right,0px))}
.kz-map .k4-north{right:max(.6rem,env(safe-area-inset-right,0px))}
}
@media (max-width:999px) and (min-width:600px){.kz-ctl{right:auto;left:max(.75rem,env(safe-area-inset-left,0px))}
.kz-panel{right:max(1rem,env(safe-area-inset-right,0px))}
}
.kz-map .k4-attr{padding-right:max(7px,env(safe-area-inset-right,0px))}
.kz-map .kz-sb{left:max(6px,env(safe-area-inset-left,0px))}
/* Richtungs-Pfeil beim Listen-Hover (Ort außerhalb des Ausschnitts) */
.kz-ghost{pointer-events:none !important;z-index:9}
.kz-ghost[hidden]{display:none}
.kz-ghost .kz-l{opacity:1;background:#fff;box-shadow:0 2px 10px rgb(20 30 60 / .3)}
@media (prefers-reduced-motion:no-preference){.kz-ghost i{animation:kz-ghost 1s var(--kz-ease) infinite alternate}}
@keyframes kz-ghost{from{box-shadow:0 0 0 0 color-mix(in srgb,var(--pc) 45%,transparent)}to{box-shadow:0 0 0 8px transparent}}
/* Maus/Trackpad bei 760–999px (halbes Fenster, kleiner Laptop): Desktop-Aufbau statt Bottom-Sheet – Karte links, schmale Liste rechts.
   Hebt die Sheet-Regeln aus „max-width:999px“ auf; JS setzt .kz-desk und data-s="full" (Liste statt Wischkarten). Touch bleibt beim Sheet. */
@media (min-width:760px) and (max-width:999px) and (hover:hover) and (pointer:fine){.kz{display:grid;grid-template-columns:1fr clamp(19rem,36vw,22rem)}
.karte--k4.kz-mapwrap{position:relative;inset:auto}
.kz-panel{position:relative;left:auto;right:auto;bottom:auto;width:auto;height:auto;border-radius:0;transform:none;transition:none;padding-bottom:0;border-left:1px solid var(--c-line);box-shadow:-14px 0 34px -24px rgb(20 30 60 / .35)}
.kz-grip,.kz-step,.kz-more{display:none}
.kz-panel[data-s=full] .kz-head{display:block}
.kz-panel[data-s=full] .kz-head :is(h1,h2){font-size:1.7rem}
.kz-subs{margin-inline:0;padding-inline:0;flex-wrap:wrap;overflow:visible}
.kz-ctl{top:.75rem;right:.75rem;bottom:auto;left:auto}
.kz-map .k4-north{top:auto;right:10px}
.kz-info i{display:inline}
.kz-desk .kz-head{padding:1.1rem 1.1rem .1rem}
.kz-desk .kz-subs{padding:.5rem 1.1rem .1rem}
.kz-desk .kz-bar{padding:.25rem 1.1rem .35rem}
.kz-desk .kz-scroll,.kz-panel[data-s=full] .kz-scroll{padding:1rem 1.1rem 2.5rem}
.kz-desk .kz-mapwrap > .kz-layers{right:4.5rem;margin:0;padding:0 0 4px}
}
/* Sheet-Karten: Titel einzeilig mit „…“ – die Kürzung muss am Knopf sitzen (inline-Block-Inhalt erbt das text-overflow der h3 nicht) */
.kz-panel:not([data-s=full]) .kz-card h3 .kz-sel{display:block;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-align:left}
/* ------------------------------------------------ Merkliste (merkliste.js): Herz auf den Karten, Ebene „Gemerkt“ */
.kz-card .kz-heart{position:absolute;z-index:2;top:.45rem;right:.45rem;width:36px;height:36px;background:color-mix(in srgb,#fff 85%,transparent)}
.kz-card .kz-heart .ml-ico{width:1.1rem;height:1.1rem}
/* Platz fürs Herz nur neben Kicker/Titel (oben rechts). Im Sheet-Vorschauzustand (eine Zeile Kicker, Titel, Links) sitzt das Herz
   stattdessen in der linken Spalte – unten rechts auf dem Foto bzw. unter dem runden Symbol –, damit Kicker-Zeile (Autozeit, „Rundtour“),
   Titel und Links („Mehr erfahren“, „Route“) die volle Breite behalten */
.kz-card :is(.kz-meta,h3){padding-right:2.6rem}
.kz-a{white-space:nowrap}
@media (max-width:999px){.kz-panel:not([data-s=full]) .kz-card :is(.kz-meta,h3){padding-right:0}
.kz-panel:not([data-s=full]) .kz-card .kz-heart{top:calc(.7rem + 2.75rem + .4rem);right:auto;left:calc(.7rem + (2.75rem - 36px) / 2)}
.kz-panel:not([data-s=full]) .kz-card:has(> .kz-ph) .kz-heart{top:calc(.7rem + 4.25rem - 36px - .25rem);left:calc(.7rem + 4.25rem - 36px - .25rem)}
}
.kz-card.is-on .kz-heart{background:#fff}
.kz-det-nav .kz-det-heart{margin-right:auto;min-height:36px;padding:.25rem .8rem .25rem .6rem;font-size:.84rem}
.kz-chip--ml{--pc:var(--c-accent)}
.kz-chip--ml .ico{fill:#fff;stroke:#fff;stroke-width:1.4}
.kz-chip--ml[hidden]{display:none}
.kz-map[data-l=merkliste] .kz-trk{display:inline}
.kz-mlempty{margin:.4rem 0 .8rem;padding:.8rem 1rem;border-radius:calc(var(--r) * .8);background:var(--c-surface);font-size:.9rem;line-height:1.45}
.kz-mlempty[hidden]{display:none}
.kz-mloff{display:block;margin-bottom:.35rem;color:var(--c-muted)}
/* in der Ebene „Gemerkt“ eben entfernt: blass, bis zum Ebenenwechsel – Herz holt den Ort zurück */
.kz-card.kz-unml > :not(.kz-heart){opacity:.5;transition:opacity .25s}
.kz-pin.kz-unml:not(.is-on):not(.is-hl):not(:hover){opacity:.45}
/* ------------------------------------------------ Ausflugsziele: Themen-Filter, Richtungspfeile, Karten-Vorteile, Farbring der Gruppen */
.kz-sub .kz-sw{flex:none;width:10px;height:10px;border-radius:50%;background:var(--pc);box-shadow:0 0 0 1.5px #fff,0 0 0 2.5px color-mix(in srgb,var(--pc) 35%,transparent)}
.kz-sub[data-c]:hover{border-color:var(--pc)}
.kz-sub[data-c][aria-pressed=true]{background:color-mix(in srgb,var(--pc) 12%,#fff);border-color:var(--pc);color:var(--pt,var(--pc))}
.kz-sub:focus-visible,.kz-chip:focus-visible,.kz-farx:focus-visible{outline:3px solid var(--c-primary);outline-offset:2px}
/* Sammelpfeil einer Himmelsrichtung (Ziele außerhalb der Karte): Pfeil + Anzahl, Name als Schild */
.kz-far{border:0;padding:0;background:none;font:inherit;cursor:pointer;width:44px;height:44px;margin:-22px 0 0 -22px;z-index:7}
.kz-far[hidden]{display:none}
.kz-far .kz-pa{background:var(--c-dark);width:28px;height:28px}
.kz-far .kz-fn{position:absolute;right:-3px;top:-1px;min-width:20px;height:20px;padding:0 5px;box-sizing:border-box;border-radius:999px;background:#fff;color:var(--c-dark);font:700 11px/20px var(--f);text-align:center;box-shadow:0 1px 3px rgb(20 30 60 / .35);font-variant-numeric:tabular-nums;pointer-events:none}
.kz-far .kz-l{opacity:1;font-weight:650}
.kz-pin.kz-far .k4-l--r{left:40px}.kz-pin.kz-far .k4-l--l{right:40px}
.kz-far:hover .kz-pa,.kz-far.is-hl .kz-pa{transform:rotate(var(--a)) scale(1.15)}
.kz-far.is-on .kz-pa{background:var(--c-accent);box-shadow:0 0 0 5px color-mix(in srgb,var(--c-accent) 28%,transparent),0 2px 6px rgb(20 30 60 / .45)}
.kz-far.is-on .kz-l,.kz-desk .kz-pin.kz-far.is-on .kz-l{background:var(--c-accent);color:#fff;font-size:12.5px;padding:4px 9px}
.kz-far.has-act .kz-l{display:none}
.kz-farx:not([hidden]) ~ .kz-info i{display:none}
.kz-desk .kz-far .kz-l{pointer-events:auto;cursor:pointer}
.kz-farx{flex:none;display:inline-flex;align-items:center;gap:.3rem;min-height:32px;padding:.2rem .45rem .2rem .7rem;border-radius:999px;border:1px solid var(--c-accent);background:color-mix(in srgb,var(--c-accent) 10%,#fff);color:var(--c-accent);font:600 .8rem/1 var(--f);cursor:pointer;white-space:nowrap}
.kz-farx[hidden]{display:none}
.kz-farx .ico{width:1rem;height:1rem}
.kz-farx:hover{background:color-mix(in srgb,var(--c-accent) 18%,#fff)}
/* Aktiv Card / Kärnten Card / geschlossen (regionlib.badges) */
.kz-bdg{display:flex;flex-wrap:wrap;gap:.3rem;margin:.45rem 0 0}
.kz-b,.kz-mb{display:inline-flex;align-items:center;min-height:22px;padding:.15rem .55rem;border-radius:999px;font:600 .74rem/1.15 var(--f);letter-spacing:0;text-transform:none;white-space:nowrap}
.kz .b-ac{background:#e6f1e8;color:#25613a}
.kz .b-ac--gratis{background:#2f7a48;color:#fff}
.kz .b-kc{background:#fbeee2;color:#8a4a17}
.kz .b-kc--gratis{background:#b25a1e;color:#fff}
.kz .b-st{background:#f4e3e3;color:#8f2b2b}
.kz-mb{display:none;min-height:18px;padding:.08rem .45rem;font-size:.66rem}
@media (max-width:999px){.kz-panel:not([data-s=full]) .kz-sd > .kz-mb{display:inline;padding:.12rem .45rem;margin-right:.15rem;vertical-align:.08em;line-height:1}}
.kz-card[data-zu] > .kz-ph,.kz-card[data-zu] > .kz-ic{opacity:.55;filter:grayscale(.6)}
.kz-pin--zu i{opacity:.6}
/* Gruppen gemischter Themen: Farbring (Anteile je Thema, conic-gradient aus karte-zentrale.js) um die dunkle Zahl */
.kz-clu::before{content:"";position:absolute;width:38px;height:38px;border-radius:50%;background:var(--ring,none);box-shadow:0 1px 4px rgb(20 30 60 / .35)}
.kz-clu b{position:relative}
.kz-clu[style*="--ring"] b{box-shadow:none}
.kz-clu:not([style*="--ring"])::before{display:none}
@media (max-width:599px){.kz-far:not(.is-on) .kz-l,.kz-pin--edge:not(.is-on):not(.is-hl) .kz-l{display:none}}
/* ~400 Karten in der Liste: nur sichtbare werden gelayoutet/gemalt (Platzhaltergröße bis zum ersten Zeichnen) */
.kz-card{content-visibility:auto;contain-intrinsic-block-size:auto 9.5rem}
.kz-panel:not([data-s=full]) .kz-card{contain-intrinsic-block-size:auto 6rem}  /* Wischkarten: Höhe = höchste gezeichnete Karte */
.kz-card.is-on{content-visibility:visible}

/* Sammelpfeil einer Richtung, während ein Ort dieser Richtung gewählt ist (eigener Pfeil, karte-zentrale.js edges()) */
.kz-far.is-sup{visibility:hidden}
.kz-pin--edge.is-on .kz-l{overflow:hidden;text-overflow:ellipsis}
