/* hallen_karte · statisches Kartenbild, Leaflet erst nach Klick (karte.js). */
.hk{display:grid;gap:var(--gap);align-items:start}
.hk-kopf{margin-bottom:var(--s-8)}
@media(min-width:61.25em){.hk{grid-template-columns:minmax(0,1.85fr) minmax(17rem,1fr)}}
.hk .sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.hk-karte{margin:0;background:var(--card);border-radius:var(--shape-card);box-shadow:var(--sh);overflow:hidden;border:.0625rem solid var(--rule)}
.hk-flaeche{position:relative;aspect-ratio:960/720;background:var(--sunk);overflow:hidden}
@media(max-width:47.9375em){.hk-flaeche{aspect-ratio:440/400}}
.hk-flaeche picture,.hk-bild{display:block;width:100%;height:100%}
.hk-bild{object-fit:cover}
:root[data-theme="dark"] .hk-bild,:root[data-theme="dark"] .hk .leaflet-tile-pane{filter:brightness(.86) contrast(1.04)}
.hk .leaflet-tile-pane{filter:saturate(.45)}
:root[data-theme="dark"] .hk .leaflet-tile-pane{filter:saturate(.45) brightness(.86) contrast(1.04)}
.hk-quelle{position:absolute;right:0;bottom:0;z-index:2;padding:.125rem .5rem;font-size:.6875rem;line-height:1.5;color:#22222A;background:rgba(250,250,250,.86);border-top-left-radius:var(--r-chip)}
.hk-quelle:hover{color:var(--tks-red-600)}
.hk-leiste{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-3) var(--s-5);padding:var(--s-4) var(--s-5);border-top:.0625rem solid var(--rule)}
.hk-leiste p{flex:1 1 16rem;font-size:var(--fs-small);line-height:1.5;color:var(--mute);max-width:52ch}
.hk-leiste p a{text-decoration:underline;text-underline-offset:.15em}
.hk-knopf{transition:transform var(--dur-fast) cubic-bezier(.23,1,.32,1),background var(--dur-fast) ease}
.hk-knopf:active{transform:scale(.97)}
.hk-knopf svg{width:1.125rem;height:1.125rem;flex:none;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.hk-knopf[aria-busy="true"]{cursor:progress;opacity:.75}
.hk-status:empty{display:none}
.hk-status{padding:var(--s-3) var(--s-5);font-size:var(--fs-small);color:var(--mute);border-top:.0625rem solid var(--rule)}
.hk-status.ist-fehler{color:var(--red-t)}
/* interaktive Karte */
.hk-map{position:absolute;inset:0;z-index:3;opacity:0;transition:opacity 220ms cubic-bezier(.23,1,.32,1);font-family:var(--font-sans)}
.hk-map.ist-da{opacity:1}
.hk.ist-geladen .hk-leiste,.hk.ist-geladen .hk-quelle{display:none}
.hk .leaflet-container{background:var(--sunk);font:inherit;font-size:.8125rem}
.hk .leaflet-container:focus-visible{outline:.1875rem solid var(--red);outline-offset:-.1875rem}
.hk-pin{display:grid!important;place-items:center;width:1.875rem;height:1.875rem;border-radius:50%;background:var(--tks-red-500);color:#fff;border:.15625rem solid #fff;box-shadow:0 .125rem .375rem rgba(10,10,11,.35);font-weight:var(--fw-black);font-size:.9375rem;line-height:1}
.hk-pin:focus-visible{outline:.1875rem solid var(--fg);outline-offset:.125rem}
.hk-pin.ist-aktiv{background:var(--tks-red-600);transform-origin:center}
.hk .leaflet-popup-content-wrapper{background:var(--card);color:var(--fg);border-radius:var(--shape-card);box-shadow:var(--shHi)}
.hk .leaflet-popup-tip{background:var(--card)}
.hk .leaflet-popup-content{margin:.875rem 1.125rem;line-height:1.45;font-size:.875rem}
.hk .leaflet-popup-content b{display:block;font-weight:var(--fw-bold);font-size:.9375rem;margin-bottom:.125rem}
.hk .leaflet-popup-content span{display:block;color:var(--mute)}
.hk .leaflet-popup-content .hk-p-tage{color:var(--fg);font-weight:var(--fw-semi);margin-top:.25rem}
.hk .leaflet-popup-content a{color:var(--red-t);display:inline-flex;align-items:center;min-height:2.75rem;font-weight:var(--fw-bold)}
.hk .leaflet-container a.leaflet-popup-close-button{width:2.75rem;height:2.75rem;font:1.375rem/2.75rem var(--font-sans);color:var(--mute)}
.hk .leaflet-bar a{width:2.75rem;height:2.75rem;line-height:2.75rem;background:var(--card);color:var(--fg);border-bottom-color:var(--rule)}
.hk .leaflet-bar a:hover{background:var(--sunk)}
.hk .leaflet-bar{border:.0625rem solid var(--rule-s);box-shadow:var(--sh)}
.hk .leaflet-control-attribution{font-size:.6875rem;background:rgba(250,250,250,.86);color:#22222A}
.hk .leaflet-control-attribution a{color:#9C0C24}
/* Legende */
.hk-liste{list-style:none;margin:0;padding:0;display:grid;gap:0 var(--gap)}
@media(min-width:37.5em) and (max-width:61.1875em){.hk-liste{grid-template-columns:repeat(2,minmax(0,1fr))}}
.hk-liste li{display:grid;grid-template-columns:2rem minmax(0,1fr);gap:.875rem;padding-block:var(--s-4);border-top:.0625rem solid var(--rule)}
.hk-liste li.ist-aktiv .hk-nr{background:var(--tks-red-600);box-shadow:0 0 0 .1875rem var(--card),0 0 0 .3125rem var(--red)}
.hk-nr{display:grid;place-items:center;width:1.875rem;height:1.875rem;border-radius:50%;background:var(--tks-red-500);color:#fff;font-weight:var(--fw-black);font-size:.875rem;line-height:1;font-variant-numeric:tabular-nums;transition:box-shadow var(--dur-fast) ease}
.hk-info{display:flex;flex-direction:column;min-width:0;font-size:.9375rem;line-height:1.45}
.hk-ort{font-size:var(--fs-micro);font-weight:var(--fw-black);letter-spacing:var(--ls-caps);text-transform:uppercase;color:var(--faint);margin-bottom:.125rem}
.hk-name{font-weight:var(--fw-bold);color:var(--fg)}
.hk-adr{color:var(--mute);font-size:.875rem}
.hk-tage{margin-top:.25rem;font-size:.875rem;font-weight:var(--fw-semi);color:var(--fg)}
.hk-akt{display:flex;flex-wrap:wrap;gap:0 var(--s-5);margin-top:.125rem}
.hk-route,.hk-zeigen{display:inline-flex;align-items:center;min-height:2.75rem;font-size:.875rem;font-weight:var(--fw-bold);color:var(--red-t)}
.hk-route::after{content:"";width:.4375rem;height:.4375rem;margin-left:.5rem;border-top:.125rem solid currentColor;border-right:.125rem solid currentColor;transform:rotate(45deg)}
.hk-zeigen{padding:0;background:none;border:0;font-family:inherit;cursor:pointer}
@media(prefers-reduced-motion:reduce){.hk-map,.hk-knopf,.hk-nr{transition:none}.hk-knopf:active{transform:none}}
@media(max-width:37.4375em){.hk .leaflet-popup-content{margin:.75rem 2.25rem .625rem .875rem}}
