/**
 * VSLocks — Shop page design (Figma 641:16951 / Image reference)
 *
 * Sidebar layout matches the design mock:
 *   PRODUCT CATEGORIES — accordion (chevron right), "NAME (n)", children
 *   COLOR FILTER       — 20×20 square swatches, GREEN/RED/SILVER/GREY,
 *                        no product counts
 *
 * All reds use --vs-red / --vs-red-hover.
 */

/* ─── Sidebar cards ───────────────────────────────────────────────────────
   Apply to both WoodMart .wd-sidebar and our Figma .vslocks-shop-sidebar.
   ──────────────────────────────────────────────────────────────────────── */

.wd-sidebar .widget,
.vslocks-shop-sidebar .widget {
    margin: 0 0 16px;
    padding: 16px 18px;
    background: var(--vs-card, #1a1a1a);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 10px;
}

.wd-sidebar .widget-title,
.vslocks-shop-sidebar .widget-title {
    margin: 0 0 14px;
    color: var(--vs-red);
    font-family: var(--vs-font-body);
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}.wd-sidebar .widget_product_categories ul,
.vslocks-shop-sidebar .widget_product_categories ul,
.wd-sidebar .woocommerce-widget-layered-nav-list,
.vslocks-shop-sidebar .woocommerce-widget-layered-nav-list,
.wd-sidebar .vslocks-color-filter-list,
.vslocks-shop-sidebar .vslocks-color-filter-list {
    margin: 0;
    padding: 0;
    list-style: none;
}

/* ── Product Categories: NAME (n) ………… chevron ─────────────────────────── */

.wd-sidebar .widget_product_categories li {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 6px;
    padding: 8px 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
    list-style: none;
}.wd-sidebar .widget_product_categories li:last-child,
.vslocks-shop-sidebar .widget_product_categories li:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}.wd-sidebar .widget_product_categories li > a,
.vslocks-shop-sidebar .widget_product_categories li > a {
    flex: 0 1 auto;
    min-width: 0;
    max-width: calc(100% - 48px);
}

/* Count sits immediately after the name: TRAVEL SECURITY (1) */
.wd-sidebar .widget_product_categories li > .count {
    flex: 0 0 auto;
    order: 0;
    margin: 0;
    padding: 0;
    background: none !important;
    border: 0 !important;
    color: rgba(255, 255, 255, 0.55) !important;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.3;
}

/* WC may print bare "1" or already "(1)" — normalise to (n). */
.wd-sidebar .widget_product_categories li > .count:not(:empty)::before {
    content: "(";
}.wd-sidebar .widget_product_categories li > .count:not(:empty)::after,
.vslocks-shop-sidebar .widget_product_categories li > .count:not(:empty)::after {
    content: ")";
}

/* If the span already contains parentheses, suppress our extras via a
   class added in PHP when we reformat. Fallback: hide double parens is
   hard in pure CSS, so PHP normalises the count text. */

/* Accordion chevron — our .vslocks-cats-toggle only (WoodMart's is stripped/hidden). */
.vslocks-shop-sidebar .widget_product_categories .wd-cats-toggle,
.wd-sidebar .widget_product_categories .wd-cats-toggle {
    display: none !important;
    pointer-events: none !important;
    width: 0 !important;
    height: 0 !important;
    overflow: hidden !important;
    opacity: 0 !important;
}

.wd-sidebar .widget_product_categories .vslocks-cats-toggle,
.vslocks-shop-sidebar .widget_product_categories .vslocks-cats-toggle {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    order: 2;
    margin-inline-start: auto;
    width: 22px !important;
    height: 22px !important;
    min-width: 22px !important;
    min-height: 22px !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    background-color: transparent !important;
    box-shadow: none !important;
    cursor: pointer;
    color: rgba(255, 255, 255, 0.55) !important;
    opacity: 1;
    appearance: none !important;
    -webkit-appearance: none !important;
    position: relative;
    font-size: 0 !important;
    line-height: 0 !important;
}

.wd-sidebar .widget_product_categories .vslocks-cats-toggle:hover,
.vslocks-shop-sidebar .widget_product_categories .vslocks-cats-toggle:hover {
    color: #ffffff !important;
    background: transparent !important;
}

.wd-sidebar .widget_product_categories .vslocks-cats-toggle::after,
.vslocks-shop-sidebar .widget_product_categories .vslocks-cats-toggle::after {
    content: none !important;
    display: none !important;
}

.wd-sidebar .widget_product_categories .vslocks-cats-toggle::before,
.vslocks-shop-sidebar .widget_product_categories .vslocks-cats-toggle::before {
    content: "" !important;
    display: block !important;
    width: 7px;
    height: 7px;
    border: 0 !important;
    border-inline-end: 1.5px solid currentColor !important;
    border-bottom: 1.5px solid currentColor !important;
    background: none !important;
    transform: rotate(45deg);
    transition: transform 0.15s ease;
    margin-top: -3px;
    font-size: 0 !important;
    color: inherit !important;
}

/* Closed = chevron points down; open = points up */
.wd-sidebar .widget_product_categories li.is-open > .vslocks-cats-toggle::before,
.vslocks-shop-sidebar .widget_product_categories li.is-open > .vslocks-cats-toggle::before {
    transform: rotate(225deg);
    margin-top: 3px;
}

/* Collapsed by default; JS adds .is-open (Figma accordion). */
.wd-sidebar .widget_product_categories li.cat-parent > ul.children,
.vslocks-shop-sidebar .widget_product_categories li.cat-parent > ul.children {
    display: none;
    flex: 1 1 100%;
    order: 3;
    margin: 2px 0 0;
    padding: 0 0 0 14px;
    border: 0;
}

.wd-sidebar .widget_product_categories li.cat-parent.is-open > ul.children,
.vslocks-shop-sidebar .widget_product_categories li.cat-parent.is-open > ul.children {
    display: block;
}

.wd-sidebar .widget_product_categories li > ul.children > li,
.vslocks-shop-sidebar .widget_product_categories li > ul.children > li {
    padding: 6px 0;
    border-bottom: 0;
}

/* !important: woo-dark-theme.css forces all woo links red site-wide.
   Must cover .vslocks-shop-sidebar (Figma layout) as well as .wd-sidebar. */
.wd-sidebar .widget_product_categories a,
.vslocks-shop-sidebar .widget_product_categories a,
.wd-sidebar .woocommerce-widget-layered-nav-list__item a,
.vslocks-shop-sidebar .woocommerce-widget-layered-nav-list__item a,
.wd-sidebar .vslocks-color-filter-list a,
.vslocks-shop-sidebar .vslocks-color-filter-list a {
    color: #ffffff !important;
    font-family: var(--vs-font-body);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-decoration: none;
    text-transform: uppercase;
}

.wd-sidebar .widget_product_categories a:hover,
.vslocks-shop-sidebar .widget_product_categories a:hover,
.wd-sidebar .woocommerce-widget-layered-nav-list__item a:hover,
.vslocks-shop-sidebar .woocommerce-widget-layered-nav-list__item a:hover,
.wd-sidebar .vslocks-color-filter-list a:hover,
.vslocks-shop-sidebar .vslocks-color-filter-list a:hover {
    color: var(--vs-red-hover) !important;
}

/* Children links also white (Figma). */
.vslocks-shop-sidebar .widget_product_categories .children a {
    color: #ffffff !important;
}

/* ── Color Filter: square swatch + name, no counts (Figma) ──────────────── */

.wd-sidebar .woocommerce-widget-layered-nav-list__item,
.wd-sidebar .vslocks-color-filter-list > li {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 10px;
    padding: 8px 0;
    border-bottom: 0;
    list-style: none;
}.wd-sidebar .woocommerce-widget-layered-nav-list__item > a,
.vslocks-shop-sidebar .woocommerce-widget-layered-nav-list__item > a,
.wd-sidebar .vslocks-color-filter-list > li > a,
.vslocks-shop-sidebar .vslocks-color-filter-list > li > a {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    flex: 1 1 auto;
    min-width: 0;
}

/* Figma: no (n) on color rows */
.wd-sidebar .widget_layered_nav .count,
.wd-sidebar .woocommerce-widget-layered-nav .count,
.wd-sidebar .vslocks-color-filter-list .count {
    display: none !important;
}

/* WoodMart checkbox-style ::before — Figma uses only our square swatch. */
.wd-sidebar .woocommerce-widget-layered-nav-list__item a::before,
.vslocks-shop-sidebar .woocommerce-widget-layered-nav-list__item a::before,
.wd-sidebar .vslocks-color-filter-list a::before,
.vslocks-shop-sidebar .vslocks-color-filter-list a::before,
.wd-sidebar .vslocks-color-filter-list li::before,
.vslocks-shop-sidebar .vslocks-color-filter-list li::before {
    display: none !important;
    content: none !important;
    width: 0 !important;
    height: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    background: none !important;
}.wd-sidebar .woocommerce-widget-layered-nav-list__item--chosen a,
.vslocks-shop-sidebar .woocommerce-widget-layered-nav-list__item--chosen a,
.wd-sidebar .vslocks-color-filter-list > li.is-chosen > a,
.vslocks-shop-sidebar .vslocks-color-filter-list > li.is-chosen > a {
    color: var(--vs-red) !important;
}

/* Figma Color Filter: 20×20 SQUARE (not circle — card swatches stay round). */
.vslocks-color-dot {
    display: inline-block;
    flex: 0 0 auto;
    width: 20px;
    height: 20px;
    margin: 0;
    border-radius: 0;
    border: 1px solid rgba(255, 255, 255, 0.2);
    vertical-align: middle;
    box-sizing: border-box;
}.wd-sidebar .vslocks-color-filter-list .vslocks-color-label,
.vslocks-shop-sidebar .vslocks-color-filter-list .vslocks-color-label {
    color: #ffffff !important;
    font-family: var(--vs-font-body);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

/* Product-card colour dots stay circular (do not inherit square filter). */
/* base circle hint — full rules with !important live further below */
.vslocks-card-swatch-dot {
    border-radius: 50% !important;
}

/* ─── Figma 641:16951 shop body layout ────────────────────────────────────
   Data from Figma node (absolute → relative to frame):

     Toolbar  y=185  full content width (1192)
     Body row y=246  sidebar x=40 w=260  · gap 16 · cards x=316

   Child archive-product.php outputs:

     .shop-loop-head.vslocks-shop-toolbar   (full width)
     .vslocks-shop-row
       .vslocks-shop-sidebar   (260px)
       .vslocks-shop-products  (flex 1)

   The previous display:contents hack against WoodMart's 12-col grid
   collapsed the page — do not reintroduce it.
   ──────────────────────────────────────────────────────────────────────── */

body.post-type-archive-product .wd-content-area,
body.tax-product_cat .wd-content-area,
body.tax-product_tag .wd-content-area {
    width: 100%;
    max-width: 100%;
}

/* Toolbar: one horizontal bar (breadcrumb left, tools right). */
body.post-type-archive-product .shop-loop-head.vslocks-shop-toolbar,
body.tax-product_cat .shop-loop-head.vslocks-shop-toolbar,
body.tax-product_tag .shop-loop-head.vslocks-shop-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px 24px;
    width: 100%;
    margin: 0 0 30px; /* Figma: 216→246 = 30px */
    padding: 0;
}

/* Body row: sidebar ∥ products, tops aligned. */
.vslocks-shop-row {
    display: flex;
    flex-wrap: nowrap;
    align-items: flex-start; /* ← horizontal top-align, Figma y=246 both */
    gap: 16px;               /* Figma: 300→316 = 16px */
    width: 100%;
}

.vslocks-shop-sidebar {
    flex: 0 0 260px;         /* Figma sidebar width */
    width: 260px;
    max-width: 100%;
    margin: 0;
    padding: 0;
}

.vslocks-shop-sidebar .widget-area {
    margin: 0;
    padding: 0;
}

.vslocks-shop-products {
    flex: 1 1 auto;
    min-width: 0;            /* allow product grid to shrink, not push row */
    margin: 0;
    padding: 0;
}

/* Product grid fills the products column (2–3 cards as Figma). */
.vslocks-shop-products .wd-products-element,
.vslocks-shop-products .products.wd-products {
    width: 100%;
    margin: 0;
}

/* Hide WoodMart's leftover sidebar if any theme option re-enables it. */
body.post-type-archive-product main.wd-content-layout > aside.wd-sidebar,
body.tax-product_cat main.wd-content-layout > aside.wd-sidebar,
body.tax-product_tag main.wd-content-layout > aside.wd-sidebar {
    display: none !important;
}

@media (max-width: 1024px) {
    .vslocks-shop-row {
        flex-direction: column;
        gap: 20px;
    }

    .vslocks-shop-sidebar {
        flex: 0 0 auto;
        width: 100%;
    }
}

@media (max-width: 767px) {
    body.post-type-archive-product .shop-loop-head.vslocks-shop-toolbar,
    body.tax-product_cat .shop-loop-head.vslocks-shop-toolbar,
    body.tax-product_tag .shop-loop-head.vslocks-shop-toolbar {
        flex-direction: column;
        align-items: flex-start;
        margin-bottom: 16px;
    }

    /* Mobile: filters under products is fine; Figma is desktop-first. */
    .vslocks-shop-row {
        flex-direction: column-reverse;
    }
}

/* ═══════════════════════════════════════════════════════════════════════════
   INLINE SHOP MOBILE AUDIT — tablet toolbar containment
   Keep WoodMart's compact tablet ordering control inside the archive width.
   ═══════════════════════════════════════════════════════════════════════════ */

@media (min-width: 768px) and (max-width: 1024px) {
    body.post-type-archive-product .shop-loop-head.vslocks-shop-toolbar,
    body.tax-product_cat .shop-loop-head.vslocks-shop-toolbar,
    body.tax-product_tag .shop-loop-head.vslocks-shop-toolbar {
        box-sizing: border-box;
        min-width: 0;
        max-width: 100%;
    }

    body.post-type-archive-product .vslocks-shop-tools-end,
    body.tax-product_cat .vslocks-shop-tools-end,
    body.tax-product_tag .vslocks-shop-tools-end {
        min-width: 0;
        max-width: 100%;
    }

    body.post-type-archive-product .vslocks-shop-tools-end .woocommerce-ordering,
    body.tax-product_cat .vslocks-shop-tools-end .woocommerce-ordering,
    body.tax-product_tag .vslocks-shop-tools-end .woocommerce-ordering {
        flex: 0 1 140px;
        width: 140px;
        min-width: 0;
        max-width: 100%;
        box-sizing: border-box;
        overflow: hidden;
    }

    body.post-type-archive-product .vslocks-shop-tools-end .woocommerce-ordering select,
    body.tax-product_cat .vslocks-shop-tools-end .woocommerce-ordering select,
    body.tax-product_tag .vslocks-shop-tools-end .woocommerce-ordering select {
        width: 100%;
        min-width: 0 !important;
        max-width: 100%;
        box-sizing: border-box;
    }
}

/* ─── Product card — Figma node 715:31771 / card in 641:16951 ──────────────
   Card 300×456. Stack (top → bottom):
     1. Ribbon banner          22px  bg #ca1b24  Arpona 9/600 white
     2. Meta row               41px  shield + warranty | badge
     3. Product image          159px contain on dark
     4. Colour swatches        19px circles (gap ~10)
     5. Tagline                Arpona 9/600 white centered
     6. Divider
     7. Title                  Arpona 15/600 #eeeeee
     8. Price                  "From" 12px #7e7d7e + amount 24px #c62828
     9. Add to basket button   36px  bg #c62828  Arpona 12/600 white
   No category line, no See options, no stock line, no hover chrome.
   ──────────────────────────────────────────────────────────────────────── */

/* Scope heavy overrides to shop grid only so related/upsell stay intact. */
body.post-type-archive-product .vslocks-shop-products .product-grid-item,
body.tax-product_cat .vslocks-shop-products .product-grid-item,
body.tax-product_tag .vslocks-shop-products .product-grid-item,
body.post-type-archive-product .products .product.vslocks-card-ready,
body.tax-product_cat .products .product.vslocks-card-ready {
    position: relative;
    margin: 0 !important;
    padding: 0 !important;
    background: #1a1a1a !important;
    border: 1px solid rgba(255, 255, 255, 0.12) !important;
    border-radius: 4px;
    overflow: hidden;
    box-shadow: none !important;
}

body.post-type-archive-product .vslocks-shop-products .product-grid-item .product-wrapper,
body.tax-product_cat .vslocks-shop-products .product-grid-item .product-wrapper,
body.post-type-archive-product .products .product.vslocks-card-ready .product-wrapper {
    display: flex !important;
    flex-direction: column;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0 !important;
    height: 100%;
}

/* 1. Ribbon */
.vslocks-card-ribbon {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    min-height: 22px;
    padding: 5px 10px;
    margin: 0 !important;
    background: #ca1b24; /* Figma ribbon — not generic --vs-red */
    color: #ffffff !important;
    font-family: var(--vs-font-body, "Arpona", sans-serif) !important;
    font-size: 9px !important;
    font-weight: 600 !important;
    letter-spacing: 0.06em;
    line-height: 1.2;
    text-align: center;
    text-transform: uppercase;
    border: 0;
    border-radius: 0;
}

/* 2. Meta: warranty left · badge right */
.vslocks-card-meta-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    flex: 0 0 auto;
    min-height: 41px;
    margin: 0 !important;
    padding: 10px 12px 8px !important;
    box-sizing: border-box;
}

.vslocks-card-warranty {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #7e7d7e !important;
    font-family: var(--vs-font-body, "Arpona", sans-serif) !important;
    font-size: 10px !important;
    font-weight: 600 !important;
    letter-spacing: 0.02em;
    line-height: 1.1;
    text-transform: none;
}

.vslocks-card-shield {
    flex: 0 0 auto;
    width: 16px;
    height: 16px;
    color: #da222e; /* Figma shield-fill */
}

/* Figma badge: bordered box, Arpona 9/600 WHITE (not Ethnocentric red). */
.vslocks-card-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 4px 8px;
    border: 1px solid #6f6f70;
    border-radius: 0;
    background: transparent;
    color: #ffffff !important;
    font-family: var(--vs-font-body, "Arpona", sans-serif) !important;
    font-size: 9px !important;
    font-weight: 600 !important;
    letter-spacing: 0.06em;
    line-height: 1.1;
    text-transform: uppercase;
    white-space: nowrap;
}

/* 3. Image — Figma: product floats on soft circular spotlight (no white plate) */
body.post-type-archive-product .vslocks-shop-products .product-grid-item .product-element-top,
body.tax-product_cat .vslocks-shop-products .product-grid-item .product-element-top,
body.post-type-archive-product .products .product.vslocks-card-ready .product-element-top {
    position: relative !important;
    flex: 0 0 auto;
    width: 100%;
    height: 200px !important;
    min-height: 200px !important;
    max-height: 200px !important;
    margin: 0 !important;
    padding: 8px 16px 4px !important;
    background: #0a0a0a !important;
    overflow: hidden;
}

body.post-type-archive-product .vslocks-shop-products .product-grid-item .product-image-link,
body.tax-product_cat .vslocks-shop-products .product-grid-item .product-image-link,
body.post-type-archive-product .products .product.vslocks-card-ready .product-image-link {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    position: relative !important;
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    inset: auto !important;
    background: transparent !important;
    isolation: isolate;
}

/* Soft grey spotlight under product (Figma Image #2) */
body.post-type-archive-product .vslocks-shop-products .product-grid-item .vslocks-product-spotlight,
body.tax-product_cat .vslocks-shop-products .product-grid-item .vslocks-product-spotlight,
body.post-type-archive-product .products .product.vslocks-card-ready .vslocks-product-spotlight {
    position: absolute !important;
    left: 50% !important;
    top: 48% !important;
    width: min(78%, 200px) !important;
    height: min(78%, 200px) !important;
    transform: translate(-50%, -50%) !important;
    border-radius: 50% !important;
    pointer-events: none !important;
    z-index: 0 !important;
    background: radial-gradient(
        circle at 50% 45%,
        rgba(95, 95, 100, 0.55) 0%,
        rgba(55, 55, 58, 0.32) 38%,
        rgba(20, 20, 22, 0.12) 62%,
        rgba(0, 0, 0, 0) 74%
    ) !important;
    filter: blur(0.5px);
}

body.post-type-archive-product .vslocks-shop-products .product-grid-item .product-element-top img,
body.tax-product_cat .vslocks-shop-products .product-grid-item .product-element-top img,
body.post-type-archive-product .products .product.vslocks-card-ready .product-element-top img {
    position: relative !important;
    z-index: 1 !important;
    /* Keep canvas-rewritten images filling the stage instead of their tiny intrinsic size. */
    width: 100% !important;
    max-width: 100% !important;
    height: 100% !important;
    max-height: 100% !important;
    object-fit: contain !important;
    margin: 0 auto !important;
    transform: none !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    /* Soft lift so cut-out product sits above the glow */
    filter: drop-shadow(0 10px 18px rgba(0, 0, 0, 0.45));
}

/* After JS knockout, no white plate remains */
body.post-type-archive-product .vslocks-shop-products .product-grid-item .product-element-top img.vslocks-img-knockout,
body.tax-product_cat .vslocks-shop-products .product-grid-item .product-element-top img.vslocks-img-knockout {
    background: transparent !important;
}

/* Bottom info stack */
body.post-type-archive-product .vslocks-shop-products .product-grid-item .product-element-bottom,
body.tax-product_cat .vslocks-shop-products .product-grid-item .product-element-bottom,
body.post-type-archive-product .products .product.vslocks-card-ready .product-element-bottom,
body.post-type-archive-product .vslocks-shop-products .product-grid-item .product-information,
body.tax-product_cat .vslocks-shop-products .product-grid-item .product-information {
    display: flex !important;
    flex-direction: column;
    flex: 1 1 auto;
    align-items: stretch;
    gap: 0;
    margin: 0 !important;
    padding: 10px 12px 14px !important;
    background: transparent !important;
    text-align: center;
}

/* 4. Swatches — 19px circles, centered */
.vslocks-card-swatches {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    margin: 8px 0 6px !important;
    padding: 0;
    min-height: 19px;
}

/*
 * Swatch dots must stay 19×19 circles.
 * Theme styles (woocommerce button / woodmart) force padding + min-height on
 * <button>, so every box property needs high specificity + !important.
 */
body.post-type-archive-product .vslocks-card-swatches .vslocks-card-swatch-dot,
body.tax-product_cat .vslocks-card-swatches .vslocks-card-swatch-dot,
body.tax-product_tag .vslocks-card-swatches .vslocks-card-swatch-dot,
.products .product .vslocks-card-swatches .vslocks-card-swatch-dot,
.vslocks-card-swatches button.vslocks-card-swatch-dot,
button.vslocks-card-swatch-dot {
    display: inline-block !important;
    flex: 0 0 19px !important;
    width: 19px !important;
    height: 19px !important;
    min-width: 19px !important;
    max-width: 19px !important;
    min-height: 19px !important;
    max-height: 19px !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 1px solid rgba(255, 255, 255, 0.25) !important;
    border-radius: 50% !important;
    box-sizing: border-box !important;
    cursor: pointer !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    background-image: none !important;
    background-clip: padding-box !important;
    box-shadow: none !important;
    line-height: 0 !important;
    font-size: 0 !important;
    font-weight: 400 !important;
    letter-spacing: 0 !important;
    text-indent: 0 !important;
    text-transform: none !important;
    color: transparent !important;
    overflow: hidden !important;
    vertical-align: middle !important;
    transition: box-shadow 0.15s ease, border-color 0.15s ease, transform 0.12s ease !important;
}
body.post-type-archive-product .vslocks-card-swatches .vslocks-card-swatch-dot:hover:not(:disabled),
body.tax-product_cat .vslocks-card-swatches .vslocks-card-swatch-dot:hover:not(:disabled),
.vslocks-card-swatches button.vslocks-card-swatch-dot:hover:not(:disabled),
button.vslocks-card-swatch-dot:hover:not(:disabled) {
    transform: scale(1.08) !important;
    border-color: rgba(255, 255, 255, 0.55) !important;
    background-image: none !important;
    box-shadow: none !important;
}
body.post-type-archive-product .vslocks-card-swatches .vslocks-card-swatch-dot:focus,
body.post-type-archive-product .vslocks-card-swatches .vslocks-card-swatch-dot:focus-visible,
.vslocks-card-swatches button.vslocks-card-swatch-dot:focus-visible,
button.vslocks-card-swatch-dot:focus-visible {
    outline: 2px solid #ff0000 !important;
    outline-offset: 2px !important;
    box-shadow: none !important;
}
/* Selected: thin white edge + soft outer ring (Figma) — still a circle */
body.post-type-archive-product .vslocks-card-swatches .vslocks-card-swatch-dot.is-active,
body.tax-product_cat .vslocks-card-swatches .vslocks-card-swatch-dot.is-active,
.vslocks-card-swatches button.vslocks-card-swatch-dot.is-active,
button.vslocks-card-swatch-dot.is-active {
    border: 1.5px solid #ffffff !important;
    box-shadow:
        0 0 0 2px #0a0a0a,
        0 0 0 3.5px rgba(255, 255, 255, 0.35) !important;
    border-radius: 50% !important;
    width: 19px !important;
    height: 19px !important;
    padding: 0 !important;
}
body.post-type-archive-product .vslocks-card-swatches .vslocks-card-swatch-dot:disabled,
.vslocks-card-swatches button.vslocks-card-swatch-dot:disabled,
button.vslocks-card-swatch-dot:disabled {
    opacity: 0.35 !important;
    cursor: not-allowed !important;
    transform: none !important;
}
/* Soft crossfade when JS swaps colour image */
.product-element-top img {
    transition: opacity 0.18s ease;
}

/* 5. Tagline */
.vslocks-card-tagline {
    margin: 0 0 10px !important;
    padding: 0 4px;
    color: #ffffff !important;
    font-family: var(--vs-font-body, "Arpona", sans-serif) !important;
    font-size: 9px !important;
    font-weight: 600 !important;
    letter-spacing: 0.04em;
    line-height: 1.35;
    text-align: center;
}

/* 6. Divider */
.vslocks-card-divider {
    display: block;
    width: 100%;
    height: 0;
    margin: 0 0 12px !important;
    padding: 0;
    border: none;
    border-top: 1px solid rgba(255, 255, 255, 0.14);
}

/* Figma card has no category row under the divider. */
body.post-type-archive-product .vslocks-shop-products .product-grid-item .wd-product-cats,
body.tax-product_cat .vslocks-shop-products .product-grid-item .wd-product-cats,
body.post-type-archive-product .products .product.vslocks-card-ready .wd-product-cats,
body.post-type-archive-product .vslocks-shop-products .product-grid-item .woodmart-product-cats,
body.tax-product_cat .vslocks-shop-products .product-grid-item .woodmart-product-cats {
    display: none !important;
}

/* 7. Title */
body.post-type-archive-product .vslocks-shop-products .product-grid-item .wd-entities-title,
body.tax-product_cat .vslocks-shop-products .product-grid-item .wd-entities-title,
body.post-type-archive-product .products .product.vslocks-card-ready .wd-entities-title,
body.post-type-archive-product .vslocks-shop-products .product-grid-item .woocommerce-loop-product__title,
body.post-type-archive-product .vslocks-shop-products .product-grid-item h3 {
    margin: 0 0 10px !important;
    padding: 0 2px !important;
    color: #eeeeee !important;
    font-family: var(--vs-font-body, "Arpona", sans-serif) !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    letter-spacing: 0.01em;
    line-height: 1.3 !important;
    text-align: center !important;
    text-transform: none !important;
}

body.post-type-archive-product .vslocks-shop-products .product-grid-item .wd-entities-title a,
body.tax-product_cat .vslocks-shop-products .product-grid-item .wd-entities-title a,
body.post-type-archive-product .products .product.vslocks-card-ready .wd-entities-title a,
body.post-type-archive-product .vslocks-shop-products .product-grid-item h3 a {
    color: #eeeeee !important;
    text-decoration: none !important;
}

body.post-type-archive-product .vslocks-shop-products .product-grid-item .wd-entities-title a:hover,
body.tax-product_cat .vslocks-shop-products .product-grid-item .wd-entities-title a:hover {
    color: #ffffff !important;
}

/* 8. Price — "From" + amount */
body.post-type-archive-product .vslocks-shop-products .product-grid-item .price,
body.tax-product_cat .vslocks-shop-products .product-grid-item .price,
body.post-type-archive-product .products .product.vslocks-card-ready .price {
    display: flex !important;
    align-items: baseline;
    justify-content: center;
    flex-wrap: wrap;
    gap: 6px;
    margin: 0 0 12px !important;
    padding: 0 !important;
    color: #c62828 !important;
    font-family: var(--vs-font-body, "Arpona", sans-serif) !important;
    font-size: 24px !important;
    font-weight: 600 !important;
    line-height: 1.1 !important;
    text-align: center;
}

body.post-type-archive-product .vslocks-shop-products .product-grid-item .price .vslocks-price-from,
body.tax-product_cat .vslocks-shop-products .product-grid-item .price .vslocks-price-from {
    color: #7e7d7e !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    line-height: 1.1;
}

body.post-type-archive-product .vslocks-shop-products .product-grid-item .price .amount,
body.tax-product_cat .vslocks-shop-products .product-grid-item .price .amount,
body.post-type-archive-product .vslocks-shop-products .product-grid-item .price .woocommerce-Price-amount {
    color: #c62828 !important;
    font-size: 24px !important;
    font-weight: 600 !important;
}

body.post-type-archive-product .vslocks-shop-products .product-grid-item .price del,
body.tax-product_cat .vslocks-shop-products .product-grid-item .price del {
    color: #7e7d7e !important;
    font-size: 14px !important;
    opacity: 0.8;
}

body.post-type-archive-product .vslocks-shop-products .product-grid-item .price ins,
body.tax-product_cat .vslocks-shop-products .product-grid-item .price ins {
    text-decoration: none;
    background: none;
}

/* 9. Add to basket — single full-width CTA */
body.post-type-archive-product .vslocks-shop-products .product-grid-item .vslocks-card-purchase,
body.tax-product_cat .vslocks-shop-products .product-grid-item .vslocks-card-purchase,
body.post-type-archive-product .products .product.vslocks-card-ready .vslocks-card-purchase {
    display: block !important;
    width: 100%;
    margin: 0 !important;
    padding: 0 !important;
    margin-top: auto !important;
}

body.post-type-archive-product .vslocks-shop-products .product-grid-item .vslocks-card-purchase a.button,
body.tax-product_cat .vslocks-shop-products .product-grid-item .vslocks-card-purchase a.button,
body.post-type-archive-product .products .product.vslocks-card-ready .vslocks-card-purchase a.button,
body.post-type-archive-product .vslocks-shop-products .product-grid-item .vslocks-card-purchase a.add_to_cart_button {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    min-height: 36px !important;
    height: 36px !important;
    margin: 0 !important;
    padding: 0 12px !important;
    border: 0 !important;
    border-radius: 2px !important;
    background: #c62828 !important;
    color: #ffffff !important;
    font-family: var(--vs-font-body, "Arpona", sans-serif) !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    letter-spacing: 0.04em;
    line-height: 1 !important;
    text-align: center;
    text-transform: uppercase !important;
    text-decoration: none !important;
    box-shadow: none !important;
}

body.post-type-archive-product .vslocks-shop-products .product-grid-item .vslocks-card-purchase a.button span,
body.tax-product_cat .vslocks-shop-products .product-grid-item .vslocks-card-purchase a.button span {
    color: #ffffff !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
}

body.post-type-archive-product .vslocks-shop-products .product-grid-item .vslocks-card-purchase a.button:hover,
body.tax-product_cat .vslocks-shop-products .product-grid-item .vslocks-card-purchase a.button:hover {
    background: #e53935 !important;
    color: #ffffff !important;
}

/* Figma: one CTA only — hide See options + stock + WoodMart chrome. */
body.post-type-archive-product .vslocks-shop-products .product-grid-item .vslocks-card-purchase a.vslocks-card-see-options,
body.tax-product_cat .vslocks-shop-products .product-grid-item .vslocks-card-purchase a.vslocks-card-see-options,
body.post-type-archive-product .products .product.vslocks-card-ready .vslocks-card-purchase a.vslocks-card-see-options,
body.post-type-archive-product .vslocks-shop-products .product-grid-item .vslocks-card-stock,
body.tax-product_cat .vslocks-shop-products .product-grid-item .vslocks-card-stock,
.vslocks-card-purchase a.vslocks-card-see-options,
.vslocks-card-stock {
    display: none !important;
}

body.post-type-archive-product .vslocks-shop-products .product-grid-item .wd-buttons,
body.post-type-archive-product .vslocks-shop-products .product-grid-item .wd-compare-btn,
body.post-type-archive-product .vslocks-shop-products .product-grid-item .wd-wishlist-btn,
body.post-type-archive-product .vslocks-shop-products .product-grid-item .quick-view,
body.post-type-archive-product .vslocks-shop-products .product-grid-item .wd-add-btn,
body.post-type-archive-product .vslocks-shop-products .product-grid-item .wd-product-footer,
body.post-type-archive-product .vslocks-shop-products .product-grid-item .wd-bottom-actions {
    display: none !important;
}

/* Desktop grid base. The selected column count is mapped below from
   WoodMart's grid-columns-2/3/4 class. */
@media (min-width: 1025px) {
    body.post-type-archive-product .vslocks-shop-products .products.wd-products,
    body.tax-product_cat .vslocks-shop-products .products.wd-products,
    body.tax-product_tag .vslocks-shop-products .products.wd-products {
        --wd-gap-lg: 16px !important;
        --wd-gap: 16px !important;
    }
}

/* ─── Shop loop head (replaces big SHOP title + category nav) ─────────────
   Figma 641:16951: one dark toolbar row —
     left:  HOME / OUR PRODUCTS
     right: Show: 9 / 12 / 18 / 24 · grid icons · Default sorting
   The page-title block is removed in PHP (shop_title + shop_categories off).
   ──────────────────────────────────────────────────────────────────────── */

body.post-type-archive-product .wd-page-title,
body.tax-product_cat .wd-page-title,
body.tax-product_tag .wd-page-title {
    display: none !important;
}

body.post-type-archive-product .shop-loop-head,
body.tax-product_cat .shop-loop-head,
body.tax-product_tag .shop-loop-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px 24px;
    margin: 0 0 24px;
    padding: 14px 0;
    border: 0;
    background: transparent;
}

body.post-type-archive-product .shop-loop-head .wd-shop-tools,
body.tax-product_cat .shop-loop-head .wd-shop-tools,
body.tax-product_tag .shop-loop-head .wd-shop-tools {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 14px 18px;
    margin: 0;
    padding: 0;
    background: transparent !important;
    border: 0 !important;
}

/* Result count is not in the Figma bar — breadcrumbs sit alone on the left. */
body.post-type-archive-product .shop-loop-head .woocommerce-result-count,
body.tax-product_cat .shop-loop-head .woocommerce-result-count,
body.tax-product_tag .shop-loop-head .woocommerce-result-count {
    display: none !important;
}

/* Breadcrumb: inactive/parent white · active red (Figma 701:6232) */
body.post-type-archive-product .shop-loop-head .wd-breadcrumbs,
body.post-type-archive-product .shop-loop-head .woocommerce-breadcrumb,
body.tax-product_cat .shop-loop-head .wd-breadcrumbs,
body.tax-product_cat .shop-loop-head .woocommerce-breadcrumb,
body.tax-product_tag .shop-loop-head .wd-breadcrumbs,
body.tax-product_tag .shop-loop-head .woocommerce-breadcrumb {
    margin: 0;
    padding: 0;
    font-family: var(--vs-font-body);
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #ffffff;
}

body.post-type-archive-product .shop-loop-head .wd-breadcrumbs a,
body.post-type-archive-product .shop-loop-head .woocommerce-breadcrumb a,
body.tax-product_cat .shop-loop-head .wd-breadcrumbs a,
body.tax-product_cat .shop-loop-head .woocommerce-breadcrumb a,
body.tax-product_tag .shop-loop-head .wd-breadcrumbs a,
body.tax-product_tag .shop-loop-head .woocommerce-breadcrumb a {
    color: #ffffff !important;
    text-decoration: none;
}

body.post-type-archive-product .shop-loop-head .wd-breadcrumbs a:hover,
body.post-type-archive-product .shop-loop-head .woocommerce-breadcrumb a:hover,
body.tax-product_cat .shop-loop-head .wd-breadcrumbs a:hover,
body.tax-product_cat .shop-loop-head .woocommerce-breadcrumb a:hover,
body.tax-product_tag .shop-loop-head .wd-breadcrumbs a:hover,
body.tax-product_tag .shop-loop-head .woocommerce-breadcrumb a:hover {
    color: #ffffff !important;
    opacity: 0.85;
}

body.post-type-archive-product .shop-loop-head .wd-breadcrumbs .wd-last,
body.post-type-archive-product .shop-loop-head .woocommerce-breadcrumb .breadcrumb-last,
body.post-type-archive-product .shop-loop-head .woocommerce-breadcrumb .breadcrumb_last,
body.tax-product_cat .shop-loop-head .wd-breadcrumbs .wd-last,
body.tax-product_cat .shop-loop-head .woocommerce-breadcrumb .breadcrumb-last,
body.tax-product_cat .shop-loop-head .woocommerce-breadcrumb .breadcrumb_last,
body.tax-product_tag .shop-loop-head .wd-breadcrumbs .wd-last,
body.tax-product_tag .shop-loop-head .woocommerce-breadcrumb .breadcrumb-last,
body.tax-product_tag .shop-loop-head .woocommerce-breadcrumb .breadcrumb_last {
    color: var(--vs-red) !important;
}

body.post-type-archive-product .shop-loop-head .wd-breadcrumbs .wd-delimiter,
body.post-type-archive-product .shop-loop-head .woocommerce-breadcrumb .delimiter,
body.tax-product_cat .shop-loop-head .wd-breadcrumbs .wd-delimiter,
body.tax-product_cat .shop-loop-head .woocommerce-breadcrumb .delimiter,
body.tax-product_tag .shop-loop-head .wd-breadcrumbs .wd-delimiter,
body.tax-product_tag .shop-loop-head .woocommerce-breadcrumb .delimiter {
    color: #6b7280 !important;
    margin: 0 0.35em;
}

/* Show: 9 / 12 / 18 / 24 */
body.post-type-archive-product .wd-products-per-page,
body.tax-product_cat .wd-products-per-page,
body.tax-product_tag .wd-products-per-page {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0;
    color: #ffffff;
    font-family: var(--vs-font-body);
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.04em;
}

body.post-type-archive-product .wd-products-per-page .wd-label,
body.tax-product_cat .wd-products-per-page .wd-label,
body.tax-product_tag .wd-products-per-page .wd-label {
    margin-inline-end: 6px;
    color: #ffffff;
    text-transform: none;
}

body.post-type-archive-product .wd-products-per-page .wd-label::after,
body.tax-product_cat .wd-products-per-page .wd-label::after,
body.tax-product_tag .wd-products-per-page .wd-label::after {
    content: ":";
}

body.post-type-archive-product .wd-products-per-page a,
body.tax-product_cat .wd-products-per-page a,
body.tax-product_tag .wd-products-per-page a {
    color: #ffffff !important;
    text-decoration: none;
    padding: 0 2px;
}

body.post-type-archive-product .wd-products-per-page a.current-variation,
body.post-type-archive-product .wd-products-per-page a:hover,
body.tax-product_cat .wd-products-per-page a.current-variation,
body.tax-product_cat .wd-products-per-page a:hover,
body.tax-product_tag .wd-products-per-page a.current-variation,
body.tax-product_tag .wd-products-per-page a:hover {
    color: var(--vs-red) !important;
}

/* Figma uses slash separators ("9 / 12 / 18 / 24"), not WoodMart's hairline. */
body.post-type-archive-product .wd-products-per-page .per-page-border,
body.tax-product_cat .wd-products-per-page .per-page-border,
body.tax-product_tag .wd-products-per-page .per-page-border {
    display: inline-block;
    width: auto;
    height: auto;
    margin: 0 4px;
    background: none;
    color: rgba(255, 255, 255, 0.55);
    font-weight: 600;
    vertical-align: middle;
}

body.post-type-archive-product .wd-products-per-page .per-page-border::before,
body.tax-product_cat .wd-products-per-page .per-page-border::before,
body.tax-product_tag .wd-products-per-page .per-page-border::before {
    content: "/";
}

body.post-type-archive-product .wd-products-per-page .per-page-border:last-child,
body.tax-product_cat .wd-products-per-page .per-page-border:last-child,
body.tax-product_tag .wd-products-per-page .per-page-border:last-child {
    display: none;
}

/* Grid column icons */
body.post-type-archive-product .wd-products-shop-view a,
body.tax-product_cat .wd-products-shop-view a,
body.tax-product_tag .wd-products-shop-view a {
    color: rgba(255, 255, 255, 0.45);
}

body.post-type-archive-product .wd-products-shop-view a.current-variation,
body.post-type-archive-product .wd-products-shop-view a:hover,
body.tax-product_cat .wd-products-shop-view a.current-variation,
body.tax-product_cat .wd-products-shop-view a:hover,
body.tax-product_tag .wd-products-shop-view a.current-variation,
body.tax-product_tag .wd-products-shop-view a:hover {
    color: var(--vs-red);
}

/* Default sorting */
body.post-type-archive-product .woocommerce-ordering select,
body.tax-product_cat .woocommerce-ordering select,
body.tax-product_tag .woocommerce-ordering select {
    min-width: 140px;
    padding: 6px 28px 6px 10px;
    border: 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.35);
    border-radius: 0;
    background: transparent;
    color: #ffffff !important;
    font-family: var(--vs-font-body);
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.02em;
    box-shadow: none;
}

body.post-type-archive-product .woocommerce-ordering select:focus,
body.tax-product_cat .woocommerce-ordering select:focus,
body.tax-product_tag .woocommerce-ordering select:focus {
    border-bottom-color: var(--vs-red);
    outline: none;
}

body.post-type-archive-product .woocommerce-ordering select option,
body.tax-product_cat .woocommerce-ordering select option,
body.tax-product_tag .woocommerce-ordering select option {
    background: #111;
    color: #fff;
}

@media (max-width: 767px) {
    .wd-sidebar {
        margin-bottom: 20px;
    }

    body.post-type-archive-product .shop-loop-head,
    body.tax-product_cat .shop-loop-head,
    body.tax-product_tag .shop-loop-head {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
        padding: 10px 0 16px;
    }

    body.post-type-archive-product .shop-loop-head .wd-shop-tools,
    body.tax-product_cat .shop-loop-head .wd-shop-tools,
    body.tax-product_tag .shop-loop-head .wd-shop-tools {
        width: 100%;
        justify-content: flex-start;
        gap: 10px 14px;
    }

    body.post-type-archive-product .woocommerce-ordering,
    body.tax-product_cat .woocommerce-ordering,
    body.tax-product_tag .woocommerce-ordering {
        margin-inline-start: 0;
    }
}

/* ── Color Filter: kill WoodMart checkbox chrome entirely (Figma = swatch only) ─ */
.vslocks-shop-sidebar .vslocks-color-filter-list li,
.vslocks-shop-sidebar .woocommerce-widget-layered-nav-list__item {
    list-style: none !important;
}

.vslocks-shop-sidebar .vslocks-color-filter-list li::before,
.vslocks-shop-sidebar .vslocks-color-filter-list li::after,
.vslocks-shop-sidebar .vslocks-color-filter-list a::before,
.vslocks-shop-sidebar .vslocks-color-filter-list a::after,
.vslocks-shop-sidebar .woocommerce-widget-layered-nav-list__item::before,
.vslocks-shop-sidebar .woocommerce-widget-layered-nav-list__item a::before {
    content: none !important;
    display: none !important;
    width: 0 !important;
    height: 0 !important;
    border: 0 !important;
    background: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   FIGMA 641:17019 — full shop main-content audit (sizing + fonts + chrome)
   Source: get_design_context on node 641:17019 (Main Content 1222×597)
   ═══════════════════════════════════════════════════════════════════════════ */

/* Main content rhythm: max 1222, py 40 (WoodMart container already ~1222). */
body.post-type-archive-product .wd-content-area,
body.tax-product_cat .wd-content-area,
body.tax-product_tag .wd-content-area {
    padding-block: 40px;
}

/* ── Toolbar ───────────────────────────────────────────────────────────────
   Home: Ethnocentric 16 #b7b7b7 · / white80 · Our products Ethnocentric 16 red
   Show + nums: Arpona 16  · gap tools 31px
   ──────────────────────────────────────────────────────────────────────── */
body.post-type-archive-product .shop-loop-head.vslocks-shop-toolbar,
body.tax-product_cat .shop-loop-head.vslocks-shop-toolbar,
body.tax-product_tag .shop-loop-head.vslocks-shop-toolbar {
    margin: 0 0 30px;
    gap: 16px 31px;
}

/*
 * Breadcrumb — Figma 701:6232 + shop toolbar 757:27058
 * Active tab = red · Inactive / parent tab = white · slash muted
 * WoodMart hides empty .wd-delimiter:last-child; we always force the "/".
 */
body.post-type-archive-product .vslocks-shop-toolbar .wd-breadcrumbs,
body.post-type-archive-product .vslocks-shop-toolbar .woocommerce-breadcrumb,
body.tax-product_cat .vslocks-shop-toolbar .wd-breadcrumbs,
body.tax-product_cat .vslocks-shop-toolbar .woocommerce-breadcrumb,
body.tax-product_tag .vslocks-shop-toolbar .wd-breadcrumbs,
body.tax-product_tag .vslocks-shop-toolbar .woocommerce-breadcrumb {
    display: flex !important;
    flex-wrap: wrap;
    align-items: center;
    gap: 0;
    margin: 0 !important;
    padding: 0 !important;
    font-family: var(--vs-font-display, "ethnocentric", "ethnocentric-fallback", Arial, sans-serif) !important;
    font-size: 16px !important;
    font-weight: 400 !important;
    letter-spacing: 0.04em;
    line-height: 1.4 !important;
    text-transform: none !important;
    color: #ffffff !important;
}

/* Inactive / parent — white (Figma 701:6232) */
body.post-type-archive-product .vslocks-shop-toolbar .wd-breadcrumbs a,
body.post-type-archive-product .vslocks-shop-toolbar .woocommerce-breadcrumb a,
body.tax-product_cat .vslocks-shop-toolbar .wd-breadcrumbs a,
body.tax-product_cat .vslocks-shop-toolbar .woocommerce-breadcrumb a,
body.tax-product_tag .vslocks-shop-toolbar .wd-breadcrumbs a,
body.tax-product_tag .vslocks-shop-toolbar .woocommerce-breadcrumb a {
    display: inline !important;
    color: #ffffff !important;
    font-family: inherit !important;
    font-size: 16px !important;
    font-weight: 400 !important;
    line-height: 1.4 !important;
    text-transform: none !important;
    text-decoration: none !important;
    min-height: 0 !important;
    min-width: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    opacity: 1 !important;
}

body.post-type-archive-product .vslocks-shop-toolbar .wd-breadcrumbs a:hover,
body.tax-product_cat .vslocks-shop-toolbar .wd-breadcrumbs a:hover,
body.tax-product_tag .vslocks-shop-toolbar .wd-breadcrumbs a:hover {
    color: #ffffff !important;
    opacity: 0.85 !important;
}

/* Force visible slash — WoodMart may hide :last-child delimiter */
body.post-type-archive-product .vslocks-shop-toolbar .wd-breadcrumbs .wd-delimiter,
body.post-type-archive-product .vslocks-shop-toolbar .woocommerce-breadcrumb .delimiter,
body.tax-product_cat .vslocks-shop-toolbar .wd-breadcrumbs .wd-delimiter,
body.tax-product_cat .vslocks-shop-toolbar .woocommerce-breadcrumb .delimiter,
body.tax-product_tag .vslocks-shop-toolbar .wd-breadcrumbs .wd-delimiter,
body.tax-product_tag .vslocks-shop-toolbar .woocommerce-breadcrumb .delimiter,
body.post-type-archive-product .vslocks-shop-toolbar .wd-breadcrumbs .wd-delimiter:last-child,
body.tax-product_cat .vslocks-shop-toolbar .wd-breadcrumbs .wd-delimiter:last-child {
    display: inline !important;
    visibility: visible !important;
    width: auto !important;
    height: auto !important;
    min-width: 0 !important;
    min-height: 0 !important;
    margin: 0 0.4em !important;
    padding: 0 !important;
    color: rgba(255, 255, 255, 0.8) !important;
    font-family: inherit !important;
    font-size: 16px !important;
    font-weight: 400 !important;
    line-height: 1.4 !important;
    opacity: 1 !important;
}

body.post-type-archive-product .vslocks-shop-toolbar .wd-breadcrumbs .wd-delimiter::after,
body.post-type-archive-product .vslocks-shop-toolbar .woocommerce-breadcrumb .delimiter::after,
body.tax-product_cat .vslocks-shop-toolbar .wd-breadcrumbs .wd-delimiter::after,
body.tax-product_cat .vslocks-shop-toolbar .woocommerce-breadcrumb .delimiter::after,
body.tax-product_tag .vslocks-shop-toolbar .wd-breadcrumbs .wd-delimiter::after,
body.tax-product_tag .vslocks-shop-toolbar .woocommerce-breadcrumb .delimiter::after {
    content: "/" !important;
    display: inline !important;
    color: rgba(255, 255, 255, 0.8) !important;
    font-family: inherit !important;
    font-size: 16px !important;
}

body.post-type-archive-product .vslocks-shop-toolbar .wd-breadcrumbs .wd-last,
body.post-type-archive-product .vslocks-shop-toolbar .woocommerce-breadcrumb .breadcrumb-last,
body.post-type-archive-product .vslocks-shop-toolbar .woocommerce-breadcrumb .breadcrumb_last,
body.tax-product_cat .vslocks-shop-toolbar .wd-breadcrumbs .wd-last,
body.tax-product_cat .vslocks-shop-toolbar .woocommerce-breadcrumb .breadcrumb-last,
body.tax-product_cat .vslocks-shop-toolbar .woocommerce-breadcrumb .breadcrumb_last,
body.tax-product_tag .vslocks-shop-toolbar .wd-breadcrumbs .wd-last,
body.tax-product_tag .vslocks-shop-toolbar .woocommerce-breadcrumb .breadcrumb-last,
body.tax-product_tag .vslocks-shop-toolbar .woocommerce-breadcrumb .breadcrumb_last {
    display: inline !important;
    color: #c62828 !important;
    font-family: inherit !important;
    font-size: 16px !important;
    font-weight: 400 !important;
    line-height: 1.4 !important;
    text-transform: none !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
}

body.post-type-archive-product .vslocks-shop-toolbar .wd-shop-tools {
    gap: 31px !important;
}

body.post-type-archive-product .vslocks-shop-toolbar .wd-products-per-page,
body.post-type-archive-product .vslocks-shop-toolbar .wd-products-shop-view,
body.post-type-archive-product .vslocks-shop-toolbar .woocommerce-ordering,
body.post-type-archive-product .vslocks-shop-toolbar .woocommerce-ordering select {
    font-family: var(--vs-font-body, "Arpona", sans-serif) !important;
    font-size: 16px !important;
    font-weight: 600 !important;
    line-height: 25.6px !important;
    letter-spacing: 0;
    color: #ffffff !important;
}

body.post-type-archive-product .vslocks-shop-toolbar .wd-products-per-page .wd-label {
    font-size: 16px !important;
    font-weight: 600 !important;
    color: #ffffff !important;
}

body.post-type-archive-product .vslocks-shop-toolbar .wd-products-per-page a {
    font-size: 16px !important;
    font-weight: 400 !important;
    color: rgba(255, 255, 255, 0.85) !important;
}

body.post-type-archive-product .vslocks-shop-toolbar .wd-products-per-page a.current-variation {
    color: #c62828 !important;
    font-weight: 400 !important;
}

/* ── Sidebar widgets (Figma Frame 27) ──────────────────────────────────────
   260px · card bg #101010 · border #343434 · radius 8 · pad 16 · shadow
   Title 16 Arpona SemiBold red · items 13 uppercase · count #a0a0a0
   ──────────────────────────────────────────────────────────────────────── */
.vslocks-shop-sidebar {
    flex: 0 0 260px !important;
    width: 260px !important;
}

.vslocks-shop-sidebar .widget {
    margin: 0 0 10px !important;
    padding: 16px !important;
    background: #101010 !important;
    border: 1px solid #343434 !important;
    border-radius: 8px !important;
    box-shadow: 0 8px 28px rgba(0, 0, 0, 0.42) !important;
}

.vslocks-shop-sidebar .widget-title {
    margin: 0 0 5px !important;
    color: #ff0000 !important; /* Figma title red */
    font-family: var(--vs-font-body, "Arpona", sans-serif) !important;
    font-size: 16px !important;
    font-weight: 600 !important;
    letter-spacing: 0.13px !important;
    line-height: 18.2px !important;
    text-transform: uppercase !important;
}

.vslocks-shop-sidebar .widget_product_categories a,
.vslocks-shop-sidebar .widget_product_categories .children a {
    color: #ffffff !important;
    font-family: var(--vs-font-body, "Arpona", sans-serif) !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    letter-spacing: 0.13px !important;
    line-height: 18.2px !important;
    text-transform: uppercase !important;
}

/* Expanded parent slightly muted like Figma Travel (#cacaca) */
.vslocks-shop-sidebar .widget_product_categories li.is-open > a {
    color: #cacaca !important;
}

.vslocks-shop-sidebar .widget_product_categories li > .count {
    color: #a0a0a0 !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    letter-spacing: 0.13px !important;
    line-height: 18.2px !important;
    background: none !important;
    border: 0 !important;
    border-radius: 0 !important;
    padding: 0 !important;
    min-width: 0 !important;
}

/* Kill pill/chip chrome on counts from WoodMart */
.vslocks-shop-sidebar .widget_product_categories .count::before {
    content: "(" !important;
    color: inherit;
}
.vslocks-shop-sidebar .widget_product_categories .count::after {
    content: ")" !important;
    color: inherit;
}

.vslocks-shop-sidebar .widget_product_categories li {
    padding: 5px 0 !important;
    border-bottom: 0 !important;
    gap: 5px 10px !important;
}

/* Dividers only between top-level parents (Figma line between sections) */
.vslocks-shop-sidebar .widget_product_categories > ul > li.cat-parent {
    border-bottom: 1px solid rgba(255, 255, 255, 0.12) !important;
    padding-bottom: 8px !important;
    margin-bottom: 4px !important;
}
.vslocks-shop-sidebar .widget_product_categories > ul > li.cat-parent:last-child {
    border-bottom: 0 !important;
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

.vslocks-shop-sidebar .widget_product_categories .vslocks-cats-toggle {
    width: 28px !important;
    height: 28px !important;
    min-width: 28px !important;
    min-height: 28px !important;
}
.vslocks-shop-sidebar .widget_product_categories .wd-cats-toggle {
    display: none !important;
}

/* Color filter rows: 20×20 square + 13px label, gap 5px */
.vslocks-shop-sidebar .vslocks-color-filter-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 10px;
}

.vslocks-shop-sidebar .vslocks-color-filter-list > li {
    gap: 5px !important;
    padding: 0 !important;
}

.vslocks-shop-sidebar .vslocks-color-dot {
    width: 20px !important;
    height: 20px !important;
    border-radius: 0 !important;
    border: none !important;
}

.vslocks-shop-sidebar .vslocks-color-filter-list .vslocks-color-label,
.vslocks-shop-sidebar .vslocks-color-filter-list a {
    font-size: 13px !important;
    font-weight: 600 !important;
    letter-spacing: 0.13px !important;
    line-height: 18.2px !important;
    color: #ffffff !important;
    text-transform: uppercase !important;
}

/* ── Product cards (Figma Container 300×456 / node 715:31771) ───────────── */
body.post-type-archive-product .vslocks-shop-products .product-grid-item,
body.tax-product_cat .vslocks-shop-products .product-grid-item,
body.post-type-archive-product .products .product.vslocks-card-ready {
    max-width: 300px;
    width: 100%;
    background: #111112 !important;
    border: 1px solid rgba(171, 137, 133, 0.62) !important;
    border-radius: 0 !important;
    box-shadow: 0 8px 28px rgba(0, 0, 0, 0.42) !important;
    overflow: hidden;
}

.vslocks-card-ribbon {
    letter-spacing: 0.72px !important;
}

.vslocks-card-meta-row {
    padding: 10px !important;
}

.vslocks-card-warranty {
    letter-spacing: 0.72px !important;
}

.vslocks-card-badge {
    letter-spacing: 2px !important; /* Figma badge tracking */
    padding: 5px !important;
}

/* Image area overrides (keep spotlight height consistent) */
body.post-type-archive-product .vslocks-shop-products .product-grid-item .product-element-top,
body.tax-product_cat .vslocks-shop-products .product-grid-item .product-element-top {
    background: #0a0a0a !important;
    padding: 8px 16px 4px !important;
    height: 200px !important;
    min-height: 200px !important;
    max-height: 200px !important;
}

body.post-type-archive-product .vslocks-shop-products .product-grid-item .product-element-top img {
    max-height: 100% !important;
    background: transparent !important;
    box-shadow: none !important;
    border-radius: 0 !important;
}

/* Kill white thumbnail frame from WoodMart */
body.post-type-archive-product .vslocks-shop-products .product-grid-item .product-image-link,
body.post-type-archive-product .vslocks-shop-products .product-grid-item .product-element-top > * {
    background: transparent !important;
}
body.post-type-archive-product .vslocks-shop-products .product-grid-item .vslocks-product-spotlight {
    background: radial-gradient(
        circle at 50% 45%,
        rgba(95, 95, 100, 0.55) 0%,
        rgba(55, 55, 58, 0.32) 38%,
        rgba(20, 20, 22, 0.12) 62%,
        rgba(0, 0, 0, 0) 74%
    ) !important;
}

.vslocks-card-swatches {
    padding-top: 20px !important;
    padding-bottom: 10px !important;
    margin: 0 !important;
}

.vslocks-card-tagline {
    letter-spacing: 0.72px !important;
    padding-bottom: 10px !important;
    margin: 0 !important;
}

body.post-type-archive-product .vslocks-shop-products .product-grid-item .product-element-bottom {
    padding: 0 0 11px !important;
    gap: 10px;
}

body.post-type-archive-product .vslocks-shop-products .product-grid-item .wd-entities-title {
    min-height: 53px;
    padding: 5px 10px 0 !important;
    margin: 0 !important;
    letter-spacing: 0.45px !important;
    line-height: 20.25px !important;
    display: flex;
    align-items: flex-start;
    justify-content: center;
}

body.post-type-archive-product .vslocks-shop-products .product-grid-item .price {
    gap: 5px !important;
    margin: 0 !important;
    align-items: flex-end !important;
}

body.post-type-archive-product .vslocks-shop-products .product-grid-item .vslocks-card-purchase {
    padding: 5px 10px 0 !important;
    margin: 0 !important;
    box-sizing: border-box;
}

body.post-type-archive-product .vslocks-shop-products .product-grid-item .vslocks-card-purchase a.button {
    border-radius: 8px !important; /* Figma button */
    min-height: 36px !important;
    padding: 8px 10px !important;
    letter-spacing: 0.72px !important;
}

/* Desktop grid sizing follows the selected view control. */
@media (min-width: 1025px) {
    body.post-type-archive-product .vslocks-shop-products .products.wd-products,
    body.tax-product_cat .vslocks-shop-products .products.wd-products,
    body.tax-product_tag .vslocks-shop-products .products.wd-products {
        --wd-gap-lg: 10px !important;
        --wd-gap: 10px !important;
        justify-content: start;
    }
}

/* Body row gap 16 — Figma sidebar→cards */
.vslocks-shop-row {
    gap: 16px !important;
}

/* ── Final overrides: beat WoodMart/woo-dark specificity ───────────────── */
@media (min-width: 1025px) {
    body.post-type-archive-product .vslocks-shop-products .products.wd-products.wd-grid-g,
    body.tax-product_cat .vslocks-shop-products .products.wd-products.wd-grid-g,
    body.tax-product_tag .vslocks-shop-products .products.wd-products.wd-grid-g,
    body.post-type-archive-product .vslocks-shop-products .products.wd-products,
    body.tax-product_cat .vslocks-shop-products .products.wd-products,
    body.tax-product_tag .vslocks-shop-products .products.wd-products {
        display: grid !important;
        gap: 10px !important;
        max-width: 100% !important;
        width: 100% !important;
        min-width: 0 !important;
        --wd-gap: 10px !important;
        --wd-gap-lg: 10px !important;
    }

    body.post-type-archive-product .vslocks-shop-products .products.wd-products.grid-columns-2,
    body.tax-product_cat .vslocks-shop-products .products.wd-products.grid-columns-2,
    body.tax-product_tag .vslocks-shop-products .products.wd-products.grid-columns-2 {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        --wd-col: 2 !important;
        --wd-col-lg: 2 !important;
    }

    body.post-type-archive-product .vslocks-shop-products .products.wd-products.grid-columns-3,
    body.tax-product_cat .vslocks-shop-products .products.wd-products.grid-columns-3,
    body.tax-product_tag .vslocks-shop-products .products.wd-products.grid-columns-3 {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        --wd-col: 3 !important;
        --wd-col-lg: 3 !important;
    }

    body.post-type-archive-product .vslocks-shop-products .products.wd-products.grid-columns-4,
    body.tax-product_cat .vslocks-shop-products .products.wd-products.grid-columns-4,
    body.tax-product_tag .vslocks-shop-products .products.wd-products.grid-columns-4 {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
        --wd-col: 4 !important;
        --wd-col-lg: 4 !important;
    }

    body.post-type-archive-product .vslocks-shop-products .products .product-grid-item,
    body.post-type-archive-product .vslocks-shop-products .products .wd-product,
    body.post-type-archive-product .vslocks-shop-products .products .product,
    body.tax-product_cat .vslocks-shop-products .products .product-grid-item,
    body.tax-product_cat .vslocks-shop-products .products .wd-product,
    body.tax-product_cat .vslocks-shop-products .products .product,
    body.tax-product_tag .vslocks-shop-products .products .product-grid-item,
    body.tax-product_tag .vslocks-shop-products .products .wd-product,
    body.tax-product_tag .vslocks-shop-products .products .product {
        width: 100% !important;
        max-width: none !important;
        min-width: 0 !important;
        flex: 0 0 auto !important;
        grid-column: auto !important;
    }
}

body.post-type-archive-product .vslocks-shop-products .product-grid-item .vslocks-card-purchase a.button,
body.post-type-archive-product .vslocks-shop-products .product-grid-item .vslocks-card-purchase a.button.product_type_simple,
body.post-type-archive-product .vslocks-shop-products .product.vslocks-card-ready .vslocks-card-purchase a.vslocks-card-add-to-cart,
body:not(.wp-admin).post-type-archive-product .vslocks-shop-products .product-grid-item .vslocks-card-purchase a.button {
    border-radius: 8px !important;
}

@media (max-width: 1024px) {
    body.post-type-archive-product .vslocks-shop-products .products.wd-products {
        grid-template-columns: 1fr !important;
        width: 100% !important;
        max-width: 100% !important;
    }
    body.post-type-archive-product .vslocks-shop-products .products .product-grid-item {
        width: 100% !important;
        max-width: 300px !important;
    }
}

/* ═══════════════════════════════════════════════════════════════════════════
   FIGMA 641:17110 — Product Categories card (260×~255 collapsed+Travel open)
   bg #101010 · border #343434 · radius 8 · pad 15 · shadow 0 8 28 @42%
   title Arpona 16/600 #ff0000 · items 13/600 · count #a0a0a0 · chevron 20 #4c4c4c
   expanded parent #cacaca · children white · dividers between top-level only
   Grid keeps name | (n) | chevron on one row; children span full width below.
   ═══════════════════════════════════════════════════════════════════════════ */

.vslocks-shop-sidebar .widget_product_categories {
    width: 260px;
    max-width: 100%;
    margin: 0 0 10px !important;
    padding: 15px !important;
    background: #101010 !important;
    border: 1px solid #343434 !important;
    border-radius: 8px !important;
    box-shadow: 0 8px 28px rgba(0, 0, 0, 0.42) !important;
    box-sizing: border-box;
}

.vslocks-shop-sidebar .widget_product_categories .widget-title {
    margin: 0 0 10px !important;
    padding: 0 !important;
    color: #ff0000 !important;
    font-family: var(--vs-font-body, "Arpona", sans-serif) !important;
    font-size: 16px !important;
    font-weight: 600 !important;
    letter-spacing: 0.13px !important;
    line-height: 18.2px !important;
    text-transform: uppercase !important;
}

.vslocks-shop-sidebar .widget_product_categories .product-categories {
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
    display: flex;
    flex-direction: column;
    gap: 0;
}

/*
 * Parent row grid — chevron always on row 1 (never wraps under the label).
 * [ NAME …………… ] [ (n) ] [ ⌄ ]
 * [ children full-width when open              ]
 */
.vslocks-shop-sidebar .widget_product_categories > ul > li.cat-item {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto 28px;
    grid-template-rows: auto auto;
    align-items: center;
    column-gap: 4px;
    row-gap: 2px;
    margin: 0 !important;
    padding: 5px 0 !important;
    border: 0 !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12) !important;
    list-style: none !important;
}

.vslocks-shop-sidebar .widget_product_categories > ul > li.cat-item:last-child {
    border-bottom: 0 !important;
    padding-bottom: 0 !important;
}

.vslocks-shop-sidebar .widget_product_categories > ul > li.cat-item:not(.cat-parent) {
    grid-template-columns: minmax(0, 1fr) auto;
}

.vslocks-shop-sidebar .widget_product_categories > ul > li.cat-item > a {
    grid-column: 1;
    grid-row: 1;
    width: 100%;
    min-width: 0;
    max-width: none !important;
    margin: 0 !important;
    /* WoodMart/theme adds 8px vertical padding on category links — kills Figma density */
    padding: 0 !important;
    color: #ffffff !important;
    font-family: var(--vs-font-body, "Arpona", sans-serif) !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    letter-spacing: 0 !important; /* Figma 0.13 is too wide for 260px card */
    line-height: 18.2px !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
}

/* Expanded parent muted like Figma Travel (#cacaca) */
.vslocks-shop-sidebar .widget_product_categories > ul > li.cat-item.is-open > a {
    color: #cacaca !important;
}

.vslocks-shop-sidebar .widget_product_categories > ul > li.cat-item > .count {
    grid-column: 2;
    grid-row: 1;
    margin: 0 !important;
    padding: 0 !important;
    color: #a0a0a0 !important;
    font-family: var(--vs-font-body, "Arpona", sans-serif) !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    letter-spacing: 0 !important;
    line-height: 18.2px !important;
    background: none !important;
    border: 0 !important;
    border-radius: 0 !important;
    white-space: nowrap;
}

/* Count as (n) */
.vslocks-shop-sidebar .widget_product_categories > ul > li.cat-item > .count:not(:empty)::before,
.vslocks-shop-sidebar .widget_product_categories .children > li > .count:not(:empty)::before {
    content: "(" !important;
}
.vslocks-shop-sidebar .widget_product_categories > ul > li.cat-item > .count:not(:empty)::after,
.vslocks-shop-sidebar .widget_product_categories .children > li > .count:not(:empty)::after {
    content: ")" !important;
}

/* Chevron 20×20, grey #4c4c4c — parents only, grid col 3 row 1 */
.vslocks-shop-sidebar .widget_product_categories > ul > li.cat-parent > .vslocks-cats-toggle {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    grid-column: 3;
    grid-row: 1;
    justify-self: end;
    align-self: center;
    margin: 0 !important;
    width: 28px !important; /* larger hit area */
    height: 28px !important;
    min-width: 28px !important;
    min-height: 28px !important;
    color: #4c4c4c !important;
    background: transparent !important;
    border: 0 !important;
    order: unset !important;
    position: relative !important;
    top: auto !important;
    right: auto !important;
    left: auto !important;
    bottom: auto !important;
    cursor: pointer !important;
    pointer-events: auto !important;
    z-index: 2;
    -webkit-user-select: none;
    user-select: none;
    appearance: none !important;
    -webkit-appearance: none !important;
}

.vslocks-shop-sidebar .widget_product_categories > ul > li.cat-parent > .vslocks-cats-toggle::before {
    border-color: #4c4c4c !important;
    color: #4c4c4c !important;
}

/* No chevrons on leaf / children rows */
.vslocks-shop-sidebar .widget_product_categories li:not(.cat-parent) > .vslocks-cats-toggle,
.vslocks-shop-sidebar .widget_product_categories .children .vslocks-cats-toggle,
.vslocks-shop-sidebar .widget_product_categories .children .wd-cats-toggle {
    display: none !important;
}

/* Children — collapsed must not reserve space (WoodMart often forces display) */
.vslocks-shop-sidebar .widget_product_categories li.cat-parent > ul.children,
.vslocks-shop-sidebar .widget_product_categories li.cat-parent:not(.is-open) > ul.children {
    display: none !important;
    grid-column: 1 / -1;
    grid-row: 2;
    width: 100%;
    height: 0 !important;
    max-height: 0 !important;
    overflow: hidden !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    list-style: none !important;
    visibility: hidden !important;
}

.vslocks-shop-sidebar .widget_product_categories li.cat-parent.is-open > ul.children {
    display: flex !important;
    flex-direction: column;
    gap: 2px;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    visibility: visible !important;
    margin: 2px 0 0 !important;
    padding: 0 !important;
}

.vslocks-shop-sidebar .widget_product_categories .children > li {
    display: flex !important;
    flex-wrap: nowrap;
    align-items: center;
    gap: 4px;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    min-height: 0 !important;
    line-height: 18.2px !important;
}

.vslocks-shop-sidebar .widget_product_categories .children > li > a {
    flex: 1 1 auto;
    min-width: 0;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    color: #ffffff !important;
    font-family: var(--vs-font-body, "Arpona", sans-serif) !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    letter-spacing: 0 !important;
    line-height: 18.2px !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
}

.vslocks-shop-sidebar .widget_product_categories li.vslocks-cat-empty > a {
    color: rgba(255, 255, 255, 0.72) !important;
    cursor: default !important;
}

.vslocks-shop-sidebar .widget_product_categories li.vslocks-cat-empty > a:hover,
.vslocks-shop-sidebar .widget_product_categories li.vslocks-cat-empty > a:focus {
    color: rgba(255, 255, 255, 0.72) !important;
}

/* Global kill of theme link padding inside this widget */
.vslocks-shop-sidebar .widget_product_categories a {
    padding: 0 !important;
    margin: 0 !important;
}

.vslocks-shop-sidebar .widget_product_categories .children > li > .count {
    flex: 0 0 auto;
    color: #a0a0a0 !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    letter-spacing: 0 !important;
    line-height: 18.2px !important;
    background: none !important;
    border: 0 !important;
    padding: 0 !important;
    /* WoodMart default is margin: 8px 0 0 5px — bloats every child row */
    margin: 0 !important;
    white-space: nowrap;
}

/* Kill WoodMart count margins globally in this widget */
.vslocks-shop-sidebar .widget_product_categories .count {
    margin: 0 !important;
    padding: 0 !important;
}

/* Override mid-file bloat (5px + margin-bottom on cat-parent) */
.vslocks-shop-sidebar .widget_product_categories li {
    padding: 5px 0 !important;
    margin: 0 !important;
}
.vslocks-shop-sidebar .widget_product_categories > ul > li.cat-parent {
    margin-bottom: 0 !important;
    padding-bottom: 5px !important;
}
.vslocks-shop-sidebar .widget_product_categories > ul > li.cat-parent:last-child {
    padding-bottom: 0 !important;
}
.vslocks-shop-sidebar .widget_product_categories .children > li {
    padding: 0 !important;
    min-height: 18.2px !important;
}

/* ── Category state and live counts ──────────────────────────────────────── */
.vslocks-shop-sidebar .widget_product_categories .vslocks-category-filter-count,
.wd-sidebar .widget_product_categories .vslocks-category-filter-count {
    display: inline-flex !important;
    align-items: center;
    justify-content: flex-end;
    min-width: 1.5em;
    color: #a0a0a0 !important;
    font-variant-numeric: tabular-nums;
}

.vslocks-shop-sidebar .widget_product_categories li.vslocks-cat-current > a,
.vslocks-shop-sidebar .widget_product_categories li.cat-item.vslocks-cat-current > a,
.vslocks-shop-sidebar .widget_product_categories > ul > li.cat-item.vslocks-cat-current > a,
.wd-sidebar .widget_product_categories li.vslocks-cat-current > a,
.wd-sidebar .widget_product_categories li.cat-item.vslocks-cat-current > a,
.wd-sidebar .widget_product_categories > ul > li.cat-item.vslocks-cat-current > a,
.vslocks-shop-sidebar .widget_product_categories .vslocks-category-filter-option.is-current,
.vslocks-shop-sidebar .widget_product_categories .children > li > a.vslocks-category-filter-option.is-current,
.wd-sidebar .widget_product_categories .children > li > a.vslocks-category-filter-option.is-current,
.wd-sidebar .widget_product_categories .vslocks-category-filter-option.is-current,
.vslocks-shop-sidebar .widget_product_categories > ul > li.cat-item.is-selected > a,
.wd-sidebar .widget_product_categories > ul > li.cat-item.is-selected > a,
.vslocks-shop-sidebar .widget_product_categories .children > li > a.vslocks-category-filter-option.is-selected,
.wd-sidebar .widget_product_categories .children > li > a.vslocks-category-filter-option.is-selected {
    color: var(--vs-red, #c62828) !important;
    font-weight: 700 !important;
}

.vslocks-shop-sidebar .widget_product_categories li.vslocks-cat-current,
.wd-sidebar .widget_product_categories li.vslocks-cat-current {
    border-inline-start: 2px solid var(--vs-red, #c62828) !important;
    padding-inline-start: 8px !important;
    background: rgba(198, 40, 40, 0.08) !important;
    border-radius: 3px;
}

.vslocks-shop-sidebar .widget_product_categories li.vslocks-cat-current-ancestor > a,
.wd-sidebar .widget_product_categories li.vslocks-cat-current-ancestor > a {
    color: #e5e5e5 !important;
}

.vslocks-shop-sidebar .widget_product_categories li.vslocks-cat-current > .count,
.wd-sidebar .widget_product_categories li.vslocks-cat-current > .count,
.vslocks-shop-sidebar .widget_product_categories .vslocks-category-filter-option.is-selected + .count,
.wd-sidebar .widget_product_categories .vslocks-category-filter-option.is-selected + .count {
    color: var(--vs-red, #c62828) !important;
}

.vslocks-shop-sidebar .widget_product_categories li.vslocks-cat-empty > .count,
.wd-sidebar .widget_product_categories li.vslocks-cat-empty > .count {
    color: rgba(255, 255, 255, 0.45) !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   MOBILE FILTERS — Figma 757:27058 (closed / trigger) + 757:27298 (drawer)
   Phone: hide inline sidebar, show Filters button, open as bottom sheet.
   Desktop (≥768px): button + drawer chrome hidden; sidebar stays in row.
   ═══════════════════════════════════════════════════════════════════════════ */

/* Desktop: hide mobile-only chrome */
.vslocks-mobile-filter-open,
.vslocks-mobile-filter-header,
.vslocks-mobile-filter-footer,
.vslocks-mobile-filter-backdrop {
    display: none !important;
}

@media (max-width: 767px) {
    /* ── Trigger button (closed state 757:27058) ─────────────────────────── */
    body.post-type-archive-product .vslocks-mobile-filter-open,
    body.tax-product_cat .vslocks-mobile-filter-open,
    body.tax-product_tag .vslocks-mobile-filter-open,
    .vslocks-mobile-filter-open {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 8px !important;
        flex: 0 0 auto !important;
        height: 40px !important;
        min-width: 108px !important;
        padding: 0 14px !important;
        margin: 0 !important;
        border: 1px solid #343434 !important;
        border-radius: 8px !important;
        background: #101010 !important;
        background-color: #101010 !important;
        box-shadow: 0 4px 16px rgba(0, 0, 0, 0.35) !important;
        color: #ffffff !important;
        font-family: var(--vs-font-body, "Arpona", sans-serif) !important;
        font-size: 13px !important;
        font-weight: 600 !important;
        letter-spacing: 0.04em !important;
        text-transform: uppercase !important;
        cursor: pointer !important;
        appearance: none !important;
        -webkit-appearance: none !important;
        line-height: 1 !important;
        text-decoration: none !important;
    }

    body.post-type-archive-product .vslocks-mobile-filter-open:hover,
    body.post-type-archive-product .vslocks-mobile-filter-open:focus-visible,
    .vslocks-mobile-filter-open:hover,
    .vslocks-mobile-filter-open:focus-visible {
        border-color: #c62828 !important;
        background: #101010 !important;
        color: #ffffff !important;
        outline: none !important;
    }

    body.post-type-archive-product .vslocks-mobile-filter-open[aria-expanded="true"],
    .vslocks-mobile-filter-open[aria-expanded="true"] {
        border-color: #c62828 !important;
        color: #ff0000 !important;
    }

    .vslocks-mobile-filter-open__icon {
        display: inline-flex;
        width: 18px;
        height: 18px;
        color: currentColor;
    }

    .vslocks-mobile-filter-open__icon svg {
        display: block;
        width: 18px;
        height: 18px;
    }

    /* Toolbar stack — Figma 757:27058 mobile
       HOME / OUR PRODUCTS
       [ FILTERS ] [ SORT ]
     */
    body.post-type-archive-product .shop-loop-head.vslocks-shop-toolbar,
    body.tax-product_cat .shop-loop-head.vslocks-shop-toolbar,
    body.tax-product_tag .shop-loop-head.vslocks-shop-toolbar {
        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 14px !important;
        margin: 0 0 18px !important;
        padding: 4px 0 0 !important;
    }

    /* Breadcrumb row alone on top — no 44px mobile tap bloat */
    body.post-type-archive-product .vslocks-shop-toolbar > .wd-shop-tools:not(.vslocks-shop-tools-end),
    body.tax-product_cat .vslocks-shop-toolbar > .wd-shop-tools:not(.vslocks-shop-tools-end),
    body.tax-product_tag .vslocks-shop-toolbar > .wd-shop-tools:not(.vslocks-shop-tools-end) {
        display: flex !important;
        flex-wrap: nowrap !important;
        align-items: center !important;
        justify-content: flex-start !important;
        width: 100% !important;
        gap: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        min-height: 0 !important;
    }

    body.post-type-archive-product .vslocks-shop-toolbar .wd-breadcrumbs,
    body.post-type-archive-product .vslocks-shop-toolbar .woocommerce-breadcrumb,
    body.tax-product_cat .vslocks-shop-toolbar .wd-breadcrumbs,
    body.tax-product_cat .vslocks-shop-toolbar .woocommerce-breadcrumb,
    body.tax-product_tag .vslocks-shop-toolbar .wd-breadcrumbs,
    body.tax-product_tag .vslocks-shop-toolbar .woocommerce-breadcrumb {
        font-size: 13px !important;
        letter-spacing: 0.06em !important;
        line-height: 1.25 !important;
        width: 100%;
        max-width: 100%;
    }

    body.post-type-archive-product .vslocks-shop-toolbar .wd-breadcrumbs a,
    body.post-type-archive-product .vslocks-shop-toolbar .wd-breadcrumbs .wd-last,
    body.post-type-archive-product .vslocks-shop-toolbar .wd-breadcrumbs .wd-delimiter,
    body.post-type-archive-product .vslocks-shop-toolbar .wd-breadcrumbs .wd-delimiter::after,
    body.tax-product_cat .vslocks-shop-toolbar .wd-breadcrumbs a,
    body.tax-product_cat .vslocks-shop-toolbar .wd-breadcrumbs .wd-last,
    body.tax-product_cat .vslocks-shop-toolbar .wd-breadcrumbs .wd-delimiter,
    body.tax-product_cat .vslocks-shop-toolbar .wd-breadcrumbs .wd-delimiter::after,
    body.tax-product_tag .vslocks-shop-toolbar .wd-breadcrumbs a,
    body.tax-product_tag .vslocks-shop-toolbar .wd-breadcrumbs .wd-last,
    body.tax-product_tag .vslocks-shop-toolbar .wd-breadcrumbs .wd-delimiter,
    body.tax-product_tag .vslocks-shop-toolbar .wd-breadcrumbs .wd-delimiter::after {
        font-size: 13px !important;
        line-height: 1.25 !important;
    }

    body.post-type-archive-product .vslocks-shop-toolbar .wd-breadcrumbs .wd-delimiter,
    body.tax-product_cat .vslocks-shop-toolbar .wd-breadcrumbs .wd-delimiter,
    body.tax-product_tag .vslocks-shop-toolbar .wd-breadcrumbs .wd-delimiter {
        margin: 0 0.35em !important;
    }

    /* Override mobile-responsive.css 44px min-height on breadcrumb links */
    body.vslocks-woo-mobile .vslocks-shop-toolbar .wd-breadcrumbs a,
    body.vslocks-woo-mobile .vslocks-shop-toolbar .wd-breadcrumbs .wd-last,
    body.vslocks-woo-mobile .vslocks-shop-toolbar .shop-loop-head a,
    body.vslocks-woo-mobile .vslocks-shop-toolbar .wd-shop-tools a.wd-last-link {
        min-height: 0 !important;
        min-width: 0 !important;
        font-size: 13px !important;
        display: inline !important;
    }

    /* FILTERS + SORT — two equal buttons (757:27060) */
    body.post-type-archive-product .vslocks-shop-tools-end,
    body.tax-product_cat .vslocks-shop-tools-end,
    body.tax-product_tag .vslocks-shop-tools-end {
        display: grid !important;
        grid-template-columns: 1fr 1fr;
        align-items: stretch;
        gap: 10px !important;
        width: 100%;
        margin: 0;
    }

    /* Hide everything that is not Filters / Sort */
    body.post-type-archive-product .vslocks-shop-tools-end > .wd-show-sidebar-btn,
    body.post-type-archive-product .vslocks-shop-tools-end > .wd-products-per-page,
    body.post-type-archive-product .vslocks-shop-tools-end > .wd-products-shop-view,
    body.tax-product_cat .vslocks-shop-tools-end > .wd-show-sidebar-btn,
    body.tax-product_cat .vslocks-shop-tools-end > .wd-products-per-page,
    body.tax-product_cat .vslocks-shop-tools-end > .wd-products-shop-view,
    body.tax-product_tag .vslocks-shop-tools-end > .wd-show-sidebar-btn,
    body.tax-product_tag .vslocks-shop-tools-end > .wd-products-per-page,
    body.tax-product_tag .vslocks-shop-tools-end > .wd-products-shop-view {
        display: none !important;
    }

    /* FILTERS fills column 1 */
    body.post-type-archive-product .vslocks-shop-tools-end > .vslocks-mobile-filter-open,
    body.tax-product_cat .vslocks-shop-tools-end > .vslocks-mobile-filter-open,
    body.tax-product_tag .vslocks-shop-tools-end > .vslocks-mobile-filter-open {
        grid-column: 1;
        width: 100% !important;
        min-width: 0 !important;
        height: 44px !important;
    }

    /*
     * SORT — restyle WooCommerce ordering form as a matching button.
     * Native <select> stays full-size + transparent so the OS picker still works.
     */
    body.post-type-archive-product .vslocks-shop-tools-end > .woocommerce-ordering,
    body.tax-product_cat .vslocks-shop-tools-end > .woocommerce-ordering,
    body.tax-product_tag .vslocks-shop-tools-end > .woocommerce-ordering {
        grid-column: 2;
        position: relative !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 8px !important;
        width: 100% !important;
        height: 44px !important;
        margin: 0 !important;
        padding: 0 14px !important;
        border: 1px solid #343434 !important;
        border-radius: 8px !important;
        background: #101010 !important;
        background-color: #101010 !important;
        box-shadow: 0 4px 16px rgba(0, 0, 0, 0.35) !important;
        color: #ffffff !important;
        font-family: var(--vs-font-body, "Arpona", sans-serif) !important;
        overflow: hidden;
    }

    /* Sort arrows icon */
    body.post-type-archive-product .vslocks-shop-tools-end > .woocommerce-ordering::before,
    body.tax-product_cat .vslocks-shop-tools-end > .woocommerce-ordering::before,
    body.tax-product_tag .vslocks-shop-tools-end > .woocommerce-ordering::before {
        content: "" !important;
        display: block !important;
        flex: 0 0 18px;
        width: 18px !important;
        height: 18px !important;
        background-color: currentColor !important;
        -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18' fill='none'%3E%3Cpath d='M6 3v12M6 3L3.5 5.5M6 3l2.5 2.5M12 15V3M12 15l2.5-2.5M12 15l-2.5-2.5' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat !important;
        mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18' fill='none'%3E%3Cpath d='M6 3v12M6 3L3.5 5.5M6 3l2.5 2.5M12 15V3M12 15l2.5-2.5M12 15l-2.5-2.5' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat !important;
        pointer-events: none;
    }

    body.post-type-archive-product .vslocks-shop-tools-end > .woocommerce-ordering::after,
    body.tax-product_cat .vslocks-shop-tools-end > .woocommerce-ordering::after,
    body.tax-product_tag .vslocks-shop-tools-end > .woocommerce-ordering::after {
        content: "SORT" !important;
        display: block !important;
        font-size: 13px !important;
        font-weight: 600 !important;
        letter-spacing: 0.04em !important;
        line-height: 1 !important;
        text-transform: uppercase !important;
        color: #ffffff !important;
        pointer-events: none;
    }

    /* Kill WoodMart mobile icon-only ordering chrome */
    body.post-type-archive-product .vslocks-shop-tools-end > .woocommerce-ordering.wd-ordering-mb-icon,
    body.tax-product_cat .vslocks-shop-tools-end > .woocommerce-ordering.wd-ordering-mb-icon,
    body.tax-product_tag .vslocks-shop-tools-end > .woocommerce-ordering.wd-ordering-mb-icon {
        width: 100% !important;
        min-width: 0 !important;
        font-size: inherit !important;
    }

    body.post-type-archive-product .vslocks-shop-tools-end > .woocommerce-ordering.wd-ordering-mb-icon::before,
    body.tax-product_cat .vslocks-shop-tools-end > .woocommerce-ordering.wd-ordering-mb-icon::before {
        /* keep our sort arrows, override WoodMart icon font */
        font-family: inherit !important;
        font-size: 0 !important;
    }

    body.post-type-archive-product .vslocks-shop-tools-end .woocommerce-ordering select,
    body.tax-product_cat .vslocks-shop-tools-end .woocommerce-ordering select,
    body.tax-product_tag .vslocks-shop-tools-end .woocommerce-ordering select {
        position: absolute !important;
        inset: 0 !important;
        width: 100% !important;
        height: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        border: 0 !important;
        border-radius: 8px !important;
        opacity: 0 !important;
        cursor: pointer !important;
        z-index: 2 !important;
        appearance: none !important;
        -webkit-appearance: none !important;
        background: transparent !important;
        color: transparent !important;
        font-size: 16px !important; /* iOS zoom prevent */
    }

    body.post-type-archive-product .vslocks-shop-tools-end > .woocommerce-ordering:hover,
    body.post-type-archive-product .vslocks-shop-tools-end > .woocommerce-ordering:focus-within,
    body.tax-product_cat .vslocks-shop-tools-end > .woocommerce-ordering:hover,
    body.tax-product_cat .vslocks-shop-tools-end > .woocommerce-ordering:focus-within {
        border-color: #c62828 !important;
        color: #ffffff !important;
    }

    /* Products first; sidebar is the drawer, not in-flow */
    .vslocks-shop-row {
        flex-direction: column !important;
        gap: 0 !important;
    }

    .vslocks-shop-products {
        width: 100%;
        order: 1;
    }

    /* ── Backdrop ──────────────────────────────────────────────────────────
       Never use display:block while closed — [hidden] was overridden and the
       full-screen layer kept intercepting FILTERS / product clicks. */
    .vslocks-mobile-filter-backdrop,
    .vslocks-mobile-filter-backdrop[hidden] {
        display: none !important;
        position: fixed;
        inset: 0;
        z-index: 9998;
        background: rgba(0, 0, 0, 0.72);
        opacity: 0;
        visibility: hidden !important;
        pointer-events: none !important;
        transition: opacity 0.25s ease, visibility 0.25s ease;
    }

    body.vslocks-filters-open .vslocks-mobile-filter-backdrop {
        display: block !important;
        opacity: 1;
        visibility: visible !important;
        pointer-events: auto !important;
    }

    /* ── Drawer panel (open state 757:27298) ─────────────────────────────── */
    /*
     * Closed: fully inert (no hit-testing). Previous closed state left the
     * fixed panel / header intercepting FILTERS button and product clicks.
     */
    .vslocks-shop-sidebar {
        position: fixed !important;
        left: 0;
        right: 0;
        bottom: 0;
        top: auto;
        z-index: 9999;
        display: flex !important;
        flex-direction: column !important;
        width: 100% !important;
        max-width: 100% !important;
        max-height: min(92vh, 760px);
        margin: 0 !important;
        padding: 0 !important;
        border: 0 !important;
        border-radius: 16px 16px 0 0 !important;
        background: #0a0a0a !important;
        box-shadow: 0 -12px 40px rgba(0, 0, 0, 0.55) !important;
        overflow: hidden;
        transform: translate3d(0, 110%, 0);
        transition: transform 0.3s cubic-bezier(0.22, 1, 0.36, 1), visibility 0.3s;
        pointer-events: none !important;
        visibility: hidden !important;
        order: 0;
        flex: none !important;
    }

    body.vslocks-filters-open .vslocks-shop-sidebar {
        transform: translate3d(0, 0, 0);
        pointer-events: auto !important;
        visibility: visible !important;
    }

    /* Ensure interactive children work while open */
    body.vslocks-filters-open .vslocks-shop-sidebar a,
    body.vslocks-filters-open .vslocks-shop-sidebar button,
    body.vslocks-filters-open .vslocks-shop-sidebar .vslocks-cats-toggle {
        pointer-events: auto !important;
        position: relative;
        z-index: 1;
    }

    /* Grab handle */
    .vslocks-shop-sidebar::before {
        content: "";
        display: block;
        width: 40px;
        height: 4px;
        margin: 10px auto 4px;
        border-radius: 4px;
        background: #343434;
    }

    .vslocks-mobile-filter-header {
        display: flex !important;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        flex: 0 0 auto;
        z-index: 2;
        padding: 0 16px 12px;
        margin: 0;
        background: #0a0a0a;
    }

    /* Scrollable filter widgets; footer stays pinned */
    .vslocks-shop-sidebar .vslocks-mobile-filter-body,
    .vslocks-shop-sidebar .widget-area.vslocks-mobile-filter-body {
        flex: 1 1 auto;
        min-height: 0;
        overflow-x: hidden;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        padding: 0 16px 12px;
        width: 100%;
        max-width: 100%;
    }

    .vslocks-mobile-filter-title {
        margin: 0 !important;
        padding: 0 !important;
        color: #ff0000 !important;
        font-family: var(--vs-font-body, "Arpona", sans-serif) !important;
        font-size: 16px !important;
        font-weight: 600 !important;
        letter-spacing: 0.13px !important;
        line-height: 1.2 !important;
        text-transform: uppercase !important;
    }

    .vslocks-mobile-filter-close {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: 36px !important;
        height: 36px !important;
        margin: 0 !important;
        padding: 0 !important;
        border: 1px solid #343434 !important;
        border-radius: 8px !important;
        background: #101010 !important;
        background-color: #101010 !important;
        color: #cacaca !important;
        font-size: 24px !important;
        line-height: 1 !important;
        cursor: pointer !important;
        appearance: none !important;
        -webkit-appearance: none !important;
        box-shadow: none !important;
    }

    .vslocks-mobile-filter-close:hover,
    .vslocks-mobile-filter-close:focus-visible {
        color: #ffffff !important;
        border-color: #c62828 !important;
        background: #101010 !important;
        outline: none !important;
    }

    /* Widgets full-width inside drawer */
    .vslocks-shop-sidebar .widget-area {
        width: 100%;
        max-width: 100%;
    }

    .vslocks-shop-sidebar .widget {
        width: 100% !important;
        max-width: 100% !important;
    }

    .vslocks-shop-sidebar .widget_product_categories {
        width: 100% !important;
        max-width: 100% !important;
    }

    /* ── Footer: CLEAR + SHOW RESULTS (Figma 757:27298) ──────────────────── */
    .vslocks-mobile-filter-footer {
        display: grid !important;
        grid-template-columns: 1fr 1.4fr;
        gap: 10px;
        flex: 0 0 auto;
        z-index: 3;
        padding: 12px 16px calc(14px + env(safe-area-inset-bottom, 0px));
        margin: 0;
        border-top: 1px solid #343434;
        background: #0a0a0a;
        box-shadow: 0 -8px 24px rgba(0, 0, 0, 0.35);
    }

    .vslocks-mobile-filter-clear,
    .vslocks-mobile-filter-apply {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        height: 48px !important;
        min-height: 48px !important;
        margin: 0 !important;
        padding: 0 12px !important;
        border-radius: 8px !important;
        font-family: var(--vs-font-body, "Arpona", sans-serif) !important;
        font-size: 13px !important;
        font-weight: 600 !important;
        letter-spacing: 0.06em !important;
        line-height: 1 !important;
        text-transform: uppercase !important;
        text-decoration: none !important;
        cursor: pointer !important;
        appearance: none !important;
        -webkit-appearance: none !important;
        box-shadow: none !important;
        white-space: nowrap;
    }

    /* Outline secondary — beat woo-dark-theme red-link rules */
    .vslocks-shop-sidebar .vslocks-mobile-filter-clear,
    .vslocks-mobile-filter-footer a.vslocks-mobile-filter-clear {
        border: 1px solid #343434 !important;
        background: #101010 !important;
        background-color: #101010 !important;
        color: #ffffff !important;
    }

    .vslocks-shop-sidebar .vslocks-mobile-filter-clear:hover,
    .vslocks-shop-sidebar .vslocks-mobile-filter-clear:focus-visible,
    .vslocks-mobile-filter-footer a.vslocks-mobile-filter-clear:hover,
    .vslocks-mobile-filter-footer a.vslocks-mobile-filter-clear:focus-visible {
        border-color: #cacaca !important;
        background: #101010 !important;
        color: #ffffff !important;
        outline: none !important;
    }

    /* Primary red CTA */
    .vslocks-shop-sidebar .vslocks-mobile-filter-apply,
    .vslocks-mobile-filter-footer .vslocks-mobile-filter-apply {
        border: 1px solid #c62828 !important;
        background: #c62828 !important;
        background-color: #c62828 !important;
        color: #ffffff !important;
    }

    .vslocks-shop-sidebar .vslocks-mobile-filter-apply:hover,
    .vslocks-shop-sidebar .vslocks-mobile-filter-apply:focus-visible {
        background: #b71c1c !important;
        background-color: #b71c1c !important;
        border-color: #b71c1c !important;
        color: #ffffff !important;
        outline: none !important;
    }

    body.vslocks-filters-open {
        overflow: hidden !important;
        touch-action: none;
    }

    /* Defensive: any leftover desktop shop tools stay hidden on phone */
    body.post-type-archive-product .vslocks-shop-toolbar .wd-products-shop-view,
    body.post-type-archive-product .vslocks-shop-toolbar .wd-products-per-page,
    body.post-type-archive-product .vslocks-shop-toolbar .wd-show-sidebar-btn,
    body.tax-product_cat .vslocks-shop-toolbar .wd-products-shop-view,
    body.tax-product_cat .vslocks-shop-toolbar .wd-products-per-page,
    body.tax-product_cat .vslocks-shop-toolbar .wd-show-sidebar-btn,
    body.tax-product_tag .vslocks-shop-toolbar .wd-products-shop-view,
    body.tax-product_tag .vslocks-shop-toolbar .wd-products-per-page,
    body.tax-product_tag .vslocks-shop-toolbar .wd-show-sidebar-btn {
        display: none !important;
    }
}

/* ═══════════════════════════════════════════════════════════════════════════
   SWG-108 — readable, collapsed shop filters with colour multi-select
   ═══════════════════════════════════════════════════════════════════════════ */

.vslocks-shop-sidebar .widget_product_categories .widget-title,
.vslocks-shop-sidebar .vslocks-color-filter-widget .widget-title {
    font-size: 18px !important;
    line-height: 24px !important;
}

.vslocks-shop-sidebar .widget_product_categories > ul > li.cat-item {
    padding: 8px 0 !important;
    row-gap: 0 !important;
}

.vslocks-shop-sidebar .widget_product_categories > ul > li.cat-item > a,
.vslocks-shop-sidebar .widget_product_categories .children > li > a {
    font-size: 15px !important;
    line-height: 21px !important;
}

.vslocks-shop-sidebar .widget_product_categories > ul > li.cat-item > .count,
.vslocks-shop-sidebar .widget_product_categories .children > li > .count {
    font-size: 14px !important;
    line-height: 21px !important;
}

.vslocks-shop-sidebar .widget_product_categories li.cat-parent.is-open > ul.children {
    gap: 6px !important;
    margin: 8px 0 4px !important;
    padding: 0 0 0 14px !important;
}

.vslocks-shop-sidebar .widget_product_categories .children > li {
    min-height: 21px !important;
    padding: 0 !important;
    line-height: 21px !important;
}

.vslocks-shop-sidebar .vslocks-color-filter-widget .widget-title {
    margin-bottom: 0 !important;
}

.vslocks-shop-sidebar .vslocks-color-filter-toggle {
    position: relative;
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
    min-height: 32px;
    margin: 0 !important;
    padding: 0 32px 0 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: #ff0000 !important;
    font: inherit !important;
    letter-spacing: inherit !important;
    text-align: left;
    text-transform: inherit !important;
    cursor: pointer;
}

.vslocks-shop-sidebar .vslocks-color-filter-toggle::after {
    content: "" !important;
    position: absolute;
    top: 50%;
    right: 9px;
    display: block !important;
    width: 8px !important;
    height: 8px !important;
    margin: -6px 0 0 !important;
    border: 0 !important;
    border-right: 1.5px solid #a0a0a0 !important;
    border-bottom: 1.5px solid #a0a0a0 !important;
    background: transparent !important;
    transform: rotate(45deg);
    transition: transform 0.15s ease, margin 0.15s ease;
}

.vslocks-shop-sidebar .vslocks-color-filter-widget.is-open .vslocks-color-filter-toggle::after {
    margin-top: -2px !important;
    transform: rotate(225deg);
}

.vslocks-shop-sidebar .vslocks-color-filter-toggle:hover,
.vslocks-shop-sidebar .vslocks-color-filter-toggle:focus-visible {
    color: #ff3b3b !important;
    outline: none;
}

.vslocks-shop-sidebar .vslocks-color-filter-list[hidden] {
    display: none !important;
}

.vslocks-shop-sidebar .vslocks-color-filter-widget.is-open .vslocks-color-filter-list {
    display: flex !important;
    margin-top: 12px !important;
}

.vslocks-shop-sidebar .vslocks-color-filter-list > li > a {
    gap: 10px !important;
    min-height: 32px;
    font-size: 14px !important;
    line-height: 20px !important;
}

.vslocks-shop-sidebar .vslocks-color-checkbox {
    position: relative;
    display: inline-block;
    flex: 0 0 18px;
    width: 18px;
    height: 18px;
    border: 1.5px solid #a0a0a0;
    border-radius: 3px;
    background: transparent;
    box-sizing: border-box;
}

.vslocks-shop-sidebar .vslocks-category-filter-check {
    position: relative;
    display: inline-block;
    flex: 0 0 18px;
    width: 18px;
    height: 18px;
    border: 1.5px solid #a0a0a0;
    border-radius: 3px;
    background: transparent;
    box-sizing: border-box;
}

.vslocks-shop-sidebar .vslocks-category-filter-option {
    display: inline-flex !important;
    align-items: center;
    gap: 10px;
}

.vslocks-shop-sidebar a[role="checkbox"][aria-checked="true"] .vslocks-category-filter-check {
    border-color: #ed1c24;
    background: #ed1c24;
}

.vslocks-shop-sidebar a[role="checkbox"][aria-checked="true"] .vslocks-category-filter-check::after {
    content: "";
    position: absolute;
    top: 2px;
    left: 5px;
    width: 4px;
    height: 8px;
    border: solid #ffffff;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

.vslocks-shop-sidebar a[role="checkbox"][aria-checked="true"] .vslocks-color-checkbox {
    border-color: #ed1c24;
    background: #ed1c24;
}

.vslocks-shop-sidebar a[role="checkbox"][aria-checked="true"] .vslocks-color-checkbox::after {
    content: "";
    position: absolute;
    top: 2px;
    left: 5px;
    width: 4px;
    height: 8px;
    border: solid #ffffff;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

.vslocks-shop-sidebar .vslocks-color-filter-list .vslocks-color-label {
    font-size: 14px !important;
    line-height: 20px !important;
}

.vslocks-shop-sidebar .vslocks-color-filter-list > li > a:focus-visible {
    outline: 2px solid #ed1c24;
    outline-offset: 3px;
}

.vslocks-card-tagline {
    font-size: 12px !important;
    line-height: 16px !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   SWG-127 / SWG-129 / SWG-128 — final mobile Products parity overrides
   ═══════════════════════════════════════════════════════════════════════════ */

@media (max-width: 767px) {
    /* One fluid card per row. The desktop 2×300px release rule must not leak
       into a 360–414px viewport and create document-level horizontal scroll. */
    body.post-type-archive-product .vslocks-shop-products .products.wd-products.wd-grid-g,
    body.tax-product_cat .vslocks-shop-products .products.wd-products.wd-grid-g,
    body.tax-product_tag .vslocks-shop-products .products.wd-products.wd-grid-g,
    body.post-type-archive-product .vslocks-shop-products .products.wd-products,
    body.tax-product_cat .vslocks-shop-products .products.wd-products,
    body.tax-product_tag .vslocks-shop-products .products.wd-products {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 10px !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        --wd-col: 1 !important;
        --wd-col-lg: 1 !important;
    }

    body.post-type-archive-product .vslocks-shop-products .products .product-grid-item,
    body.post-type-archive-product .vslocks-shop-products .products .wd-product,
    body.post-type-archive-product .vslocks-shop-products .products .product,
    body.tax-product_cat .vslocks-shop-products .products .product-grid-item,
    body.tax-product_cat .vslocks-shop-products .products .wd-product,
    body.tax-product_cat .vslocks-shop-products .products .product,
    body.tax-product_tag .vslocks-shop-products .products .product-grid-item,
    body.tax-product_tag .vslocks-shop-products .products .wd-product,
    body.tax-product_tag .vslocks-shop-products .products .product {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        flex: 0 0 auto !important;
    }

    body.post-type-archive-product .vslocks-shop-products,
    body.tax-product_cat .vslocks-shop-products,
    body.tax-product_tag .vslocks-shop-products {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }

    /* Keep the card proportional to the Figma mobile reference instead of
       retaining the desktop 200px image + desktop-sized info stack. */
    body.post-type-archive-product .vslocks-shop-products .product-grid-item .product-element-top,
    body.tax-product_cat .vslocks-shop-products .product-grid-item .product-element-top,
    body.tax-product_tag .vslocks-shop-products .product-grid-item .product-element-top,
    body.post-type-archive-product .products .product.vslocks-card-ready .product-element-top,
    body.tax-product_cat .products .product.vslocks-card-ready .product-element-top {
        height: clamp(160px, 44vw, 180px) !important;
        min-height: clamp(160px, 44vw, 180px) !important;
        max-height: clamp(160px, 44vw, 180px) !important;
        padding: 6px 12px 3px !important;
    }

    body.post-type-archive-product .vslocks-shop-products .product-grid-item .vslocks-card-ribbon,
    body.tax-product_cat .vslocks-shop-products .product-grid-item .vslocks-card-ribbon,
    body.tax-product_tag .vslocks-shop-products .product-grid-item .vslocks-card-ribbon {
        min-height: 20px !important;
        padding: 3px 8px !important;
    }

    body.post-type-archive-product .vslocks-shop-products .product-grid-item,
    body.tax-product_cat .vslocks-shop-products .product-grid-item,
    body.tax-product_tag .vslocks-shop-products .product-grid-item,
    body.post-type-archive-product .products .product.vslocks-card-ready,
    body.tax-product_cat .products .product.vslocks-card-ready {
        max-width: 100% !important;
    }

    body.post-type-archive-product .vslocks-shop-products .product-grid-item .product-element-bottom,
    body.tax-product_cat .vslocks-shop-products .product-grid-item .product-element-bottom,
    body.tax-product_tag .vslocks-shop-products .product-grid-item .product-element-bottom {
        gap: 5px !important;
        padding: 0 12px 5px !important;
        padding-block: 0 5px !important;
        padding-inline: 12px !important;
        min-height: 0 !important;
    }

    /* WoodMart's dark-theme rule targets .product-information as well; the
       combined class selector keeps mobile spacing deterministic. */
    body.post-type-archive-product .vslocks-shop-products .product-grid-item .product-element-bottom.product-information,
    body.tax-product_cat .vslocks-shop-products .product-grid-item .product-element-bottom.product-information,
    body.tax-product_tag .vslocks-shop-products .product-grid-item .product-element-bottom.product-information {
        padding: 0 12px 5px !important;
        padding-block: 0 5px !important;
        padding-inline: 12px !important;
        min-height: 0 !important;
    }

    body.post-type-archive-product .vslocks-card-meta-row,
    body.tax-product_cat .vslocks-card-meta-row,
    body.tax-product_tag .vslocks-card-meta-row {
        min-height: 31px !important;
        padding: 3px 8px !important;
    }

    body.post-type-archive-product .vslocks-card-badge,
    body.tax-product_cat .vslocks-card-badge {
        padding: 3px 6px !important;
    }

    body.post-type-archive-product .vslocks-card-swatches,
    body.tax-product_cat .vslocks-card-swatches,
    body.tax-product_tag .vslocks-card-swatches {
        padding-top: 7px !important;
        padding-bottom: 5px !important;
    }

    body.post-type-archive-product .vslocks-card-tagline,
    body.tax-product_cat .vslocks-card-tagline,
    body.tax-product_tag .vslocks-card-tagline {
        min-height: 0 !important;
        padding-bottom: 5px !important;
        font-size: 10px !important;
        line-height: 14px !important;
    }

    body.post-type-archive-product .vslocks-card-divider,
    body.tax-product_cat .vslocks-card-divider {
        margin-bottom: 7px !important;
    }

    body.post-type-archive-product .vslocks-shop-products .product-grid-item .wd-entities-title,
    body.tax-product_cat .vslocks-shop-products .product-grid-item .wd-entities-title,
    body.tax-product_tag .vslocks-shop-products .product-grid-item .wd-entities-title {
        min-height: 32px !important;
        padding: 3px 8px 0 !important;
        line-height: 18px !important;
    }

    body.post-type-archive-product .vslocks-shop-products .product-grid-item .price,
    body.tax-product_cat .vslocks-shop-products .product-grid-item .price,
    body.tax-product_tag .vslocks-shop-products .product-grid-item .price {
        margin: 0 0 8px !important;
    }

    body.post-type-archive-product .vslocks-shop-products .product-grid-item .vslocks-card-purchase,
    body.tax-product_cat .vslocks-shop-products .product-grid-item .vslocks-card-purchase,
    body.tax-product_tag .vslocks-shop-products .product-grid-item .vslocks-card-purchase {
        padding: 4px 8px 0 !important;
    }

    /* Figma's filter drawer is a single dark surface, not nested cards. */
    .vslocks-shop-sidebar {
        max-height: min(78vh, 560px) !important;
    }

    .vslocks-shop-sidebar::before {
        display: none !important;
    }

    .vslocks-mobile-filter-header {
        padding: 14px 10px 10px !important;
    }

    .vslocks-shop-sidebar .vslocks-mobile-filter-body,
    .vslocks-shop-sidebar .widget-area.vslocks-mobile-filter-body {
        padding: 0 10px 10px !important;
    }

    .vslocks-shop-sidebar .widget_product_categories,
    .vslocks-shop-sidebar .vslocks-color-filter-widget {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 0 8px !important;
        padding: 0 !important;
        border: 0 !important;
        border-radius: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
    }

    .vslocks-shop-sidebar .widget_product_categories .widget-title,
    .vslocks-shop-sidebar .vslocks-color-filter-widget .widget-title {
        margin: 0 0 6px !important;
        font-size: 16px !important;
        line-height: 19px !important;
    }

    .vslocks-shop-sidebar .widget_product_categories > ul > li.cat-item {
        padding: 4px 0 !important;
        row-gap: 0 !important;
    }

    .vslocks-shop-sidebar .widget_product_categories > ul > li.cat-item > a,
    .vslocks-shop-sidebar .widget_product_categories .children > li > a,
    .vslocks-shop-sidebar .widget_product_categories > ul > li.cat-item > .count,
    .vslocks-shop-sidebar .widget_product_categories .children > li > .count {
        font-size: 13px !important;
        line-height: 18px !important;
    }

    .vslocks-shop-sidebar .widget_product_categories .vslocks-cats-toggle {
        width: 24px !important;
        height: 24px !important;
        min-width: 24px !important;
        min-height: 24px !important;
    }

    .vslocks-shop-sidebar .widget_product_categories li.cat-parent.is-open > ul.children {
        gap: 1px !important;
        margin: 1px 0 0 !important;
    }

    .vslocks-shop-sidebar .widget_product_categories .children > li {
        min-height: 18px !important;
        line-height: 18px !important;
    }

    .vslocks-shop-sidebar .vslocks-color-filter-toggle {
        min-height: 28px !important;
        padding-right: 26px !important;
    }

    .vslocks-shop-sidebar .vslocks-color-filter-list,
    .vslocks-shop-sidebar .vslocks-color-filter-widget.is-open .vslocks-color-filter-list {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 8px 18px !important;
        margin: 5px 0 0 !important;
    }

    .vslocks-shop-sidebar .vslocks-color-filter-list[hidden] {
        display: none !important;
    }

    .vslocks-shop-sidebar .vslocks-color-filter-list > li > a {
        min-height: 24px !important;
        gap: 7px !important;
        font-size: 13px !important;
        line-height: 18px !important;
    }

    .vslocks-shop-sidebar .vslocks-color-checkbox {
        display: none !important;
    }

    .vslocks-shop-sidebar .vslocks-color-dot {
        flex: 0 0 16px !important;
        width: 16px !important;
        height: 16px !important;
    }

    .vslocks-mobile-filter-footer {
        grid-template-columns: 1fr 1.4fr !important;
        padding: 10px 10px calc(10px + env(safe-area-inset-bottom, 0px)) !important;
    }

    .vslocks-mobile-filter-clear,
    .vslocks-mobile-filter-apply {
        height: 44px !important;
        min-height: 44px !important;
        font-size: 12px !important;
    }

    /* Keep every filter action usable on touch screens, including controls
       whose visual icon remains smaller than its hit area. */
    .vslocks-mobile-filter-close {
        width: 44px !important;
        height: 44px !important;
        min-width: 44px !important;
        min-height: 44px !important;
        box-sizing: border-box !important;
    }

    .vslocks-shop-sidebar .widget_product_categories .vslocks-cats-toggle {
        width: 44px !important;
        height: 44px !important;
        min-width: 44px !important;
        min-height: 44px !important;
        flex: 0 0 44px !important;
        box-sizing: border-box !important;
    }

    .vslocks-shop-sidebar .widget_product_categories > ul > li.cat-parent > .vslocks-cats-toggle {
        width: 44px !important;
        height: 44px !important;
        min-width: 44px !important;
        min-height: 44px !important;
        flex: 0 0 44px !important;
        box-sizing: border-box !important;
    }

    .vslocks-shop-sidebar .vslocks-color-filter-toggle {
        min-height: 44px !important;
        height: 44px !important;
        box-sizing: border-box !important;
    }
}

/* ═══════════════════════════════════════════════════════════════════════════
   INLINE SHOP MOBILE AUDIT — tablet row containment
   At 768–1024px the row stacks, so both stacked regions must inherit the
   content width instead of retaining the desktop 260/300px caps.
   ═══════════════════════════════════════════════════════════════════════════ */

@media (min-width: 768px) and (max-width: 1024px) {
    body.post-type-archive-product .vslocks-shop-row,
    body.tax-product_cat .vslocks-shop-row,
    body.tax-product_tag .vslocks-shop-row {
        flex-direction: column;
        width: 100%;
        max-width: 100%;
        gap: 20px;
    }

    body.post-type-archive-product .vslocks-shop-sidebar,
    body.tax-product_cat .vslocks-shop-sidebar,
    body.tax-product_tag .vslocks-shop-sidebar {
        flex: 0 0 auto !important;
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box;
    }

    body.post-type-archive-product .vslocks-shop-sidebar > .widget-area > .widget,
    body.tax-product_cat .vslocks-shop-sidebar > .widget-area > .widget,
    body.tax-product_tag .vslocks-shop-sidebar > .widget-area > .widget {
        flex: 0 0 260px;
        width: 260px !important;
        max-width: 100% !important;
        box-sizing: border-box;
    }

    body.post-type-archive-product .vslocks-shop-tools-end > .woocommerce-ordering,
    body.tax-product_cat .vslocks-shop-tools-end > .woocommerce-ordering,
    body.tax-product_tag .vslocks-shop-tools-end > .woocommerce-ordering {
        position: relative !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 8px !important;
        flex: 0 1 140px !important;
        width: 140px !important;
        min-width: 0 !important;
        max-width: 100% !important;
        height: 44px !important;
        min-height: 44px !important;
        margin: 0 !important;
        padding: 0 14px !important;
        border: 1px solid #343434 !important;
        border-radius: 8px !important;
        background: #101010 !important;
        background-color: #101010 !important;
        box-shadow: 0 4px 16px rgba(0, 0, 0, 0.35) !important;
        color: #ffffff !important;
        overflow: hidden !important;
    }

    body.post-type-archive-product .vslocks-shop-tools-end > .woocommerce-ordering::before,
    body.tax-product_cat .vslocks-shop-tools-end > .woocommerce-ordering::before,
    body.tax-product_tag .vslocks-shop-tools-end > .woocommerce-ordering::before {
        content: "↕" !important;
        display: block !important;
        flex: 0 0 auto;
        font-family: Arial, sans-serif !important;
        font-size: 18px !important;
        line-height: 1 !important;
        pointer-events: none;
    }

    body.post-type-archive-product .vslocks-shop-tools-end > .woocommerce-ordering::after,
    body.tax-product_cat .vslocks-shop-tools-end > .woocommerce-ordering::after,
    body.tax-product_tag .vslocks-shop-tools-end > .woocommerce-ordering::after {
        content: "SORT" !important;
        display: block !important;
        font-size: 13px !important;
        font-weight: 600 !important;
        letter-spacing: 0.04em !important;
        line-height: 1 !important;
        text-transform: uppercase !important;
        color: #ffffff !important;
        pointer-events: none;
    }

    body.post-type-archive-product .vslocks-shop-tools-end > .woocommerce-ordering select,
    body.tax-product_cat .vslocks-shop-tools-end > .woocommerce-ordering select,
    body.tax-product_tag .vslocks-shop-tools-end > .woocommerce-ordering select {
        position: absolute !important;
        inset: 0 !important;
        width: 100% !important;
        height: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        border: 0 !important;
        border-radius: 8px !important;
        opacity: 0 !important;
        cursor: pointer !important;
        z-index: 2 !important;
        appearance: none !important;
        -webkit-appearance: none !important;
        background: transparent !important;
        color: transparent !important;
        font-size: 16px !important;
    }

    body.post-type-archive-product .vslocks-shop-products,
    body.tax-product_cat .vslocks-shop-products,
    body.tax-product_tag .vslocks-shop-products {
        flex: 0 0 auto;
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box;
    }

    body.post-type-archive-product .vslocks-shop-products .products.wd-products,
    body.tax-product_cat .vslocks-shop-products .products.wd-products,
    body.tax-product_tag .vslocks-shop-products .products.wd-products {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 16px !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }

    body.post-type-archive-product .vslocks-shop-products .products .product-grid-item,
    body.post-type-archive-product .vslocks-shop-products .products .wd-product,
    body.post-type-archive-product .vslocks-shop-products .products .product,
    body.tax-product_cat .vslocks-shop-products .products .product-grid-item,
    body.tax-product_cat .vslocks-shop-products .products .wd-product,
    body.tax-product_cat .vslocks-shop-products .products .product,
    body.tax-product_tag .vslocks-shop-products .products .product-grid-item,
    body.tax-product_tag .vslocks-shop-products .products .wd-product,
    body.tax-product_tag .vslocks-shop-products .products .product {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }
}
