.cb-kontakt{background:var(--color-surface-alt)}
.cb-kontakt__inner{display:grid;grid-template-columns:1fr .9fr;gap:var(--space-xl)}
.cb-kontakt__crown{width:2.2em;height:auto;flex:none;fill:var(--color-accent)}
.cb-kontakt__title{font-family:var(--font-display);font-size:var(--text-3xl);font-weight:700;line-height:var(--lh-heading);letter-spacing:var(--ls-tight);color:var(--color-text);margin:var(--space-2xs) 0 var(--space-sm)}
.cb-kontakt__lead{margin:0}
.cb-kontakt__cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:var(--space-md)}
.cb-kontakt__kv{display:grid;gap:18px;margin-top:var(--space-md)}
.cb-kontakt__zeile{display:flex;gap:14px;align-items:flex-start}
.cb-kontakt__ic{width:38px;height:38px;flex:none}
.cb-kontakt__ic svg{width:100%;height:100%;display:block}
.cb-kontakt__zeile b{font-family:var(--font-display);font-size:var(--text-base);display:block;margin-bottom:4px;color:var(--color-text)}
.cb-kontakt__zeile span{font-size:var(--text-base);line-height:var(--lh-normal);display:block;color:var(--color-text)}
.cb-kontakt__karte{position:relative;border:1px solid var(--color-hairline);border-radius:var(--radius-card);overflow:hidden;background:var(--color-surface);align-self:stretch;min-height:420px}
@media (max-width:1024px){.cb-kontakt__inner{grid-template-columns:1fr}.cb-kontakt__karte{min-height:360px}}
.cb-kontakt__routen{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:24px;text-align:center;font-family:var(--font-display);font-weight:600;font-size:var(--text-sm);color:var(--color-text);text-decoration:none}
/* Kontakt-Karte (MapLibre, 19.10.2026) — dunkle Insel im CI, auch in hellen Sektionen */
.cb-kontakt__karte--live{background:#141215;border-color:rgba(255,255,255,.08);min-height:480px}
.cb-kontakt__karte .cb-kmap.maplibregl-map,.cb-kontakt__karte .cb-kmap{position:absolute;inset:0;height:auto}
a.cb-kmap__route,a.cb-kmap__route:link,a.cb-kmap__route:visited{position:absolute;left:14px;top:14px;z-index:3;display:inline-flex;align-items:center;gap:6px;padding:9px 14px;border-radius:100px;background:rgba(20,18,21,.88);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.14);color:#fff;font-family:var(--font-display);font-weight:600;font-size:var(--text-sm);line-height:1;text-decoration:none;transition:border-color .2s ease}
a.cb-kmap__route:hover{border-color:var(--color-accent);color:#fff}
.cb-kmhome{position:relative;display:flex;flex-direction:column;align-items:center}
.cb-kmhome__punkt{width:14px;height:14px;border-radius:50%;background:var(--color-accent);border:2px solid #fff;animation:cb-kping 2.2s ease-out infinite}
.cb-kmhome__kachel{position:relative;margin-top:12px;padding:8px 10px;border-radius:10px;background:#141215;border:1px solid rgba(236,98,42,.55);box-shadow:0 12px 30px rgba(0,0,0,.55)}
.cb-kmhome__kachel::before{content:"";position:absolute;left:50%;top:-8px;margin-left:-8px;border:8px solid transparent;border-top:0;border-bottom-color:var(--color-accent)}
.cb-kmhome img{display:block;width:110px;height:auto}
@keyframes cb-kping{0%{box-shadow:0 0 0 0 rgba(236,98,42,.6)}100%{box-shadow:0 0 0 22px rgba(236,98,42,0)}}
a.cb-kmpin,a.cb-kmpin:link,a.cb-kmpin:visited,a.cb-kmpin:hover{position:relative;display:block;width:0;height:0;text-decoration:none}
.cb-kmpin i{position:absolute;left:-6px;top:-6px;width:12px;height:12px;border-radius:50%;background:var(--color-accent);box-shadow:0 0 0 4px rgba(236,98,42,.22)}
.cb-kmpin span{position:absolute;left:12px;top:-12px;white-space:nowrap;font-family:var(--font-body);font-weight:600;font-size:var(--text-xs);line-height:1;color:#fff;background:rgba(20,18,21,.88);padding:6px 9px;border-radius:100px;transition:background-color .3s ease}
.cb-kmpin--l span{left:auto;right:12px}
.cb-kmpin:hover span,.cb-kmpin.is-on span{background:var(--color-accent)}
.cb-kmpin.is-on i{background:#fff;animation:cb-kping 1.6s ease-out infinite}
.cb-korte{position:absolute;left:0;right:0;bottom:0;z-index:3;overflow:hidden;background:rgba(20,18,21,.8);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-top:1px solid rgba(255,255,255,.08)}
.cb-korte__spur{display:flex;width:max-content;animation:cb-korte-lauf 40s linear infinite}
.cb-korte:hover .cb-korte__spur,.cb-korte:focus-within .cb-korte__spur{animation-play-state:paused}
.cb-korte__btn{all:unset;box-sizing:border-box;cursor:pointer;display:inline-flex;align-items:center;gap:18px;min-height:52px;padding:0 18px 0 0;font-family:var(--font-display);font-weight:600;font-size:var(--text-base);letter-spacing:.04em;text-transform:uppercase;color:#fff;white-space:nowrap}
.cb-korte__btn::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--color-accent);margin-left:18px}
.cb-korte__btn:hover,.cb-korte__btn.is-on{color:var(--color-accent)}
.cb-korte__btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:-6px;border-radius:6px}
@keyframes cb-korte-lauf{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.cb-kontakt__karte .maplibregl-ctrl-group{background:#141215;border:1px solid rgba(255,255,255,.14);box-shadow:none}
.cb-kontakt__karte .maplibregl-ctrl-group button{width:40px;height:40px}
.cb-kontakt__karte .maplibregl-ctrl-group button+button{border-top-color:rgba(255,255,255,.14)}
.cb-kontakt__karte .maplibregl-ctrl-icon{filter:invert(1)}
.cb-kontakt__karte .maplibregl-ctrl-bottom-right{bottom:60px}
.cb-kontakt__karte .maplibregl-ctrl.maplibregl-ctrl-attrib{background:rgba(20,18,21,.82);color:#cfc8c4;font-size:11px}
.cb-kontakt__karte .maplibregl-ctrl-attrib a{color:#fff}
.cb-kontakt__karte .maplibregl-ctrl-attrib-button{filter:invert(1)}
.cb-kontakt__karte .maplibregl-canvas:focus-visible{outline:2px solid var(--color-accent);outline-offset:-4px}
@media (max-width:767px){.cb-kontakt__karte--live{min-height:420px}.cb-kmpin span{display:none}.cb-kmpin.is-on span{display:block}.cb-kmhome img{width:84px}}
@media (prefers-reduced-motion:reduce){.cb-kmhome__punkt,.cb-kmpin.is-on i{animation:none}.cb-korte{overflow-x:auto}.cb-korte__spur{animation:none}.cb-korte__btn[aria-hidden="true"]{display:none}}
