/* ============================================================
   LocalBiz AP – Marketplace CSS
   Modern startup style · Mobile-first · Bootstrap 5.3 compatible
   ============================================================ */

:root {
    --mp-primary:       #2d277c;
    --mp-primary-dark:  #1e1a57;
    --mp-primary-light: #e8e7f5;
    --mp-accent:        #f97316;
    --mp-accent-light:  #fff4ed;
    --mp-success:       #16a34a;
    --mp-gold:          #f59e0b;
    --mp-silver:        #94a3b8;
    --mp-text:          #1e293b;
    --mp-muted:         #64748b;
    --mp-border:        #e2e8f0;
    --mp-bg:            #f8fafc;
    --mp-white:         #ffffff;
    --mp-radius:        12px;
    --mp-radius-lg:     18px;
    --mp-shadow:        0 2px 12px rgba(45,39,124,.08);
    --mp-shadow-hover:  0 8px 32px rgba(45,39,124,.18);
    --mp-transition:    all .2s ease;
}

/* ── Base ── */
*,*::before,*::after{box-sizing:border-box;}
body{font-family:'Segoe UI',system-ui,-apple-system,sans-serif;color:var(--mp-text);background:var(--mp-bg);font-size:.9375rem;line-height:1.6;}
a{color:var(--mp-primary);text-decoration:none;}
a:hover{color:var(--mp-primary-dark);}
img{max-width:100%;}

/* ── Navbar ── */
.mp-navbar{background:var(--mp-white);border-bottom:1px solid var(--mp-border);box-shadow:0 1px 8px rgba(0,0,0,.06);}
.mp-brand{color:var(--mp-primary)!important;font-size:1.3rem;letter-spacing:-.3px;}
.mp-brand i{color:var(--mp-accent);}

/* Search bar */
.mp-search-bar .input-group-text,.mp-search-bar .form-control,.mp-search-bar .mp-city-select{border-color:var(--mp-border);background:var(--mp-white);}
.mp-search-bar .form-control:focus{border-color:var(--mp-primary);box-shadow:0 0 0 3px rgba(45,39,124,.1);}
.mp-search-bar{border:2px solid var(--mp-border);border-radius:8px;overflow:hidden;transition:var(--mp-transition);}
.mp-search-bar:focus-within{border-color:var(--mp-primary);}
.mp-search-bar .input-group-text,.mp-search-bar .form-control,.mp-search-bar .mp-city-select,.mp-search-bar .btn{border:none!important;border-radius:0!important;}
.mp-city-select{border-left:1px solid var(--mp-border)!important;}

/* Buttons */
.mp-btn-primary{background:var(--mp-primary);color:#fff;border:none;border-radius:8px;padding:.5rem 1.25rem;transition:var(--mp-transition);font-weight:500;}
.mp-btn-primary:hover{background:var(--mp-primary-dark);color:#fff;transform:translateY(-1px);}
.mp-btn-accent{background:var(--mp-accent);color:#fff;border:none;border-radius:8px;padding:.5rem 1.25rem;transition:var(--mp-transition);font-weight:500;}
.mp-btn-accent:hover{background:#ea6c00;color:#fff;transform:translateY(-1px);}
.mp-btn-outline-primary{border:2px solid var(--mp-primary);color:var(--mp-primary);background:transparent;border-radius:8px;padding:.4rem 1rem;transition:var(--mp-transition);font-weight:500;}
.mp-btn-outline-primary:hover{background:var(--mp-primary);color:#fff;}
.mp-btn-whatsapp{background:#25d366;color:#fff;border:none;border-radius:8px;padding:.55rem 1.25rem;font-weight:500;transition:var(--mp-transition);}
.mp-btn-whatsapp:hover{background:#1da851;color:#fff;transform:translateY(-1px);}
.mp-btn-call{background:var(--mp-accent);color:#fff;border:none;border-radius:8px;padding:.55rem 1.25rem;font-weight:500;transition:var(--mp-transition);}
.mp-btn-call:hover{background:#ea6c00;color:#fff;}

/* ── Hero ── */
.mp-hero{background:linear-gradient(135deg,var(--mp-primary) 0%,#4338ca 60%,var(--mp-primary-dark) 100%);color:#fff;padding:4rem 0 5rem;position:relative;overflow:hidden;}
.mp-hero::before{content:'';position:absolute;top:-60px;right:-60px;width:300px;height:300px;background:rgba(255,255,255,.06);border-radius:50%;}
.mp-hero::after{content:'';position:absolute;bottom:-80px;left:-40px;width:250px;height:250px;background:rgba(255,255,255,.04);border-radius:50%;}
.mp-hero-title{font-size:clamp(1.8rem,5vw,2.8rem);font-weight:800;line-height:1.15;margin-bottom:1rem;}
.mp-hero-subtitle{font-size:1.1rem;opacity:.88;margin-bottom:2rem;}
.mp-hero-search{background:var(--mp-white);border-radius:var(--mp-radius);padding:1rem;box-shadow:0 8px 40px rgba(0,0,0,.2);}
.mp-hero-search .input-group{gap:0;}
.mp-hero-search .form-control,.mp-hero-search .form-select{border-radius:8px!important;border:1.5px solid var(--mp-border);}
.mp-hero-search .form-control:focus,.mp-hero-search .form-select:focus{border-color:var(--mp-primary);box-shadow:none;}
.mp-stat-chip{background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.25);border-radius:20px;padding:.3rem .9rem;font-size:.875rem;backdrop-filter:blur(4px);}

/* ── Section headings ── */
.mp-section-title{font-size:1.5rem;font-weight:700;color:var(--mp-text);}
.mp-section-subtitle{color:var(--mp-muted);margin-bottom:2rem;}
.mp-section-divider{width:48px;height:3px;background:var(--mp-primary);border-radius:2px;margin:.5rem 0 1.5rem;}

/* ── Category cards ── */
.mp-cat-card{background:var(--mp-white);border-radius:var(--mp-radius);padding:1.5rem 1rem;text-align:center;border:1.5px solid var(--mp-border);transition:var(--mp-transition);cursor:pointer;position:relative;overflow:hidden;}
.mp-cat-card::before{content:'';position:absolute;inset:0;background:var(--mp-primary-light);opacity:0;transition:var(--mp-transition);}
.mp-cat-card:hover{border-color:var(--mp-primary);transform:translateY(-4px);box-shadow:var(--mp-shadow-hover);}
.mp-cat-card:hover::before{opacity:1;}
.mp-cat-card:hover .mp-cat-icon{background:var(--mp-primary);color:#fff;}
.mp-cat-icon{width:56px;height:56px;border-radius:14px;background:var(--mp-primary-light);color:var(--mp-primary);display:flex;align-items:center;justify-content:center;font-size:1.5rem;margin:0 auto .75rem;transition:var(--mp-transition);position:relative;}
.mp-cat-name{font-weight:600;font-size:.9rem;color:var(--mp-text);position:relative;}
.mp-cat-count{font-size:.78rem;color:var(--mp-muted);position:relative;}

/* ── Business cards ── */
.mp-biz-card{background:var(--mp-white);border-radius:var(--mp-radius-lg);border:1.5px solid var(--mp-border);overflow:hidden;transition:var(--mp-transition);height:100%;}
.mp-biz-card:hover{border-color:var(--mp-primary);box-shadow:var(--mp-shadow-hover);transform:translateY(-3px);}
.mp-biz-cover{height:140px;object-fit:cover;width:100%;background:linear-gradient(135deg,var(--mp-primary-light),#ddd);}
.mp-biz-logo-wrap{position:relative;margin-top:-32px;margin-left:1rem;margin-bottom:.5rem;}
.mp-biz-logo{width:64px;height:64px;border-radius:12px;border:3px solid var(--mp-white);object-fit:cover;background:var(--mp-white);box-shadow:var(--mp-shadow);}
.mp-biz-logo-placeholder{width:64px;height:64px;border-radius:12px;border:3px solid var(--mp-white);background:var(--mp-primary-light);display:flex;align-items:center;justify-content:center;color:var(--mp-primary);font-size:1.5rem;box-shadow:var(--mp-shadow);}
.mp-biz-body{padding:0 1rem 1rem;}
.mp-biz-name{font-weight:700;font-size:1rem;margin-bottom:.2rem;line-height:1.3;}
.mp-biz-name a{color:var(--mp-text);}
.mp-biz-name a:hover{color:var(--mp-primary);}
.mp-biz-meta{font-size:.82rem;color:var(--mp-muted);display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.5rem;}
.mp-biz-meta i{color:var(--mp-primary);font-size:.85rem;}
.mp-biz-desc{font-size:.85rem;color:var(--mp-muted);margin-bottom:.75rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.mp-biz-footer{border-top:1px solid var(--mp-border);padding:.6rem 1rem;display:flex;justify-content:space-between;align-items:center;font-size:.82rem;}

/* Featured card highlight */
.mp-biz-card.is-featured{border-color:var(--mp-gold);}
.mp-featured-ribbon{position:absolute;top:10px;right:10px;background:var(--mp-gold);color:#fff;font-size:.72rem;font-weight:600;padding:.2rem .6rem;border-radius:20px;}

/* ── Badges ── */
.mp-badge{display:inline-flex;align-items:center;font-size:.72rem;font-weight:600;padding:.2rem .6rem;border-radius:20px;white-space:nowrap;}
.mp-badge-verified{background:#dcfce7;color:#15803d;}
.mp-badge-premium{background:linear-gradient(90deg,#f59e0b,#ef4444);color:#fff;}
.mp-badge-gold{background:linear-gradient(90deg,#f59e0b,#d97706);color:#fff;}
.mp-badge-silver{background:#f1f5f9;color:#475569;border:1px solid #cbd5e1;}
.mp-badge-free{background:#f0fdf4;color:#16a34a;}
.mp-badge-service{background:#ede9fe;color:#6d28d9;}
.mp-badge-shop{background:#fff7ed;color:#c2410c;}
.mp-badge-hybrid{background:#ecfeff;color:#0e7490;}

/* ── Stars ── */
.mp-stars{color:var(--mp-gold);letter-spacing:1px;font-size:.95em;}
.mp-rating-num{font-weight:600;color:var(--mp-text);margin-left:2px;}

/* ── Filter sidebar ── */
.mp-filter-card{background:var(--mp-white);border-radius:var(--mp-radius);border:1.5px solid var(--mp-border);padding:1.25rem;}
.mp-filter-card h6{font-weight:700;font-size:.9rem;margin-bottom:.75rem;color:var(--mp-text);}
.mp-filter-item{display:flex;align-items:center;gap:.5rem;padding:.35rem 0;cursor:pointer;font-size:.88rem;color:var(--mp-muted);}
.mp-filter-item:hover{color:var(--mp-primary);}
.mp-filter-item input{accent-color:var(--mp-primary);}

/* ── Business profile page ── */
.mp-profile-header{background:linear-gradient(135deg,var(--mp-primary) 0%,#4338ca 100%);color:#fff;padding:2.5rem 0 4rem;position:relative;}
.mp-profile-cover{position:absolute;inset:0;object-fit:cover;width:100%;height:100%;opacity:.15;}
.mp-profile-logo{width:100px;height:100px;border-radius:16px;border:4px solid #fff;object-fit:cover;background:var(--mp-white);box-shadow:0 4px 20px rgba(0,0,0,.2);}
.mp-profile-logo-placeholder{width:100px;height:100px;border-radius:16px;border:4px solid #fff;background:var(--mp-primary-light);display:flex;align-items:center;justify-content:center;color:var(--mp-primary);font-size:2.5rem;box-shadow:0 4px 20px rgba(0,0,0,.2);}
.mp-profile-name{font-size:1.8rem;font-weight:800;margin-bottom:.25rem;}
.mp-profile-meta{opacity:.9;font-size:.92rem;}
.mp-profile-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1rem;}
.mp-profile-card{background:var(--mp-white);border-radius:var(--mp-radius);border:1.5px solid var(--mp-border);margin-bottom:1.5rem;}
.mp-profile-card-header{padding:1rem 1.25rem;border-bottom:1px solid var(--mp-border);font-weight:700;font-size:.95rem;display:flex;align-items:center;gap:.5rem;}
.mp-profile-card-body{padding:1.25rem;}

/* Sticky sidebar */
.mp-sticky-sidebar{position:sticky;top:80px;}

/* Service card */
.mp-service-item{padding:.75rem 0;border-bottom:1px solid var(--mp-border);}
.mp-service-item:last-child{border-bottom:none;}
.mp-service-price{font-weight:700;color:var(--mp-primary);}

/* Product card */
.mp-product-card{background:var(--mp-white);border-radius:var(--mp-radius);border:1.5px solid var(--mp-border);overflow:hidden;transition:var(--mp-transition);}
.mp-product-card:hover{border-color:var(--mp-primary);transform:translateY(-2px);box-shadow:var(--mp-shadow);}
.mp-product-img{width:100%;height:160px;object-fit:cover;background:var(--mp-bg);}
.mp-product-body{padding:.875rem;}
.mp-product-name{font-weight:600;font-size:.9rem;margin-bottom:.25rem;}
.mp-product-price{color:var(--mp-primary);font-weight:700;}

/* Gallery */
.mp-gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.5rem;}
.mp-gallery-item{border-radius:8px;overflow:hidden;aspect-ratio:1;cursor:pointer;transition:var(--mp-transition);}
.mp-gallery-item:hover{transform:scale(1.03);}
.mp-gallery-item img{width:100%;height:100%;object-fit:cover;}

/* Review card */
.mp-review-item{padding:1rem 0;border-bottom:1px solid var(--mp-border);}
.mp-review-item:last-child{border-bottom:none;}

/* Hours */
.mp-hours-row{display:flex;justify-content:space-between;padding:.3rem 0;font-size:.88rem;}
.mp-hours-row.today{font-weight:700;color:var(--mp-primary);}
.mp-open-badge{background:#dcfce7;color:#16a34a;padding:.1rem .5rem;border-radius:20px;font-size:.75rem;font-weight:600;}
.mp-closed-badge{background:#fee2e2;color:#dc2626;padding:.1rem .5rem;border-radius:20px;font-size:.75rem;font-weight:600;}

/* Inquiry form */
.mp-inquiry-card{background:var(--mp-white);border-radius:var(--mp-radius-lg);border:2px solid var(--mp-primary);box-shadow:0 4px 24px rgba(45,39,124,.12);}
.mp-inquiry-card .form-control,.mp-inquiry-card .form-select{border-radius:8px;border-color:var(--mp-border);}
.mp-inquiry-card .form-control:focus,.mp-inquiry-card .form-select:focus{border-color:var(--mp-primary);box-shadow:0 0 0 3px rgba(45,39,124,.1);}

/* ── Search page ── */
.mp-search-header{background:var(--mp-white);border-bottom:1px solid var(--mp-border);padding:1.25rem 0;}
.mp-sort-bar{background:var(--mp-white);border-radius:var(--mp-radius);border:1.5px solid var(--mp-border);padding:.75rem 1rem;display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:1.25rem;}
.mp-result-count{font-weight:600;font-size:.9rem;}
.mp-active-filters{display:flex;flex-wrap:wrap;gap:.5rem;}
.mp-filter-chip{background:var(--mp-primary-light);color:var(--mp-primary);border-radius:20px;padding:.2rem .75rem;font-size:.8rem;font-weight:500;display:flex;align-items:center;gap:.3rem;}
.mp-filter-chip a{color:var(--mp-primary);}

/* ── City strip ── */
.mp-city-strip{display:flex;gap:.5rem;flex-wrap:nowrap;overflow-x:auto;padding:.5rem 0;scrollbar-width:none;}
.mp-city-strip::-webkit-scrollbar{display:none;}
.mp-city-pill{background:var(--mp-white);border:1.5px solid var(--mp-border);border-radius:20px;padding:.35rem 1rem;font-size:.85rem;white-space:nowrap;cursor:pointer;transition:var(--mp-transition);}
.mp-city-pill:hover,.mp-city-pill.active{background:var(--mp-primary);color:#fff;border-color:var(--mp-primary);}

/* ── CTA banner ── */
.mp-cta-banner{background:linear-gradient(135deg,var(--mp-primary) 0%,var(--mp-accent) 100%);border-radius:var(--mp-radius-lg);padding:3rem 2rem;color:#fff;text-align:center;}
.mp-cta-title{font-size:1.75rem;font-weight:800;margin-bottom:.75rem;}

/* ── Footer ── */
.mp-footer{background:#0f172a;color:#94a3b8;}
.mp-footer-links{list-style:none;padding:0;}
.mp-footer-links li{margin-bottom:.4rem;}
.mp-footer-links a{color:#94a3b8;font-size:.875rem;transition:var(--mp-transition);}
.mp-footer-links a:hover{color:#fff;}
.mp-social-icon{width:36px;height:36px;border-radius:8px;background:rgba(255,255,255,.08);color:#94a3b8;display:flex;align-items:center;justify-content:center;transition:var(--mp-transition);}
.mp-social-icon:hover{background:var(--mp-primary);color:#fff;}

/* ── Pagination ── */
.mp-pagination .page-link{border-radius:8px!important;border:1.5px solid var(--mp-border);color:var(--mp-primary);margin:0 2px;}
.mp-pagination .page-item.active .page-link{background:var(--mp-primary);border-color:var(--mp-primary);}
.mp-pagination .page-link:hover{background:var(--mp-primary-light);}

/* ── Skeleton loader ── */
.mp-skeleton{background:linear-gradient(90deg,#f0f0f0 25%,#e8e8e8 50%,#f0f0f0 75%);background-size:200% 100%;animation:mp-skeleton-anim 1.4s infinite;}
@keyframes mp-skeleton-anim{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* ── Responsive ── */
@media(max-width:991px){
    .mp-hero{padding:2.5rem 0 3rem;}
    .mp-filter-card{margin-bottom:1rem;}
}
@media(max-width:767px){
    .mp-hero-title{font-size:1.6rem;}
    .mp-profile-name{font-size:1.4rem;}
    .mp-cat-card{padding:1rem .75rem;}
    .mp-biz-cover{height:110px;}
    .mp-cta-title{font-size:1.3rem;}
}
@media(max-width:575px){
    .mp-search-bar{flex-direction:column;}
    .mp-city-select{max-width:100%!important;}
    .mp-profile-logo,.mp-profile-logo-placeholder{width:72px;height:72px;}
}

/* ── Utilities ── */
.mp-line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.mp-line-clamp-3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
.text-primary-mp{color:var(--mp-primary)!important;}
.bg-primary-mp{background:var(--mp-primary)!important;}
.border-primary-mp{border-color:var(--mp-primary)!important;}
