/* ========================================================
   WooCommerce Product Store Locator v4
   © HC Human Connect Lta. — https://hc.co.mz
   ======================================================== */
:root{--wpsl-primary:#e74c3c;--wpsl-primary-dk:#c0392b;--wpsl-sidebar-w:390px;--wpsl-radius:10px;--wpsl-shadow:0 3px 16px rgba(0,0,0,.11);--wpsl-open:#27ae60;--wpsl-closed:#e74c3c;--wpsl-temp:#f39c12;--wpsl-verified:#1a5eb8;}
#wpsl-wrapper{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;font-size:14px;color:#2d3436;position:relative;background:#f7f8fa;border-radius:var(--wpsl-radius);padding:14px;}

/* Search */
#wpsl-search-bar{background:#fff;border-radius:var(--wpsl-radius);box-shadow:var(--wpsl-shadow);padding:12px 14px;margin-bottom:12px;}
#wpsl-search-inner{display:flex;flex-wrap:wrap;gap:8px;align-items:center;}
#wpsl-product-search-wrap{position:relative;flex:1 1 240px;}
.wpsl-search-icon{position:absolute;left:11px;top:50%;transform:translateY(-50%);font-size:15px;pointer-events:none;opacity:.55;}
#wpsl-product-input{width:100%;padding:10px 36px;border:2px solid #e0e0e0;border-radius:7px;font-size:14px;outline:none;transition:border-color .2s,box-shadow .2s;box-sizing:border-box;background:#fafafa;}
#wpsl-product-input:focus{border-color:var(--wpsl-primary);background:#fff;box-shadow:0 0 0 3px rgba(231,76,60,.1);}
#wpsl-clear-btn{position:absolute;right:9px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:#aaa;font-size:16px;display:none;padding:4px;line-height:1;}
#wpsl-clear-btn:hover{color:#333;}
#wpsl-autocomplete-list{position:absolute;top:calc(100% + 5px);left:0;right:0;background:#fff;border:1px solid #e0e0e0;border-radius:8px;box-shadow:0 8px 28px rgba(0,0,0,.13);list-style:none;margin:0;padding:0;z-index:9999;max-height:300px;overflow-y:auto;display:none;}
#wpsl-autocomplete-list li{display:flex;align-items:center;gap:10px;padding:9px 13px;cursor:pointer;border-bottom:1px solid #f4f4f4;transition:background .12s;}
#wpsl-autocomplete-list li:last-child{border-bottom:none;}
#wpsl-autocomplete-list li:hover,#wpsl-autocomplete-list li.active{background:#fff5f5;}
#wpsl-autocomplete-list li img{width:38px;height:38px;object-fit:cover;border-radius:5px;flex-shrink:0;}
.wpsl-ac-name{font-weight:700;font-size:13px;}.wpsl-ac-price{color:var(--wpsl-primary);font-size:12px;margin-top:1px;}
#wpsl-category-wrap,#wpsl-radius-wrap{display:flex;gap:6px;align-items:center;}
#wpsl-category-select,#wpsl-radius-select{padding:9px 10px;border:2px solid #e0e0e0;border-radius:7px;font-size:13px;background:#fafafa;outline:none;cursor:pointer;}
#wpsl-category-select:focus,#wpsl-radius-select:focus{border-color:var(--wpsl-primary);}
#wpsl-locate-btn{background:#fafafa;border:2px solid #e0e0e0;border-radius:7px;padding:7px 11px;cursor:pointer;font-size:16px;}
#wpsl-locate-btn:hover{border-color:var(--wpsl-primary);background:#fff5f5;}
#wpsl-search-btn{background:var(--wpsl-primary);color:#fff;border:none;border-radius:7px;padding:10px 22px;font-size:14px;font-weight:700;cursor:pointer;white-space:nowrap;box-shadow:0 2px 8px rgba(231,76,60,.3);}
#wpsl-search-btn:hover{background:var(--wpsl-primary-dk);}

/* Mobile tabs */
#wpsl-mobile-tabs{display:none;gap:0;margin-bottom:10px;border-radius:8px;overflow:hidden;box-shadow:var(--wpsl-shadow);}
.wpsl-tab{flex:1;padding:12px;font-size:14px;font-weight:700;border:none;background:#f0f0f0;cursor:pointer;transition:background .15s;}
.wpsl-tab.active{background:var(--wpsl-primary);color:#fff;}
.wpsl-tab:not(.active):hover{background:#e0e0e0;}

/* Layout */
#wpsl-layout{display:flex;border-radius:var(--wpsl-radius);overflow:hidden;box-shadow:var(--wpsl-shadow);background:#fff;}
#wpsl-sidebar{width:var(--wpsl-sidebar-w);flex-shrink:0;background:#fff;display:flex;flex-direction:column;border-right:1px solid #eee;overflow:hidden;}
#wpsl-sidebar-header{padding:10px 14px;background:#f8f9fa;border-bottom:1px solid #eee;font-weight:700;font-size:12px;color:#666;text-transform:uppercase;letter-spacing:.5px;}
#wpsl-store-list,#wpsl-store-detail{flex:1;overflow-y:auto;}
#wpsl-map{flex:1;min-height:400px;z-index:1;}

/* Store cards */
.wpsl-store-card{display:flex;gap:11px;padding:13px 14px;border-bottom:1px solid #f0f0f0;cursor:pointer;transition:background .15s;}
.wpsl-store-card:hover{background:#fff8f7;}.wpsl-store-card.active{background:#fff3f2;border-left:3px solid var(--wpsl-primary);padding-left:11px;}
.wpsl-store-thumb{width:56px;height:56px;object-fit:cover;border-radius:7px;flex-shrink:0;}
.wpsl-store-thumb-ph{width:56px;height:56px;border-radius:7px;background:linear-gradient(135deg,#f5f5f5,#e8e8e8);display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0;}
.wpsl-card-body{flex:1;min-width:0;}.wpsl-card-name-row{display:flex;align-items:center;gap:5px;margin-bottom:2px;flex-wrap:wrap;}
.wpsl-card-name{font-weight:700;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.wpsl-card-address{font-size:11px;color:#888;margin-bottom:5px;}
.wpsl-card-meta{display:flex;gap:6px;flex-wrap:wrap;align-items:center;}.wpsl-card-meta+.wpsl-card-meta{margin-top:3px;}
.wpsl-badge{font-size:11px;padding:2px 7px;border-radius:20px;font-weight:600;white-space:nowrap;}
.wpsl-badge-dist{background:var(--wpsl-primary);color:#fff;}.wpsl-badge-open{background:#e8f8f0;color:var(--wpsl-open);}
.wpsl-badge-closed{background:#fdecea;color:var(--wpsl-closed);}.wpsl-badge-temp{background:#fef5e4;color:var(--wpsl-temp);}
.wpsl-badge-prods{background:#f0f0f0;color:#555;cursor:pointer;text-decoration:underline;text-decoration-style:dotted;}.wpsl-badge-prods:hover{background:#e0e0e0;}
.wpsl-verified-badge{display:inline-flex;align-items:center;gap:3px;background:var(--wpsl-verified);color:#fff;font-size:10px;font-weight:800;padding:2px 7px;border-radius:20px;white-space:nowrap;}
.wpsl-verified-badge-lg{display:inline-flex;align-items:center;gap:5px;background:var(--wpsl-verified);color:#fff;font-size:12px;font-weight:700;padding:3px 10px;border-radius:20px;}
.wpsl-stars{display:flex;gap:1px;align-items:center;}.wpsl-star{color:#f39c12;}.wpsl-star-empty{color:#ddd;}.wpsl-rating-txt{font-size:11px;color:#888;margin-left:4px;}
.wpsl-msg{text-align:center;padding:40px 20px;color:#888;}.wpsl-msg-icon{font-size:42px;margin-bottom:10px;}.wpsl-msg p{margin:4px 0;font-size:13px;}
.wpsl-spinner{display:inline-block;width:30px;height:30px;border:3px solid #eee;border-top-color:var(--wpsl-primary);border-radius:50%;animation:wpsl-spin .7s linear infinite;margin-bottom:10px;}
@keyframes wpsl-spin{to{transform:rotate(360deg);}}

/* Map markers */
.wpsl-marker{background:var(--wpsl-primary);border:2.5px solid #fff;border-radius:50% 50% 50% 0;transform:rotate(-45deg);box-shadow:0 3px 8px rgba(0,0,0,.3);width:34px;height:34px;transition:background .2s,transform .2s;cursor:pointer;position:relative;}
.wpsl-marker.active{background:#2c3e50;transform:rotate(-45deg) scale(1.35);}
.wpsl-marker.temp{background:var(--wpsl-temp);}
.wpsl-marker.verified-m::after{content:'✓';position:absolute;bottom:-6px;right:-6px;background:var(--wpsl-verified);color:#fff;border-radius:50%;width:14px;height:14px;font-size:9px;font-weight:900;display:flex;align-items:center;justify-content:center;border:1.5px solid #fff;}
.wpsl-marker-inner{transform:rotate(45deg);display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-size:15px;color:#fff;}

/* Clustering overrides */
.marker-cluster-small,.marker-cluster-medium,.marker-cluster-large{background-clip:padding-box;border-radius:50%;}
.marker-cluster-small div,.marker-cluster-medium div,.marker-cluster-large div{width:30px;height:30px;margin-left:5px;margin-top:5px;text-align:center;border-radius:50%;font-size:12px;font-weight:700;color:#fff;display:flex;align-items:center;justify-content:center;}
.marker-cluster-small{background-color:rgba(231,76,60,.4);}.marker-cluster-small div{background-color:rgba(231,76,60,.8);}
.marker-cluster-medium{background-color:rgba(231,76,60,.5);}.marker-cluster-medium div{background-color:rgba(231,76,60,.9);}
.marker-cluster-large{background-color:rgba(192,57,43,.5);}.marker-cluster-large div{background-color:rgba(192,57,43,.9);}

/* Popup */
.leaflet-popup-content-wrapper{border-radius:10px!important;box-shadow:0 6px 24px rgba(0,0,0,.15)!important;padding:0!important;}.leaflet-popup-content{margin:0!important;width:auto!important;}
.wpsl-popup{min-width:230px;max-width:290px;padding:14px 16px;font-family:inherit;}
.wpsl-popup-header{display:flex;align-items:center;gap:10px;margin-bottom:8px;}
.wpsl-popup-logo{width:40px;height:40px;object-fit:contain;border:1px solid #eee;border-radius:5px;flex-shrink:0;}
.wpsl-popup-name{font-weight:700;font-size:14px;line-height:1.2;}.wpsl-popup-status{font-size:11px;font-weight:600;margin-top:2px;}
.wpsl-popup-row{font-size:12px;color:#555;margin-bottom:4px;display:flex;gap:6px;}.wpsl-popup-row span:first-child{width:16px;text-align:center;flex-shrink:0;}
.wpsl-popup-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:10px;}
.wpsl-popup-btn{text-align:center;padding:7px 8px;border-radius:5px;font-size:12px;font-weight:600;text-decoration:none;cursor:pointer;border:none;display:block;}
.wpsl-popup-btn-primary{background:var(--wpsl-primary);color:#fff;}.wpsl-popup-btn-primary:hover{background:var(--wpsl-primary-dk);color:#fff;text-decoration:none;}
.wpsl-popup-btn-secondary{background:#e8f0ff;color:#1a5eb8;}.wpsl-popup-btn-secondary:hover{background:#d5e5ff;color:#1a5eb8;text-decoration:none;}

/* Detail panel */
.wpsl-detail-back{display:flex;align-items:center;gap:6px;padding:10px 14px;background:#f8f9fa;border-bottom:1px solid #eee;cursor:pointer;font-size:13px;font-weight:700;color:var(--wpsl-primary);transition:background .15s;position:sticky;top:0;z-index:10;}
.wpsl-detail-back:hover{background:#fff3f2;}
.wpsl-detail-hero{padding:16px 14px 12px;border-bottom:1px solid #f0f0f0;}
.wpsl-detail-top{display:flex;align-items:flex-start;gap:12px;margin-bottom:10px;}
.wpsl-detail-logo{width:60px;height:60px;object-fit:contain;border:1px solid #eee;border-radius:8px;flex-shrink:0;background:#fafafa;padding:4px;}
.wpsl-detail-logo-ph{width:60px;height:60px;border-radius:8px;background:linear-gradient(135deg,#f5f5f5,#e8e8e8);display:flex;align-items:center;justify-content:center;font-size:26px;flex-shrink:0;}
.wpsl-detail-name{font-size:17px;font-weight:800;margin-bottom:3px;line-height:1.2;}.wpsl-detail-type{font-size:11px;color:#888;text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px;}
.wpsl-status-pill{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:700;padding:4px 10px;border-radius:20px;margin-top:6px;}
.wpsl-dot{width:7px;height:7px;border-radius:50%;}
.status-open{background:#e8f8f0;color:var(--wpsl-open);}.status-open .wpsl-dot{background:var(--wpsl-open);}
.status-closed{background:#fdecea;color:var(--wpsl-closed);}.status-closed .wpsl-dot{background:var(--wpsl-closed);}
.status-temp{background:#fef5e4;color:var(--wpsl-temp);}.status-temp .wpsl-dot{background:var(--wpsl-temp);}
.wpsl-detail-desc{font-size:13px;color:#666;line-height:1.5;padding:10px 14px;border-bottom:1px solid #f0f0f0;}
.wpsl-action-btns{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:12px 14px;border-bottom:1px solid #f0f0f0;}
.wpsl-action-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:10px 8px;border-radius:8px;font-size:11px;font-weight:700;text-align:center;text-decoration:none;cursor:pointer;border:none;transition:background .15s,transform .1s;}
.wpsl-action-btn:active{transform:scale(.96);}.wpsl-action-btn span:first-child{font-size:20px;}
.wpsl-btn-call{background:#e8f8f0;color:#219a52;}.wpsl-btn-call:hover{background:#d5f0e3;color:#219a52;text-decoration:none;}
.wpsl-btn-wa{background:#e7f8ed;color:#128c7e;}.wpsl-btn-wa:hover{background:#d1f0e0;color:#128c7e;text-decoration:none;}
.wpsl-btn-dir{background:#e8f0ff;color:#1a5eb8;}.wpsl-btn-dir:hover{background:#d5e5ff;color:#1a5eb8;text-decoration:none;}
.wpsl-btn-web{background:#f4f0ff;color:#7c3aed;}.wpsl-btn-web:hover{background:#e9e0ff;color:#7c3aed;text-decoration:none;}
.wpsl-detail-section{padding:12px 14px;border-bottom:1px solid #f0f0f0;}
.wpsl-section-label{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.6px;color:#999;margin-bottom:10px;display:flex;align-items:center;gap:6px;}
.wpsl-contact-row{display:flex;align-items:center;gap:10px;padding:5px 0;font-size:13px;}.wpsl-contact-row .wpsl-ci{font-size:16px;width:22px;text-align:center;}.wpsl-contact-row a{color:#333;text-decoration:none;}.wpsl-contact-row a:hover{color:var(--wpsl-primary);}
.wpsl-social-row{display:flex;gap:8px;padding:4px 0;flex-wrap:wrap;}.wpsl-social-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;border-radius:6px;font-size:12px;font-weight:600;text-decoration:none;}.wpsl-social-btn:hover{opacity:.82;text-decoration:none;}
.wpsl-social-fb{background:#1877f2;color:#fff;}.wpsl-social-ig{background:linear-gradient(45deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888);color:#fff;}
.wpsl-hours-list{display:flex;flex-direction:column;gap:3px;}.wpsl-hours-row{display:flex;justify-content:space-between;font-size:13px;padding:3px 0;}.wpsl-hours-row.today{font-weight:700;}.wpsl-hours-row .dn{color:#555;width:100px;}.wpsl-hours-row .dt{color:#333;}.wpsl-hours-row .dc{color:#aaa;font-style:italic;}
.wpsl-amenities-list{display:flex;flex-wrap:wrap;gap:6px;}.wpsl-amenity-chip{display:inline-flex;align-items:center;gap:5px;background:#f4f5f7;padding:5px 10px;border-radius:20px;font-size:12px;color:#444;font-weight:500;}
.wpsl-tags-list{display:flex;flex-wrap:wrap;gap:6px;}.wpsl-tag-chip{background:#edf7ff;color:#1a6fa0;padding:4px 10px;border-radius:20px;font-size:12px;font-weight:600;}.wpsl-svc-chip{background:#f0fff4;color:#276749;padding:4px 10px;border-radius:20px;font-size:12px;font-weight:600;}
.wpsl-cf-list{display:flex;flex-direction:column;gap:4px;}.wpsl-cf-row-d{display:flex;gap:8px;font-size:13px;padding:4px 0;border-bottom:1px solid #f8f8f8;}.wpsl-cf-key{font-weight:700;color:#444;min-width:110px;}.wpsl-cf-val{color:#666;}
.wpsl-review-card{padding:10px 0;border-bottom:1px solid #f4f4f4;}.wpsl-review-card:last-of-type{border-bottom:none;}
.wpsl-review-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px;}.wpsl-reviewer-name{font-weight:700;font-size:13px;}.wpsl-review-date{font-size:11px;color:#aaa;}.wpsl-review-text{font-size:13px;color:#555;line-height:1.5;margin-top:4px;}
.wpsl-review-form{margin-top:12px;padding-top:12px;border-top:1px solid #f0f0f0;}
.wpsl-review-form label{display:block;font-size:12px;font-weight:700;color:#555;margin-bottom:4px;}
.wpsl-review-form input,.wpsl-review-form textarea{width:100%;padding:8px 10px;border:1px solid #ddd;border-radius:6px;font-size:13px;box-sizing:border-box;margin-bottom:8px;font-family:inherit;}
.wpsl-review-form textarea{resize:vertical;min-height:70px;}
.wpsl-star-picker{display:flex;gap:4px;margin-bottom:8px;cursor:pointer;}.wpsl-star-pick{font-size:26px;color:#ddd;transition:color .1s;}.wpsl-star-pick.on{color:#f39c12;}
.wpsl-review-submit{background:var(--wpsl-primary);color:#fff;border:none;border-radius:6px;padding:9px 18px;font-size:13px;font-weight:700;cursor:pointer;width:100%;}.wpsl-review-submit:hover{background:var(--wpsl-primary-dk);}
.wpsl-rv-msg{font-size:12px;margin-top:6px;padding:6px 10px;border-radius:5px;}.wpsl-rv-msg.ok{background:#e8f8f0;color:var(--wpsl-open);}.wpsl-rv-msg.err{background:#fdecea;color:var(--wpsl-closed);}
#wpsl-dir-bar{display:none;position:absolute;bottom:16px;left:calc(var(--wpsl-sidebar-w) + 16px);right:16px;background:#fff;border-radius:8px;box-shadow:var(--wpsl-shadow);padding:10px 14px;z-index:9998;align-items:center;gap:10px;font-size:13px;}
#wpsl-dir-bar.on{display:flex;}#wpsl-dir-bar .di{flex:1;}#wpsl-dir-bar .dd{font-weight:700;color:var(--wpsl-primary);}#wpsl-dir-bar .dc{background:none;border:none;cursor:pointer;font-size:18px;color:#aaa;padding:0;}
#wpsl-products-modal{position:fixed;inset:0;z-index:99999;display:none;align-items:center;justify-content:center;}
#wpsl-products-modal.on{display:flex;}
.wpsl-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.5);backdrop-filter:blur(2px);}
.wpsl-modal-box{position:relative;background:#fff;border-radius:12px;width:90%;max-width:680px;max-height:80vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.25);animation:wpsl-mi .2s ease-out;}
@keyframes wpsl-mi{from{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}
.wpsl-modal-hdr{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #eee;}.wpsl-modal-hdr h3{margin:0;font-size:16px;}
#wpsl-modal-close{background:none;border:none;font-size:20px;cursor:pointer;color:#888;padding:4px;}#wpsl-modal-close:hover{color:#333;}
.wpsl-modal-body{overflow-y:auto;padding:16px 20px;}
.wpsl-products-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:14px;}
.wpsl-prod-card{display:flex;flex-direction:column;border:1px solid #eee;border-radius:8px;overflow:hidden;text-decoration:none;color:inherit;transition:box-shadow .15s,transform .15s;}
.wpsl-prod-card:hover{box-shadow:0 4px 16px rgba(0,0,0,.12);transform:translateY(-2px);text-decoration:none;color:inherit;}
.wpsl-prod-card img{width:100%;height:130px;object-fit:cover;}
.wpsl-prod-info{padding:8px 10px;}.wpsl-prod-name{font-size:12px;font-weight:700;line-height:1.3;margin-bottom:3px;}.wpsl-prod-price{font-size:13px;color:var(--wpsl-primary);font-weight:700;}.wpsl-prod-cat{font-size:11px;color:#888;margin-top:2px;}
.wpsl-modal-empty{text-align:center;padding:40px;color:#888;font-size:14px;}

/* RESPONSIVE / MOBILE */
@media(max-width:768px){
    #wpsl-wrapper{padding:8px;}
    #wpsl-mobile-tabs{display:flex;}
    #wpsl-layout{flex-direction:column;box-shadow:none;border-radius:0;}
    /* Map hidden by default on mobile – shown via tab */
    #wpsl-map{display:none;height:65vh!important;}
    #wpsl-map.mobile-visible{display:block;}
    /* Sidebar hides when map tab is active */
    #wpsl-sidebar{width:100%;border-right:none;border-radius:var(--wpsl-radius);overflow:hidden;}
    #wpsl-sidebar.map-mode{display:none;}
    #wpsl-store-list,#wpsl-store-detail{max-height:55vh;}
    .wpsl-action-btns{grid-template-columns:1fr 1fr;}
    #wpsl-dir-bar{left:10px;right:10px;bottom:10px;}
    .wpsl-modal-box{width:95%;max-height:85vh;}
}
