/* Map search: card grid + map on desktop (Airbnb style), bottom sheet on phones. */
.st-nearby{background:#fff;color:#25414c;font-family:Arial,sans-serif}
.st-map-shell{--sheet-h:132px;position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(380px,42%);grid-template-rows:auto minmax(0,1fr);grid-template-areas:"bar map" "list map";height:calc(100dvh - 90px);min-height:600px;max-width:1920px;margin:auto;background:#fff}

/* Filters */
.st-map-toolbar{grid-area:bar;display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:16px 24px 10px;background:#fff;z-index:700}
.st-map-search{display:flex;align-items:center;gap:10px;flex:1 1 260px;margin:0;min-width:0}
.st-map-toolbar .st-category-picker input[type=search]{border-radius:999px;padding:11px 38px 11px 18px;border-color:#dfe3e6;box-shadow:0 1px 2px #25414c0d}
.st-map-toolbar .st-category-picker>button{right:10px}

/* Results panel */
.st-map-panel{grid-area:list;display:flex;flex-direction:column;min-height:0;min-width:0;background:#fff}
.st-panel-head{flex:0 0 auto;padding:6px 24px 12px;background:#fff}
.st-sheet-handle{display:none}
.st-panel-title{display:flex;align-items:center;gap:10px;min-height:34px}
.st-panel-title h2{flex:1;margin:0;font:700 17px/1.3 Arial,sans-serif!important;color:#1c2b33;letter-spacing:-.01em}
.st-panel-title h2.is-empty{font-weight:400!important;font-size:14px!important;color:#5f6f77}
.st-panel-spinner{width:18px;height:18px;border-radius:50%;border:2px solid #f3d5d1;border-top-color:#dd7f76;animation:st-spin .8s linear infinite;flex:0 0 auto}
.st-panel-spinner[hidden]{display:none}
.st-panel-show-all{border:0;background:none;color:#dd7f76;font-weight:700;font-size:14px;padding:4px 2px;white-space:nowrap}
.st-panel-show-all[hidden]{display:none}
.st-panel-show-all.is-small{font-size:12px}
.st-map-status{margin:4px 0 0;font-size:12px;color:#7a6a3a}
.st-map-status:empty{display:none}
.st-provider-grid{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));align-content:start;gap:28px 22px;padding:4px 24px 40px;scrollbar-width:thin}
.st-provider-grid:focus{outline:none}
.st-map-retry{justify-self:start;border:1px solid #25414c;background:#fff;border-radius:8px;padding:8px 16px;color:#25414c}

/* Provider card */
.st-provider-card{-webkit-user-drag:none;display:flex;flex-direction:column;gap:10px;color:#1c2b33;text-decoration:none;border-radius:16px;min-width:0}
.st-provider-card:hover{color:#1c2b33;text-decoration:none}
.st-card-media{position:relative;aspect-ratio:4/3;border-radius:14px;overflow:hidden;background:#eef2f1}
.st-card-cover{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s}
.st-provider-card:hover .st-card-cover{transform:scale(1.03)}
.st-card-avatar{position:absolute;left:10px;bottom:10px;width:42px;height:42px;border-radius:50%;object-fit:cover;border:2px solid #fff;box-shadow:0 2px 8px #0003}
.st-provider-card.is-active .st-card-media{box-shadow:0 0 0 3px #dd7f76}
.st-card-cover.is-initials{display:grid;place-items:center;color:#fff;font:700 44px/1 Arial,sans-serif;letter-spacing:.02em;background-image:linear-gradient(145deg,#ffffff26,#00000026)}
.st-card-avatar.is-initials{display:grid;place-items:center;color:#fff;font:700 14px/1 Arial,sans-serif}
.st-card-body{display:flex;flex-direction:column;gap:5px;min-width:0}
.st-card-top{display:flex;align-items:flex-start;gap:8px}
.st-card-name{flex:1;min-width:0;margin:0;font:700 15px/1.3 Arial,sans-serif!important;color:#1c2b33;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.st-card-rating{flex:0 0 auto;font-size:13px;color:#1c2b33;white-space:nowrap}
.st-card-rating i{color:#f5b301;font-size:12px}
.st-card-distance{margin:0;font-size:13px;color:#6b7b83}
.st-card-distance i{color:#25414c;font-size:12px}
.st-card-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}
.st-chip{max-width:100%;padding:4px 9px;border-radius:999px;background:#eef5f4;color:#2d6168;font-size:12px;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.st-chip.is-muted{background:#f2f3f4;color:#6b7b83}
.st-card-price{margin:2px 0 0;font-size:14px;color:#1c2b33}
.st-card-price strong{color:#dd7f76}

/* Map */
.st-map-area{grid-area:map;position:relative;min-width:0;min-height:0;padding:16px 16px 16px 0}
#nearby-map{height:100%;width:100%;z-index:1;background:#e5ebe7;border-radius:16px;overflow:hidden}
.st-map-locate{position:absolute;z-index:500;right:28px;bottom:118px;width:40px;height:40px;border-radius:50%;background:#fff;border:0;color:#25414c;box-shadow:0 2px 10px #0000002e}
.st-map-shell .leaflet-bottom.leaflet-right{bottom:12px;right:4px}
.st-map-shell .leaflet-control-zoom{border:0;box-shadow:0 2px 10px #0000002e;border-radius:10px;overflow:hidden}
.st-map-shell .leaflet-control-attribution{font-size:9px}
.st-sheet-show-map{display:none}

/* Price pins and clusters */
.st-pin-wrap{background:transparent;border:0}
.st-pin{position:absolute;transform:translate(-50%,-50%);display:inline-flex;align-items:center;gap:6px;padding:3px 10px 3px 3px;background:#fff;border-radius:999px;box-shadow:0 2px 8px #00000038;font:700 13px/1 Arial,sans-serif;color:#1c2b33;white-space:nowrap;max-width:180px;transition:transform .15s,background .15s,color .15s}
.st-pin b{overflow:hidden;text-overflow:ellipsis}
/* !important: leaflet.css sets `.leaflet-marker-pane img{width:auto}`. */
.st-pin img{width:24px!important;height:24px;border-radius:50%;object-fit:cover;flex:0 0 auto}
.st-pin-initials{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;color:#fff;font:700 10px/1 Arial,sans-serif;flex:0 0 auto}
.st-pin-wrap:hover .st-pin,.st-pin-wrap.is-hover .st-pin{transform:translate(-50%,-50%) scale(1.08);z-index:2}
.st-pin-wrap.is-hover .st-pin,.st-pin-wrap.is-selected .st-pin{background:#1c2b33;color:#fff}
.st-cluster{background:transparent}
.st-cluster span{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:#25414c;border:3px solid #fff;color:#fff;font:700 15px Arial;box-shadow:0 2px 8px #25414c40;transition:transform .15s}
.st-cluster.is-hover span{background:#dd7f76;transform:scale(1.1)}

/* Desktop popup previewing a pin */
.st-map-popup .leaflet-popup-content-wrapper{padding:0;border-radius:16px;overflow:hidden;box-shadow:0 8px 28px #00000040}
.st-map-popup .leaflet-popup-content{margin:0;width:260px!important}
.st-map-popup .st-provider-card{gap:0;border-radius:0}
.st-map-popup .st-card-media{border-radius:0;aspect-ratio:16/10}
.st-map-popup .st-card-body{padding:12px 14px 14px}
.st-map-popup a.leaflet-popup-close-button{top:8px;right:8px;width:28px;height:28px;border-radius:50%;background:#fff;color:#1c2b33;font:700 18px/28px Arial;z-index:2;box-shadow:0 1px 4px #0003}

.st-map-shell button:focus-visible,.st-map-shell a:focus-visible{outline:3px solid #dd7f76;outline-offset:2px}

@media(max-width:1200px){.st-map-shell{grid-template-columns:minmax(0,1fr) minmax(340px,40%)}.st-provider-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}}

/* Phones and small tablets: full map with a draggable results sheet. */
@media(max-width:899px){
    .st-map-shell{display:block;height:calc(100dvh - 90px);min-height:520px;overflow:hidden}
    .st-map-area{position:absolute;inset:0;padding:0}
    #nearby-map{border-radius:0}
    .st-map-toolbar{position:absolute;top:12px;left:12px;right:12px;gap:8px;padding:8px;border-radius:16px;box-shadow:0 4px 18px #0000002a}
    .st-map-search{flex-basis:100%}
    .st-map-toolbar .st-category-picker{flex:1 1 100%}
    .st-map-toolbar .st-category-picker input[type=search]{padding-top:9px;padding-bottom:9px}
    .st-map-panel{position:absolute;left:0;right:0;bottom:0;z-index:650;height:var(--sheet-h);border-radius:22px 22px 0 0;box-shadow:0 -4px 22px #0000002a;transition:height .28s ease;overflow:hidden}
    .st-map-panel.is-dragging{transition:none}
    .st-panel-head{padding:0 18px 10px;touch-action:none;cursor:grab;user-select:none}
    .st-sheet-handle{display:flex;align-items:center;justify-content:center;width:100%;height:22px;border:0;background:transparent;padding:0}
    .st-sheet-handle span{height:4px;width:40px;border-radius:4px;background:#cfd5d9}
    .st-panel-title h2{font-size:16px!important}
    .st-provider-grid{grid-template-columns:1fr;gap:12px;padding:2px 16px 96px}
    .st-provider-card{display:grid;grid-template-columns:92px minmax(0,1fr);gap:14px;padding:10px;border:1px solid #e6e9eb;border-radius:16px}
    .st-provider-card.is-active{border-color:#dd7f76;box-shadow:0 0 0 1px #dd7f76}
    .st-provider-card.is-active .st-card-media{box-shadow:none}
    .st-card-media{aspect-ratio:1;border-radius:12px;align-self:start}
    .st-card-avatar{width:30px;height:30px;left:6px;bottom:6px}
    .st-card-cover.is-initials{font-size:28px}
    .st-card-avatar.is-initials{font-size:11px}
    .st-map-locate{right:14px;bottom:calc(var(--sheet-h) + 92px);transition:bottom .28s ease,opacity .2s}
    .st-map-shell .leaflet-bottom.leaflet-right{bottom:calc(var(--sheet-h) + 6px);transition:bottom .28s ease}
    .st-map-shell[data-sheet=full] .st-map-locate,.st-map-shell[data-sheet=full] .leaflet-bottom.leaflet-right{opacity:0;pointer-events:none}
    .st-sheet-show-map{position:absolute;z-index:700;left:50%;bottom:24px;transform:translateX(-50%);align-items:center;gap:8px;padding:12px 20px;border:0;border-radius:999px;background:#1c2b33;color:#fff;font:700 14px Arial,sans-serif;box-shadow:0 6px 18px #00000040}
    .st-map-shell[data-sheet=full] .st-sheet-show-map{display:inline-flex}
}
@keyframes st-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.st-map-panel,.st-pin,.st-card-cover{transition:none}.st-panel-spinner{animation:none}}


/* Active filters */
.st-map-active-filters{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px}
.st-map-active-filters[hidden]{display:none}
.st-map-filter-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 6px 5px 12px;border-radius:999px;background:#1c2b33;color:#fff;font-size:13px;line-height:1.2}
.st-map-filter-chip button{display:grid;place-items:center;width:20px;height:20px;border:0;border-radius:50%;background:#ffffff26;color:#fff;font-size:15px;line-height:1;padding:0}
.st-map-filter-chip button:hover{background:#ffffff40}
.st-map-clear-filters{border:0;background:none;color:#dd7f76;font-weight:700;font-size:13px;padding:4px 2px;text-decoration:underline;text-underline-offset:3px}

/* Category picker shown before any filter */
.st-category-section,.st-overview-notice,.st-map-empty{grid-column:1/-1}
.st-section-title{margin:6px 0 2px;font:700 20px/1.3 Arial,sans-serif!important;color:#1c2b33}
.st-section-hint{margin:0 0 14px;font-size:14px;color:#6b7b83}
.st-browse-all{display:inline-flex;align-items:center;gap:8px;margin:0 0 18px;padding:10px 18px;border:0;border-radius:999px;background:#dd7f76;color:#fff;font-weight:700;font-size:14px;box-shadow:0 2px 8px #dd7f7640}
.st-browse-all:hover{background:#c76b62}
.st-map-category-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}
.st-category-tile{display:flex;align-items:center;gap:12px;min-width:0;padding:12px 14px;border:1px solid #e6e9eb;border-radius:14px;background:#fff;text-align:left;color:#1c2b33;transition:border-color .15s,box-shadow .15s,transform .15s}
.st-category-tile:hover{border-color:#dd7f76;box-shadow:0 4px 14px #25414c14;transform:translateY(-1px)}
.st-category-icon{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;border-radius:12px;background:#f6f8f8;overflow:hidden}
.st-category-icon img{width:36px;height:36px;object-fit:contain}
.st-category-icon.is-letter{background:#eef5f4;color:#2d6168;font:700 18px/1 Arial,sans-serif}
.st-category-text{display:flex;flex-direction:column;gap:2px;min-width:0}
.st-category-text strong{font-size:14px;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.st-category-text small{font-size:12px;color:#6b7b83}
.st-overview-notice{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:16px 18px;border-radius:14px;background:#f6f8f8;margin-bottom:6px}
.st-overview-notice p{margin:0;font-size:14px;color:#3d5560}
.st-overview-notice .st-browse-all{margin:0}
.st-map-empty{margin:8px 0;font-size:14px;line-height:1.6;color:#647780}
@media(max-width:899px){.st-map-category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.st-section-title{font-size:17px!important}}
@media(max-width:420px){.st-map-category-grid{grid-template-columns:1fr}}
