:root{--ink:#17384a;--teal:#126c7c;--pale:#edf7f7;--line:#e2eaed;--bs-primary:#126c7c;--bs-primary-rgb:18,108,124}*{box-sizing:border-box}body{margin:0;color:var(--ink);font-family:system-ui,-apple-system,"Segoe UI",sans-serif;background:#f6f9fa}.site-header{height:72px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center}.site-header .container-fluid{width:100%}.brand{display:flex;gap:12px;align-items:center;color:var(--ink);font-size:1.2rem;font-weight:800;line-height:1.15}.brand small{display:block;font-size:.69rem;letter-spacing:.07em;font-weight:500;color:#63808a;margin-top:3px}.brand-mark{background:#164e63;color:white;border-radius:13px;padding:12px 10px;font-size:1rem;letter-spacing:-.03em}.header-caption{font-size:.85rem;color:#64818b}.app-layout{display:grid;grid-template-columns:minmax(340px,410px) minmax(0,1fr);height:calc(100dvh - 72px);min-height:540px}.sidebar{display:flex;flex-direction:column;overflow:hidden;background:#fff;border-right:1px solid var(--line)}.search-area{padding:22px 23px 18px;border-bottom:1px solid var(--line)}.eyebrow{font-size:.7rem;font-weight:800;letter-spacing:.15em;color:var(--teal)}h1{font-size:1.52rem;font-weight:800;line-height:1.25;margin:9px 0 0}.form-label{font-size:.76rem;font-weight:700;margin-bottom:5px}.form-control,.form-select{font-size:.89rem}.btn-primary{background:var(--teal);border-color:var(--teal)}.btn-outline-primary{color:var(--teal);border-color:var(--teal)}.btn-outline-primary:hover{background:var(--teal);border-color:var(--teal)}.results-header{padding:15px 22px 11px;display:flex;justify-content:space-between;align-items:center}.results-header span{font-size:.78rem;color:#5e7782}.result-list{overflow-y:auto;flex:1;min-height:80px}.result-item{width:100%;background:white;border:0;border-bottom:1px solid var(--line);padding:16px 22px;text-align:left;display:block;color:inherit}.result-item:hover,.result-item:focus-visible{background:var(--pale)}.result-item .partner{font-size:.71rem;letter-spacing:.03em;color:var(--teal);font-weight:800;text-transform:uppercase}.result-item .name{font-size:1rem;font-weight:750;margin:4px 0}.result-item .address{font-size:.83rem;color:#617b85}.result-item .details-hint{font-size:.78rem;color:var(--teal);margin-top:9px;font-weight:650}.status-message{font-size:.87rem;padding:12px 22px;color:#59747f}.status-message:empty{display:none}.results-footer{padding:10px 20px 15px;border-top:1px solid var(--line);display:grid;gap:6px}.results-footer small{font-size:.73rem}.map-panel{position:relative;min-height:0}#map{width:100%;height:100%;background:#dceae9}.map-search-btn{position:absolute;z-index:500;top:18px;left:50%;transform:translateX(-50%);white-space:nowrap;font-size:.82rem;border-radius:30px;color:var(--ink);font-weight:700}.map-caption{position:absolute;z-index:400;bottom:21px;left:12px;background:rgba(255,255,255,.87);padding:3px 6px;font-size:.62rem;border-radius:4px;pointer-events:none}.offcanvas{--bs-offcanvas-width:min(440px,100vw)}.offcanvas-header{border-bottom:1px solid var(--line)}.detail-partner{font-size:.75rem;color:var(--teal);font-weight:800;text-transform:uppercase}.detail-section{border-top:1px solid var(--line);padding-top:17px;margin-top:20px}.detail-section h3{font-size:1rem;font-weight:800}.benefit{background:#f0f8f7;border:1px solid #d6e9e7;border-radius:12px;padding:14px;margin:10px 0}.benefit strong{display:block}.benefit p{margin:6px 0;font-size:.88rem}.chip{display:inline-block;background:#e7f2f4;color:#185668;border-radius:30px;padding:6px 10px;margin:3px 4px 3px 0;font-size:.77rem}.skip-link{position:absolute;z-index:9999;background:white;padding:10px}.leaflet-popup-content button{border:0;background:#126c7c;color:white;border-radius:6px;padding:7px 10px;margin-top:7px}@media(max-width:800px){.site-header{height:62px}.app-layout{display:flex;flex-direction:column;height:auto;min-height:0}.sidebar{order:2;overflow:visible;border-right:0}.map-panel{order:1;height:42dvh;min-height:270px}.result-list{overflow:visible}.search-area{padding:19px}.results-header{padding:14px 19px 9px}.result-item{padding:14px 19px}.map-search-btn{top:12px}.map-caption{bottom:20px}}@media(min-width:801px) and (max-height:680px){.search-area{padding-top:12px;padding-bottom:10px}h1{font-size:1.25rem}}

/* V 01.022.005: Leaflet-Layout absichern, ohne die Originalregeln zu ersetzen. */
#map.leaflet-container { position: relative; overflow: hidden; }
#map .leaflet-pane, #map .leaflet-tile, #map .leaflet-marker-icon,
#map .leaflet-marker-shadow, #map .leaflet-tile-container,
#map .leaflet-pane > svg, #map .leaflet-pane > canvas,
#map .leaflet-zoom-box, #map .leaflet-image-layer,
#map .leaflet-layer { position: absolute; left: 0; top: 0; }
#map .leaflet-top, #map .leaflet-bottom { position: absolute; z-index: 1000; pointer-events: none; }
#map .leaflet-top { top: 0; }
#map .leaflet-bottom { bottom: 0; }
#map .leaflet-left { left: 0; }
#map .leaflet-right { right: 0; }
#map .leaflet-control { position: relative; z-index: 800; pointer-events: auto; }
#map .leaflet-tile, #map .leaflet-marker-icon, #map .leaflet-marker-shadow { max-width: none !important; max-height: none !important; }

/* V 01.023.000 – mobile Karten-/Listen-Navigation */
.mobile-tabs{display:none}
@media(max-width:800px){
  .mobile-tabs{display:grid;grid-template-columns:1fr 1fr;position:sticky;top:0;z-index:1100;background:#fff;border-bottom:1px solid var(--line);padding:7px 12px;gap:8px}
  .mobile-tabs button{border:1px solid var(--line);border-radius:9px;padding:10px 12px;background:#fff;color:var(--ink);font-weight:700;min-height:44px}
  .mobile-tabs button.active{background:var(--teal);border-color:var(--teal);color:#fff}
  .app-layout{display:block;height:auto;min-height:calc(100dvh - 116px)}
  .sidebar,.map-panel{width:100%}
  body[data-mobile-view="list"] .map-panel{display:none}
  body[data-mobile-view="map"] .sidebar{display:none}
  body[data-mobile-view="map"] .map-panel{display:block;height:calc(100dvh - 116px);min-height:320px}
  body[data-mobile-view="list"] .sidebar{display:flex;min-height:calc(100dvh - 116px)}
  .result-list{overflow:visible}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important}}

/* V 01.024.000 – Standortfunktion direkt in der mobilen Kartenansicht */
.map-locate-btn{position:absolute;z-index:500;top:65px;right:14px;font-size:.82rem;font-weight:700;border-radius:24px}
.map-location-note{position:absolute;z-index:500;bottom:44px;left:12px;right:12px;background:rgba(255,255,255,.96);padding:9px 12px;border-radius:8px;box-shadow:0 2px 12px rgba(0,0,0,.12);font-size:.8rem;pointer-events:none}
.map-location-note[hidden]{display:none}
@media(min-width:801px){.map-locate-btn{display:none}}
@media(max-width:800px){.map-locate-btn{top:60px;right:12px}}

/* StoreFinder V 01.024.001 – Mobile Navigation */
@media (max-width: 800px) {
    .offcanvas {
        z-index: 1100 !important;
    }

    .offcanvas-backdrop {
        z-index: 1090 !important;
    }
}

/* StoreFinder V 01.024.002 – Mobile Navigation ausblenden */

@media (max-width: 800px) {
    body.sf-details-open .mobile-switch,
    body.sf-details-open .mobile-nav,
    body.sf-details-open .mobile-tabs {
        display: none !important;
    }
}