/* Loaded only by the illustrated location component. Every rule is scoped. */
main .ibu-locations--illustrated { width:100%; max-width:100%; min-width:0; padding:0; }
.ibu-standorte { --standorte-ink:#203a4b; --standorte-muted:#596c79; color:var(--standorte-ink); }
.ibu-standorte :is(button,a) { -webkit-tap-highlight-color:transparent; }
.ibu-standorte :is(h2,h3) { color:var(--standorte-ink); font-family:var(--ibu-type-family,Montserrat,Arial,sans-serif); font-weight:600; line-height:1.3; letter-spacing:normal; text-transform:none; }
.ibu-standorte h2 { margin:0 0 16px; font-size:clamp(28px,3vw,38px); }
.ibu-standorte .ibu-standorte__kicker { margin:0 0 12px; color:#b5206e; font-size:12px; font-weight:600; line-height:1.7; letter-spacing:.16em; text-transform:lowercase; }
.ibu-standorte__overview { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); align-items:center; gap:48px; scroll-margin-top:32px; }
.ibu-standorte__intro, .ibu-standorte__visual { min-width:0; }
.ibu-standorte__intro h2 { max-width:17ch; }
.ibu-standorte .ibu-standorte__lead { max-width:72ch; margin:0; color:var(--standorte-muted); font-size:15px; line-height:1.9; }
.ibu-standorte__selection { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:28px 0 0; }
.ibu-standorte .location-chip { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:38px; margin:0; padding:8px 14px; border:1px solid #e0e7e9; border-radius:24px; background:#fff; color:var(--standorte-muted); font:500 12px/1.6 var(--ibu-type-family,Montserrat,Arial,sans-serif); letter-spacing:normal; text-transform:none; cursor:pointer; transition:color .22s ease,border-color .22s ease,background-color .22s ease; }
.ibu-standorte .location-chip > span { width:6px; height:6px; border-radius:50%; background:var(--location-color); }
.ibu-standorte .location-chip:is(:hover,.is-active,.is-selected) { border-color:color-mix(in srgb,var(--location-color) 40%,#fff); background:color-mix(in srgb,var(--location-color) 5%,#fff); color:var(--standorte-ink); }
.ibu-standorte .location-chip--all { --location-color:#203a4b; }
.ibu-standorte .location-chip--all[aria-pressed="true"] { color:#fff; background:#203a4b; border-color:#203a4b; }
.ibu-standorte .location-map { position:relative; width:100%; max-width:660px; margin:0 auto; isolation:isolate; }
.ibu-standorte .location-map__base { display:block; width:100%; height:auto; object-fit:contain; }
.ibu-standorte .location-marker { position:absolute; z-index:2; left:var(--map-x); top:var(--map-y); display:grid; place-items:center; width:32px; height:42px; margin:0; padding:2px; transform:translate(-50%,-100%); border:0; border-radius:8px; background:transparent; color:var(--location-color); font:600 11px/1.5 var(--ibu-type-family,Montserrat,Arial,sans-serif); letter-spacing:normal; text-transform:none; cursor:pointer; transition:transform .22s ease,filter .22s ease; }
.ibu-standorte .location-marker__pin { display:block; width:28px; height:38px; overflow:visible; filter:drop-shadow(0 5px 4px color-mix(in srgb,var(--location-color) 18%,transparent)); }
.ibu-standorte .location-marker__label { position:absolute; left:calc(100% + 2px); top:50%; transform:translateY(-50%); padding:3px 5px; border-radius:4px; background:rgb(255 255 255 / .85); color:var(--standorte-ink); line-height:1.5; white-space:nowrap; transition:background-color .22s ease; }
.ibu-standorte .location-marker[data-label-side="left"] .location-marker__label { left:auto; right:calc(100% + 2px); }
.ibu-standorte .location-marker[data-label-side="bottom"] .location-marker__label { left:50%; top:calc(100% + 2px); transform:translateX(-50%); }
.ibu-standorte .location-marker:is(:hover,.is-active,.is-selected) { z-index:4; transform:translate(-50%,-100%) scale(1.07); filter:brightness(1.07) drop-shadow(0 3px 8px color-mix(in srgb,var(--location-color) 18%,transparent)); }
.ibu-standorte .location-marker:is(:hover,.is-active,.is-selected) .location-marker__label { background:#fff; }
.ibu-standorte .ibu-standorte__map-note { display:flex; align-items:baseline; justify-content:center; gap:10px; margin:2px 0 0; color:var(--standorte-muted); font-size:12px; line-height:1.8; text-align:center; }
.ibu-standorte__map-note > span { color:#b5206e; font-size:17px; }
.ibu-standorte__directory { margin-top:56px; }
.ibu-standorte__section-head { display:flex; align-items:end; justify-content:space-between; gap:24px; margin-bottom:26px; }
.ibu-standorte__section-head h2 { margin:0; }
.ibu-standorte__section-head > p { margin:0; color:var(--standorte-muted); font-size:13px; line-height:1.8; }
.ibu-standorte__cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); grid-auto-rows:1fr; align-items:stretch; gap:28px 24px; }
.ibu-standorte .location-card { display:flex; flex-direction:column; min-width:0; overflow:clip; border:1px solid #e0e7ea; border-radius:8px; background:#fff; scroll-margin-top:32px; transition:border-color .22s ease,box-shadow .22s ease; }
.ibu-standorte .location-card:is(:hover,.is-active,.is-selected) { border-color:color-mix(in srgb,var(--location-color) 45%,#fff); box-shadow:0 6px 24px color-mix(in srgb,var(--location-color) 9%,transparent); }
.ibu-standorte .location-card__summary { display:block; padding:0; list-style:none; cursor:pointer; }
.ibu-standorte .location-card__summary::-webkit-details-marker { display:none; }
.ibu-standorte .location-card__summary::marker { content:""; }
.ibu-standorte .location-card__media { position:relative; flex-shrink:0; width:100%; aspect-ratio:16/10; overflow:hidden; background:#f1f5f0; }
.ibu-standorte .location-card__media > img { display:block; width:100%; height:100%; object-fit:cover; }
.ibu-standorte .location-card__media--regional > img { transform:scale(1.9); transform-origin:var(--map-x) var(--map-y); opacity:.75; }
.ibu-standorte .location-card__media--regional::after { content:""; position:absolute; inset:0; background:linear-gradient(transparent 65%,rgb(255 255 255 / .25)); }
.ibu-standorte .location-card__media > svg { position:absolute; z-index:1; left:50%; top:50%; width:33px; height:45px; transform:translate(-50%,-50%); color:var(--location-color); filter:drop-shadow(0 5px 6px rgb(32 58 75 / .14)); }
.ibu-standorte .location-card__index { position:absolute; z-index:1; left:16px; top:16px; display:grid; place-items:center; width:30px; height:30px; border:1px solid #ffffff80; border-radius:50%; background:#ffffffdf; color:var(--standorte-ink); font-size:11px; font-weight:600; }
.ibu-standorte .location-card__body { padding:24px 24px 18px; }
.ibu-standorte .location-card h3 { display:flex; align-items:baseline; gap:9px; margin:0 0 12px; font-size:21px; }
.ibu-standorte .location-card h3 > span { flex:none; width:6px; height:6px; border-radius:50%; background:var(--location-color); transform:translateY(-2px); }
.ibu-standorte .location-card address { min-height:3.6em; margin:0; color:var(--standorte-muted); font-size:14px; font-style:normal; line-height:1.8; overflow-wrap:anywhere; }
.ibu-standorte .location-card__description { margin:14px 0 0; color:var(--standorte-muted); font-size:13px; line-height:1.8; }
.ibu-standorte .location-card__more { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:20px; color:var(--standorte-ink); font-size:12px; font-weight:500; line-height:1.7; }
.ibu-standorte .location-card__more > span { color:var(--location-color); font-size:22px; line-height:1; transition:transform .22s ease; }
.ibu-standorte .location-card__details[open] .location-card__more > span { transform:rotate(45deg); }
.ibu-standorte .location-card__expanded { margin:0 24px; padding:18px 0; border-top:1px solid #e5eaed; color:var(--standorte-muted); }
.ibu-standorte .location-card__expanded p { margin:0 0 14px; font-size:13px; line-height:1.8; overflow-wrap:anywhere; }
.ibu-standorte .location-card__expanded p:last-child { margin:0; }
.ibu-standorte .location-card__detail-label { display:block; margin-bottom:2px; color:var(--standorte-ink); font-size:11px; font-weight:600; }
.ibu-standorte .location-card__expanded a { color:var(--standorte-ink); text-underline-offset:3px; }
.ibu-standorte .location-card__actions { margin:auto 24px 0; padding:17px 0 20px; border-top:1px solid #e5eaed; }
.ibu-standorte .location-card__actions a { display:inline-flex; align-items:center; justify-content:space-between; gap:16px; width:100%; min-height:30px; color:var(--standorte-ink); font-size:13px; font-weight:600; text-decoration:none; }
.ibu-standorte .location-card__actions a > span { color:var(--location-color); font-size:21px; font-weight:400; }
.ibu-standorte .location-card__actions a:hover { color:var(--location-color); }
.ibu-standorte :is(button,a,summary,[tabindex]):focus-visible { outline:2px solid #b5206e; outline-offset:4px; }
.ibu-standorte .location-card:focus-visible { outline-offset:4px; }
.ibu-standorte .visually-hidden { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
/* The final native text articles are exclusive to the Standorte page. */
main .ibu-standorte-travel { background:#f7f8fa; }
main .ibu-standorte-travel > .root > .width-large > .row { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); align-items:start; gap:24px 40px; margin:0; }
main .ibu-standorte-travel .ce_text { width:100%; max-width:none; min-width:0; margin:0; padding:0; }
main .ibu-standorte-travel .ce_text { grid-column:auto; }
main .ibu-standorte-travel .ibu-standorte-travel__intro { grid-column:1/-1; }
main .ibu-standorte-travel .ibu-standorte-travel__kicker { grid-column:1/-1; margin:0; color:#c02178; font-size:12px; font-weight:600; line-height:1.7; letter-spacing:.16em; text-transform:lowercase; }
main .ibu-standorte-travel h4 { margin:0 0 12px; }
main .ibu-standorte-travel :is(h2,h3):not(.ibu-standorte-travel__kicker) { max-width:none !important; margin:8px 0 14px; color:#203a4b; font-size:22px !important; font-weight:600; line-height:1.35; }
main .ibu-standorte-travel p:not(.ibu-standorte-travel__kicker) { margin:0; color:#596c79; font-size:13px !important; line-height:1.8; }
main .ibu-standorte-travel .fa { color:#b5206e; font-size:22px; }
/* The closing contact block shares its layout with other pages in ibu-page.css. */
main .ibu-standorte-cta .ce_text :is(h1,h2,h3) { max-width:none !important; font-size:clamp(24px,2.5vw,34px) !important; }
@media(min-width:768px) {
 main .ibu-standorte-cta .ce_text :is(h1,h2,h3),
 main .ibu-standorte-travel :is(h2,h3):not(.ibu-standorte-travel__kicker) { white-space:nowrap; }
}
@media(max-width:1099px) {
 .ibu-standorte__cards { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:959px) {
 .ibu-standorte__overview { grid-template-columns:minmax(0,1fr); gap:28px; }
 .ibu-standorte__intro h2 { max-width:none; }
}
@media(max-width:639px) {
 .ibu-standorte__selection { gap:7px; margin-top:22px; }
 .ibu-standorte .location-chip { min-height:38px; padding:8px 11px; font-size:11px; }
 .ibu-standorte .location-map { margin-top:16px; }
 .ibu-standorte .location-marker { width:24px; height:30px; padding:1px 2px; }
 .ibu-standorte .location-marker__pin { width:20px; height:28px; }
 .ibu-standorte .location-marker__label { display:none; left:50%; right:auto!important; top:auto; bottom:calc(100% + 5px); transform:translateX(-50%); border:1px solid #e0e7e9; padding:4px 7px; font-size:10px; }
 .ibu-standorte .location-marker[data-label-side="bottom"] .location-marker__label { top:auto; bottom:calc(100% + 5px); }
 .ibu-standorte .location-marker:is(.is-active,.is-selected,:focus-visible) .location-marker__label { display:block; }
 .ibu-standorte .ibu-standorte__map-note { margin-top:16px; font-size:11px; }
 .ibu-standorte__directory { margin-top:36px; }
 .ibu-standorte__section-head { display:block; margin-bottom:22px; }
 .ibu-standorte__section-head > p { margin-top:12px; }
 .ibu-standorte__cards { grid-template-columns:minmax(0,1fr); grid-auto-rows:auto; gap:22px; }
 .ibu-standorte .location-card__media { aspect-ratio:16/9; }
 main .ibu-standorte-travel > .root > .width-large > .row { grid-template-columns:minmax(0,1fr); gap:24px; }
 main .ibu-standorte-travel .ce_text + .ce_text + .ce_text { padding-top:20px; border-top:1px solid #e0e7e9; }
}
@media(prefers-reduced-motion:reduce) {
 .ibu-standorte :is(.location-marker,.location-marker__label,.location-chip,.location-card,.location-card__more > span) { transition:none; }
 .ibu-standorte .location-marker:is(:hover,.is-active,.is-selected) { transform:translate(-50%,-100%); }
}
