/* Schillhaus Mapbox — all presentation stays within the element. */
.schillhaus-mapbox { width: 100%; min-width: 0; font-family: inherit; }
.schillhaus-mapbox .schillhaus-mapbox__map { width: 100%; height: var(--sh-map-height, 800px); min-height: 200px; position: relative; }
.schillhaus-mapbox .schillhaus-mapbox__legend { width: 100%; box-sizing: border-box; padding-left: var(--sh-legend-padding, 30px); padding-right: var(--sh-legend-padding, 30px); container-type: inline-size; container-name: schillhaus-legend; }
.schillhaus-mapbox [hidden] { display: none !important; }
.schillhaus-mapbox .schillhaus-mapbox__status { margin: 1rem 0; padding: 1rem var(--sh-legend-padding, 30px); font-size: .95rem; line-height: 1.5; color: #242424; background: #f4f4ef; }
.schillhaus-mapbox .schillhaus-project-marker { z-index: 1; }
.schillhaus-mapbox .schillhaus-project-popup .mapboxgl-popup-content { font-family: inherit; font-size: 14px; line-height: 1.4; padding: 14px 16px; color: #242424; }
.schillhaus-mapbox .schillhaus-project-popup p { margin: 0; white-space: pre-line; }
.schillhaus-mapbox .schillhaus-project-popup strong { display: block; margin-bottom: .3rem; }
.schillhaus-mapbox .sh-poi--fallback .sh-poi__entry { cursor: default; }
.schillhaus-mapbox .sh-poi--fallback .sh-poi__entry:hover { background: transparent; }
@media (max-width: 650px) { .schillhaus-mapbox .schillhaus-mapbox__map { height: var(--sh-map-mobile-height, 520px); } }

.schillhaus-mapbox .sh-poi { --sh-poi-text: #242424; --sh-poi-line: #deded8; color: var(--sh-poi-text); font-family: inherit; margin-block: clamp(1.5rem, 3vw, 3rem); }
.schillhaus-mapbox .sh-poi *, .schillhaus-mapbox .sh-poi__marker *, .schillhaus-mapbox .sh-poi-popup * { box-sizing: border-box; }
.schillhaus-mapbox .sh-poi__heading { margin: 0 0 1.5rem; font-size: clamp(1.6rem, 3vw, 2.5rem); }
.schillhaus-mapbox .sh-poi__toolbar { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 1rem 2rem; padding-block-end: 1.5rem; margin-block-end: 2rem; border-bottom: 1px solid var(--sh-poi-line); }
.schillhaus-mapbox .sh-poi__filters, .schillhaus-mapbox .sh-poi__views { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem; }
.schillhaus-mapbox .sh-poi__filters { flex: 1 1 36rem; }
.schillhaus-mapbox .sh-poi__views { flex: 0 1 auto; }
.schillhaus-mapbox .sh-poi .sh-poi__filter, .schillhaus-mapbox .sh-poi .sh-poi__view, .schillhaus-mapbox .sh-poi .sh-poi__entry, .schillhaus-mapbox .sh-poi__marker .sh-poi__pin { appearance: none; font: inherit; text-transform: none; letter-spacing: normal; cursor: pointer; box-shadow: none; }
.schillhaus-mapbox .sh-poi .sh-poi__filter, .schillhaus-mapbox .sh-poi .sh-poi__view { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; min-height: 44px; margin: 0; padding: .5rem .8rem; border: 1px solid var(--sh-poi-line); border-radius: 3px; background: transparent; color: var(--sh-poi-text); font-size: .8rem; line-height: 1.25; font-weight: 500; transition: background .18s ease, border-color .18s ease; }
.schillhaus-mapbox .sh-poi .sh-poi__filter[aria-pressed="true"] { background: #f4f4ef; border-color: #91918b; }
.schillhaus-mapbox .sh-poi .sh-poi__filter[aria-pressed="false"] .sh-poi__dot { background: transparent; }
.schillhaus-mapbox .sh-poi .sh-poi__filter:hover, .schillhaus-mapbox .sh-poi .sh-poi__view:hover { background: #efefea; }
.schillhaus-mapbox .sh-poi__dot { flex: 0 0 9px; width: 9px; height: 9px; background: var(--sh-poi-color); border: 1px solid var(--sh-poi-color); border-radius: 50%; }
.schillhaus-mapbox .sh-poi__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; gap: 2.5rem clamp(1.25rem, 3vw, 3.5rem); }
.schillhaus-mapbox .sh-poi__category { min-width: 0; }
.schillhaus-mapbox .sh-poi .sh-poi__title { margin: 0 0 1rem; padding: 0; font: inherit; font-size: 1.05rem; line-height: 1.3; font-weight: 600; text-transform: uppercase; letter-spacing: .025em; }
.schillhaus-mapbox .sh-poi .sh-poi__list { list-style: none; padding: 0; margin: 0; }
.schillhaus-mapbox .sh-poi .sh-poi__item { padding: 0; margin: 0; }
.schillhaus-mapbox .sh-poi .sh-poi__entry { display: grid; grid-template-columns: 25px minmax(0, 1fr) auto; align-items: start; gap: .5rem; width: 100%; min-height: 44px; padding: .45rem .25rem; margin: 0; color: var(--sh-poi-text); background: transparent; border: 0; border-radius: 3px; text-align: start; font-size: .92rem; line-height: 1.4; transition: background .18s ease; }
.schillhaus-mapbox .sh-poi .sh-poi__entry:hover, .schillhaus-mapbox .sh-poi .sh-poi__entry.is-selected { background: #f1f1eb; }
.schillhaus-mapbox .sh-poi__name { min-width: 0; padding-top: 1px; overflow-wrap: break-word; }
.schillhaus-mapbox .sh-poi__badge { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; width: 24px; height: 24px; border-radius: 50%; color: var(--sh-poi-ink, #fff); background: var(--sh-poi-color); font: 600 13px/1 Arial, sans-serif; font-variant-numeric: tabular-nums; }
.schillhaus-mapbox .sh-poi__journeys { display: flex; flex-direction: column; align-items: flex-end; gap: .2rem; padding-top: 1px; white-space: nowrap; font-variant-numeric: tabular-nums; font-size: .82em; line-height: 1.6; }
.schillhaus-mapbox .sh-poi__journey { display: inline-flex; align-items: center; gap: .3em; }
.schillhaus-mapbox .sh-poi__journey svg { display: inline-block; width: 1.12em; height: 1.12em; overflow: visible; fill: none; stroke: currentColor; stroke-width: 1.65; stroke-linecap: round; stroke-linejoin: round; }
.schillhaus-mapbox .sh-poi__unlocated { display: block; margin-top: .2rem; font-size: .8em; }
.schillhaus-mapbox .sh-poi button:disabled { cursor: default; }
.schillhaus-mapbox .sh-poi .sh-poi__view:disabled { opacity: .5; }
.schillhaus-mapbox .sh-poi .sh-poi__entry:disabled:hover { background: transparent; }
.schillhaus-mapbox .sh-poi__marker { display: flex; align-items: center; justify-content: center; pointer-events: none; z-index: 0; }
.schillhaus-mapbox .sh-poi__marker.is-selected, .schillhaus-mapbox .sh-poi__marker:focus-within { z-index: 1; }
.schillhaus-mapbox .sh-poi__marker .sh-poi__pin { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; min-width: 40px; padding: 3px; margin: 0; border: 0; background: none; border-radius: 50%; pointer-events: auto; }
.schillhaus-mapbox .sh-poi__marker .sh-poi__pin[hidden] { display: none; }
.schillhaus-mapbox .sh-poi__marker .sh-poi__badge { width: 32px; height: 32px; border: 2px solid #fff; box-shadow: 0 1px 6px #0004; font-size: 14px; transition: transform .18s ease, box-shadow .18s ease; }
.schillhaus-mapbox .sh-poi__marker .sh-poi__pin:hover .sh-poi__badge, .schillhaus-mapbox .sh-poi__marker .sh-poi__pin.is-selected .sh-poi__badge { transform: scale(1.12); box-shadow: 0 2px 10px #0006; }
.schillhaus-mapbox .sh-poi button:focus-visible, .schillhaus-mapbox .sh-poi__marker .sh-poi__pin:focus-visible { outline: 3px solid #202020; outline-offset: 3px; }
.schillhaus-mapbox .sh-poi-popup .mapboxgl-popup-content { padding: 1.15rem 1.3rem; border-radius: 4px; box-shadow: 0 3px 18px #0003; font-family: inherit; color: #242424; }
.schillhaus-mapbox .sh-poi-popup .mapboxgl-popup-close-button { display: block; width: 32px; height: 32px; padding: 0; border: 0; background: transparent; color: #242424; font: 22px/1 Arial, sans-serif; }
.schillhaus-mapbox .sh-poi-popup .mapboxgl-popup-close-button:focus-visible { outline: 3px solid #202020; outline-offset: -3px; }
.schillhaus-mapbox .sh-poi__detail-category { margin: 0 18px .5rem 0; font-size: .68rem; line-height: 1.4; letter-spacing: .035em; text-transform: uppercase; }
.schillhaus-mapbox .sh-poi-popup .sh-poi__detail-title { margin: 0 0 .45rem; color: inherit; font-family: inherit; font-size: 1.06rem; line-height: 1.3; font-weight: 600; }
.schillhaus-mapbox .sh-poi__address { margin: 0 0 .8rem; font-size: .85rem; line-height: 1.5; }
.schillhaus-mapbox .sh-poi__detail .sh-poi__journeys { align-items: flex-start; font-size: .8rem; }
.schillhaus-mapbox .sh-poi__sr { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }
@media (max-width: 650px) { .schillhaus-mapbox .sh-poi__grid { grid-template-columns: minmax(0, 1fr); gap: 2rem; } .schillhaus-mapbox .sh-poi__toolbar { margin-bottom: 1.6rem; } .schillhaus-mapbox .sh-poi .sh-poi__entry { font-size: .95rem; } }
@media (max-width: 360px) { .schillhaus-mapbox .sh-poi .sh-poi__entry { grid-template-columns: 25px minmax(0, 1fr); } .schillhaus-mapbox .sh-poi .sh-poi__entry .sh-poi__journeys { grid-column: 2; align-items: flex-start; margin-top: -.2rem; } }
@media (prefers-reduced-motion: reduce) { .schillhaus-mapbox .sh-poi *, .schillhaus-mapbox .sh-poi__marker * { transition: none !important; } }

@container schillhaus-legend (max-width: 1100px) { .schillhaus-mapbox .sh-poi__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@container schillhaus-legend (max-width: 620px) { .schillhaus-mapbox .sh-poi__grid { grid-template-columns: minmax(0, 1fr); } }
@container schillhaus-legend (max-width: 300px) { .schillhaus-mapbox .sh-poi .sh-poi__entry { grid-template-columns: 25px minmax(0, 1fr); } .schillhaus-mapbox .sh-poi .sh-poi__entry .sh-poi__journeys { grid-column: 2; align-items: flex-start; margin-top: -.2rem; } }
