/* Isolated functional components; preserve the original city design system. */
[hidden]{display:none!important}
button.info-i{padding:0;border:0;font-family:inherit;box-sizing:content-box}
button.info-i:focus-visible{outline:2px solid var(--brand);outline-offset:3px}
.directory-search{margin:0 0 1.4rem}
.directory-search>label{display:block;font-weight:700;margin-bottom:.5rem}
.directory-search .vz-search{width:100%;max-width:100%;box-sizing:border-box}
.directory-filter-row{display:flex;gap:.8rem;flex-wrap:wrap;align-items:end;margin-top:.8rem}
.directory-filter-row>label{display:flex;flex-direction:column;gap:.4rem;flex:1 1 13rem;min-width:0}
.directory-filter-row select{width:100%;max-width:100%;box-sizing:border-box}
.directory-pagination{display:flex;gap:.8rem;align-items:center;flex-wrap:wrap;margin:1.5rem 0}
.directory-orientation{margin:2rem 0}
.directory-orientation>summary{cursor:pointer;font-weight:700;padding:.6rem 0}
.directory-category-links ul{columns:2;column-gap:2rem}
.directory-category-links li{break-inside:avoid;margin-bottom:.5rem}
.directory-check{font-size:.9rem;color:var(--ink-2);border-top:1px solid var(--line);padding-top:.6rem}
.map-accuracy,.vk-map-placeholder{padding:1rem;background:var(--brand-tint);border:1px solid var(--brand-line);border-radius:var(--radius-s)}
.vz-map-wrap:not([hidden]){display:block}
.local-contact{padding:1.2rem;border:1px solid var(--brand-line);border-radius:var(--radius);background:var(--brand-tint)}
.local-contact h2{font-size:1.4rem;margin-top:0}
.utility-page{padding-top:2rem;padding-bottom:3rem}
.editorial-note{max-width:var(--prose-w);margin:1.5rem auto;padding:0 1rem;color:var(--ink-2);font-size:.9rem}
.recovery-search{display:flex;flex-wrap:wrap;gap:.6rem}.recovery-search label{flex-basis:100%}.recovery-search input{min-width:0;flex:1;padding:.65rem;font:inherit;border:1px solid var(--brand-line);border-radius:var(--radius-s)}
.service-dialog {width:min(42rem,calc(100% - 2rem));max-height:90dvh;padding:1.5rem;border:2px solid var(--brand);border-radius:12px;background:var(--card);color:var(--ink);overflow:auto}
.service-dialog::backdrop {background:#12251ed0}
.service-dialog h2 {padding-right:2rem;margin-top:0}
.service-dialog-close {position:absolute;right:.5rem;top:.5rem;min-width:44px;min-height:44px;background:transparent;border:0;font-size:2rem;color:var(--ink)}
.service-choice {display:flex;align-items:flex-start;gap:.8rem;margin-block:1rem;padding:.7rem;border:1px solid var(--line);border-radius:8px;cursor:pointer}
.service-choice input {appearance:auto;width:24px;height:24px;margin-top:.3rem}
.service-dialog-actions {display:flex;gap:.7rem;flex-wrap:wrap}

@media(max-width:40rem){.directory-category-links ul{columns:1}.directory-filter-row>label{flex-basis:100%}.directory-main .vz-entry{min-width:0}.service-dialog{padding:1rem}}
@media print{.no-print{display:none!important}.directory-main .vz-list{display:block}.directory-main .vz-entry{break-inside:avoid;margin-bottom:1rem}}

/* Prevent the established branding from overflowing when text is enlarged. */
.site-header .brand,.site-header .brand-text{min-width:0}
@media(max-width:58rem){.site-header .brand-name,.site-header .brand-ort{overflow-wrap:anywhere}}

.vz-popup-entries{max-height:280px;overflow:auto;overscroll-behavior:contain}.vz-popup-entry{padding:.6rem 0;border-bottom:1px solid var(--line)}.vz-popup-entry:last-child{border-bottom:0}.vz-location-note{color:var(--ink-2);padding-bottom:.4rem}.vz-map .leaflet-popup-content .vz-pop-btn{cursor:pointer;font-family:inherit}
/* Directory composition: task controls, then map, then scannable contact cards. */
.directory-main .directory-intro{max-width:64ch}
.directory-main .directory-search{padding:1.4rem;background:var(--card);border:1px solid var(--brand-line);border-radius:var(--radius);box-shadow:var(--shadow)}
.directory-main .directory-search .vz-search{font:inherit;min-height:52px;border-radius:var(--radius-s)}
.directory-main .directory-filter-row{gap:1rem;margin-top:1rem}
.directory-main .directory-filter-row>label{font-size:.95rem;font-weight:600}
.directory-main .directory-filter-row .vz-select{min-height:48px;font-weight:400}
.directory-map-header{display:flex;gap:1rem;justify-content:space-between;align-items:center;padding:1.15rem 1.4rem;background:var(--card);border-bottom:1px solid var(--brand-line)}
.directory-map-header h2{font-family:var(--sans);font-size:1.25rem;line-height:1.25;margin:.25rem 0 0;color:var(--brand-2)}
.directory-map-header .map-eyebrow{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:var(--ink-2);margin:0}
.directory-map-header .map-accuracy{font-size:.9rem;padding:.45rem .7rem;border:0;background:var(--brand-tint);color:var(--brand-2);border-radius:99px;max-width:23ch;margin:0;text-align:center;line-height:1.35}
.directory-map-footer{display:flex;justify-content:space-between;align-items:start;gap:1rem;flex-wrap:wrap;padding:.8rem 1.3rem;background:var(--card);font-size:.87rem;color:var(--ink-2);border-top:1px solid var(--brand-line)}
.directory-map-footer details{max-width:48ch}.directory-map-footer summary{cursor:pointer;color:var(--brand-2);font-weight:600}.directory-map-footer p{margin:.5rem 0}
.directory-main .vk-map-placeholder{display:flex;align-items:center;gap:1.8rem;margin:0;padding:2rem clamp(1.3rem,4vw,3rem);border:0;border-radius:0;background:linear-gradient(115deg,var(--brand-tint),var(--paper))}
.map-placeholder-art{color:var(--brand);flex-shrink:0;display:grid;place-items:center;width:112px;height:112px;background:var(--card);border:1px solid var(--brand-line);border-radius:50%}
.vk-map-placeholder h3{font-family:var(--serif);font-size:1.55rem;margin:0 0 .6rem;color:var(--brand-2)}
.vk-map-placeholder p{max-width:54ch;margin:.4rem 0}.vk-map-placeholder .map-privacy-note{font-size:.85rem;color:var(--ink-2);margin-top:.7rem}
.map-placeholder-actions{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1rem}.map-placeholder-actions a{display:inline-flex;align-items:center}
.directory-main .vz-count{margin:1.7rem 0 1rem;scroll-margin-top:7rem}
.directory-main .vz-entry{display:flex;flex-direction:column;gap:.55rem;padding:1.35rem;min-width:0}
.directory-main .vz-entry h3{line-height:1.3}.directory-main .vz-entry .vz-kat{align-self:start;margin:0;font-size:.82rem}
.directory-main .vz-entry .vz-beschrieb{margin:0;line-height:1.55;font-size:1rem}
.directory-main .vz-entry address{font-size:1rem;color:var(--ink-2);margin:.2rem 0}
.directory-main .vz-kontakt{flex-direction:row;flex-wrap:wrap;gap:.55rem;margin:.35rem 0 .15rem}
.directory-main .vz-kontakt a{display:inline-flex;align-items:center;min-height:44px;padding:.45rem .75rem;border:1px solid var(--brand-line);border-radius:var(--radius-s);font-size:.95rem;text-decoration:none;max-width:100%;overflow-wrap:anywhere}
.directory-main .vz-kontakt .vz-tel{background:var(--brand);color:white;border-color:var(--brand);font-weight:700}
.directory-main .vz-entry-details{margin-top:auto;padding-top:.7rem;border-top:1px solid var(--line);font-size:.92rem;color:var(--ink-2)}
.directory-main .vz-entry-details summary{cursor:pointer;color:var(--brand-2);font-weight:600}.directory-main .vz-entry-details p{margin:.6rem 0}.directory-main .vz-entry-details .directory-check{border:0;padding:0}
.vz-map .vz-location-note{display:inline-block;font-size:.75rem!important;padding:.2rem .45rem;margin:.35rem 0!important;border-radius:4px;background:var(--brand-tint);color:var(--brand-2)}
.vz-map .vz-popup-entry{padding:.8rem 0}.vz-map .vz-popup-entry h3{font-size:1.08rem;margin-bottom:.2rem}.vz-map .vz-popup-entry .vz-pop-btn{margin-top:.75rem;min-height:40px}.vz-popup-group-title{font-weight:700;border-bottom:1px solid var(--line);padding-bottom:.5rem}
@media(max-width:40rem){.directory-map-header{padding:1rem;align-items:flex-start;flex-direction:column;gap:.7rem}.directory-map-header .map-accuracy{max-width:none;text-align:left}.directory-main .vk-map-placeholder{align-items:flex-start;gap:1rem;flex-direction:column;padding:1.4rem}.map-placeholder-art{width:68px;height:68px}.map-placeholder-art svg{width:44px;height:44px}.directory-main .directory-search{padding:1rem}.directory-main .vz-entry{padding:1.1rem}.directory-map-footer{padding:.8rem 1rem}.vk-map-placeholder h3{font-size:1.35rem}.directory-main .vz-map{height:440px}}

.directory-map-footer .map-extent{font:inherit;color:var(--brand-2);font-weight:600;background:none;border:1px solid var(--brand-line);border-radius:6px;padding:.35rem .6rem;cursor:pointer}.map-extent:hover{background:var(--brand-tint)}
.utility-page .termine-liste{max-width:56rem}.utility-page .termin-item{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.3rem;margin:1rem 0}.termine-more{margin:1.3rem 0 2rem}
@media(max-width:40rem){.vz-map .leaflet-popup-content{max-width:calc(100vw - 100px)!important;width:250px!important}.vz-popup-entries{max-height:260px}.utility-page .termin-item{padding:1rem;gap:.8rem}}
@media(max-width:30rem){.site-header .header-inner{gap:.6rem}.site-header .brand{gap:.45rem;max-width:calc(100% - 5.5rem)}.site-header .brand-logo{width:40px;height:40px}.site-header .brand-name{font-size:1.08rem}.site-header .brand-ort{font-size:.58rem;letter-spacing:.1em}.site-header .nav-toggle{font-size:.92rem;padding:.5rem .65rem;min-height:44px}}
