.stores-page { padding-top: 7rem; padding-bottom: 3rem; }
.stores-city-control { flex: 0 1 22rem; }
.stores-cards { list-style: none; padding: 0; margin: 0; display: grid; gap: 1rem; }
.stores-card { overflow: hidden; }
.stores-card-body { padding: 1rem; min-width: 0; overflow-wrap: anywhere; }
.stores-map-panel { position: relative; border: 1px solid var(--bs-border-color); border-radius: var(--bs-border-radius-lg); overflow: hidden; background: var(--bs-paper-bg); }
.stores-map { height: 38rem; min-height: 22rem; }
.stores-map-status { position: absolute; z-index: 2; top: 1rem; left: 1rem; right: 4rem; padding: .75rem 1rem; background: var(--bs-paper-bg); border-radius: var(--bs-border-radius); box-shadow: var(--bs-box-shadow-sm); }
.stores-map-panel[hidden], .stores-focus-button[hidden] { display: none; }
.stores-map-failed .stores-map-status { position: static; margin: 0; box-shadow: none; }
.stores-map .maplibregl-popup-content { background: var(--bs-paper-bg); color: var(--bs-body-color); border-radius: var(--bs-border-radius); padding: 1rem; max-height: min(16rem, 25dvh); overflow-y: auto; }
.stores-map .maplibregl-popup-tip { border-top-color: var(--bs-paper-bg); }
.stores-map .maplibregl-popup-close-button { color: var(--bs-body-color); font-size: 1.5rem; min-width: 2rem; min-height: 2rem; }
.stores-popup { display: grid; gap: .5rem; overflow-wrap: anywhere; }
.stores-popup h3 { margin: 0; padding-right: 1rem; font-size: 1rem; }
.stores-popup p { margin: 0; }
.stores-popup-list { padding-left: 1rem; display: grid; gap: .75rem; }
.stores-workspace { display: grid; gap: 1.5rem; }
.stores-workspace[data-view="list"] .stores-cards { grid-template-columns: repeat(auto-fill, minmax(min(100%, 22rem), 1fr)); }
.stores-map-ready .stores-focus-button { display: inline-flex; }
.stores-card.is-selected { outline: 2px solid var(--bs-primary); outline-offset: 2px; }
.stores-page :is(a, button, select, input):focus-visible { outline: 2px solid var(--bs-primary); outline-offset: 3px; }
@media (min-width: 992px) {
  .stores-workspace[data-view="map"].stores-map-ready { grid-template-columns: minmax(18rem, 24rem) minmax(0, 1fr); }
  .stores-map-ready .stores-results { max-height: 38rem; overflow-y: auto; padding: .25rem; scrollbar-gutter: stable; }
}
@media (max-width: 991.98px) {
  .stores-map-ready[data-view="map"] .stores-results { display: none; }
  .stores-map { height: min(65dvh, 38rem); }
  .stores-city-control { flex-basis: 100%; }
}
