/* ==========================================================================
   PureLocal theme — mobile-first layer loaded after legacy style.css
   ========================================================================== */
:root {
    --pl-primary: #0a8fe6;
    --pl-primary-dark: #0668b3;
    --pl-primary-soft: #e8f5fe;
    --pl-accent: #ff7a00;
    --pl-accent-dark: #e56a00;
    --pl-call: #16a34a;
    --pl-call-dark: #11843c;
    --pl-wa: #25d366;
    --pl-star: #ffb400;
    --pl-rating: #1e8e3e;
    --pl-ink: #111827;
    --pl-text: #374151;
    --pl-muted: #6b7280;
    --pl-line: #e5e7eb;
    --pl-bg: #f4f6fa;
    --pl-card: #ffffff;
    --pl-radius: 14px;
    --pl-radius-sm: 10px;
    --pl-shadow: 0 1px 2px rgba(16, 24, 40, .05), 0 4px 14px rgba(16, 24, 40, .06);
    --pl-shadow-lg: 0 10px 30px rgba(16, 24, 40, .12);
    --pl-header-h: 64px;
    --pl-bottom-h: 64px;
    --pl-font: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
    --pl-font-head: 'Poppins', var(--pl-font);
}

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body.pl-body {
    font-family: var(--pl-font);
    color: var(--pl-text);
    background: var(--pl-bg);
    font-size: 15px;
    line-height: 1.55;
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden;
}
.pl-body h1, .pl-body h2, .pl-body h3, .pl-body h4, .pl-body h5, .pl-body h6 {
    font-family: var(--pl-font-head);
    color: var(--pl-ink);
    letter-spacing: -.01em;
}
.pl-body a { color: var(--pl-primary); text-decoration: none; }
.pl-body a:hover { color: var(--pl-primary-dark); }
.pl-body img { max-width: 100%; }
.pl-body .container { padding-left: 16px; padding-right: 16px; }
.pl-body :focus-visible { outline: 3px solid rgba(10, 143, 230, .35); outline-offset: 2px; }
.visually-hidden-focusable:not(:focus):not(:focus-within) { position: absolute !important; width: 1px !important; height: 1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; }
.pl-skip { position: absolute; left: 12px; top: 8px; z-index: 2000; background: #fff; padding: 8px 14px; border-radius: 8px; box-shadow: var(--pl-shadow); }

/* ---------- Buttons ---------- */
.pl-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 6px;
    min-height: 40px; padding: 8px 16px; border-radius: 10px;
    font-weight: 600; font-size: 14px; line-height: 1.2;
    border: 1.5px solid transparent; cursor: pointer; white-space: nowrap;
    transition: background .15s, color .15s, border-color .15s, transform .1s;
}
.pl-btn:active { transform: scale(.98); }
.pl-btn i { font-size: 1.05em; }
.pl-btn-primary { background: var(--pl-primary); color: #fff !important; }
.pl-btn-primary:hover { background: var(--pl-primary-dark); }
.pl-btn-accent { background: var(--pl-accent); color: #fff !important; }
.pl-btn-accent:hover { background: var(--pl-accent-dark); }
.pl-btn-call { background: var(--pl-call); color: #fff !important; }
.pl-btn-call:hover { background: var(--pl-call-dark); }
.pl-btn-wa { background: #fff; color: #128c4a !important; border-color: #bfe9cf; }
.pl-btn-wa:hover { background: #effbf3; }
.pl-btn-outline { background: #fff; color: var(--pl-primary) !important; border-color: #b9dcf6; }
.pl-btn-outline:hover { background: var(--pl-primary-soft); }
.pl-btn-ghost { background: #fff; color: var(--pl-text) !important; border-color: var(--pl-line); }
.pl-btn-ghost:hover { background: #f9fafb; }
.pl-btn-sm { min-height: 34px; padding: 6px 12px; font-size: 13px; border-radius: 8px; }
.pl-btn-block { width: 100%; }

/* Harmonise legacy bootstrap buttons used on untouched pages */
.pl-body .btn-primary { background: var(--pl-primary); border-color: var(--pl-primary); }
.pl-body .btn-primary:hover, .pl-body .btn-primary:focus { background: var(--pl-primary-dark); border-color: var(--pl-primary-dark); }

/* ---------- Header ---------- */
.pl-header {
    position: sticky; top: 0; z-index: 1030;
    background: rgba(255, 255, 255, .96);
    backdrop-filter: saturate(180%) blur(10px);
    -webkit-backdrop-filter: saturate(180%) blur(10px);
    border-bottom: 1px solid var(--pl-line);
}
.pl-header-inner { display: flex; align-items: center; gap: 16px; height: var(--pl-header-h); }
.pl-logo img { height: 38px; width: auto; display: block; }
.pl-header-search {
    flex: 1; max-width: 520px; display: none; align-items: center;
    background: #f3f5f8; border: 1px solid var(--pl-line); border-radius: 999px;
    padding: 0 6px 0 16px; height: 44px;
}
.pl-header-search i { color: var(--pl-muted); }
.pl-header-search input { border: 0; background: transparent; flex: 1; min-width: 0; padding: 0 10px; font-size: 14px; outline: none; }
.pl-header-search button { border: 0; background: var(--pl-primary); color: #fff; border-radius: 999px; height: 34px; padding: 0 16px; font-weight: 600; font-size: 13px; }
.pl-nav { display: none; align-items: center; gap: 4px; margin-left: auto; list-style: none; padding: 0; margin-bottom: 0; }
.pl-nav > li > a, .pl-nav > li > button {
    display: inline-flex; align-items: center; gap: 6px; padding: 8px 12px; border-radius: 8px;
    color: var(--pl-text); font-weight: 500; font-size: 14.5px; background: none; border: 0;
}
.pl-nav > li > a:hover, .pl-nav > li > button:hover, .pl-nav > li > a.active { background: var(--pl-primary-soft); color: var(--pl-primary-dark); }
.pl-nav .dropdown-menu { border: 1px solid var(--pl-line); border-radius: 12px; box-shadow: var(--pl-shadow-lg); padding: 6px; }
.pl-nav .dropdown-item { border-radius: 8px; padding: 8px 12px; font-size: 14px; }
.pl-nav .dropdown-item i { width: 20px; color: var(--pl-muted); }
.pl-avatar { width: 34px; height: 34px; border-radius: 50%; object-fit: cover; border: 2px solid var(--pl-primary-soft); }
.pl-header-actions { display: flex; align-items: center; gap: 6px; margin-left: auto; }
.pl-icon-btn {
    width: 42px; height: 42px; display: inline-flex; align-items: center; justify-content: center;
    border-radius: 12px; border: 0; background: transparent; color: var(--pl-ink); font-size: 22px;
}
.pl-icon-btn:hover { background: #f3f5f8; }

@media (min-width: 992px) {
    :root { --pl-header-h: 72px; }
    .pl-logo img { height: 44px; }
    .pl-header-search { display: flex; }
    .pl-nav { display: flex; }
    .pl-header-actions { display: none; }
}

/* Mobile search sheet (opened from header / bottom nav) */
.pl-search-sheet .offcanvas-body { padding: 16px; }
.pl-search-sheet { height: auto !important; max-height: 92vh; border-radius: 0 0 20px 20px; }

/* ---------- Offcanvas drawer ---------- */
.pl-drawer { width: 300px !important; }
.pl-drawer .offcanvas-header { border-bottom: 1px solid var(--pl-line); }
.pl-drawer-user { display: flex; align-items: center; gap: 12px; padding: 16px; background: var(--pl-primary-soft); border-radius: 14px; margin-bottom: 12px; }
.pl-drawer-user img { width: 46px; height: 46px; border-radius: 50%; object-fit: cover; }
.pl-drawer-list { list-style: none; padding: 0; margin: 0; }
.pl-drawer-list a { display: flex; align-items: center; gap: 12px; padding: 12px 10px; border-radius: 10px; color: var(--pl-ink); font-weight: 500; }
.pl-drawer-list a i { font-size: 19px; color: var(--pl-primary); width: 24px; text-align: center; }
.pl-drawer-list a:hover { background: #f3f5f8; }
.pl-drawer-title { font-size: 12px; text-transform: uppercase; letter-spacing: .06em; color: var(--pl-muted); margin: 16px 10px 6px; font-weight: 600; }

/* ---------- Mobile bottom nav (app-style) ---------- */
.pl-bottom-nav {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 1040;
    display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); align-items: center;
    height: calc(var(--pl-bottom-h) + env(safe-area-inset-bottom, 0px));
    padding: 4px 6px env(safe-area-inset-bottom, 0px);
    background: #fff; border-top: 1px solid rgba(10, 143, 230, .08);
    box-shadow: 0 -8px 24px rgba(16, 24, 40, .08);
}
.pl-bottom-nav a, .pl-bottom-nav button {
    position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px;
    height: 56px; min-width: 0; background: none; border: 0; padding: 0;
    color: #8a94a6 !important; font-size: 10.5px; font-weight: 600; letter-spacing: .01em;
}
.pl-bottom-nav i { font-size: 21px; line-height: 1; transition: transform .15s; }
.pl-bottom-nav .active { color: var(--pl-primary) !important; }
.pl-bottom-nav .active i { transform: translateY(-1px); }
.pl-bottom-nav .active::before {
    content: ''; position: absolute; top: -4px; width: 28px; height: 3px; border-radius: 0 0 4px 4px; background: var(--pl-primary);
}
.pl-bottom-nav .pl-bn-fab i {
    width: 48px; height: 48px; margin-top: -26px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center; font-size: 22px;
    background: linear-gradient(135deg, var(--pl-primary), var(--pl-primary-dark)); color: #fff;
    box-shadow: 0 8px 18px rgba(10, 143, 230, .38); border: 4px solid #fff;
}
.pl-bottom-nav .pl-bn-fab { color: var(--pl-primary) !important; }
@media (max-width: 991.98px) {
    body.pl-body { padding-bottom: calc(var(--pl-bottom-h) + env(safe-area-inset-bottom, 0px)); }
}
@media (min-width: 992px) { .pl-bottom-nav { display: none; } }

/* ---------- Hero + search ---------- */
.pl-hero {
    position: relative; overflow: hidden;
    background: radial-gradient(1200px 400px at 10% -10%, rgba(255,255,255,.18), transparent 60%),
                linear-gradient(135deg, #0a8fe6 0%, #0668b3 55%, #084a86 100%);
    color: #fff; padding: 28px 0 34px;
}
.pl-hero::after {
    content: ''; position: absolute; right: -80px; bottom: -120px; width: 320px; height: 320px; border-radius: 50%;
    background: rgba(255, 255, 255, .06);
}
.pl-hero h1 { color: #fff; font-size: 24px; font-weight: 700; line-height: 1.25; margin: 0 0 6px; }
.pl-hero h1 span { color: #ffd166; }
.pl-hero p { color: rgba(255, 255, 255, .88); margin: 0 0 18px; font-size: 14.5px; }
.pl-hero.pl-hero-sm { padding: 22px 0 26px; }
.pl-hero.pl-hero-sm h1 { font-size: 22px; }
@media (min-width: 768px) {
    .pl-hero { padding: 56px 0 64px; }
    .pl-hero h1 { font-size: 38px; }
    .pl-hero p { font-size: 17px; }
    .pl-hero.pl-hero-sm { padding: 36px 0 40px; }
    .pl-hero.pl-hero-sm h1 { font-size: 30px; }
}

.pl-search {
    position: relative; z-index: 5;
    display: grid; grid-template-columns: 1fr; gap: 8px;
    background: #fff; border-radius: 16px; padding: 8px; box-shadow: var(--pl-shadow-lg);
}
.pl-search-field { position: relative; display: flex; align-items: center; background: #f5f7fa; border-radius: 12px; }
.pl-search-field > i { position: absolute; left: 14px; color: var(--pl-primary); font-size: 18px; pointer-events: none; }
.pl-search-field input.form-control {
    height: 50px; border: 0; background: transparent; padding-left: 42px; font-size: 15px; box-shadow: none !important; color: var(--pl-ink);
}
.pl-search-field input.form-control::placeholder { color: #8a94a6; }
.pl-search .pl-search-btn { height: 50px; border-radius: 12px; font-size: 15px; }
.pl-search .pl-field-error { color: #dc2626; font-size: 12px; padding: 4px 12px 0; position: absolute; top: 100%; }
@media (min-width: 768px) {
    .pl-search { grid-template-columns: 1fr 1fr auto; border-radius: 999px; padding: 8px; }
    .pl-search-field { border-radius: 999px; }
    .pl-search .pl-search-btn { border-radius: 999px; padding: 0 28px; }
}

/* Autocomplete dropdowns (IDs are bound by legacy JS) */
#categoryOptions, #locationOptions {
    position: absolute !important; top: calc(100% + 6px) !important; left: 0; right: 0; width: 100% !important;
    z-index: 1060 !important; max-height: 280px; overflow-y: auto;
    background: #fff !important; border: 1px solid var(--pl-line) !important; border-radius: 12px; padding: 6px !important;
    box-shadow: var(--pl-shadow-lg); text-align: left;
}
.categoryOptions, .locationOptions {
    padding: 10px 12px !important; border-radius: 8px; cursor: pointer; color: var(--pl-ink) !important; font-size: 14.5px;
}
.categoryOptions:hover, .locationOptions:hover { background: var(--pl-primary-soft) !important; }

.pl-quick-cats { display: flex; gap: 8px; flex-wrap: nowrap; overflow-x: auto; margin-top: 14px; padding-bottom: 4px; scrollbar-width: none; }
.pl-quick-cats::-webkit-scrollbar { display: none; }
.pl-quick-cats a {
    flex: 0 0 auto; display: inline-flex; align-items: center; gap: 6px;
    padding: 7px 14px; border-radius: 999px; background: rgba(255,255,255,.14); color: #fff !important;
    border: 1px solid rgba(255,255,255,.25); font-size: 13px; font-weight: 500;
}
.pl-quick-cats a:hover { background: rgba(255,255,255,.24); }
.pl-quick-cats img { width: 18px; height: 18px; object-fit: contain; filter: brightness(0) invert(1); }

/* ---------- Sections ---------- */
.pl-section { padding: 28px 0; }
.pl-section-white { background: #fff; }
@media (min-width: 768px) { .pl-section { padding: 48px 0; } }
.pl-sec-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; margin-bottom: 16px; }
.pl-sec-head h2 { font-size: 20px; font-weight: 700; margin: 0; }
.pl-sec-head p { margin: 2px 0 0; color: var(--pl-muted); font-size: 14px; }
.pl-sec-head .pl-link { font-weight: 600; font-size: 14px; white-space: nowrap; }
@media (min-width: 768px) { .pl-sec-head h2 { font-size: 26px; } .pl-sec-head { margin-bottom: 22px; } }

.pl-card { background: var(--pl-card); border: 1px solid var(--pl-line); border-radius: var(--pl-radius); box-shadow: var(--pl-shadow); }

/* ---------- Breadcrumb ---------- */
.pl-breadcrumb { background: #fff; border-bottom: 1px solid var(--pl-line); }
.pl-breadcrumb ol { display: flex; flex-wrap: nowrap; overflow-x: auto; gap: 6px; list-style: none; margin: 0; padding: 10px 0; font-size: 13px; white-space: nowrap; scrollbar-width: none; }
.pl-breadcrumb ol::-webkit-scrollbar { display: none; }
.pl-breadcrumb li { display: flex; align-items: center; gap: 6px; color: var(--pl-muted); }
.pl-breadcrumb li + li::before { content: '\F285'; font-family: 'bootstrap-icons'; font-size: 10px; color: #b0b7c3; }
.pl-breadcrumb a { color: var(--pl-text); }
.pl-breadcrumb li[aria-current] { color: var(--pl-ink); font-weight: 600; overflow: hidden; text-overflow: ellipsis; }

/* ---------- Category tiles (JustDial style) ---------- */
.pl-cat-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
@media (min-width: 576px) { .pl-cat-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
@media (min-width: 768px) { .pl-cat-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 14px; } }
@media (min-width: 1200px) { .pl-cat-grid { grid-template-columns: repeat(8, minmax(0, 1fr)); } }
.pl-cat-tile { display: flex; flex-direction: column; align-items: center; gap: 8px; text-align: center; padding: 6px 2px; border-radius: 12px; color: var(--pl-ink) !important; }
.pl-cat-tile:hover { background: #fff; box-shadow: var(--pl-shadow); }
.pl-cat-icon {
    width: 58px; height: 58px; border-radius: 16px; display: flex; align-items: center; justify-content: center;
    background: #fff; border: 1px solid var(--pl-line); box-shadow: 0 2px 6px rgba(16,24,40,.05); overflow: hidden;
}
.pl-cat-icon img { width: 34px; height: 34px; object-fit: contain; }
.pl-cat-icon i { font-size: 26px; color: var(--pl-primary); }
.pl-cat-tile span { font-size: 12px; font-weight: 500; line-height: 1.25; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
@media (min-width: 768px) { .pl-cat-icon { width: 72px; height: 72px; border-radius: 18px; } .pl-cat-icon img { width: 42px; height: 42px; } .pl-cat-tile span { font-size: 13.5px; } }

/* Large image category cards */
.pl-cat-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
@media (min-width: 768px) { .pl-cat-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; } }
@media (min-width: 1200px) { .pl-cat-cards { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.pl-cat-card { position: relative; display: block; border-radius: var(--pl-radius); overflow: hidden; background: #dbe7f3; aspect-ratio: 4 / 3; box-shadow: var(--pl-shadow); }
.pl-cat-card img.pl-cat-card-img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s; }
.pl-cat-card:hover img.pl-cat-card-img { transform: scale(1.05); }
.pl-cat-card::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 40%, rgba(0,0,0,.72)); }
.pl-cat-card-body { position: absolute; left: 0; right: 0; bottom: 0; z-index: 1; display: flex; align-items: center; gap: 8px; padding: 12px; color: #fff; }
.pl-cat-card-body img { width: 30px; height: 30px; border-radius: 8px; background: #fff; padding: 4px; object-fit: contain; }
.pl-cat-card-body h3 { color: #fff !important; font-size: 14px; margin: 0; font-weight: 600; }
@media (min-width: 768px) { .pl-cat-card-body h3 { font-size: 16px; } }

/* ---------- City chips / cards ---------- */
.pl-city-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
@media (min-width: 576px) { .pl-city-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 992px) { .pl-city-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; } }
.pl-city { display: flex; align-items: center; gap: 12px; padding: 12px; background: #fff; border: 1px solid var(--pl-line); border-radius: 12px; color: var(--pl-ink) !important; transition: box-shadow .15s, border-color .15s; }
.pl-city:hover { border-color: #b9dcf6; box-shadow: var(--pl-shadow); }
.pl-city-logo { width: 44px; height: 44px; border-radius: 10px; background: var(--pl-primary-soft); display: flex; align-items: center; justify-content: center; flex: 0 0 auto; overflow: hidden; }
.pl-city-logo img { width: 100%; height: 100%; object-fit: cover; }
.pl-city-logo i { color: var(--pl-primary); font-size: 20px; }
.pl-city strong { display: block; font-size: 14.5px; font-weight: 600; line-height: 1.2; }
.pl-city small { color: var(--pl-muted); font-size: 12px; }

/* ---------- Listing layout ---------- */
.pl-list-head { background: #fff; border-bottom: 1px solid var(--pl-line); padding: 16px 0; }
.pl-list-head h1 { font-size: 20px; font-weight: 700; margin: 0; }
.pl-list-head p { margin: 4px 0 0; color: var(--pl-muted); font-size: 13.5px; }
@media (min-width: 768px) { .pl-list-head { padding: 24px 0; } .pl-list-head h1 { font-size: 28px; } }

.pl-filters { display: flex; gap: 8px; overflow-x: auto; padding: 12px 0 4px; scrollbar-width: none; }
.pl-filters::-webkit-scrollbar { display: none; }
.pl-filters .form-select, .pl-filters .form-control {
    flex: 0 0 auto; width: auto; min-width: 150px; height: 40px; border-radius: 999px; border: 1px solid var(--pl-line); font-size: 13.5px; background-color: #fff;
}
.pl-filters .pl-filter-search { position: relative; min-width: 200px; }
.pl-filters .pl-filter-search .form-control { width: 100%; }
#region-list { border-radius: 10px; overflow: hidden; box-shadow: var(--pl-shadow-lg); min-width: 240px; }
@media (min-width: 992px) {
    .pl-filter-panel { position: sticky; top: calc(var(--pl-header-h) + 16px); padding: 18px; background: #fff; border: 1px solid var(--pl-line); border-radius: var(--pl-radius); box-shadow: var(--pl-shadow); }
    .pl-filter-panel .pl-filters { gap: 10px; }
    .pl-filter-panel .pl-filters { flex-direction: column; overflow: visible; padding: 0; }
    .pl-filter-panel .pl-filters .form-select, .pl-filter-panel .pl-filters .form-control, .pl-filter-panel .pl-filter-search { width: 100%; min-width: 0; border-radius: 10px; }
}
.pl-filter-panel h2 { font-size: 15px; font-weight: 700; margin-bottom: 12px; }

/* ---------- Business card (JustDial style) ---------- */
.pl-biz-list { display: grid; gap: 12px; }
.pl-biz-list > .pl-empty { grid-column: 1 / -1; }
.pl-biz {
    display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 12px;
    background: #fff; border: 1px solid var(--pl-line); border-radius: var(--pl-radius); padding: 12px;
    box-shadow: var(--pl-shadow); transition: box-shadow .2s, border-color .2s;
}
.pl-biz:hover { box-shadow: var(--pl-shadow-lg); border-color: #cfe6f8; }
.pl-biz-media { position: relative; width: 96px; height: 96px; border-radius: 12px; overflow: hidden; background: var(--pl-primary-soft); display: block; }
.pl-biz-media img { width: 100%; height: 100%; object-fit: cover; }
.pl-initial {
    width: 100%; height: 100%; display: flex; align-items: center; justify-content: center;
    font-family: var(--pl-font-head); font-weight: 700; font-size: 34px; color: #fff;
}
.pl-biz-body { min-width: 0; display: flex; flex-direction: column; gap: 5px; }
.pl-biz-title { font-size: 16px; font-weight: 700; line-height: 1.3; margin: 0; }
.pl-biz-title a { color: var(--pl-ink) !important; }
.pl-biz-title a:hover { color: var(--pl-primary) !important; }
.pl-biz-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; font-size: 12.5px; color: var(--pl-muted); }
.pl-rating { display: inline-flex; align-items: center; gap: 3px; background: var(--pl-rating); color: #fff; font-weight: 700; font-size: 12.5px; padding: 2px 7px; border-radius: 6px; line-height: 1.4; }
.pl-rating.is-none { background: #9ca3af; }
.pl-rating i { font-size: 10px; }
.pl-badge { display: inline-flex; align-items: center; gap: 4px; padding: 2px 8px; border-radius: 999px; font-size: 11.5px; font-weight: 600; background: #f3f4f6; color: var(--pl-text); }
.pl-badge-verified { background: #e7f7ee; color: #15803d; }
.pl-badge-cat { background: var(--pl-primary-soft); color: var(--pl-primary-dark) !important; }
.pl-biz-addr { font-size: 13px; color: var(--pl-text); display: flex; gap: 4px; align-items: flex-start; }
.pl-biz-addr i { color: var(--pl-muted); margin-top: 2px; }
.pl-biz-addr span { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.pl-biz-actions { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 8px; margin-top: 2px; }
.pl-biz-actions .pl-btn { min-height: 38px; padding: 6px 8px; font-size: 13px; }
@media (min-width: 576px) {
    .pl-biz { grid-template-columns: 150px minmax(0, 1fr); padding: 14px; gap: 16px; }
    .pl-biz-media { width: 150px; height: 130px; }
    .pl-biz-actions { grid-column: 2; display: flex; flex-wrap: wrap; }
    .pl-biz-actions .pl-btn { padding: 6px 14px; }
    .pl-biz-title { font-size: 18px; }
}
@media (min-width: 1200px) { .pl-biz { grid-template-columns: 190px minmax(0, 1fr); } .pl-biz-media { width: 190px; height: 150px; } }

/* Compact grid variant for home "featured" */
.pl-biz-grid { display: grid; grid-template-columns: repeat(1, minmax(0, 1fr)); gap: 12px; }
@media (min-width: 768px) { .pl-biz-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; } }

.pl-empty { text-align: center; padding: 40px 16px; background: #fff; border: 1px dashed #cfd6e1; border-radius: var(--pl-radius); color: var(--pl-muted); }
.pl-empty i { font-size: 40px; color: #b6c2d2; display: block; margin-bottom: 8px; }
.pl-loader { display: flex; align-items: center; justify-content: center; gap: 10px; padding: 20px; color: var(--pl-muted); font-size: 14px; }

/* ---------- Business detail ---------- */
.pl-detail-cover { height: 140px; background: linear-gradient(135deg, #0a8fe6, #084a86); overflow: hidden; }
.pl-detail-cover img { width: 100%; height: 100%; object-fit: cover; }
@media (min-width: 768px) { .pl-detail-cover { height: 240px; } }
.pl-detail-head { position: relative; margin-top: -48px; padding: 16px; }
@media (min-width: 768px) { .pl-detail-head { margin-top: -80px; padding: 24px; } }
.pl-detail-top { display: flex; gap: 14px; align-items: flex-start; }
.pl-detail-logo { width: 76px; height: 76px; flex: 0 0 auto; border-radius: 16px; overflow: hidden; background: var(--pl-primary-soft); border: 3px solid #fff; box-shadow: var(--pl-shadow); }
.pl-detail-logo img { width: 100%; height: 100%; object-fit: cover; }
@media (min-width: 768px) { .pl-detail-logo { width: 110px; height: 110px; } }
.pl-detail-head h1 { font-size: 20px; font-weight: 700; margin: 0 0 6px; line-height: 1.25; }
@media (min-width: 768px) { .pl-detail-head h1 { font-size: 28px; } }
.pl-detail-cta { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 14px; }
@media (min-width: 576px) { .pl-detail-cta { display: flex; flex-wrap: wrap; } }
.pl-contact-chip { display: inline-flex; align-items: center; gap: 6px; padding: 8px 12px; border-radius: 10px; background: var(--pl-primary-soft); color: var(--pl-primary-dark) !important; font-weight: 600; font-size: 14px; cursor: pointer; border: 0; }
.pl-contact-chip:hover { background: #d7ecfc; }

.pl-tabs { position: sticky; top: var(--pl-header-h); z-index: 20; background: #fff; border-bottom: 1px solid var(--pl-line); margin: 0 -16px 16px; padding: 0 16px; }
.pl-tabs ul { display: flex; gap: 4px; overflow-x: auto; list-style: none; margin: 0; padding: 0; scrollbar-width: none; }
.pl-tabs ul::-webkit-scrollbar { display: none; }
.pl-tabs a { display: block; padding: 12px 12px; font-weight: 600; font-size: 14px; color: var(--pl-muted) !important; border-bottom: 3px solid transparent; white-space: nowrap; }
.pl-tabs li.active a, .pl-tabs a:hover { color: var(--pl-primary) !important; border-bottom-color: var(--pl-primary); }
.pl-block { padding: 16px; margin-bottom: 14px; }
@media (min-width: 768px) { .pl-block { padding: 22px; } }
.pl-block > h2 { font-size: 18px; font-weight: 700; margin-bottom: 12px; }
.pl-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
@media (min-width: 768px) { .pl-gallery { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; } }
.pl-gallery a, .pl-gallery .element-item { display: block; aspect-ratio: 1; border-radius: 10px; overflow: hidden; background: #eef2f7; cursor: zoom-in; }
.pl-gallery img { width: 100%; height: 100%; object-fit: cover; }
.pl-videos { display: grid; gap: 10px; }
@media (min-width: 768px) { .pl-videos { grid-template-columns: 1fr 1fr; } }
.pl-videos iframe { width: 100%; aspect-ratio: 16 / 9; border-radius: 12px; border: 0; }
.pl-amenity { display: flex; align-items: center; gap: 8px; font-size: 14px; padding: 4px 0; }
.pl-amenity i { color: var(--pl-call); }
.pl-amenity.is-no i { color: #dc2626; }
.pl-info-list { list-style: none; padding: 0; margin: 0; }
.pl-info-list > li { display: flex; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--pl-line); font-size: 14px; }
.pl-info-list > li:last-child { border-bottom: 0; }
.pl-info-list > li > i { font-size: 18px; color: var(--pl-primary); flex: 0 0 auto; margin-top: 1px; }
.pl-hours { width: 100%; font-size: 13.5px; }
.pl-hours td { padding: 4px 0; }
.pl-hours td:last-child { text-align: right; color: var(--pl-ink); font-weight: 500; }
.pl-sticky-side { position: sticky; top: calc(var(--pl-header-h) + 60px); }

.pl-review { padding: 14px 0; border-bottom: 1px solid var(--pl-line); }
.pl-review:last-child { border-bottom: 0; }

/* Mobile action bar on detail page, sits above bottom nav */
.pl-action-bar {
    position: fixed; left: 0; right: 0; z-index: 1035;
    bottom: calc(var(--pl-bottom-h) + env(safe-area-inset-bottom, 0px));
    display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px;
    padding: 8px 12px; background: #fff; border-top: 1px solid var(--pl-line); box-shadow: 0 -6px 18px rgba(16,24,40,.08);
}
.pl-action-bar .pl-btn { min-height: 44px; font-size: 14px; }
@media (max-width: 991.98px) { body.pl-has-action-bar { padding-bottom: calc(var(--pl-bottom-h) + 64px + env(safe-area-inset-bottom, 0px)); } }
@media (min-width: 992px) { .pl-action-bar { display: none; } }

/* ---------- Blog cards (home) ---------- */
.pl-blog-grid { display: grid; grid-template-columns: 1fr; gap: 14px; }
@media (min-width: 768px) { .pl-blog-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; } }
.pl-blog { display: flex; flex-direction: column; overflow: hidden; height: 100%; }
.pl-blog-img { aspect-ratio: 16 / 9; overflow: hidden; background: #e8eef5; display: block; }
.pl-blog-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s; }
.pl-blog:hover .pl-blog-img img { transform: scale(1.04); }
.pl-blog-body { padding: 14px 16px 16px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.pl-blog-body h3 { font-size: 16px; font-weight: 600; margin: 0; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.pl-blog-body h3 a { color: var(--pl-ink) !important; }
.pl-blog-body p { font-size: 13.5px; color: var(--pl-muted); margin: 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.pl-blog-meta { display: flex; align-items: center; gap: 8px; font-size: 12.5px; color: var(--pl-muted); margin-top: auto; }
.pl-blog-meta img { width: 26px; height: 26px; border-radius: 50%; object-fit: cover; }

/* ---------- Trust strip / CTA ---------- */
.pl-trust { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
@media (min-width: 768px) { .pl-trust { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; } }
.pl-trust-item { display: flex; align-items: center; gap: 10px; padding: 14px; }
.pl-trust-item i { width: 42px; height: 42px; flex: 0 0 auto; border-radius: 12px; display: flex; align-items: center; justify-content: center; background: var(--pl-primary-soft); color: var(--pl-primary); font-size: 20px; }
.pl-trust-item strong { display: block; font-size: 14px; color: var(--pl-ink); line-height: 1.2; }
.pl-trust-item span { font-size: 12px; color: var(--pl-muted); }
.pl-cta-band { background: linear-gradient(135deg, #ff7a00, #ff9d3c); color: #fff; border-radius: 18px; padding: 22px; display: flex; flex-direction: column; gap: 14px; }
.pl-cta-band h2 { color: #fff !important; font-size: 20px; margin: 0; }
.pl-cta-band p { margin: 0; color: rgba(255,255,255,.92); font-size: 14px; }
.pl-cta-band .pl-btn { background: #fff; color: var(--pl-accent-dark) !important; align-self: flex-start; }
@media (min-width: 768px) { .pl-cta-band { flex-direction: row; align-items: center; justify-content: space-between; padding: 30px 36px; } .pl-cta-band h2 { font-size: 26px; } .pl-cta-band .pl-btn { align-self: center; } }

/* ---------- SEO text block ---------- */
.pl-seo-text { font-size: 14px; color: var(--pl-text); }
.pl-seo-text h2 { font-size: 18px; font-weight: 700; margin-bottom: 8px; }
.pl-seo-text a { font-weight: 500; }
.pl-link-cloud { display: flex; flex-wrap: wrap; gap: 8px; }
.pl-link-cloud a { padding: 6px 12px; border-radius: 999px; background: #fff; border: 1px solid var(--pl-line); color: var(--pl-text) !important; font-size: 13px; }
.pl-link-cloud a:hover { border-color: #b9dcf6; color: var(--pl-primary) !important; }

/* ---------- Footer ---------- */
.pl-footer { background: #0b1628; color: #b7c1d1; padding: 36px 0 0; margin-top: 24px; font-size: 14px; }
.pl-footer h3 { color: #fff; font-size: 15px; font-weight: 600; margin-bottom: 12px; }
.pl-footer ul { list-style: none; padding: 0; margin: 0; }
.pl-footer li { margin-bottom: 8px; }
.pl-footer a { color: #b7c1d1 !important; }
.pl-footer a:hover { color: #fff !important; }
.pl-footer-brand img { height: 40px; background: #fff; border-radius: 10px; padding: 6px 10px; }
.pl-footer-social { display: flex; gap: 8px; margin-top: 12px; }
.pl-footer-social a { width: 38px; height: 38px; border-radius: 10px; background: rgba(255,255,255,.08); display: inline-flex; align-items: center; justify-content: center; font-size: 17px; }
.pl-footer-social a:hover { background: var(--pl-primary); }
.pl-footer-bottom { border-top: 1px solid rgba(255,255,255,.08); margin-top: 20px; padding: 16px 0; display: flex; flex-wrap: wrap; gap: 8px; justify-content: space-between; font-size: 13px; }
@media (max-width: 575.98px) {
    .pl-footer .pl-footer-col { border-bottom: 1px solid rgba(255,255,255,.06); padding-bottom: 12px; margin-bottom: 12px; }
}

/* ---------- Toast ---------- */
.pl-toast { position: fixed; left: 50%; bottom: calc(var(--pl-bottom-h) + 84px); transform: translateX(-50%) translateY(20px); z-index: 2000; background: #111827; color: #fff; padding: 10px 16px; border-radius: 10px; font-size: 14px; opacity: 0; pointer-events: none; transition: opacity .2s, transform .2s; max-width: calc(100% - 32px); }
.pl-toast.show { opacity: 1; transform: translateX(-50%) translateY(0); }
@media (min-width: 992px) { .pl-toast { bottom: 32px; } }

/* ---------- Flash alerts ---------- */
.pl-flash { margin: 12px 0 0; border-radius: 12px; }

/* ---------- Legacy pages polish (auth, dashboard, blog) ---------- */
.pl-body .form-control, .pl-body .form-select { border-radius: 10px; border-color: #d9dee6; min-height: 44px; }
.pl-body .form-control:focus, .pl-body .form-select:focus { border-color: var(--pl-primary); box-shadow: 0 0 0 3px rgba(10, 143, 230, .15); }
.pl-body textarea.form-control { min-height: 100px; }
.pl-body .modal-content { border-radius: 16px; border: 0; }
.pl-body .hero-section.inner h1 { font-size: 24px; }
@media (max-width: 767.98px) {
    .pl-body .table-responsive, .pl-body table { font-size: 13px; }
    .pl-body section { overflow-x: clip; }
}

/* ---------- Refinements ---------- */
.pl-biz-actions { display: flex; gap: 8px; }
.pl-biz-actions > * { flex: 1 1 0; min-width: 0; }
.pl-biz-actions .pl-btn span { overflow: hidden; text-overflow: ellipsis; }
@media (min-width: 576px) { .pl-biz-actions > * { flex: 0 0 auto; } }
@media (max-width: 575.98px) {
    .pl-biz-title { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-size: 15.5px; }
    .pl-filters .form-select { min-width: 0; max-width: 170px; }
    .pl-filters .pl-filter-search { min-width: 170px; }
}
@media (max-width: 575.98px) {
    .pl-trust-item { padding: 12px 10px; gap: 8px; }
    .pl-trust-item i { width: 36px; height: 36px; font-size: 17px; border-radius: 10px; }
    .pl-trust-item strong { font-size: 13px; }
    .pl-trust-item span { font-size: 11.5px; line-height: 1.3; display: block; }
}
.pl-block[id], section[id] { scroll-margin-top: calc(var(--pl-header-h) + 58px); }

/* ---------- Legacy page heroes (auth, dashboard, blog, static pages) ---------- */
.pl-body .hero-section {
    margin-top: 0 !important;
    padding: 28px 0 !important;
    background: radial-gradient(900px 300px at 10% -20%, rgba(255,255,255,.16), transparent 60%),
                linear-gradient(135deg, #0a8fe6 0%, #0668b3 60%, #084a86 100%) !important;
}
.pl-body .hero-section::before, .pl-body .hero-section:before { display: none !important; }
.pl-body .hero-section h1, .pl-body .hero-section h2, .pl-body .hero-section p, .pl-body .hero-section .highlight { color: #fff !important; }
.pl-body .hero-section h1 { font-size: 24px !important; line-height: 1.25; margin-bottom: 6px; }
@media (min-width: 768px) {
    .pl-body .hero-section { padding: 44px 0 !important; }
    .pl-body .hero-section h1 { font-size: 34px !important; }
}
.pl-body .hero-section .breadcrumb, .pl-body .hero-section .breadcrumb a, .pl-body .hero-section .breadcrumb-item.active,
.pl-body .hero-section .breadcrumb-item + .breadcrumb-item::before { color: rgba(255,255,255,.9) !important; }
.pl-body .breadcrumbox, .pl-body .ct-breacrum { background: #fff; border-bottom: 1px solid var(--pl-line); padding: 10px 0; font-size: 13px; }
.pl-body .breadcrumbox .breadcrumb, .pl-body .ct-breacrum .breadcrumb { background: transparent; margin: 0; padding: 0; }
.pl-body .mt-80 { margin-top: 0 !important; }
.pl-body .bussinessProfileBox { margin-top: 0; }

/* Blog detail/list polish */
.pl-body .blog-detail img, .pl-body .blog-content img { max-width: 100%; height: auto; border-radius: 12px; }
.pl-body .blog-detail, .pl-body .blog-details { font-size: 16px; line-height: 1.75; color: var(--pl-text); }
@media (max-width: 767.98px) {
    .pl-body .blog-detail h2, .pl-body .blog-details h2 { font-size: 20px; }
    .pl-body .blog-detail h3, .pl-body .blog-details h3 { font-size: 18px; }
}

/* Auth cards */
.pl-body .login-wrapper, .pl-body .login-section, .pl-body .auth-section { padding-top: 24px; padding-bottom: 24px; }
.pl-body .ct-breacrum .breadcrumb-item, .pl-body .ct-breacrum .breadcrumb-item a,
.pl-body .breadcrumbox .breadcrumb-item, .pl-body .breadcrumbox .breadcrumb-item a { color: var(--pl-text) !important; font-size: 13px; }
.pl-body .ct-breacrum .breadcrumb-item.active, .pl-body .breadcrumbox .breadcrumb-item.active { color: var(--pl-ink) !important; font-weight: 600; }
.pl-body .ct-breacrum .breadcrumb-item + .breadcrumb-item::before, .pl-body .breadcrumbox .breadcrumb-item + .breadcrumb-item::before { color: #b0b7c3 !important; }
.pl-body .ct-breacrum { background: #fff !important; }
.pl-nav > li > a.pl-btn-accent { background: var(--pl-accent); color: #fff !important; padding: 8px 14px; font-weight: 600; }
.pl-nav > li > a.pl-btn-accent:hover { background: var(--pl-accent-dark); color: #fff !important; }

/* ---------- Overflow guards (mobile) ---------- */
.pl-city { min-width: 0; }
.pl-city > span:last-child { min-width: 0; overflow: hidden; }
.pl-city strong { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.min-w-0 { min-width: 0; }
.pl-body .post-author-img { flex-wrap: wrap; min-width: 0; }
.pl-body .post-author-img > *, .pl-body .entry-meta-auth .d-flex.flex-column { min-width: 0; overflow-wrap: anywhere; }
.pl-body .contactinfo-content, .pl-body .contact-hours { min-width: 0; overflow-wrap: anywhere; }
.pl-body main#main { overflow-x: clip; }
