/* ── Store Locator Pro — Frontend ── */
.slp-frontend {
    --slp-primary:  #1e3a5f;
    --slp-accent:   #e85d26;
    --slp-bg:       #f7f8fa;
    --slp-surface:  #ffffff;
    --slp-border:   #e2e6ea;
    --slp-text:     #1a1f2e;
    --slp-muted:    #6b7280;
    --slp-radius:   10px;
    --slp-shadow:   0 2px 16px rgba(0,0,0,.09);
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    color: var(--slp-text);
}
.slp-frontend.slp-dark {
    --slp-bg:      #111827;
    --slp-surface: #1f2937;
    --slp-border:  #374151;
    --slp-text:    #f9fafb;
    --slp-muted:   #9ca3af;
}

/* ── Search bar ── */
.slp-search-bar { margin-bottom:16px; }
.slp-search-inner { position:relative; display:flex; align-items:center; }
.slp-search-icon  { position:absolute; left:14px; width:18px; height:18px; color:var(--slp-muted); pointer-events:none; }
.slp-search-input {
    width:100%; padding:12px 44px 12px 44px; border:1.5px solid var(--slp-border);
    border-radius:50px; font-size:14px; background:var(--slp-surface); color:var(--slp-text);
    box-sizing:border-box; transition:border-color .2s, box-shadow .2s;
}
.slp-search-input:focus { outline:none; border-color:var(--slp-primary); box-shadow:0 0 0 3px rgba(30,58,95,.12); }
.slp-search-clear { position:absolute; right:14px; background:none; border:none; color:var(--slp-muted); cursor:pointer; font-size:16px; padding:0; display:none; }
.slp-result-count { margin-top:8px; font-size:12.5px; color:var(--slp-muted); text-align:right; min-height:18px; }

/* ── Layout ── */
.slp-layout { display:flex; gap:0; border:1px solid var(--slp-border); border-radius:var(--slp-radius); overflow:hidden; box-shadow:var(--slp-shadow); }
.slp-layout--full .slp-map-wrap { flex:1; }
.slp-layout--split .slp-sidebar { width:320px; min-width:280px; flex-shrink:0; overflow-y:auto; background:var(--slp-surface); border-right:1px solid var(--slp-border); }
.slp-layout--split .slp-map-wrap { flex:1; min-width:0; }
@media(max-width:680px){
    .slp-layout--split { flex-direction:column; }
    .slp-layout--split .slp-sidebar { width:100%; max-height:280px; border-right:none; border-bottom:1px solid var(--slp-border); }
}

/* ── Map ── */
.slp-map-wrap { position:relative; }
.slp-map { width:100%; height:100%; }

/* ── Sidebar / Cards ── */
.slp-loading { display:flex; flex-direction:column; align-items:center; justify-content:center; padding:48px 20px; color:var(--slp-muted); font-size:13px; }
.slp-spinner { width:32px; height:32px; border:3px solid var(--slp-border); border-top-color:var(--slp-primary); border-radius:50%; animation:slp-spin .7s linear infinite; margin-bottom:12px; }
@keyframes slp-spin { to { transform:rotate(360deg); } }

.slp-no-results { text-align:center; padding:40px 20px; color:var(--slp-muted); font-size:13px; }

.slp-card-item {
    padding:16px; border-bottom:1px solid var(--slp-border); cursor:pointer;
    transition:background .15s; display:flex; gap:12px; align-items:flex-start;
}
.slp-card-item:hover, .slp-card-item.is-active { background:linear-gradient(90deg, rgba(30,58,95,.06) 0%, transparent 100%); }
.slp-card-item.is-active { border-left:3px solid var(--slp-primary); padding-left:13px; }
.slp-card-item__img { width:44px; height:44px; border-radius:8px; object-fit:cover; flex-shrink:0; background:var(--slp-bg); }
.slp-card-item__img--placeholder { display:flex; align-items:center; justify-content:center; font-size:20px; background:linear-gradient(135deg,var(--slp-primary),#2d5a8e); color:#fff; }
.slp-card-item__body { flex:1; min-width:0; }
.slp-card-item__name { font-size:14px; font-weight:700; color:var(--slp-primary); margin:0 0 4px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.slp-card-item__addr { font-size:12px; color:var(--slp-muted); margin:0 0 6px; }
.slp-card-item__tags { display:flex; gap:6px; flex-wrap:wrap; }
.slp-tag { font-size:10.5px; padding:2px 8px; border-radius:20px; font-weight:600; }
.slp-tag--cat { background:#eff6ff; color:#1e40af; }
.slp-tag--web { background:#f0fdf4; color:#166534; }
.slp-tag--mail { background:#fff7ed; color:#c2410c; }

/* ── Leaflet popup ── */
.slp-popup { min-width:220px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; }
.slp-popup__name { margin:0 0 6px; font-size:15px; font-weight:700; color:#1e3a5f; }
.slp-popup__addr { margin:0 0 10px; font-size:12.5px; color:#6b7280; }
.slp-popup__contact { display:flex; flex-direction:column; gap:5px; margin-bottom:8px; }
.slp-popup__contact a { font-size:12.5px; color:#1e3a5f; text-decoration:none; display:flex; align-items:center; gap:5px; }
.slp-popup__contact a:hover { text-decoration:underline; }
.slp-popup__hours-wrap { margin-top:8px; border-top:1px solid #e2e6ea; padding-top:8px; }
.slp-popup__hours-wrap strong { font-size:12px; color:#1e3a5f; display:block; margin-bottom:4px; }
.slp-popup__hours { display:grid; grid-template-columns:auto 1fr; gap:2px 10px; font-size:11.5px; }

/* ── Custom marker pin ── */
.slp-pin { width:32px; height:38px; position:relative; cursor:pointer; }
.slp-pin svg { width:100%; height:100%; filter:drop-shadow(0 2px 4px rgba(0,0,0,.25)); }
.slp-pin.is-active svg .pin-body { fill:#e85d26; }
