/* =========================================================
   DZ PREMIUM CLEAN COMMERCE - STEP 4 / V4.3
   PRODUCT CARDS + CATEGORY / SEARCH / LISTING PAGES
   Scoped by body.dz-product-list-v43
   ========================================================= */

body.dz-product-list-v43 {
    --dz-list-bg: #f8fafc;
    --dz-list-card: #ffffff;
    --dz-list-border: #e5e7eb;
    --dz-list-border-strong: #d7dee8;
    --dz-list-text: #111827;
    --dz-list-muted: #64748b;
    --dz-list-radius: 14px;
    --dz-list-shadow: 0 4px 16px rgba(15,23,42,.045);
    --dz-list-shadow-hover: 0 12px 28px rgba(15,23,42,.085);
    background: var(--dz-list-bg);
}

body.dz-product-list-v43 main {
    background: var(--dz-list-bg);
}

/* ---------- Page title / breadcrumb ---------- */
body.dz-product-list-v43 .breadcrumb,
body.dz-product-list-v43 .breadcrumb-wrapper {
    font-size: 12.5px;
    color: var(--dz-list-muted);
}

body.dz-product-list-v43 h1,
body.dz-product-list-v43 .page-title,
body.dz-product-list-v43 .product-list-title {
    color: var(--dz-list-text);
    font-weight: 760;
    letter-spacing: -.025em;
}

/* ---------- Listing toolbar ---------- */
body.dz-product-list-v43 .product-list-header,
body.dz-product-list-v43 .product-list-toolbar,
body.dz-product-list-v43 .products-toolbar,
body.dz-product-list-v43 .sorting-filter,
body.dz-product-list-v43 .filter-sort-wrap {
    background: #fff;
    border: 1px solid var(--dz-list-border);
    border-radius: 12px;
    padding: 10px 12px;
    box-shadow: 0 1px 2px rgba(15,23,42,.025);
}

body.dz-product-list-v43 select,
body.dz-product-list-v43 .form-select {
    min-height: 40px;
    border-color: var(--dz-list-border-strong);
    border-radius: 9px;
    font-size: 13px;
}

/* ---------- Desktop filter sidebar ---------- */
@media (min-width: 992px) {
    body.dz-product-list-v43 .filter-toggle-aside {
        background: #fff;
        border: 1px solid var(--dz-list-border);
        border-radius: 14px;
        padding: 14px;
        box-shadow: var(--dz-list-shadow);
        max-height: calc(100vh - 155px) !important;
    }

    body.dz-product-list-v43 .filter-toggle-aside > * + * {
        border-top: 1px solid var(--dz-list-border);
        padding-top: 14px;
        margin-top: 14px;
    }
}

body.dz-product-list-v43 .filter-toggle-aside h4,
body.dz-product-list-v43 .filter-toggle-aside h5,
body.dz-product-list-v43 .filter-toggle-aside h6,
body.dz-product-list-v43 .filter-title {
    font-weight: 720;
    color: var(--dz-list-text);
    letter-spacing: -.015em;
}

/* Category / brand scroll areas */
body.dz-product-list-v43 .products_aside_categories,
body.dz-product-list-v43 .products_aside_brands {
    max-height: 20rem;
    padding-inline-end: 5px;
}

body.dz-product-list-v43 .products_aside_categories::-webkit-scrollbar,
body.dz-product-list-v43 .products_aside_brands::-webkit-scrollbar,
body.dz-product-list-v43 .filter-toggle-aside::-webkit-scrollbar {
    width: 4px;
}

body.dz-product-list-v43 .products_aside_categories::-webkit-scrollbar-thumb,
body.dz-product-list-v43 .products_aside_brands::-webkit-scrollbar-thumb,
body.dz-product-list-v43 .filter-toggle-aside::-webkit-scrollbar-thumb {
    background: #cbd5e1;
    border-radius: 999px;
}

/* Filter rows */
body.dz-product-list-v43 .common-nav .custom-checkbox label,
body.dz-product-list-v43 .custom_common_nav label,
body.dz-product-list-v43 .filter-toggle-aside label {
    color: #475569;
    font-size: 13px;
    line-height: 1.35;
}

body.dz-product-list-v43 .common-nav .custom-checkbox {
    padding-block: 4px;
}

body.dz-product-list-v43 .common-nav .custom-checkbox input[type="checkbox"],
body.dz-product-list-v43 .filter-toggle-aside input[type="checkbox"],
body.dz-product-list-v43 .filter-toggle-aside input[type="radio"] {
    accent-color: var(--bs-primary);
}

/* Sort/filter dropdown choices */
body.dz-product-list-v43 .filter-on-product-filter-change,
body.dz-product-list-v43 .product-list-filter-on-sort-by {
    border-radius: 8px;
    overflow: hidden;
    transition:
        background-color 160ms ease,
        color 160ms ease;
}

body.dz-product-list-v43 .filter-on-product-filter-change label,
body.dz-product-list-v43 .product-list-filter-on-sort-by label {
    padding: .65rem .9rem !important;
    font-size: 13px;
}

body.dz-product-list-v43 .filter-on-product-filter-change:hover,
body.dz-product-list-v43 .product-list-filter-on-sort-by:hover {
    background: rgba(var(--bs-primary-rgb), .065);
}

/* Price inputs */
body.dz-product-list-v43 .filter-toggle-aside input[type="number"],
body.dz-product-list-v43 .filter-toggle-aside input[type="text"] {
    min-height: 38px;
    border: 1px solid var(--dz-list-border-strong);
    border-radius: 9px;
    background: #fff;
    font-size: 13px;
}

/* ---------- Product grid spacing ---------- */
/*
 * IMPORTANT: no --minWidth / --maxWidth overrides here.
 * User's existing mobile 82.25% card width remains authoritative.
 */
body.dz-product-list-v43 .auto-col {
    gap: 16px !important;
    align-items: stretch;
}

/* ---------- Product card ---------- */
body.dz-product-list-v43 .product,
body.dz-product-list-v43 .store-product {
    height: 100%;
    background: var(--dz-list-card);
    border: 1px solid var(--dz-list-border) !important;
    border-radius: var(--dz-list-radius) !important;
    overflow: hidden;
    box-shadow: 0 1px 2px rgba(15,23,42,.025);
    transition:
        transform 180ms ease,
        box-shadow 180ms ease,
        border-color 180ms ease;
}

@media (hover: hover) and (pointer: fine) {
    body.dz-product-list-v43 .product:hover,
    body.dz-product-list-v43 .store-product:hover {
        transform: translateY(-4px);
        border-color: rgba(var(--bs-primary-rgb), .22) !important;
        box-shadow: var(--dz-list-shadow-hover);
    }
}

/* Product image: professional 1:1 white stage */
body.dz-product-list-v43 .product__top,
body.dz-product-list-v43 .store-product__top {
    position: relative;
    background: #fff;
    overflow: hidden;
}

body.dz-product-list-v43 .product__top:not([style*="aspect-ratio"]),
body.dz-product-list-v43 .store-product__top:not([style*="aspect-ratio"]) {
    aspect-ratio: 1 / 1;
}

body.dz-product-list-v43 .product__thumbnail,
body.dz-product-list-v43 .store-product__thumbnail {
    width: 100%;
    height: 100%;
    background: #fff;
}

body.dz-product-list-v43 .product__thumbnail img,
body.dz-product-list-v43 .store-product__thumbnail img,
body.dz-product-list-v43 .product__top img,
body.dz-product-list-v43 .store-product__top img {
    object-fit: contain !important;
    object-position: center !important;
}

/* Discount badge */
body.dz-product-list-v43 .product__discount-badge {
    top: 10px;
    inset-inline-start: 10px;
    min-height: 26px;
    padding: 5px 8px;
    border-radius: 7px;
    font-size: 11px;
    font-weight: 750;
    line-height: 1;
    box-shadow: 0 3px 10px rgba(15,23,42,.09);
}

/* Wishlist / compare actions */
body.dz-product-list-v43 .product__actions {
    top: 10px;
    inset-inline-end: 10px;
}

body.dz-product-list-v43 .product__actions a,
body.dz-product-list-v43 .btn-wishlist,
body.dz-product-list-v43 .btn-compare {
    border: 1px solid var(--dz-list-border) !important;
    background: rgba(255,255,255,.94);
    border-radius: 9px !important;
    box-shadow: 0 4px 12px rgba(15,23,42,.07);
    transition:
        background-color 160ms ease,
        color 160ms ease,
        border-color 160ms ease,
        transform 160ms ease;
}

@media (hover: hover) and (pointer: fine) {
    body.dz-product-list-v43 .product__actions a:hover,
    body.dz-product-list-v43 .btn-wishlist:hover,
    body.dz-product-list-v43 .btn-compare:hover {
        transform: translateY(-1px);
        border-color: rgba(var(--bs-primary-rgb), .28) !important;
    }
}

/* Card content */
body.dz-product-list-v43 .product__summary,
body.dz-product-list-v43 .store-product__summary {
    width: 100%;
    min-width: 0;
    padding: 11px 12px 13px !important;
}

body.dz-product-list-v43 .product__title,
body.dz-product-list-v43 .product__title a,
body.dz-product-list-v43 .store-product__title,
body.dz-product-list-v43 .store-product__title a {
    color: var(--dz-list-text);
    font-size: 13.5px;
    font-weight: 630;
    line-height: 1.38;
    text-decoration: none;
}

body.dz-product-list-v43 .product__price {
    margin-top: 5px;
}

/* Rating */
body.dz-product-list-v43 .rating-stars,
body.dz-product-list-v43 .product__rating {
    font-size: 11px;
}

/* Sold out / notify overlay */
body.dz-product-list-v43 .product__notify {
    background: rgba(15,23,42,.78);
    color: #fff;
    font-size: 11px;
    font-weight: 650;
    backdrop-filter: blur(2px);
}

/* Add-to-cart / quick buttons */
body.dz-product-list-v43 .product .btn-primary,
body.dz-product-list-v43 .store-product .btn-primary {
    border-radius: 9px !important;
    font-weight: 700;
    min-height: 38px;
}

/* ---------- Result count / empty state ---------- */
body.dz-product-list-v43 .product-count,
body.dz-product-list-v43 .products-count,
body.dz-product-list-v43 .product-list-count {
    color: var(--dz-list-muted);
    font-size: 12.5px;
}

body.dz-product-list-v43 .empty-state,
body.dz-product-list-v43 .no-product-found {
    background: #fff;
    border: 1px solid var(--dz-list-border);
    border-radius: 14px;
    padding: 28px;
}

/* ---------- Pagination ---------- */
body.dz-product-list-v43 .pagination {
    gap: 5px;
    justify-content: center;
    margin-top: 22px;
}

body.dz-product-list-v43 .pagination .page-link,
body.dz-product-list-v43 .pagination .page-item label {
    min-width: 38px;
    height: 38px;
    padding: 0 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--dz-list-border) !important;
    border-radius: 9px !important;
    background: #fff;
    color: #475569;
    font-size: 12.5px;
    font-weight: 650;
    box-shadow: none !important;
}

body.dz-product-list-v43 .pagination .page-item.active .page-link,
body.dz-product-list-v43 .pagination .page-item.active label,
body.dz-product-list-v43 .pagination .page-link:hover {
    background: var(--bs-primary) !important;
    border-color: var(--bs-primary) !important;
    color: #fff !important;
}

/* ---------- Mobile filter / browsing ---------- */
@media (max-width: 991.98px) {
    body.dz-product-list-v43 .filter-toggle-aside,
    body.dz-product-list-v43 .offcanvas.filter-toggle-aside,
    body.dz-product-list-v43 .aside.filter-toggle-aside {
        background: #fff;
        border: 0;
        border-radius: 0;
        box-shadow: 0 10px 36px rgba(15,23,42,.14);
    }

    body.dz-product-list-v43 .filter-toggle-aside .btn-primary {
        border-radius: 9px !important;
    }
}

@media (max-width: 767.98px) {
    body.dz-product-list-v43 .auto-col {
        gap: 14px !important;
    }

    /*
     * Preserve existing .mobile_two_items 82.25% width.
     * Only surface/card appearance changes here.
     */
    body.dz-product-list-v43 .product,
    body.dz-product-list-v43 .store-product {
        border-radius: 12px !important;
    }

    body.dz-product-list-v43 .product__summary,
    body.dz-product-list-v43 .store-product__summary {
        padding: 10px 11px 12px !important;
    }

    body.dz-product-list-v43 .product__title,
    body.dz-product-list-v43 .product__title a,
    body.dz-product-list-v43 .store-product__title,
    body.dz-product-list-v43 .store-product__title a {
        font-size: 13px;
    }

    body.dz-product-list-v43 .pagination .page-link,
    body.dz-product-list-v43 .pagination .page-item label {
        min-width: 35px;
        height: 35px;
    }
}

/* ---------- AJAX loading polish ---------- */
body.dz-product-list-v43 .loading,
body.dz-product-list-v43 .product-list-loading,
body.dz-product-list-v43 .ajax-loading {
    opacity: .62;
    transition: opacity 160ms ease;
}

/* ---------- Dark mode ---------- */
[theme="dark"] body.dz-product-list-v43 {
    --dz-list-bg: #0f1115;
    --dz-list-card: #141414;
    --dz-list-border: #2a2f37;
    --dz-list-border-strong: #343a44;
    --dz-list-text: #f3f4f6;
    --dz-list-muted: #a6adbb;
}

[theme="dark"] body.dz-product-list-v43 main,
[theme="dark"] body.dz-product-list-v43 .filter-toggle-aside,
[theme="dark"] body.dz-product-list-v43 .product,
[theme="dark"] body.dz-product-list-v43 .store-product,
[theme="dark"] body.dz-product-list-v43 .product-list-header,
[theme="dark"] body.dz-product-list-v43 .product-list-toolbar,
[theme="dark"] body.dz-product-list-v43 .products-toolbar,
[theme="dark"] body.dz-product-list-v43 .sorting-filter,
[theme="dark"] body.dz-product-list-v43 .filter-sort-wrap,
[theme="dark"] body.dz-product-list-v43 .pagination .page-link,
[theme="dark"] body.dz-product-list-v43 .pagination .page-item label {
    background: var(--dz-list-card) !important;
    border-color: var(--dz-list-border) !important;
}

[theme="dark"] body.dz-product-list-v43 .product__actions a,
[theme="dark"] body.dz-product-list-v43 .btn-wishlist,
[theme="dark"] body.dz-product-list-v43 .btn-compare {
    background: rgba(20,20,20,.94);
}
