/* =================================================================
   BP Shop Core – Shop Page CSS  v1.2
   All selectors prefixed with body.bpsc-shop-page for max specificity
   to fully override any WooCommerce / theme styles.
================================================================= */

@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap');

/* ── CSS VARIABLES ────────────────────────────────────────────── */
:root {
    --shop-primary:       #C5A021;
    --shop-primary-dark:  #8B6B13;
    --shop-primary-light: rgba(197,160,33,0.08);
    --shop-accent:        #F9D423;
    --shop-text:          #222222;
    --shop-muted:         #888888;
    --shop-border:        #d4d4d4;
    --shop-bg:            #ffffff;
    --shop-white:         #ffffff;
    --shop-card-shadow:   none;
    --shop-card-hover:    none;
    --shop-radius:        4px;
    --shop-radius-sm:     4px;
    --shop-font:          var(--bpsc-font-family, 'Poppins', sans-serif);
    --shop-sidebar-w:     260px;
    --shop-transition:    0.2s ease;
    --shop-star:          #D4AF37;
    --shop-price:         #8B6B13;
}

/* ═══════════════════════════════════════════════════════════════
   GLOBAL RESET — scoped to our shop page body class
═══════════════════════════════════════════════════════════════ */
body.bpsc-shop-page {
    background: var(--shop-bg) !important;
    font-family: var(--shop-font) !important;
    color: var(--shop-text) !important;
}

body.bpsc-shop-page.bpsc-dark-mode {
    --shop-bg:     #1a1a2e;
    --shop-white:  #242438;
    --shop-text:   #f0f0f5;
    --shop-muted:  #a0a0b8;
    --shop-border: #3a3a52;
}

body.bpsc-shop-page *,
body.bpsc-shop-page *::before,
body.bpsc-shop-page *::after {
    box-sizing: border-box;
}

/* Hide any default WooCommerce content wrappers that may still render */
body.bpsc-shop-page .woocommerce-notices-wrapper:empty { display: none; }
body.bpsc-shop-page .site-main > .woocommerce { display: none !important; }

/* Hide theme-specific default breadcrumbs and archive headers to prevent duplication */
body.bpsc-shop-page .woocommerce-products-header,
body.bpsc-shop-page .woocommerce-breadcrumb,
body.bpsc-shop-page .page-header:not(#bpsc-header-wrapper *),
body.bpsc-shop-page .entry-header:not(#bpsc-header-wrapper *),
body.bpsc-shop-page .storefront-breadcrumb,
body.bpsc-shop-page .ast-archive-description,
body.bpsc-shop-page .oceanwp-page-header,
body.bpsc-shop-page .entry-title {
    display: none !important;
}


/* ── PAGE WRAPPER SPACING ─────────────────────────────────────── */
body.bpsc-shop-page #bpsc-shop-wrap {
    padding-top: 40px !important;
    padding-bottom: 72px !important;
}

/* ── CONTAINER ────────────────────────────────────────────────── */
body.bpsc-shop-page #bpsc-shop-wrap .bpsc-container {
    max-width: var(--bpsc-container-mw, 1700px) !important;
    margin: 0 auto !important;
    padding: 0 24px !important;
    width: 100% !important;
}

/* ═══════════════════════════════════════════════════════════════
   HERO / BREADCRUMB BAR
═══════════════════════════════════════════════════════════════ */
body.bpsc-shop-page .bpsc-shop-hero {
    background: #fff !important;
    border-bottom: 1px solid var(--shop-border);
    padding: 16px 0;
}

body.bpsc-shop-page .bpsc-shop-hero--hidden {
    display: none !important;
}

body.bpsc-shop-page .bpsc-shop-hero .bpsc-container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 8px;
}

body.bpsc-shop-page .bpsc-shop-title {
    font-size: 22px !important;
    font-weight: 700 !important;
    color: var(--shop-text) !important;
    margin: 0 !important;
    line-height: 1.2 !important;
    font-family: var(--shop-font) !important;
}

body.bpsc-shop-page .bpsc-breadcrumb {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    color: var(--shop-muted);
    font-family: var(--shop-font);
}

body.bpsc-shop-page .bpsc-breadcrumb a {
    color: var(--shop-primary);
    text-decoration: none;
    transition: color var(--shop-transition);
}

body.bpsc-shop-page .bpsc-breadcrumb a:hover { color: var(--shop-primary-dark); }
body.bpsc-shop-page .bpsc-bc-sep { color: #ccc; }

/* ═══════════════════════════════════════════════════════════════
   LAYOUT: SIDEBAR + MAIN
═══════════════════════════════════════════════════════════════ */
body.bpsc-shop-page .bpsc-shop-layout {
    display: grid !important;
    grid-template-columns: var(--shop-sidebar-w) 1fr !important;
    gap: 24px !important;
    align-items: start !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

/* ═══════════════════════════════════════════════════════════════
   SIDEBAR
   ═══════════════════════════════════════════════════════════════ */
body.bpsc-shop-page .bpsc-shop-sidebar {
    position: sticky !important;
    top: calc(var(--bpsc-sticky-offset, 180px) + 12px) !important;
    align-self: start !important;
    z-index: 50 !important;
    background: transparent !important;
    border-radius: 0 !important;
    border: none !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    box-shadow: none !important;
    max-height: calc(100vh - var(--bpsc-sticky-offset, 180px) - 28px) !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 14px !important;
    padding-right: 4px !important;
    padding-bottom: 8px !important;
    overscroll-behavior: contain !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: thin !important;
    scrollbar-color: #c4c4c4 transparent !important;
}

body.bpsc-shop-page .bpsc-shop-sidebar::-webkit-scrollbar {
    width: 5px !important;
}

body.bpsc-shop-page .bpsc-shop-sidebar::-webkit-scrollbar-thumb {
    background: #c4c4c4 !important;
    border-radius: 4px !important;
}

body.bpsc-shop-page .bpsc-shop-sidebar::-webkit-scrollbar-track {
    background: transparent !important;
}

body.bpsc-shop-page .bpsc-sidebar-header {
    display: none !important;
}

/* Hide search – not in reference layout */
body.bpsc-shop-page .bpsc-filter-search {
    display: none !important;
}

body.bpsc-shop-page .bpsc-filter-search-wrap {
    position: relative !important;
    display: flex !important;
    align-items: center !important;
}

body.bpsc-shop-page .bpsc-filter-search-wrap input {
    width: 100% !important;
    padding: 8px 12px 8px 34px !important;
    border: 1px solid #d1d5db !important;
    border-radius: 4px !important;
    font-size: 13px !important;
    font-family: var(--shop-font) !important;
    color: var(--shop-text) !important;
    background: #fff !important;
    outline: none !important;
    transition: border-color var(--shop-transition) !important;
    box-shadow: none !important;
}

body.bpsc-shop-page .bpsc-filter-search-wrap input:focus {
    border-color: var(--shop-primary) !important;
}

body.bpsc-shop-page .bpsc-filter-search-wrap svg {
    position: absolute !important;
    left: 10px !important;
    width: 14px !important;
    height: 14px !important;
}

/* Filter blocks – bordered boxes */
body.bpsc-shop-page .bpsc-filter-block {
    background: var(--shop-white) !important;
    border: 1px solid var(--shop-border) !important;
    border-radius: var(--shop-radius) !important;
    overflow: hidden !important;
    flex-shrink: 0 !important;
}

body.bpsc-shop-page .bpsc-filter-heading {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 12px 14px !important;
    cursor: pointer !important;
    user-select: none !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    color: var(--shop-text) !important;
    background: var(--shop-white) !important;
    border-bottom: 1px solid var(--shop-border) !important;
    font-family: var(--shop-font) !important;
}

body.bpsc-shop-page .bpsc-filter-heading.collapsed {
    border-bottom: none !important;
}

body.bpsc-shop-page .bpsc-toggle-icon {
    font-size: 16px !important;
    line-height: 1 !important;
    color: var(--shop-muted) !important;
    font-weight: 400 !important;
    width: 14px !important;
    text-align: center !important;
}

body.bpsc-shop-page .bpsc-filter-heading:not(.collapsed) .bpsc-toggle-icon::before {
    content: '−' !important;
}

body.bpsc-shop-page .bpsc-filter-heading.collapsed .bpsc-toggle-icon::before {
    content: '+' !important;
}

/* Filter list items */
body.bpsc-shop-page .bpsc-filter-list {
    list-style: none !important;
    margin: 0 !important;
    padding: 4px 0 8px !important;
    max-height: 220px !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    scrollbar-width: thin !important;
}

body.bpsc-shop-page .bpsc-filter-body {
    padding: 4px 0 8px !important;
}

body.bpsc-shop-page .bpsc-filter-label {
    display: flex !important;
    align-items: center !important;
    gap: 9px !important;
    padding: 5px 14px !important;
    cursor: pointer !important;
    user-select: none !important;
}

body.bpsc-shop-page .bpsc-filter-label input[type="checkbox"] {
    position: absolute !important;
    opacity: 0 !important;
    width: 0 !important;
    height: 0 !important;
    pointer-events: none !important;
}

body.bpsc-shop-page .bpsc-filter-checkbox {
    width: 14px !important;
    height: 14px !important;
    border: 1px solid #cccccc !important;
    border-radius: 2px !important;
    flex-shrink: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: all var(--shop-transition) !important;
    background: #fff !important;
    position: relative !important;
}

body.bpsc-shop-page .bpsc-filter-label input:checked ~ .bpsc-filter-checkbox {
    background: var(--shop-primary) !important;
    border-color: var(--shop-primary) !important;
}

body.bpsc-shop-page .bpsc-filter-label input:checked ~ .bpsc-filter-checkbox::after {
    content: '' !important;
    display: block !important;
    width: 8px !important;
    height: 4px !important;
    border-left: 2px solid #fff !important;
    border-bottom: 2px solid #fff !important;
    transform: rotate(-45deg) translate(1px,-1px) !important;
}

body.bpsc-shop-page .bpsc-filter-text {
    font-size: 13px !important;
    color: var(--shop-text) !important;
    flex: 1 !important;
    line-height: 1.3 !important;
    font-family: var(--shop-font) !important;
}

body.bpsc-shop-page .bpsc-filter-count {
    font-size: 12px !important;
    color: var(--shop-muted) !important;
    flex-shrink: 0 !important;
}

/* Highlight / dark mode toggle */
body.bpsc-shop-page .bpsc-dark-mode-row {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 10px 14px 12px !important;
}

body.bpsc-shop-page .bpsc-dark-mode-label {
    font-size: 13px !important;
    color: var(--shop-text) !important;
}

body.bpsc-shop-page .bpsc-dark-toggle {
    background: none !important;
    border: none !important;
    padding: 0 !important;
    cursor: pointer !important;
}

body.bpsc-shop-page .bpsc-dark-toggle-track {
    display: block !important;
    width: 44px !important;
    height: 24px !important;
    background: #222 !important;
    border-radius: 12px !important;
    position: relative !important;
    transition: background var(--shop-transition) !important;
}

body.bpsc-shop-page .bpsc-dark-toggle-thumb {
    position: absolute !important;
    top: 3px !important;
    left: 3px !important;
    width: 18px !important;
    height: 18px !important;
    background: #fff !important;
    border-radius: 50% !important;
    transition: transform var(--shop-transition) !important;
}

body.bpsc-shop-page .bpsc-dark-toggle[aria-pressed="true"] .bpsc-dark-toggle-thumb {
    transform: translateX(20px) !important;
}

/* Subcategories */
body.bpsc-shop-page .bpsc-filter-sub {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 0 0 16px !important;
    display: none !important;
}

body.bpsc-shop-page .bpsc-filter-item.has-children.expanded > .bpsc-filter-sub {
    display: block !important;
}

/* Price Range Slider */
body.bpsc-shop-page .bpsc-price-range-wrap {
    padding: 4px 15px 12px !important;
}

body.bpsc-shop-page .bpsc-price-track {
    position: relative !important;
    height: 4px !important;
    background: #e5e7eb !important;
    border-radius: 2px !important;
    margin: 18px 0 10px !important;
}

body.bpsc-shop-page .bpsc-price-fill {
    position: absolute !important;
    height: 100% !important;
    background: var(--shop-primary) !important;
    border-radius: 2px !important;
    pointer-events: none !important;
}

body.bpsc-shop-page .bpsc-range-input {
    position: absolute !important;
    width: 100% !important;
    height: 4px !important;
    background: transparent !important;
    -webkit-appearance: none !important;
    appearance: none !important;
    pointer-events: none !important;
    top: 0 !important;
    left: 0 !important;
}

body.bpsc-shop-page .bpsc-range-input::-webkit-slider-thumb {
    -webkit-appearance: none !important;
    width: 18px !important;
    height: 18px !important;
    border-radius: 50% !important;
    background: var(--shop-primary) !important;
    border: 2.5px solid #fff !important;
    box-shadow: 0 2px 8px rgba(123,47,190,0.4) !important;
    cursor: pointer !important;
    pointer-events: all !important;
    position: relative !important;
    z-index: 2 !important;
    transition: transform 0.15s !important;
}

body.bpsc-shop-page .bpsc-range-input::-webkit-slider-thumb:hover {
    transform: scale(1.18) !important;
}

body.bpsc-shop-page .bpsc-price-labels {
    display: flex !important;
    justify-content: space-between !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    color: var(--shop-primary) !important;
    margin-top: 6px !important;
    font-family: var(--shop-font) !important;
}

/* Colour Swatches */
body.bpsc-shop-page .bpsc-color-swatches {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    padding: 8px 15px 12px !important;
}

body.bpsc-shop-page .bpsc-swatch-label {
    position: relative !important;
    cursor: pointer !important;
}

body.bpsc-shop-page .bpsc-swatch-label input {
    position: absolute !important;
    opacity: 0 !important;
    width: 0 !important;
    height: 0 !important;
}

body.bpsc-shop-page .bpsc-color-swatch {
    display: block !important;
    width: 24px !important;
    height: 24px !important;
    border-radius: 50% !important;
    border: 2.5px solid transparent !important;
    transition: all var(--shop-transition) !important;
    box-shadow: 0 1px 4px rgba(0,0,0,0.18) !important;
}

body.bpsc-shop-page .bpsc-swatch-label input:checked ~ .bpsc-color-swatch {
    border-color: var(--shop-primary) !important;
    box-shadow: 0 0 0 3px rgba(123,47,190,0.22) !important;
    transform: scale(1.12) !important;
}

/* ═══════════════════════════════════════════════════════════════
   TOOLBAR
═══════════════════════════════════════════════════════════════ */
body.bpsc-shop-page .bpsc-shop-toolbar {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 0 0 14px !important;
    background: transparent !important;
    border: none !important;
    border-bottom: 1px solid var(--shop-border) !important;
    margin-bottom: 18px !important;
    gap: 12px !important;
    flex-wrap: wrap !important;
    box-shadow: none !important;
}

body.bpsc-shop-page .bpsc-toolbar-left {
    display: flex !important;
    align-items: center !important;
    gap: 14px !important;
}

body.bpsc-shop-page .bpsc-toolbar-right {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
}

body.bpsc-shop-page .bpsc-mobile-filter-toggle {
    display: none !important;
    align-items: center !important;
    gap: 6px !important;
    background: var(--shop-primary) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 8px !important;
    padding: 8px 14px !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    cursor: pointer !important;
    font-family: var(--shop-font) !important;
    transition: background var(--shop-transition) !important;
}

body.bpsc-shop-page .bpsc-mobile-filter-toggle svg {
    width: 16px !important;
    height: 16px !important;
}

body.bpsc-shop-page .bpsc-mobile-filter-toggle:hover {
    background: var(--shop-primary-dark) !important;
}

body.bpsc-shop-page .bpsc-results-count {
    font-size: 13px !important;
    color: var(--shop-muted) !important;
    margin: 0 !important;
    font-family: var(--shop-font) !important;
}

body.bpsc-shop-page .bpsc-results-count strong {
    color: var(--shop-text) !important;
    font-weight: 400 !important;
}

/* View Toggle */
body.bpsc-shop-page .bpsc-view-toggle {
    display: flex !important;
    align-items: center !important;
    gap: 0 !important;
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
}

body.bpsc-shop-page .bpsc-view-btn {
    width: 32px !important;
    height: 32px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    border: 1px solid var(--shop-border) !important;
    background: #fff !important;
    border-radius: 0 !important;
    cursor: pointer !important;
    color: var(--shop-muted) !important;
    transition: all var(--shop-transition) !important;
    padding: 0 !important;
    margin-left: -1px !important;
}

body.bpsc-shop-page .bpsc-view-btn:first-child {
    margin-left: 0 !important;
}

body.bpsc-shop-page .bpsc-view-btn svg {
    width: 14px !important;
    height: 14px !important;
}

body.bpsc-shop-page .bpsc-view-btn.active {
    background: var(--shop-primary) !important;
    border-color: var(--shop-primary) !important;
    color: #fff !important;
    z-index: 1 !important;
}

body.bpsc-shop-page .bpsc-view-btn:hover:not(.active) {
    color: var(--shop-primary) !important;
}

/* Sort Select */
body.bpsc-shop-page .bpsc-sort-wrap select {
    padding: 7px 28px 7px 10px !important;
    border: 1px solid var(--shop-border) !important;
    border-radius: 0 !important;
    font-size: 13px !important;
    font-family: var(--shop-font) !important;
    color: var(--shop-text) !important;
    background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") no-repeat right 8px center / 15px !important;
    -webkit-appearance: none !important;
    appearance: none !important;
    cursor: pointer !important;
    outline: none !important;
    transition: border-color var(--shop-transition) !important;
    box-shadow: none !important;
}

body.bpsc-shop-page .bpsc-sort-wrap select:focus {
    border-color: var(--shop-primary) !important;
}

/* Active Filter Tags */
body.bpsc-shop-page .bpsc-active-filters {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    padding: 10px 14px !important;
    background: rgba(123,47,190,0.06) !important;
    border: 1px solid rgba(123,47,190,0.14) !important;
    border-radius: var(--shop-radius-sm) !important;
    margin-bottom: 14px !important;
    flex-wrap: wrap !important;
}

body.bpsc-shop-page .bpsc-active-filters-label {
    font-size: 11.5px !important;
    font-weight: 700 !important;
    color: var(--shop-primary) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    white-space: nowrap !important;
    font-family: var(--shop-font) !important;
}

body.bpsc-shop-page .bpsc-active-tags {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 6px !important;
    flex: 1 !important;
}

body.bpsc-shop-page .bpsc-active-tag {
    display: inline-flex !important;
    align-items: center !important;
    gap: 5px !important;
    background: #fff !important;
    border: 1px solid rgba(123,47,190,0.22) !important;
    border-radius: 20px !important;
    padding: 3px 10px !important;
    font-size: 12px !important;
    color: var(--shop-primary) !important;
    font-weight: 500 !important;
    font-family: var(--shop-font) !important;
}

body.bpsc-shop-page .bpsc-active-tag button {
    background: none !important;
    border: none !important;
    cursor: pointer !important;
    padding: 0 !important;
    color: var(--shop-primary) !important;
    font-size: 15px !important;
    line-height: 1 !important;
    display: flex !important;
    align-items: center !important;
    opacity: 0.7 !important;
}

body.bpsc-shop-page .bpsc-active-tag button:hover { opacity: 1 !important; }

/* ═══════════════════════════════════════════════════════════════
   PRODUCT GRID
═══════════════════════════════════════════════════════════════ */
body.bpsc-shop-page .bpsc-products-grid {
    display: grid !important;
    grid-template-columns: repeat(var(--shop-cols-desktop, 5), 1fr) !important;
    gap: var(--shop-grid-gap, 20px) !important;
    position: relative !important;
}

body.bpsc-shop-page .bpsc-products-grid.bpsc-list-view {
    grid-template-columns: 1fr !important;
}

body.bpsc-shop-page .bpsc-products-grid.bpsc-list-view .bpsc-product-card {
    display: grid !important;
    grid-template-columns: 220px 1fr !important;
    border-radius: var(--shop-radius) !important;
}

body.bpsc-shop-page .bpsc-products-grid.bpsc-list-view .bpsc-product-img-wrap {
    border-radius: var(--shop-radius) 0 0 var(--shop-radius) !important;
    height: 220px !important;
}

/* ═══════════════════════════════════════════════════════════════
   PRODUCT CARD  — the heart of the design
═══════════════════════════════════════════════════════════════ */
body.bpsc-shop-page .bpsc-product-card {
    background: var(--shop-white) !important;
    border-radius: var(--shop-radius) !important;
    border: 1px solid var(--shop-border) !important;
    overflow: hidden !important;
    position: relative !important;
    display: flex !important;
    flex-direction: column !important;
    box-shadow: none !important;
    transition: border-color var(--shop-transition), box-shadow var(--shop-transition) !important;
}

body.bpsc-shop-page .bpsc-product-card:hover {
    border-color: #b8a0cc !important;
    box-shadow: 0 2px 12px rgba(123, 82, 158, 0.08) !important;
}

/* ── IMAGE WRAP ───────────────────────────────────────────────── */
body.bpsc-shop-page .bpsc-product-img-wrap {
    position: relative !important;
    overflow: hidden !important;
    background: #fff !important;
    aspect-ratio: 1 / 1 !important;
    width: 100% !important;
    flex-shrink: 0 !important;
    padding: 12px !important;
}

body.bpsc-shop-page .bpsc-product-img-link {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    text-decoration: none !important;
}

body.bpsc-shop-page .bpsc-product-img-wrap img,
body.bpsc-shop-page .bpsc-product-img-wrap .attachment-woocommerce_thumbnail,
body.bpsc-shop-page .bpsc-product-img-wrap .bpsc-product-thumb {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    display: block !important;
    border-radius: 0 !important;
    margin: 0 auto !important;
}

/* ── DISCOUNT BADGE (purple, top-left) ───────────────────────── */
body.bpsc-shop-page .bpsc-sale-pct {
    position: absolute !important;
    top: 8px !important;
    left: 8px !important;
    z-index: 4 !important;
    background: var(--shop-primary) !important;
    color: #fff !important;
    border-radius: 0 !important;
    padding: 2px 6px !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    font-family: var(--shop-font) !important;
    line-height: 1.4 !important;
}

/* ── HOVER ACTION BUTTONS (hidden) ────────────────────────────── */
body.bpsc-shop-page .bpsc-product-actions {
    display: none !important;
}

body.bpsc-shop-page .bpsc-action-btn {
    width: 36px !important;
    height: 36px !important;
    border-radius: 50% !important;
    background: #fff !important;
    border: 1px solid #e5e7eb !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    color: #6b7280 !important;
    transition: all 0.22s ease !important;
    box-shadow: 0 2px 10px rgba(0,0,0,0.12) !important;
    padding: 0 !important;
    line-height: 1 !important;
    text-decoration: none !important;
}

body.bpsc-shop-page .bpsc-action-btn svg {
    width: 15px !important;
    height: 15px !important;
    pointer-events: none !important;
    display: block !important;
}

body.bpsc-shop-page .bpsc-action-btn:hover {
    background: var(--shop-primary) !important;
    border-color: var(--shop-primary) !important;
    color: #fff !important;
    transform: scale(1.12) !important;
    box-shadow: 0 5px 18px rgba(123,47,190,0.4) !important;
}

body.bpsc-shop-page .bpsc-wishlist-btn.active {
    background: #fee2e2 !important;
    border-color: #fca5a5 !important;
    color: #ef4444 !important;
}

body.bpsc-shop-page .bpsc-wishlist-btn.active:hover {
    background: #ef4444 !important;
    border-color: #ef4444 !important;
    color: #fff !important;
}

/* ── ADD TO CART OVERLAY (hover) ─────────────────────────────── */
body.bpsc-shop-page .bpsc-atc-overlay {
    position: absolute !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    padding: 12px 10px !important;
    background: linear-gradient(to top, rgba(255,255,255,0.97) 55%, rgba(255,255,255,0) 100%) !important;
    transform: translateY(100%) !important;
    transition: transform 0.25s ease !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    z-index: 5 !important;
    pointer-events: none !important;
}

body.bpsc-shop-page .bpsc-product-card:hover .bpsc-atc-overlay {
    transform: translateY(0) !important;
    pointer-events: auto !important;
}

/* Override EVERY WooCommerce & theme button style inside our ATC overlay */
body.bpsc-shop-page .bpsc-atc-overlay .button,
body.bpsc-shop-page .bpsc-atc-overlay a.button,
body.bpsc-shop-page .bpsc-atc-overlay .bpsc-atc-btn,
body.bpsc-shop-page .bpsc-atc-overlay .add_to_cart_button,
body.bpsc-shop-page .bpsc-atc-overlay .single_add_to_cart_button,
body.bpsc-shop-page .bpsc-atc-overlay button.button {
    width: 100% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 7px !important;
    background: var(--shop-primary) !important;
    background-color: var(--shop-primary) !important;
    color: #fff !important;
    border: 1px solid var(--shop-primary) !important;
    border-radius: 3px !important;
    padding: 10px 14px !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    font-family: var(--shop-font) !important;
    cursor: pointer !important;
    transition: background 0.22s ease !important;
    text-decoration: none !important;
    letter-spacing: 0.3px !important;
    line-height: 1.3 !important;
    box-shadow: none !important;
    text-transform: none !important;
    outline: none !important;
    white-space: nowrap !important;
}

body.bpsc-shop-page .bpsc-atc-overlay .button:hover,
body.bpsc-shop-page .bpsc-atc-overlay a.button:hover,
body.bpsc-shop-page .bpsc-atc-overlay .add_to_cart_button:hover,
body.bpsc-shop-page .bpsc-atc-overlay button.button:hover {
    background: var(--shop-primary-dark) !important;
    background-color: var(--shop-primary-dark) !important;
    color: #fff !important;
}

/* Loading state */
body.bpsc-shop-page .bpsc-atc-overlay .button.loading::after {
    border-top-color: #fff !important;
    border-right-color: #fff !important;
}

/* ── PRODUCT INFO ─────────────────────────────────────────────── */
body.bpsc-shop-page .bpsc-product-info {
    padding: 12px 14px 14px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 6px !important;
    flex: 1 !important;
    background: var(--shop-white) !important;
    text-align: left !important;
}

body.bpsc-shop-page .bpsc-product-title {
    margin: 0 !important;
    padding: 0 !important;
    font-size: 13px !important;
    font-weight: 400 !important;
    line-height: 1.45 !important;
    color: var(--shop-text) !important;
    font-family: var(--shop-font) !important;
}

body.bpsc-shop-page .bpsc-product-title a {
    color: inherit !important;
    text-decoration: none !important;
    transition: color var(--shop-transition) !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
}

body.bpsc-shop-page .bpsc-product-title a:hover {
    color: var(--shop-text) !important;
}

/* Rating stars – always 5 gold stars */
body.bpsc-shop-page .bpsc-product-rating {
    line-height: 1 !important;
}

body.bpsc-shop-page .bpsc-stars {
    color: var(--shop-star) !important;
    font-size: 12px !important;
    letter-spacing: 1px !important;
    line-height: 1 !important;
}

/* Price – red/orange like reference */
body.bpsc-shop-page .bpsc-product-price {
    margin-top: 0 !important;
    font-weight: 600 !important;
    font-size: 14px !important;
    color: var(--shop-price) !important;
    font-family: var(--shop-font) !important;
    line-height: 1.3 !important;
}

body.bpsc-shop-page .bpsc-product-price del,
body.bpsc-shop-page .bpsc-product-price del span,
body.bpsc-shop-page .bpsc-product-price del .amount {
    color: #aaaaaa !important;
    font-weight: 400 !important;
    font-size: 13px !important;
    margin-right: 6px !important;
    text-decoration: line-through !important;
    opacity: 1 !important;
}

body.bpsc-shop-page .bpsc-product-price ins {
    text-decoration: none !important;
    color: var(--shop-price) !important;
    background: transparent !important;
}

body.bpsc-shop-page .bpsc-product-price ins .amount {
    color: var(--shop-price) !important;
}

body.bpsc-shop-page .bpsc-product-price > .amount,
body.bpsc-shop-page .bpsc-product-price .woocommerce-Price-amount {
    color: var(--shop-price) !important;
    font-weight: 600 !important;
}

/* ═══════════════════════════════════════════════════════════════
   GRID LOADER
═══════════════════════════════════════════════════════════════ */
body.bpsc-shop-page .bpsc-grid-loader {
    display: none !important;
    position: absolute !important;
    inset: 0 !important;
    background: rgba(243,244,248,0.8) !important;
    backdrop-filter: blur(4px) !important;
    border-radius: var(--shop-radius) !important;
    z-index: 10 !important;
    align-items: center !important;
    justify-content: center !important;
}

body.bpsc-shop-page .bpsc-grid-loader.active {
    display: flex !important;
}

body.bpsc-shop-page .bpsc-spinner {
    width: 40px !important;
    height: 40px !important;
    border: 3px solid rgba(123,47,190,0.15) !important;
    border-top-color: var(--shop-primary) !important;
    border-radius: 50% !important;
    animation: bpsc-spin 0.75s linear infinite !important;
}

@keyframes bpsc-spin { to { transform: rotate(360deg); } }

/* ═══════════════════════════════════════════════════════════════
   NO PRODUCTS
═══════════════════════════════════════════════════════════════ */
body.bpsc-shop-page .bpsc-no-products {
    grid-column: 1 / -1 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 60px 24px !important;
    text-align: center !important;
    color: var(--shop-muted) !important;
}

body.bpsc-shop-page .bpsc-no-products-icon svg {
    width: 60px !important;
    height: 60px !important;
    color: #d1d5db !important;
    margin-bottom: 14px !important;
}

body.bpsc-shop-page .bpsc-no-products h3 {
    font-size: 18px !important;
    font-weight: 600 !important;
    color: var(--shop-text) !important;
    margin: 0 0 8px !important;
    font-family: var(--shop-font) !important;
}

body.bpsc-shop-page .bpsc-no-products p {
    font-size: 14px !important;
    margin: 0 0 20px !important;
    font-family: var(--shop-font) !important;
}

body.bpsc-shop-page .bpsc-btn-reset {
    background: var(--shop-primary) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 8px !important;
    padding: 10px 24px !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    font-family: var(--shop-font) !important;
    transition: background var(--shop-transition) !important;
}

body.bpsc-shop-page .bpsc-btn-reset:hover {
    background: var(--shop-primary-dark) !important;
}

/* ═══════════════════════════════════════════════════════════════
   PAGINATION
═══════════════════════════════════════════════════════════════ */
body.bpsc-shop-page .bpsc-pagination {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    margin-top: 36px !important;
    margin-bottom: 8px !important;
    flex-wrap: wrap !important;
}

body.bpsc-shop-page .bpsc-page-btn {
    display: flex !important;
    align-items: center !important;
    gap: 5px !important;
    padding: 9px 16px !important;
    border: 1px solid var(--shop-border) !important;
    border-radius: 8px !important;
    background: #fff !important;
    color: var(--shop-text) !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    cursor: pointer !important;
    font-family: var(--shop-font) !important;
    transition: all var(--shop-transition) !important;
    line-height: 1 !important;
    box-shadow: none !important;
    text-decoration: none !important;
}

body.bpsc-shop-page .bpsc-page-btn svg {
    width: 14px !important;
    height: 14px !important;
}

body.bpsc-shop-page .bpsc-page-btn:hover:not(:disabled) {
    background: var(--shop-primary) !important;
    border-color: var(--shop-primary) !important;
    color: #fff !important;
}

body.bpsc-shop-page .bpsc-page-btn:disabled {
    opacity: 0.4 !important;
    cursor: not-allowed !important;
}

body.bpsc-shop-page .bpsc-page-numbers {
    display: flex !important;
    align-items: center !important;
    gap: 4px !important;
    flex-wrap: wrap !important;
}

body.bpsc-shop-page .bpsc-page-number {
    width: 36px !important;
    height: 36px !important;
    border: 1px solid var(--shop-border) !important;
    border-radius: 8px !important;
    background: #fff !important;
    color: var(--shop-text) !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    cursor: pointer !important;
    font-family: var(--shop-font) !important;
    transition: all var(--shop-transition) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 1 !important;
    padding: 0 !important;
    box-shadow: none !important;
}

body.bpsc-shop-page .bpsc-page-number:hover {
    background: var(--shop-primary-light) !important;
    border-color: var(--shop-primary) !important;
    color: var(--shop-primary) !important;
}

body.bpsc-shop-page .bpsc-page-number.active {
    background: var(--shop-primary) !important;
    border-color: var(--shop-primary) !important;
    color: #fff !important;
}

body.bpsc-shop-page .bpsc-page-ellipsis {
    color: var(--shop-muted) !important;
    font-family: var(--shop-font) !important;
    display: flex !important;
    align-items: center !important;
    padding: 0 4px !important;
}

/* ═══════════════════════════════════════════════════════════════
   QUICK VIEW MODAL
═══════════════════════════════════════════════════════════════ */
.bpsc-qv-overlay {
    position: fixed !important;
    inset: 0 !important;
    background: rgba(0,0,0,0.6) !important;
    z-index: 2000000 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 20px !important;
    backdrop-filter: blur(5px) !important;
    animation: bpscFadeIn 0.2s ease !important;
}

@keyframes bpscFadeIn { from { opacity: 0; } to { opacity: 1; } }

.bpsc-qv-modal {
    background: #fff !important;
    border-radius: 18px !important;
    max-width: 880px !important;
    width: 100% !important;
    max-height: 88vh !important;
    overflow-y: auto !important;
    position: relative !important;
    animation: bpscSlideUp 0.32s cubic-bezier(0.34, 1.56, 0.64, 1) !important;
    box-shadow: 0 32px 96px rgba(0,0,0,0.28) !important;
}

@keyframes bpscSlideUp {
    from { transform: translateY(28px); opacity: 0; }
    to   { transform: translateY(0);    opacity: 1; }
}

.bpsc-qv-close {
    position: absolute !important;
    top: 14px !important;
    right: 14px !important;
    width: 34px !important;
    height: 34px !important;
    border-radius: 50% !important;
    background: #f3f4f8 !important;
    border: 1px solid #e5e7eb !important;
    font-size: 18px !important;
    line-height: 1 !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: #374151 !important;
    z-index: 5 !important;
    transition: all 0.2s ease !important;
    padding: 0 !important;
    font-family: sans-serif !important;
}

.bpsc-qv-close:hover {
    background: var(--shop-primary) !important;
    border-color: var(--shop-primary) !important;
    color: #fff !important;
}

.bpsc-qv-inner {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 0 !important;
    min-height: 400px !important;
}

.bpsc-qv-loading {
    grid-column: 1 / -1 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 320px !important;
}

.bpsc-qv-gallery {
    background: #f7f8fc !important;
    border-radius: 18px 0 0 18px !important;
    overflow: hidden !important;
}

.bpsc-qv-slides {
    position: relative !important;
    height: 430px !important;
    overflow: hidden !important;
}

.bpsc-qv-slide {
    position: absolute !important;
    inset: 0 !important;
    opacity: 0 !important;
    transition: opacity 0.4s !important;
}

.bpsc-qv-slide.active { opacity: 1 !important; }

.bpsc-qv-slide img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    display: block !important;
}

.bpsc-qv-thumbs {
    display: flex !important;
    gap: 7px !important;
    padding: 10px 12px !important;
    overflow-x: auto !important;
    scrollbar-width: thin !important;
}

.bpsc-qv-thumb {
    width: 52px !important;
    height: 52px !important;
    border-radius: 8px !important;
    border: 2px solid transparent !important;
    overflow: hidden !important;
    cursor: pointer !important;
    flex-shrink: 0 !important;
    transition: border-color 0.2s !important;
}

.bpsc-qv-thumb.active { border-color: var(--shop-primary) !important; }

.bpsc-qv-thumb img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
}

.bpsc-qv-details {
    padding: 28px 26px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
    overflow-y: auto !important;
}

.bpsc-qv-title {
    font-size: 20px !important;
    font-weight: 700 !important;
    color: #1a1a2e !important;
    margin: 0 !important;
    line-height: 1.3 !important;
    padding-right: 28px !important;
    font-family: var(--shop-font) !important;
}

.bpsc-qv-price {
    font-size: 22px !important;
    font-weight: 700 !important;
    color: var(--shop-primary) !important;
    font-family: var(--shop-font) !important;
}

.bpsc-qv-price del {
    font-size: 14px !important;
    color: #9ca3af !important;
    font-weight: 400 !important;
    margin-right: 5px !important;
    opacity: 1 !important;
}

.bpsc-qv-price ins { text-decoration: none !important; color: #ef4444 !important; }

.bpsc-qv-sku {
    font-size: 12px !important;
    color: #9ca3af !important;
    font-family: var(--shop-font) !important;
}

.bpsc-qv-description {
    font-size: 13.5px !important;
    color: #6b7280 !important;
    line-height: 1.7 !important;
    border-top: 1px solid #e5e7eb !important;
    padding-top: 12px !important;
    font-family: var(--shop-font) !important;
}

.bpsc-in-stock { color: #22c55e !important; font-size: 13px !important; font-weight: 600 !important; font-family: var(--shop-font) !important; }
.bpsc-out-stock { color: #ef4444 !important; font-size: 13px !important; font-weight: 600 !important; font-family: var(--shop-font) !important; }

.bpsc-qv-atc-wrap .button,
.bpsc-qv-atc-wrap a.button,
.bpsc-qv-atc-wrap button.button {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    background: var(--shop-primary) !important;
    background-color: var(--shop-primary) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 10px !important;
    padding: 13px 24px !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    font-family: var(--shop-font) !important;
    cursor: pointer !important;
    transition: background 0.2s !important;
    text-decoration: none !important;
    width: 100% !important;
    text-align: center !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    line-height: 1.4 !important;
}

.bpsc-qv-atc-wrap .button:hover { background: var(--shop-primary-dark) !important; color: #fff !important; }

.bpsc-qv-view-link {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 5px !important;
    color: var(--shop-primary) !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    text-decoration: none !important;
    transition: color 0.2s !important;
    font-family: var(--shop-font) !important;
    text-align: center !important;
}

.bpsc-qv-view-link:hover { color: var(--shop-primary-dark) !important; }

/* ═══════════════════════════════════════════════════════════════
   MOBILE SIDEBAR OVERLAY
═══════════════════════════════════════════════════════════════ */
.bpsc-filter-overlay {
    display: none;
    position: fixed;
    top: var(--bpsc-sticky-offset, 0px);
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 9998;
    backdrop-filter: blur(2px);
}

.bpsc-filter-overlay.active { display: block; }

/* ═══════════════════════════════════════════════════════════════
   RESPONSIVE
═══════════════════════════════════════════════════════════════ */
@media (max-width: 1400px) {
    body.bpsc-shop-page .bpsc-products-grid {
        grid-template-columns: repeat(4, 1fr) !important;
    }
}

@media (max-width: 1100px) {
    :root { --shop-sidebar-w: 240px; }
    body.bpsc-shop-page .bpsc-shop-layout { gap: 20px !important; }
    body.bpsc-shop-page .bpsc-products-grid {
        grid-template-columns: repeat(var(--shop-cols-tablet, 3), 1fr) !important;
    }
}

@media (max-width: 900px) {
    body.bpsc-shop-page .bpsc-shop-layout {
        grid-template-columns: 1fr !important;
    }

    body.bpsc-shop-page .bpsc-shop-sidebar {
        position: fixed !important;
        top: var(--bpsc-sticky-offset, 0px) !important;
        left: 0 !important;
        right: auto !important;
        bottom: 0 !important;
        width: 300px !important;
        max-width: 85vw !important;
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
        z-index: 9999 !important;
        transform: translateX(-110%) !important;
        transition: transform var(--shop-transition) !important;
        border-radius: 0 !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        padding: 12px 12px calc(20px + env(safe-area-inset-bottom, 0px)) 16px !important;
        background: var(--shop-white) !important;
        border-right: 1px solid var(--shop-border) !important;
        box-shadow: 4px 0 24px rgba(0, 0, 0, 0.12) !important;
        overscroll-behavior: contain !important;
        -webkit-overflow-scrolling: touch !important;
        align-self: stretch !important;
    }

    body.bpsc-shop-page .bpsc-shop-sidebar.open {
        transform: translateX(0) !important;
    }

    body.bpsc-shop-page .bpsc-filter-block {
        flex-shrink: 0 !important;
    }

    body.bpsc-shop-page .bpsc-filter-block:last-child {
        margin-bottom: 0 !important;
    }

    body.bpsc-shop-page .bpsc-mobile-filter-toggle {
        display: flex !important;
    }

    body.bpsc-shop-page .bpsc-products-grid {
        grid-template-columns: repeat(var(--shop-cols-mobile, 2), 1fr) !important;
    }
}

@media (max-width: 640px) {
    body.bpsc-shop-page #bpsc-shop-wrap {
        padding-top: 24px !important;
        padding-bottom: 48px !important;
    }

    body.bpsc-shop-page .bpsc-shop-hero .bpsc-container {
        flex-direction: column !important;
        align-items: flex-start !important;
    }
    body.bpsc-shop-page .bpsc-products-grid {
        grid-template-columns: repeat(var(--shop-cols-mobile, 2), 1fr) !important;
        gap: 12px !important;
    }
    body.bpsc-shop-page .bpsc-shop-toolbar {
        flex-direction: column !important;
        align-items: flex-start !important;
    }
    body.bpsc-shop-page .bpsc-toolbar-right { width: 100% !important; justify-content: flex-end !important; }
    .bpsc-qv-inner { grid-template-columns: 1fr !important; }
    .bpsc-qv-gallery { border-radius: 18px 18px 0 0 !important; }
    .bpsc-qv-slides { height: 260px !important; }
}

@media (max-width: 420px) {
    body.bpsc-shop-page .bpsc-products-grid {
        grid-template-columns: 1fr 1fr !important;
        gap: 10px !important;
    }
    body.bpsc-shop-page #bpsc-shop-wrap .bpsc-container { padding: 0 12px !important; }
}

/* ═══════════════════════════════════════════════════════════════
   WOOCOMMERCE NOTICE COMPATIBILITY
═══════════════════════════════════════════════════════════════ */
body.bpsc-shop-page .woocommerce-message,
body.bpsc-shop-page .woocommerce-info,
body.bpsc-shop-page .woocommerce-error {
    border-top-color: var(--shop-primary) !important;
    padding: 12px 16px !important;
    border-radius: var(--shop-radius-sm) !important;
    margin-bottom: 12px !important;
    font-family: var(--shop-font) !important;
}

body.bpsc-shop-page .woocommerce-message::before { color: var(--shop-primary) !important; }
