/* Vienna district directory. Scoped to .iwien; map geometry is a navigation aid, not a heatmap. */
.iwien{--w-ink:#142e48;--w-blue:#1e456c;--w-accent:#16738f;--w-line:#d7e2eb;--w-muted:#526578;--w-paper:#f4f8fb;width:100%;color:var(--w-ink);background:#fff;font-size:16px;line-height:1.6}
.iwien *{box-sizing:border-box}.iwien [hidden]{display:none!important}.iwien a{color:inherit;text-decoration:none}.iwien a:focus-visible,.iwien button:focus-visible,.iwien input:focus-visible{outline:3px solid #16738f;outline-offset:4px}.iwien-wrap{max-width:1280px;margin-inline:auto;padding-inline:32px}.iwien-crumbs{display:flex;align-items:center;gap:12px;padding-top:22px;font-size:13px;color:var(--w-muted)}.iwien-crumbs a:hover{text-decoration:underline}
.iwien-heading{display:grid;grid-template-columns:1.35fr 1fr;align-items:center;gap:64px;padding:36px 0 40px}.iwien .iwien-eyebrow{font-size:12px;font-weight:750;letter-spacing:.13em;text-transform:uppercase;color:var(--w-accent);margin:0 0 12px}.iwien h1{font-size:clamp(2.2rem,3.8vw,3.5rem);letter-spacing:-.055em;line-height:1.1;font-weight:750;margin:0;color:var(--w-ink)}.iwien h1 span{color:var(--w-accent)}.iwien-intro>p{font-size:22px;line-height:1.45;margin:0 0 22px;color:var(--w-ink);max-width:460px}.iwien-facts{display:grid;grid-template-columns:1fr 1fr;gap:24px}.iwien-facts>a{display:flex;flex-direction:column;gap:5px;border-bottom:1px solid #a9c6dc;padding:0 0 12px;color:var(--w-ink)}.iwien-facts strong{font-size:44px;line-height:1.05;font-weight:750;letter-spacing:-.04em;color:var(--w-accent)}.iwien-facts>a>span{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:16px;font-weight:600;line-height:1.3}.iwien-facts>a:hover{border-color:var(--w-accent);color:var(--w-accent)}
.iwien-explorer{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(380px,1fr);border:1px solid var(--w-line);border-radius:20px;overflow:hidden;box-shadow:0 14px 38px #142e4807}.iwien-map-panel{background:var(--w-paper);min-width:0;position:relative;padding:26px 28px 0;display:flex;flex-direction:column}.iwien-map-heading{display:flex;justify-content:space-between;gap:16px;position:relative;z-index:1}.iwien .iwien-map-heading h2{font-size:26px!important;line-height:1.25!important;letter-spacing:-.035em;margin:0 0 4px;font-weight:750;color:var(--w-ink)}.iwien-map-heading p{font-size:17px;color:var(--w-muted);margin:0}.iwien-north{display:flex;align-items:center;flex-direction:column;font-size:11px;font-weight:700;color:#476479;line-height:1.2}.iwien-north span{font-size:28px;font-weight:400}
.iwien-map-stage{position:relative;min-height:330px;flex:1;display:flex;align-items:center;justify-content:center;background-image:radial-gradient(#bdcfdc 0.65px,transparent .65px);background-size:16px 16px;margin:8px 0 0}.iwien-map{display:block;width:100%;height:405px;overflow:hidden;padding:6px 0 0;filter:drop-shadow(0 5px 3px #183c5810)}.iwien-area path{fill:#bfd5e5;stroke:#fff;stroke-width:.12;stroke-linejoin:round;transition:fill .16s}.iwien-area-1 path{fill:#a9c6dc}.iwien-area-2 path{fill:#cee0ec}.iwien-area text{font-family:inherit;font-size:1.2px;font-weight:750;fill:#173e5c;text-anchor:middle;dominant-baseline:central;pointer-events:none;paint-order:stroke;stroke:#ffffff50;stroke-width:.1px}.iwien-area:hover path,.iwien-area:focus path,.iwien-area.is-active path{fill:#1e456c;stroke:#fff;stroke-width:.16}.iwien-area:hover text,.iwien-area:focus text,.iwien-area.is-active text{fill:white;stroke:none}.iwien-map.is-zoomed text{font-size:.9px}.iwien-map-controls{display:flex;gap:8px;margin:12px 0 14px;flex:none}.iwien-map-controls button{font-family:inherit;font-size:15px;font-weight:600;line-height:1.3;color:var(--w-ink);background:white;border:1px solid #b4c8d8;border-radius:7px;padding:11px 14px;cursor:pointer;box-shadow:0 2px 3px #142e4807}.iwien-map-controls button:hover{background:#e6eff5}.iwien-map-controls button{display:inline-flex;align-items:center;justify-content:center;gap:12px}.iwien-map-controls button svg{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.iwien-map-caption{min-height:94px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid #d3e0e9;padding:15px 0 18px}.iwien-map-caption>div{display:grid;gap:1px}.iwien-caption-label{font-size:15px;font-weight:650;color:#567086}.iwien-map-caption strong{font-size:24px;line-height:1.3;letter-spacing:-.025em}.iwien-map-caption [data-map-count]{font-size:16px;color:var(--w-muted)}.iwien .iwien-map-caption>a{display:grid;place-items:center;width:44px;height:44px;flex:none;border-radius:50%;background:#1e456c;color:white;font-size:24px}.iwien .iwien-map-caption>a:hover{background:#142e48}
.iwien-district-panel{scroll-margin-top:90px;border-left:1px solid var(--w-line);padding:24px 24px 0;background:white;display:flex;flex-direction:column;min-width:0}.iwien-district-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.iwien .iwien-district-head h3{font-size:26px;font-weight:750;letter-spacing:-.025em;margin:0}.iwien-district-head>span{font-size:12px;color:#6c8092;letter-spacing:.1em}.iwien-district-search label{display:block;font-size:16px;margin:0 0 6px;color:var(--w-muted)}.iwien .iwien-district-search input{width:100%;border:1px solid #b7cbd9;background:#f7fafc;border-radius:8px;font:inherit;font-size:18px;padding:14px 16px;height:56px;color:var(--w-ink);margin:0 0 14px}.iwien-district-panel nav{flex:1;min-height:0}.iwien .iwien-district-list{list-style:none;margin:0;padding:0;height:390px;overflow:auto;scrollbar-width:thin;scrollbar-color:#afc5d6 #f2f6f8;overscroll-behavior:contain}.iwien-district-list li{margin:0;border-bottom:1px solid #e8eef3}.iwien-district-list a{display:flex;align-items:center;min-height:78px;gap:14px;padding:13px 8px;border-radius:7px}.iwien-district-list a:hover,.iwien-district-list a.is-active{background:#edf5fa}.iwien-district-number{font-size:20px;font-weight:750;color:#73899b;font-variant-numeric:tabular-nums;min-width:24px}.iwien-district-name{font-size:20px;font-weight:650;line-height:1.25;flex:1;min-width:0}.iwien-district-name small{display:block;font-size:15px;font-weight:400;color:var(--w-muted);margin-top:4px}.iwien-district-count{font-size:17px;color:#526578;font-variant-numeric:tabular-nums}.iwien-district-arrow{font-size:22px;color:var(--w-accent)}.iwien-all-districts{border-top:1px solid var(--w-line);font-size:17px;font-weight:700;padding:18px 0;display:flex;justify-content:space-between;gap:10px}.iwien-no-district{font-size:17px;color:var(--w-muted);padding:16px 0;flex:1}.iwien .iwien-map-source{font-size:11px;color:#617387;line-height:1.5;margin:12px 0 0}.iwien-map-source a{text-decoration:underline}
.iwien-jumpnav{display:flex;gap:32px;flex-wrap:wrap;padding:24px 0;border-bottom:1px solid var(--w-line);font-size:14px;font-weight:650}.iwien-jumpnav a:hover,.iwien-textlink:hover{color:var(--w-accent);text-decoration:underline}.iwien-section{padding:64px 0;scroll-margin-top:100px}.iwien-section-heading{display:flex;justify-content:space-between;align-items:end;gap:32px;margin-bottom:26px}.iwien h2{font-size:clamp(1.8rem,2.5vw,2.5rem)!important;font-weight:750;letter-spacing:-.045em;line-height:1.2!important;color:var(--w-ink);margin:0}.iwien-section-heading>p{max-width:370px;font-size:17px;line-height:1.65;color:var(--w-muted);margin:0}.iwien-textlink{font-size:14px;font-weight:650}.iwien-services{padding-bottom:52px}.iwien-services+.iwien-section{padding-top:12px}.iwien-results-info{font-size:16px;color:var(--w-muted);margin:0 0 24px}.iwien-results-info a{text-decoration:underline}.iwien .icity-pgrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.iwien .icity-pager{justify-content:flex-start;margin-top:32px}.iwien .icity-pager a,.iwien .icity-pager span{min-width:36px;min-height:36px}.iwien-knowledge{background:#102e4b;color:white}.iwien-knowledge-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:90px}.iwien-knowledge h2{color:white}.iwien-knowledge .iwien-eyebrow{color:#83d6ee}.iwien-knowledge-grid>div>p:not(.iwien-eyebrow){color:#d0dce7;margin:22px 0;max-width:385px}.iwien-knowledge .iwien-textlink{color:#a2dfef}.iwien .iwien-checklist{list-style:none;margin:0;padding:0}.iwien-checklist li{display:flex;gap:22px;padding:22px 0;border-top:1px solid #496279;margin:0}.iwien-checklist li:first-child{padding-top:0;border-top:0}.iwien-checklist>li>span{font-size:14px;color:#94bad1;font-variant-numeric:tabular-nums;padding-top:3px}.iwien-checklist h3{font-size:19px;color:white;font-weight:650;margin:0 0 7px}.iwien-checklist p{font-size:15px;color:#d0dce7;margin:0;line-height:1.6}.iwien-prices{background:#f7fafc}.iwien-prices #rechner{scroll-margin-top:100px}.iwien-faq-grid{display:grid;grid-template-columns:1fr 1.5fr;gap:70px}.iwien .icity-faq-item{background:white;border:0;border-bottom:1px solid var(--w-line);border-radius:0}.iwien .icity-faq-item summary{font-size:17px;padding:20px 0}.iwien .icity-faq-a{padding:0 0 20px;font-size:16px}
@media(min-width:1600px){.iwien-wrap{max-width:1400px}.iwien-map{height:420px}.iwien-district-list{height:410px!important}}
@media(max-width:1023px){.iwien-heading{gap:32px;grid-template-columns:1.25fr 1fr}.iwien h1{font-size:38px}.iwien-explorer{grid-template-columns:minmax(0,1fr) minmax(330px,1fr)}.iwien-map-panel{padding:22px 20px 0}.iwien-district-panel{padding:22px 16px 0}.iwien-map{padding-inline:0;height:300px}.iwien .icity-pgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.iwien-knowledge-grid{gap:40px}.iwien-faq-grid{gap:30px}}
@media(max-width:700px){.iwien-wrap{padding-inline:20px}.iwien-crumbs{padding-top:16px;font-size:12px;gap:9px}.iwien-heading{grid-template-columns:1fr;gap:20px;padding:26px 0}.iwien h1{font-size:36px;letter-spacing:-.05em}.iwien-intro>p{font-size:20px;margin-bottom:20px}.iwien-facts{gap:22px}.iwien-facts strong{font-size:38px}.iwien-facts>a>span{font-size:15px}.iwien-explorer{grid-template-columns:1fr;border-radius:14px}.iwien-map-panel{padding:20px 18px 0}.iwien .iwien-map-heading h2{font-size:23px!important}.iwien-map-heading p{font-size:16px;max-width:260px}.iwien-map-stage{min-height:270px}.iwien-map{height:268px;padding:4px 0 0}.iwien-map-caption{min-height:90px}.iwien-map-caption strong{font-size:24px}.iwien-district-panel{scroll-margin-top:90px;border-left:0;border-top:1px solid var(--w-line);padding:20px 18px 0}.iwien .iwien-district-list{height:340px}.iwien-district-list a{min-height:80px;gap:10px;padding-inline:4px}.iwien-district-name{font-size:18px}.iwien-district-search label{font-size:16px}.iwien .iwien-district-search input{font-size:18px}.iwien-district-count{font-size:16px}.iwien-map-source{font-size:11px!important}.iwien-jumpnav{gap:12px 23px;font-size:14px;padding:20px 0}.iwien-section{padding:42px 0}.iwien-section-heading{display:block;margin-bottom:24px}.iwien h2{font-size:29px!important}.iwien-section-heading>p{margin-top:14px}.iwien-section-heading>.iwien-textlink{display:inline-block;margin-top:14px}.iwien .icity-pgrid{grid-template-columns:1fr}.iwien-knowledge-grid,.iwien-faq-grid{grid-template-columns:1fr;gap:32px}.iwien-checklist p{font-size:16px}.iwien .icity-pager{gap:7px}.iwien .icity-pager a,.iwien .icity-pager span{min-width:40px;min-height:40px}.iwien-prices{overflow-x:clip}.iwien .iwien-eyebrow{font-size:11px}}
@media(prefers-reduced-motion:reduce){.iwien *{scroll-behavior:auto!important;transition:none!important}}
/* SVG outline widths scale with the map. The focused district already has a contrasting fill. */
.iwien .iwien-area:focus-visible{outline:none}

/* Directory cards fill their grid cells; the homepage carousel's 250px cap does not apply here. */
.iwien .ish-pcard{width:100%;max-width:none;min-width:0}
.iwien .ish-pcard-media{aspect-ratio:16/9;background:#f4f8fb}
.iwien .ish-pcard-media img{object-fit:contain;padding:16px}
.iwien .ish-pcard-name{font-size:20px;line-height:1.3;margin:0;font-weight:750}
.iwien .ish-pcard .isr-loc,.iwien .ish-pcard .isr-rating{font-size:15px}
.iwien .ish-pcard .isr-svc{font-size:13px}
.iwien .ish-pcard-cta{font-size:16px}
@media(min-width:701px) and (max-width:1023px){
 .iwien-heading{grid-template-columns:1fr 1fr;gap:28px}
 .iwien-intro>p{font-size:20px}
 .iwien-facts strong{font-size:38px}
 .iwien-facts>a>span{font-size:15px}
 .iwien-district-name{font-size:18px}
 .iwien-district-list a{gap:9px}
 .iwien-district-number{font-size:18px}
}
@media(max-width:360px){
 .iwien-facts>a>span{font-size:15px;align-items:start}
 .iwien-district-panel{padding-inline:14px}
 .iwien-district-name{overflow-wrap:anywhere}
 .iwien-district-arrow{display:none}
 .iwien-map-controls button{font-size:14px}
}
@media(max-width:700px){
 /* A short search result should not leave a fixed-height empty panel on a phone. */
 .iwien-district-panel:has(input:not(:placeholder-shown)) .iwien-district-list{height:auto;max-height:340px}
}

/* Separate touch targets avoid ambiguous overlaps between the tiny central polygons. */
.iwien-map-shortcuts{display:none;padding:8px 0 18px}
.iwien-map-shortcuts p{margin:0 0 10px;font-size:16px;color:var(--w-muted)}
.iwien-map-shortcuts>div{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.iwien-map-shortcuts a{display:grid;place-items:center;min-height:48px;background:#fff;border:1px solid #a9c6dc;border-radius:6px;font-size:20px;font-weight:700;touch-action:manipulation}
.iwien .iwien-map-shortcuts a:hover,.iwien .iwien-map-shortcuts a:focus-visible,.iwien .iwien-map-shortcuts a.is-active{background:var(--w-blue);color:white;border-color:var(--w-blue)}
.iwien-map-controls button{min-height:48px;touch-action:manipulation}
@media(max-width:700px),(any-pointer:coarse){.iwien-map-shortcuts{display:block}}
@media(max-width:700px){.iwien-map-stage{margin-inline:-10px}}
@media(max-width:360px){.iwien-map-shortcuts>div{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(min-width:701px) and (max-width:900px){.iwien-map-shortcuts>div{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* Draw link arrows as vectors: iOS otherwise renders the Unicode arrow as emoji. */
.iwien .iwien-link-arrow{display:inline-block;width:1em;height:1em;flex:none;vertical-align:-.125em;fill:none;stroke:currentColor}
