/* ============================================================
   GARDEN ROUTE PULSE — UX ENHANCEMENT OVERRIDES
   File: css/grp-ux-enhancements.css
   Version: 1.0 — April 2026
   
   This file layers on top of the existing style.css.
   It does NOT replace any existing styles — only overrides
   and enhances specific components.
   ============================================================ */


/* ============================================================
   1. NAVIGATION & SEARCH UX
   ============================================================ */

/* --- Sticky nav: keep dropdowns consistent when scrolled --- */
.header-fixed .hom-top .container {
    display: flex;
    align-items: center;
    gap: 12px;
}

/* Make the search bar placeholder more descriptive via CSS (backup) */
.hom-top input[type="text"]::placeholder,
.search-box input::placeholder,
.hom-sea input::placeholder {
    color: #8a919e;
    font-size: 14px;
    letter-spacing: 0.2px;
}

/* Better search bar styling */
.hom-sea,
.home-search-1 {
    border-radius: 12px !important;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08) !important;
    border: 1px solid #e2e5ea !important;
    transition: box-shadow 0.25s ease, border-color 0.25s ease;
}

.hom-sea:focus-within,
.home-search-1:focus-within {
    box-shadow: 0 4px 20px rgba(232, 151, 29, 0.15) !important;
    border-color: #e8971d !important;
}

/* Search button refinement */
.hom-sea button,
.home-search-1 button {
    background: #1a2332 !important;
    border-radius: 0 10px 10px 0 !important;
    font-weight: 600 !important;
    letter-spacing: 0.8px !important;
    transition: background 0.2s ease;
}

.hom-sea button:hover,
.home-search-1 button:hover {
    background: #e8971d !important;
}

/* Sticky nav search — preserve full functionality */
.head-fix .hom-sea {
    max-width: 480px;
}

/* "Add Your Business" — make it more prominent */
.hom-top .add-list-btn,
.hom-nav .add-list-btn {
    background: linear-gradient(135deg, #e8971d 0%, #d4800a 100%) !important;
    color: #fff !important;
    padding: 8px 20px !important;
    border-radius: 8px !important;
    font-weight: 600 !important;
    font-size: 13px !important;
    text-transform: none !important;
    letter-spacing: 0.3px !important;
    transition: all 0.2s ease !important;
    border: none !important;
    box-shadow: 0 2px 8px rgba(232, 151, 29, 0.3) !important;
}

.hom-top .add-list-btn:hover,
.hom-nav .add-list-btn:hover {
    transform: translateY(-1px) !important;
    box-shadow: 0 4px 16px rgba(232, 151, 29, 0.4) !important;
}

/* Sign Up button refinement */
.hom-nav .btn,
.hom-top .btn {
    border-radius: 8px !important;
    font-weight: 600 !important;
    padding: 8px 20px !important;
    transition: all 0.2s ease !important;
}

/* Active page indicator for nav */
.hom-nav .act,
.hom-nav .active {
    position: relative;
}

.hom-nav .act::after,
.hom-nav .active::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 50%;
    transform: translateX(-50%);
    width: 24px;
    height: 2px;
    background: #e8971d;
    border-radius: 2px;
}

/* Explore dropdown refinement */
.hom-nav .dropdown-menu,
.mega-menu {
    border: none !important;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12) !important;
    border-radius: 12px !important;
    padding: 16px !important;
    animation: fadeInDown 0.2s ease;
}

@keyframes fadeInDown {
    from { opacity: 0; transform: translateY(-8px); }
    to { opacity: 1; transform: translateY(0); }
}


/* ============================================================
   2. LEFT PANEL FILTERING — PREMIUM REDESIGN
   ============================================================ */

/* --- Filter panel container --- */
.all-filt {
    background: #ffffff !important;
    border-radius: 16px !important;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06) !important;
    padding: 0 !important;
    overflow: hidden;
}

/* --- Filter section headers --- */
.filt-com h4,
.filt-alist-near h4,
.all-list-bre h1 {
    font-size: 13px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 1px !important;
    color: #1a2332 !important;
    padding: 16px 20px 12px !important;
    margin: 0 !important;
    border-bottom: 1px solid #f0f1f3 !important;
    position: relative;
}

/* Collapsible indicator arrow */
.filt-com h4::after {
    content: '▾';
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 11px;
    color: #9ca3af;
    transition: transform 0.2s ease;
}

.filt-com.collapsed h4::after {
    transform: translateY(-50%) rotate(-90deg);
}

/* --- Filter section content area --- */
.filt-com ul,
.filt-com .dropdown {
    padding: 12px 20px 16px !important;
}

/* --- Dropdown selects --- */
.filt-com select,
.filt-com .chosen-select,
.lhs-cate select {
    width: 100% !important;
    padding: 10px 14px !important;
    border: 1px solid #e2e5ea !important;
    border-radius: 10px !important;
    background: #f8f9fa !important;
    color: #1a2332 !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%239ca3af' d='M6 8L1 3h10z'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right 14px center !important;
    cursor: pointer;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.filt-com select:focus,
.lhs-cate select:focus {
    outline: none !important;
    border-color: #e8971d !important;
    box-shadow: 0 0 0 3px rgba(232, 151, 29, 0.1) !important;
}

/* --- Checkbox styling (premium toggle look) --- */
.filt-com .chbox,
.lhs-sub .chbox,
.lhs-featu .chbox {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    padding: 6px 0 !important;
    cursor: pointer;
}

.filt-com .chbox input[type="checkbox"],
.lhs-sub .chbox input[type="checkbox"],
.lhs-featu .chbox input[type="checkbox"] {
    width: 18px !important;
    height: 18px !important;
    border: 2px solid #d1d5db !important;
    border-radius: 5px !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    cursor: pointer !important;
    transition: all 0.15s ease !important;
    flex-shrink: 0 !important;
    position: relative !important;
    background: #fff !important;
}

.filt-com .chbox input[type="checkbox"]:checked,
.lhs-sub .chbox input[type="checkbox"]:checked,
.lhs-featu .chbox input[type="checkbox"]:checked {
    background: #e8971d !important;
    border-color: #e8971d !important;
}

.filt-com .chbox input[type="checkbox"]:checked::after,
.lhs-sub .chbox input[type="checkbox"]:checked::after,
.lhs-featu .chbox input[type="checkbox"]:checked::after {
    content: '✓' !important;
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
    color: #fff !important;
    font-size: 12px !important;
    font-weight: 700 !important;
}

.filt-com .chbox input[type="checkbox"]:hover,
.lhs-sub .chbox input[type="checkbox"]:hover {
    border-color: #e8971d !important;
}

.filt-com .chbox label,
.lhs-sub .chbox label,
.lhs-featu .chbox label {
    font-size: 13.5px !important;
    color: #374151 !important;
    font-weight: 450 !important;
    cursor: pointer !important;
    line-height: 1.3 !important;
    user-select: none;
}

.filt-com .chbox:hover label {
    color: #1a2332 !important;
}

/* --- Radio button styling (ratings) --- */
.filt-com .rbbox input[type="radio"] {
    width: 18px !important;
    height: 18px !important;
    border: 2px solid #d1d5db !important;
    border-radius: 50% !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    cursor: pointer !important;
    transition: all 0.15s ease !important;
    flex-shrink: 0 !important;
    position: relative !important;
    background: #fff !important;
}

.filt-com .rbbox input[type="radio"]:checked {
    border-color: #e8971d !important;
}

.filt-com .rbbox input[type="radio"]:checked::after {
    content: '' !important;
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
    width: 8px !important;
    height: 8px !important;
    background: #e8971d !important;
    border-radius: 50% !important;
}

/* --- Subcategory list: max height with scroll --- */
.lhs-sub ul,
.sub_cat_section ul {
    max-height: 320px !important;
    overflow-y: auto !important;
    padding-right: 8px !important;
    scrollbar-width: thin;
    scrollbar-color: #d1d5db transparent;
}

.lhs-sub ul::-webkit-scrollbar,
.sub_cat_section ul::-webkit-scrollbar {
    width: 5px;
}

.lhs-sub ul::-webkit-scrollbar-track,
.sub_cat_section ul::-webkit-scrollbar-track {
    background: transparent;
}

.lhs-sub ul::-webkit-scrollbar-thumb,
.sub_cat_section ul::-webkit-scrollbar-thumb {
    background: #d1d5db;
    border-radius: 4px;
}

.lhs-sub ul::-webkit-scrollbar-thumb:hover,
.sub_cat_section ul::-webkit-scrollbar-thumb:hover {
    background: #9ca3af;
}

/* --- Filter search input --- */
.lhs-search input[type="text"] {
    width: 100% !important;
    padding: 10px 14px 10px 38px !important;
    border: 1px solid #e2e5ea !important;
    border-radius: 10px !important;
    background: #f8f9fa url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%239ca3af' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.35-4.35'/%3E%3C/svg%3E") no-repeat 12px center !important;
    font-size: 13.5px !important;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.lhs-search input[type="text"]:focus {
    outline: none !important;
    border-color: #e8971d !important;
    box-shadow: 0 0 0 3px rgba(232, 151, 29, 0.1) !important;
    background-color: #fff !important;
}

/* --- Top Service Providers widget --- */
.top-ser-secti-prov,
.filt-alist-near .near-ser-list {
    padding: 0 !important;
}

.filt-alist-near .near-ser-list ul {
    padding: 0 !important;
    margin: 0;
}

.filt-alist-near .near-ser-list li {
    border-bottom: 1px solid #f3f4f6 !important;
    transition: background 0.15s ease;
}

.filt-alist-near .near-ser-list li:hover {
    background: #fafbfc !important;
}

.filt-alist-near .near-ser-list li:last-child {
    border-bottom: none !important;
}

.filt-alist-near .near-ser-list ul li .near-bx {
    padding: 12px 20px !important;
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
}

/* Square thumb slot — theme uses .near-ser-list ul li … (higher specificity than .filt-alist-near .ne-1 img) */
.filt-alist-near .near-ser-list ul li .near-bx .ne-1 {
    float: none !important;
    flex: 0 0 52px !important;
    width: 52px !important;
    min-width: 52px !important;
    max-width: 52px !important;
    height: 52px !important;
    min-height: 52px !important;
    max-height: 52px !important;
    overflow: hidden !important;
    border-radius: 10px !important;
    margin: 0 !important;
    position: relative !important;
    display: block !important;
    box-sizing: border-box !important;
}

.filt-alist-near .near-ser-list ul li .near-bx .ne-1 img {
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    max-height: none !important;
    object-fit: cover !important;
    object-position: center !important;
    border-radius: 10px !important;
    border: 1px solid #f0f1f3 !important;
    display: block !important;
}

.filt-alist-near .near-ser-list ul li .near-bx .ne-2 {
    float: none !important;
    flex: 1 1 auto !important;
    width: auto !important;
    min-width: 0 !important;
    padding: 0 !important;
}

.filt-alist-near .near-ser-list ul li .near-bx .ne-3 {
    float: none !important;
    flex: 0 0 auto !important;
    width: auto !important;
}

.filt-alist-near .ne-2 h5 {
    font-size: 13.5px !important;
    font-weight: 600 !important;
    color: #1a2332 !important;
    margin: 0 0 2px !important;
    line-height: 1.3 !important;
}

.filt-alist-near .ne-2 p {
    font-size: 12px !important;
    color: #6b7280 !important;
    margin: 0 !important;
    line-height: 1.3 !important;
}

.filt-alist-near .ne-3 span {
    background: #e8971d !important;
    color: #fff !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    padding: 3px 8px !important;
    border-radius: 6px !important;
    white-space: nowrap;
}

/* --- LHS Ad box --- */
.lhs-ads .ads-box {
    border-radius: 12px !important;
    overflow: hidden !important;
    margin-top: 8px !important;
}

.lhs-ads .ads-box span {
    font-size: 10px !important;
    text-transform: uppercase !important;
    letter-spacing: 1px !important;
    color: #9ca3af !important;
}

/* --- Filter section separators --- */
.filt-com {
    border-bottom: 1px solid #f0f1f3 !important;
    margin: 0 !important;
    padding: 0 !important;
}

.filt-com:last-child {
    border-bottom: none !important;
}

/* ============================================================
   2b. ALL LISTING — LEFT PANEL ONLY (sidebar filters + breadcrumbs)
   ============================================================ */

/* Breadcrumbs & category title — inset from card edge */
.all-listing.all-listing-pg .all-filt .all-list-bre .sec-all-list-bre {
    padding-left: 18px !important;
    padding-right: 18px !important;
    padding-top: 4px !important;
    box-sizing: border-box !important;
}

.all-listing.all-listing-pg .all-filt .all-list-bre ul {
    padding-left: 0 !important;
}

/* Top-rated widget: dark bar — global rule below set .filt-alist-near h4 to dark; restore readable title */
.filt-alist-near .tit {
    background: #20344c !important;
    border-radius: 10px 10px 0 0 !important;
}

.filt-alist-near .tit h4 {
    color: #ffffff !important;
    padding: 14px 18px !important;
    margin: 0 !important;
    border-bottom: none !important;
    font-weight: 600 !important;
    letter-spacing: 0.04em !important;
}

/* Sidebar breathing room */
.all-listing.all-listing-pg .fil-mob-view > .all-filt {
    padding-left: 8px !important;
    padding-right: 8px !important;
    box-sizing: border-box !important;
}

/* Collapsible section headers — obvious click target + hover (JS toggles .collapsed on .filt-com) */
.all-listing.all-listing-pg .all-filt .filt-com > h4 {
    cursor: pointer !important;
    border-radius: 8px !important;
    transition: background 0.15s ease, color 0.15s ease !important;
    user-select: none !important;
}

.all-listing.all-listing-pg .all-filt .filt-com > h4:hover {
    background: #f3f4f6 !important;
    color: #111827 !important;
}

.all-listing.all-listing-pg .all-filt .filt-com.collapsed > h4 {
    background: #f9fafb !important;
}

/* Theme hides real checkboxes & draws via label::before — grp styled inputs conflict → broken boxes.
   Use native inputs here + hide theme pseudo-checkmarks (listing sidebar only). */
.all-listing.all-listing-pg .all-filt .chbox input[type="checkbox"] {
    visibility: visible !important;
    display: block !important;
    opacity: 1 !important;
    position: relative !important;
    float: none !important;
    margin: 0 !important;
    flex-shrink: 0 !important;
    width: 18px !important;
    height: 18px !important;
    border-radius: 5px !important;
}

.all-listing.all-listing-pg .all-filt .chbox label::before,
.all-listing.all-listing-pg .all-filt .chbox label::after {
    display: none !important;
    content: none !important;
    border: none !important;
    opacity: 0 !important;
}

.all-listing.all-listing-pg .all-filt .chbox label {
    padding-left: 10px !important;
    float: none !important;
    width: auto !important;
    max-width: none !important;
    overflow: visible !important;
    white-space: normal !important;
}

/* Ratings: same pattern — show native radio, hide label chrome; keep star icons inside label */
.all-listing.all-listing-pg .all-filt .rbbox input[type="radio"] {
    visibility: visible !important;
    opacity: 1 !important;
    position: relative !important;
    margin: 0 8px 0 0 !important;
    flex-shrink: 0 !important;
}

.all-listing.all-listing-pg .all-filt .rbbox label::before,
.all-listing.all-listing-pg .all-filt .rbbox label::after {
    display: none !important;
    content: none !important;
}

.all-listing.all-listing-pg .all-filt .rbbox label {
    padding-left: 4px !important;
}

.all-listing.all-listing-pg .all-filt .rbbox {
    display: flex !important;
    align-items: center !important;
    flex-wrap: wrap !important;
    gap: 4px !important;
}


/* ============================================================
   3. ALL LISTING PAGE — restore BizBook/theme card layout + wider content
   Previous “premium” overrides (aspect-ratio on .al-img, flex on .pg-pro-buy-cta,
   CSS grid on .all-list-wrapper) fought style.css (.listing-box height 335px,
   absolute .pg-pro-buy-cta, float .all-list-item width 33.333%).
   Removed so grid/list cards and CTAs match the original theme again.

   Below: stretch results area toward viewport edges without changing global .container.
   ============================================================ */

@media (min-width: 992px) {
    .all-listing.all-listing-pg > .container {
        max-width: 100%;
        padding-left: 14px;
        padding-right: 14px;
    }

    .all-listing.all-listing-pg .col-md-9 .inn {
        padding-left: 12px;
        padding-right: 12px;
        margin-left: 12px;
        /* Theme border-left here drew a full-height rule that visually cut through the first column & GR avatar */
        border-left: none !important;
    }

    /* Slightly wider cards: three floats use a tad more than default inner padding alone */
    .all-listing.all-listing-pg .all-list-sh ul.all-list-wrapper {
        margin-left: -6px;
        margin-right: -6px;
    }

    .all-listing.all-listing-pg .all-list-wrapper .all-list-item {
        padding-left: 6px;
        padding-right: 6px;
        box-sizing: border-box;
    }
}

@media (max-width: 991px) {
    .all-listing.all-listing-pg > .container {
        padding-left: 12px;
        padding-right: 12px;
    }

    .all-listing.all-listing-pg .col-md-9 .inn {
        border-left: none !important;
    }
}

/* ---------- Same listing pages: hero ad strip + card media (does not touch header avatar UI) ---------- */
/* Top listing ad: theme used .ads-all-list { display:inline-block } — banner shrank to intrinsic width */
.all-listing.all-listing-pg .ban-ati-com.ads-all-list {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: auto !important;
    margin-right: auto !important;
    box-sizing: border-box !important;
}

.all-listing.all-listing-pg .ban-ati-com.ads-all-list > a {
    display: block !important;
    width: 100% !important;
    line-height: 0;
}

/* Full width of results column; height follows image aspect (728×90 etc.) — no tiny max-height cap */
.all-listing.all-listing-pg .ban-ati-com.ads-all-list img {
    width: 100% !important;
    height: auto !important;
    display: block !important;
    border-radius: 5px !important;
}

.all-listing.all-listing-pg .ban-ati-com.ads-all-list {
    margin-top: 10px !important;
    margin-bottom: 12px !important;
}

/* Card shell — shorter than before: theme .list-con used 130px height + 50px bottom padding = dead air above absolute CTAs */
.all-listing.all-listing-pg .listing-box {
    height: 382px !important;
}

/* Listing cards: uniform thumbnail — taller image strip + icon overlay stays small (fix star UI filling card) */
.all-listing.all-listing-pg .listing-box .al-img {
    position: relative !important;
    height: 250px !important;
    overflow: hidden !important;
    flex-shrink: 0 !important;
}

/* Gradient overlay stays behind thumbs + badges (theme z-index was equal to badges) */
.all-listing.all-listing-pg .listing-box .al-img:before {
    z-index: 1 !important;
}

.all-listing.all-listing-pg .listing-box .al-img > a {
    position: relative !important;
    display: block !important;
    height: 100% !important;
    width: 100% !important;
    z-index: 0 !important;
}

.all-listing.all-listing-pg .listing-box .al-img img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center !important;
    display: block !important;
}

.all-listing.all-listing-pg .listing-box .al-img .list-status {
    position: absolute !important;
    top: 5px !important;
    left: 5px !important;
    right: auto !important;
    max-width: calc(100% - 52px) !important;
    z-index: 3 !important;
    pointer-events: auto !important;
}

/* Lock rating strip + stars — generic .list-rat-all applies huge padding/bg if specificity fails */
.all-listing.all-listing-pg .listing-box .al-img .list-rat-all {
    width: 76px !important;
    max-width: 76px !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    background: #fff2de !important;
    border-radius: 3px !important;
    text-align: center !important;
}

.all-listing.all-listing-pg .listing-box .al-img .list-rat-all .rat {
    width: 76px !important;
    height: 15px !important;
    padding: 2px !important;
    margin: 0 auto !important;
    display: table !important;
    line-height: 15px !important;
}

.all-listing.all-listing-pg .listing-box .al-img .list-rat-all .rat i.material-icons {
    font-size: 14px !important;
    width: 14px !important;
    max-width: 14px !important;
    height: auto !important;
    line-height: 14px !important;
}

.all-listing.all-listing-pg .listing-box .al-img .li-veri img {
    width: 20px !important;
    height: 20px !important;
    max-width: 20px !important;
    max-height: 20px !important;
}

/* Like / heart wrapper — theme uses <i> inside .enq-sav */
.all-listing.all-listing-pg .listing-box .al-img .enq-sav i.material-icons {
    font-size: 18px !important;
    line-height: 18px !important;
}

.all-listing.all-listing-pg .listing-box .al-img .open-stat {
    font-size: 11px !important;
    padding: 2px 8px !important;
}

/* Circular profile / logo badge straddling image + text — keep above section border & overlays */
.all-listing.all-listing-pg .listing-box .list-con {
    position: relative !important;
    z-index: 2 !important;
    /* Theme: height 130px + padding 20px 20px 50px — bottom padding was empty space above slide-up CTAs */
    height: auto !important;
    min-height: 0 !important;
    max-height: 92px !important;
    padding: 8px 12px 10px !important;
    box-sizing: border-box !important;
}

.all-listing.all-listing-pg .listing-box .list-pro {
    z-index: 5 !important;
}

/* Titles: theme pins h4 a at height:40px + overflow hidden — prevent single-line clipping when image was wrong height */
.all-listing.all-listing-pg .listing-box .list-con h4 {
    margin: 0 !important;
    padding: 0 !important;
    min-height: 0 !important;
}

.all-listing.all-listing-pg .listing-box .list-con h4 a {
    height: auto !important;
    max-height: none !important;
    min-height: 0 !important;
    margin-top: 2px !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
    white-space: normal !important;
    word-break: break-word !important;
}

/* Hover: theme jumps to height 200px — that exaggerated the white gap; use a shorter lift */
.all-listing.all-listing-pg .listing-box:hover .list-con {
    margin-top: -38px !important;
    height: 124px !important;
    max-height: 124px !important;
    padding-bottom: 12px !important;
    /* While expanded, stay below slide-up CTAs so list-con cannot cover the strip on pointer hit-tests */
    z-index: 1 !important;
}

/* Slide-up "View Listing" strip */
.all-listing.all-listing-pg .listing-box .pg-pro-buy-cta,
.all-list-sh .listing-box .pg-pro-buy-cta {
    z-index: 12 !important;
    pointer-events: auto !important;
}

.all-listing.all-listing-pg .listing-box:hover .pg-pro-buy-cta,
.all-listing.all-listing-pg .listing-box .pg-pro-buy-cta:hover,
.all-list-sh .listing-box:hover .pg-pro-buy-cta,
.all-list-sh .listing-box .pg-pro-buy-cta:hover {
    bottom: 0 !important;
    z-index: 12 !important;
}

/*
 * Theme .listing-box .quo { margin-bottom: 20px } pushes layout below the strip; combined with
 * overflow:hidden on .listing-box, the pointer can leave the card while aiming at the button —
 * :hover drops and .pg-pro-buy-cta snaps back to bottom:-53px (looks like it “disappears”).
 * Replace external margin with padding inside the absolutely positioned strip.
 */
.all-listing.all-listing-pg .listing-box .pg-pro-buy-cta,
.all-list-sh .listing-box .pg-pro-buy-cta {
    padding-top: 6px !important;
    padding-bottom: 6px !important;
    box-sizing: border-box !important;
    /* Theme uses floats + .quo width calc(100%-40px); second-row 50%/50% buttons misalign — use flex */
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: stretch !important;
    align-content: flex-start !important;
}

.all-listing.all-listing-pg .listing-box .pg-pro-buy-cta > a,
.all-list-sh .listing-box .pg-pro-buy-cta > a {
    float: none !important;
}

/* Full-width primary row; flush to card edges so Call / WhatsApp share one clean 50/50 row below */
.all-listing.all-listing-pg .listing-box .pg-pro-buy-cta a.quo {
    flex: 1 1 100% !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box !important;
}

/* Call / WhatsApp: identical box size (fixed height avoids one label wrapping taller than the other) */
.all-listing.all-listing-pg .listing-box .pg-pro-buy-cta a.cta-buy-now,
.all-listing.all-listing-pg .listing-box .pg-pro-buy-cta a.cta-add-cart {
    flex: 1 1 50% !important;
    width: 50% !important;
    max-width: 50% !important;
    box-sizing: border-box !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    align-self: stretch !important;
    height: 48px !important;
    min-height: 48px !important;
    max-height: 48px !important;
    margin-top: 8px !important;
    padding: 0 6px !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

.all-list-sh .listing-box .pg-pro-buy-cta a.cta-buy-now,
.all-list-sh .listing-box .pg-pro-buy-cta a.cta-add-cart {
    flex: 1 1 50% !important;
    width: 50% !important;
    max-width: 50% !important;
    box-sizing: border-box !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    align-self: stretch !important;
    height: 48px !important;
    min-height: 48px !important;
    max-height: 48px !important;
    margin-top: 0 !important;
    padding: 0 6px !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

.all-listing.all-listing-pg .listing-box .quo,
.all-list-sh .listing-box .quo {
    margin-bottom: 0 !important;
}

/* Preserve theme text block height bucket from style.css (.all-list-sh .list-con height:130px) */

/* View toggle icons */
.vfilter i {
    font-size: 22px !important;
    color: #9ca3af !important;
    cursor: pointer !important;
    padding: 6px !important;
    border-radius: 8px !important;
    transition: all 0.15s ease !important;
}

.vfilter i:hover,
.vfilter i.act {
    color: #e8971d !important;
    background: #fef3e2 !important;
}


/* ============================================================
   4. LISTING DETAIL PAGE — PREMIUM ENHANCEMENTS
   ============================================================ */

/* --- Quick-link tab bar (About | Services | Location etc.) --- */
.v3-list-ql {
    background: #fff !important;
    border-bottom: 1px solid #f0f1f3 !important;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04) !important;
}

.v3-list-ql-inn ul {
    display: flex !important;
    gap: 0 !important;
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.v3-list-ql-inn ul li a {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    padding: 14px 22px !important;
    font-size: 13.5px !important;
    font-weight: 600 !important;
    color: #6b7280 !important;
    text-decoration: none !important;
    border-bottom: 2px solid transparent !important;
    transition: all 0.2s ease !important;
    white-space: nowrap;
}

.v3-list-ql-inn ul li.active a,
.v3-list-ql-inn ul li a:hover {
    color: #e8971d !important;
    border-bottom-color: #e8971d !important;
}

.v3-list-ql-inn ul li a i {
    font-size: 18px !important;
}

/* --- Content section cards --- */
.pglist-bg,
.pglist-p-com {
    background: #fff !important;
    border-radius: 16px !important;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.05) !important;
    margin-bottom: 20px !important;
    border: 1px solid #f0f1f3 !important;
    overflow: hidden !important;
}

/* Section headings inside detail page */
.pglist-p-com-ti h3 {
    font-size: 17px !important;
    font-weight: 700 !important;
    color: #1a2332 !important;
    padding: 20px 24px 0 !important;
    margin: 0 !important;
    line-height: 1.35 !important;
}

.pglist-p-com-ti h3 span {
    color: #e8971d !important;
}

/* Inner content spacing */
.list-pg-inn-sp {
    padding: 16px 24px 24px !important;
}

/* About description text */
.list-pg-inn-abo p {
    font-size: 15px !important;
    line-height: 1.75 !important;
    color: #374151 !important;
}

/* --- Right sidebar cards ---
   Multiple stacked cards; never sticky — avoids overlap while scrolling. */
.list-pg-rt.col-md-4,
.list-pg-rt {
    position: relative !important;
}

.list-pg-rt > .pglist-bg,
.list-pg-rt > .pglist-p3,
.list-pg-rt > [class*="pglist"] {
    border-radius: 16px !important;
    overflow: hidden !important;
    position: relative !important;
    top: auto !important;
}

.pg-list-ban-info-23 {
    text-align: center !important;
}

.pg-list-1-pro img {
    width: 100% !important;
    max-height: 200px !important;
    object-fit: cover !important;
}

.pg-list-1-pro .stat {
    position: absolute !important;
    bottom: -12px !important;
    right: 16px !important;
    background: #10b981 !important;
    color: #fff !important;
    width: 28px !important;
    height: 28px !important;
    border-radius: 50% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-shadow: 0 2px 6px rgba(16, 185, 129, 0.3) !important;
}

.pg-list-1-pro .stat i {
    font-size: 16px !important;
}

/* Business name on detail page */
.pg-list-1-left h1 {
    font-size: 20px !important;
    font-weight: 700 !important;
    color: #1a2332 !important;
    padding: 16px 20px 4px !important;
    margin: 0 !important;
}

/* Contact info in sidebar */
.pg-list-1-left ul li {
    padding: 8px 20px !important;
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    font-size: 13.5px !important;
    color: #374151 !important;
    border-bottom: 1px solid #f5f5f5 !important;
}

.pg-list-1-left ul li i {
    color: #e8971d !important;
    font-size: 18px !important;
}

.pg-list-1-left ul li a {
    color: #374151 !important;
    text-decoration: none !important;
    transition: color 0.15s ease;
}

.pg-list-1-left ul li a:hover {
    color: #e8971d !important;
}

/* CTA buttons in detail sidebar */
.pg-list-1-left .cta-buy-now,
.list-fix-btn span {
    background: linear-gradient(135deg, #e8971d 0%, #d4800a 100%) !important;
    color: #fff !important;
    padding: 12px 24px !important;
    border-radius: 10px !important;
    font-weight: 650 !important;
    font-size: 14px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    cursor: pointer !important;
    transition: all 0.2s ease !important;
    border: none !important;
    text-decoration: none !important;
    width: calc(100% - 40px) !important;
    margin: 12px 20px !important;
    text-align: center !important;
}

.pg-list-1-left .cta-buy-now:hover,
.list-fix-btn span:hover {
    box-shadow: 0 4px 16px rgba(232, 151, 29, 0.35) !important;
    transform: translateY(-1px) !important;
}

/* --- Services offered (listing-details) ---
   OLD: nested div.row > ul.row — ul had no col-* so flex shrank it to a hairline.
   NOW: single .row.row-cols-* > .col (listing-details.php). Ensure card + overlay. */

.list-pg-lt .pg-list-ser.row {
    width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

.list-pg-lt .pg-list-ser.row > .col {
    position: relative !important;
    min-width: 0 !important;
}

.list-pg-lt .pg-list-ser-p1 {
    height: 150px !important;
    border-radius: 10px !important;
}

.list-pg-lt .pg-list-ser-p1 img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    border-radius: 10px !important;
}

.list-pg-lt .pg-list-ser-p2 {
    position: absolute !important;
    bottom: 12px !important;
    left: 0 !important;
    right: 0 !important;
    width: 92% !important;
    margin: 0 auto !important;
    padding: 8px !important;
    z-index: 2 !important;
}

.list-pg-lt .pg-list-ser-p2 h4 {
    font-size: 14px !important;
    font-weight: 600 !important;
    color: #fff !important;
    text-align: center !important;
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.65) !important;
}

/* --- Service areas tags --- */
.pg-list-ser-area span {
    display: inline-block !important;
    background: #fef3e2 !important;
    color: #92400e !important;
    padding: 5px 14px !important;
    border-radius: 20px !important;
    font-size: 12.5px !important;
    font-weight: 550 !important;
    margin: 0 6px 8px 0 !important;
}

/* --- Review section --- */
.list-pg-write-rev {
    background: #fafbfc !important;
    border-radius: 12px !important;
    padding: 24px !important;
}

.list-pg-write-rev input,
.list-pg-write-rev textarea {
    border: 1px solid #e2e5ea !important;
    border-radius: 10px !important;
    padding: 10px 14px !important;
    font-size: 14px !important;
    transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
}

.list-pg-write-rev input:focus,
.list-pg-write-rev textarea:focus {
    border-color: #e8971d !important;
    box-shadow: 0 0 0 3px rgba(232, 151, 29, 0.1) !important;
    outline: none !important;
}

/* --- Gallery slider on detail page --- */
.list-ban-sli,
.news-hom-ban-sli.list-ban-sli {
    border-radius: 0 !important;
    overflow: hidden !important;
}

.list-ban-sli .im img {
    width: 100% !important;
    height: 380px !important;
    object-fit: cover !important;
}

/* --- Google Map container --- */
.list-pg-map {
    border-radius: 12px !important;
    overflow: hidden !important;
}

.list-pg-map iframe {
    border-radius: 12px !important;
    width: 100% !important;
}

/* --- Related listings at bottom --- */
.rel-list .listing-box {
    border-radius: 14px !important;
}

/* --- Share button --- */
.list-sh .share-new {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    padding: 10px 20px !important;
    background: #f3f4f6 !important;
    color: #374151 !important;
    border-radius: 10px !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    transition: all 0.15s ease !important;
}

.list-sh .share-new:hover {
    background: #e5e7eb !important;
}

.list-sh .share-new i {
    font-size: 18px !important;
}


/* ============================================================
   5. FOOTER CLEANUP & ENHANCEMENTS
   ============================================================ */

/* --- Footer support bar --- */
.foot-supp h2 {
    font-size: 14px !important;
    font-weight: 500 !important;
    color: rgba(255, 255, 255, 0.85) !important;
    letter-spacing: 0.3px !important;
}

.foot-supp h2 span {
    font-weight: 700 !important;
    color: #fff !important;
}

/* --- Footer links section --- */
.wed-foot-link h4 {
    font-size: 13px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 1px !important;
    color: #fff !important;
    margin-bottom: 16px !important;
    padding-bottom: 10px !important;
    border-bottom: 2px solid #e8971d !important;
    display: inline-block;
}

.wed-foot-link ul li {
    margin-bottom: 8px !important;
}

.wed-foot-link ul li a {
    font-size: 13.5px !important;
    color: rgba(255, 255, 255, 0.7) !important;
    text-decoration: none !important;
    transition: all 0.15s ease !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
}

.wed-foot-link ul li a:hover {
    color: #e8971d !important;
    transform: translateX(3px) !important;
}

/* --- Social media icons --- */
.fot-soc ul {
    display: flex !important;
    gap: 10px !important;
    flex-wrap: wrap !important;
}

.fot-soc ul li a {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 40px !important;
    height: 40px !important;
    background: rgba(255, 255, 255, 0.1) !important;
    border-radius: 10px !important;
    transition: all 0.2s ease !important;
}

.fot-soc ul li a:hover {
    background: #e8971d !important;
    transform: translateY(-2px) !important;
}

/* Inline SVG icons (footer.php) — no external PNGs required */
.fot-soc ul li a img,
.fot-soc ul li a .fot-soc__icon {
    width: 22px !important;
    height: 22px !important;
    max-width: 100% !important;
    max-height: 100% !important;
    flex-shrink: 0 !important;
    display: block !important;
    color: #fff !important;
    filter: none !important;
}

.fot-soc ul li a img {
    object-fit: contain !important;
}

/* --- Popular tags --- */
.wed-foot-link-pop ul {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
}

.wed-foot-link-pop ul li a {
    display: inline-block !important;
    background: rgba(255, 255, 255, 0.08) !important;
    color: rgba(255, 255, 255, 0.75) !important;
    padding: 5px 14px !important;
    border-radius: 20px !important;
    font-size: 12.5px !important;
    font-weight: 500 !important;
    text-decoration: none !important;
    border: 1px solid rgba(255, 255, 255, 0.12) !important;
    transition: all 0.2s ease !important;
}

.wed-foot-link-pop ul li a:hover {
    background: #e8971d !important;
    border-color: #e8971d !important;
    color: #fff !important;
}

/* --- Copyright bar --- */
.cr p {
    font-size: 13px !important;
    color: rgba(255, 255, 255, 0.5) !important;
    letter-spacing: 0.3px !important;
}

.cr p a {
    color: #e8971d !important;
    font-weight: 600 !important;
    text-decoration: none !important;
}

/* --- Get in touch section --- */
.wed-foot-link-1 p {
    font-size: 13.5px !important;
    color: rgba(255, 255, 255, 0.7) !important;
    line-height: 1.6 !important;
    margin-bottom: 6px !important;
}

.wed-foot-link-1 a {
    color: rgba(255, 255, 255, 0.75) !important;
    text-decoration: none !important;
    transition: color 0.15s ease !important;
}

.wed-foot-link-1 a:hover {
    color: #e8971d !important;
}


/* ============================================================
   6. GLOBAL POLISH & REFINEMENTS
   ============================================================ */

/* --- Back to top button --- */
.grp-back-to-top {
    position: fixed;
    bottom: 24px;
    right: 80px;
    width: 44px;
    height: 44px;
    background: #1a2332;
    color: #fff;
    border: none;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s ease;
    z-index: 999;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.15);
}

.grp-back-to-top.visible {
    opacity: 1;
    visibility: visible;
}

.grp-back-to-top:hover {
    background: #e8971d;
    transform: translateY(-2px);
}

.grp-back-to-top i {
    font-size: 22px;
}

/* --- Breadcrumbs refinement --- */
.eve-bred-crum ul,
.all-list-bre ul {
    display: flex !important;
    align-items: center !important;
    gap: 4px !important;
    flex-wrap: wrap !important;
    list-style: none !important;
    padding: 12px 0 !important;
}

.eve-bred-crum ul li a,
.all-list-bre ul li a {
    font-size: 13px !important;
    color: #6b7280 !important;
    text-decoration: none !important;
    transition: color 0.15s ease;
}

.eve-bred-crum ul li a:hover,
.all-list-bre ul li a:hover {
    color: #e8971d !important;
}

/* --- Mobile filter button --- */
.fil-mob h4 {
    background: #1a2332 !important;
    color: #fff !important;
    padding: 12px 20px !important;
    border-radius: 10px !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    cursor: pointer !important;
    transition: background 0.2s ease !important;
}

.fil-mob h4:hover {
    background: #e8971d !important;
}

/* --- Ad banners --- */
.ban-ati-com {
    border-radius: 12px !important;
    overflow: hidden !important;
    margin: 16px 0 !important;
}

.ban-ati-com span {
    font-size: 9px !important;
    text-transform: uppercase !important;
    letter-spacing: 1.5px !important;
    color: #9ca3af !important;
    display: block !important;
    text-align: right !important;
    padding: 2px 8px !important;
}

/* --- Smooth scrolling --- */
html {
    scroll-behavior: smooth;
}

/* --- Selection colour --- */
::selection {
    background: rgba(232, 151, 29, 0.15);
    color: #1a2332;
}

/* --- Focus visible for accessibility --- */
:focus-visible {
    outline: 2px solid #e8971d !important;
    outline-offset: 2px !important;
}

/* --- Mobile bottom nav refinement --- */
.fqui-menu ul {
    display: flex !important;
    overflow-x: auto !important;
    gap: 0 !important;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}

.fqui-menu ul::-webkit-scrollbar {
    display: none;
}

.fqui-menu ul li a {
    font-size: 11px !important;
    font-weight: 600 !important;
    color: #374151 !important;
    white-space: nowrap !important;
}

.fqui-menu ul li a img {
    width: 20px !important;
    height: 20px !important;
}


/* ============================================================
   7. NEWSLETTER SIGNUP (added to footer)
   ============================================================ */

.grp-newsletter {
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 14px;
    padding: 28px;
    margin-top: 24px;
    text-align: center;
}

.grp-newsletter h4 {
    font-size: 16px !important;
    font-weight: 700 !important;
    color: #fff !important;
    margin-bottom: 6px !important;
    border-bottom: none !important;
    display: block !important;
    padding: 0 !important;
}

.grp-newsletter p {
    font-size: 13px;
    color: rgba(255, 255, 255, 0.6);
    margin-bottom: 16px;
}

.grp-newsletter-form {
    display: flex;
    gap: 8px;
    max-width: 440px;
    margin: 0 auto;
}

.grp-newsletter-form input[type="email"] {
    flex: 1;
    padding: 11px 16px;
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.08);
    color: #fff;
    font-size: 14px;
}

.grp-newsletter-form input[type="email"]::placeholder {
    color: rgba(255, 255, 255, 0.4);
}

.grp-newsletter-form input[type="email"]:focus {
    outline: none;
    border-color: #e8971d;
    background: rgba(255, 255, 255, 0.12);
}

.grp-newsletter-form button {
    background: #e8971d;
    color: #fff;
    padding: 11px 24px;
    border: none;
    border-radius: 10px;
    font-weight: 650;
    font-size: 13px;
    cursor: pointer;
    transition: all 0.2s ease;
    white-space: nowrap;
}

.grp-newsletter-form button:hover {
    background: #d4800a;
    box-shadow: 0 2px 8px rgba(232, 151, 29, 0.3);
}

@media (max-width: 576px) {
    .grp-newsletter-form {
        flex-direction: column;
    }
}

/* ============================================================
   8. AVATAR / NOTIFICATION DRAWERS (must sit above back-to-top, z-index 999)
   Panels are appendTo(body) in custom.js — reinforce stacking here (loads after style.css).
   ============================================================ */
.db-menu,
.top-noti-win {
    z-index: 100060 !important;
    pointer-events: auto !important;
}
/* Flush to viewport when open — base theme used right:-14px which clipped the close control */
.db-menu.act,
.top-noti-win.act {
    right: env(safe-area-inset-right, 0px) !important;
}
.grp-back-to-top {
    z-index: 998 !important;
}

/* Dim overlay must not steal clicks when closed (opacity 0 still hits tests; origin-right + scale(0) sits on avatar).
   When open, restore so backdrop closes the drawer. */
span.bg:not(.act),
.bg:not(.act) {
    pointer-events: none !important;
}
.bg.act {
    pointer-events: auto !important;
}
