.home-products-outer {
    position: relative !important;
    left: 50% !important;
    width: 100vw !important;
    max-width: 100vw !important;
    transform: translateX(-50%) !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

div#n2-ss-3 .n2-ss-control-bullet {
    margin-bottom: -25px !important;
    z-index: 30 !important;
    pointer-events: all !important;
}

#n2-ss-3 .nextend-bullet-bar {
    pointer-events: all !important;
    gap: 6px;
}

#n2-ss-3 .nextend-bullet-bar .n2-bullet {
    pointer-events: all !important;
}

#n2-ss-3 .nextend-bullet-bar .n2-bullet.n2-active {
    background: RGBA(51, 51, 51, 1) !important;
}

.home-products-outer > .wpb_column > .vc_column-inner {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

.home-products-row .vc_column-inner {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

.home-products-row .zolo_woo_categories ul.products {
    margin: 0 !important;
    display: flex;
    align-items: stretch;
}

.home-products-row .zolo_woo_categories ul.products li.product {
    padding: 0 !important;
    display: flex;
}

.home-products-row .zolo_woo_category_box {
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    position: relative;
    display: flex;
    flex-direction: column;
    width: 100%;
}

.home-products-row .zolo_category_background_image {
    flex: 1;
}

.home-products-row .zolo_category_background_image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
    margin: 0;
}

.home-products-outer .zolo_imagebox_area {
    margin-bottom: 0 !important;
    position: relative !important;
    aspect-ratio: 960 / 679;
    height: auto !important;
    overflow: hidden;
}

.home-products-outer .zolo_imagebox {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    float: none !important;
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 960 / 679;
}

.home-products-outer .zolo_imagebox > a {
    display: block;
    width: 100%;
    height: 100%;
}

.home-products-outer .zolo_imagebox img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
}

.home-products-row .zolo_woo_category_caption {
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 40px !important;
    top: auto !important;
    width: 100% !important;
    float: none !important;
    text-align: center !important;
    padding: 0 20px !important;
    background: transparent !important;
}

#yith-ywrq-table-list,
#yith-ywrq-table-list th,
#yith-ywrq-table-list td {
    border: 1px solid #ddd !important;
}

#yith-ywrq-table-list .product-quantity {
    text-align: center !important;
    vertical-align: middle !important;
}

#yith-ywrq-table-list .qib-button-wrapper {
    float: none !important;
}

#yith-ywrq-table-list .product-quantity .quantity {
    display: inline-flex !important;
}

#yith-ywrq-table-list th {
    font-weight: normal;
}

#yith-ywrq-table-list .product-thumbnail img {
    width: 100px !important;
    max-width: 100px !important;
    height: 100px !important;
    object-fit: contain !important;
}

.woocommerce-Tabs-panel strong {
    font-weight: bold !important;
}

.woocommerce ul.products li.product .zolo_product_thumbnail,
.woocommerce-page ul.products li.product .zolo_product_thumbnail,
.woocommerce .related ul.products li.product .zolo_product_thumbnail,
.woocommerce .upsells ul.products li.product .zolo_product_thumbnail {
    position: relative !important;
    width: 100% !important;
    aspect-ratio: 1 / 1;
    height: auto !important;
    overflow: hidden !important;
}

.woocommerce ul.products li.product .zolo_product_thumbnail .imagewrapper,
.woocommerce-page ul.products li.product .zolo_product_thumbnail .imagewrapper,
.woocommerce .related ul.products li.product .zolo_product_thumbnail .imagewrapper,
.woocommerce .upsells ul.products li.product .zolo_product_thumbnail .imagewrapper {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100% !important;
    height: 100% !important;
}

.woocommerce ul.products li.product .zolo_product_thumbnail img,
.woocommerce-page ul.products li.product .zolo_product_thumbnail img,
.woocommerce .related ul.products li.product .zolo_product_thumbnail img,
.woocommerce .upsells ul.products li.product .zolo_product_thumbnail img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    object-position: center !important;
}

.term-bathroom-accessories.woocommerce ul.products li.product .zolo_product_thumbnail img,
.term-bathroom-accessories.woocommerce-page ul.products li.product .zolo_product_thumbnail img {
    object-fit: cover !important;
}

/* Hide Add To Quote hover button on the Europa II Accessories category */
.term-europa-ii-accessories ul.products li.product .zolo_product_thumbnail .yith-ywraq-add-to-quote {
    display: none !important;
}

.product_list_item:hover {
    box-shadow: none !important;
}

ul.products li.product-category .zolo_category_background_image {
    position: relative !important;
    width: 100% !important;
    height: 0 !important;
    padding-bottom: 100% !important;
    overflow: hidden !important;
}

ul.products li.product-category .zolo_category_background_image img {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center !important;
}

.woocommerce ul.products li.product-category,
.woocommerce-page ul.products li.product-category {
    padding: 0 15px 30px !important;
}

ul.products li.product-category .zolo_woo_category_caption {
    padding: 15px 20px 18px !important;
    text-align: center;
}

ul.products li.product-category .zolo_woo_category_title {
    font-size: 16px;
    font-weight: 600;
    margin: 0;
    line-height: 1.4;
}

.product-small-image .yith_magnifier_mousetrap {
    pointer-events: none !important;
}

.product-small-image a.yith_magnifier_zoom.woocommerce-main-image {
    pointer-events: none !important;
    cursor: default !important;
}

.product-small-image .yith_zoom_icon,
.product-small-image .yith_expand {
    display: none !important;
}

ss3-force-full-width {
    transform: none !important;
    width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
}

#n2-ss-3 .n2-ss-layer-row-inner {
    height: calc(100vw * 475 / 1400) !important;
    align-items: stretch !important;
}

#n2-ss-3 .n2-ss-layer[data-sstype="col"],
#n2-ss-3 .n2-ss-layer-col,
#n2-ss-3 .n2-ss-layer[data-pm="normal"][data-sstype="layer"],
#n2-ss-3 .n2-ss-item-image-content {
    height: 100% !important;
}

#n2-ss-3 .n2-ss-item-image-content > a {
    display: block !important;
    height: 100% !important;
    width: 100% !important;
}

#n2-ss-3 .n2-ss-item-image-content img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center !important;
    display: block !important;
}

#n2-ss-3 .n2-ss-slide-limiter {
    max-width: 100% !important;
}

#n2-ss-3 .n2-ss-slider-2 {
    aspect-ratio: 1400 / 475 !important;
    height: auto !important;
}

#n2-ss-3 .n2-ss-slider-3 {
    height: 100% !important;
}

@media (max-width: 767px) {
    #n2-ss-3 .nextend-bullet-bar {
        display: none !important;
    }

    #n2-ss-3 .nextend-arrow[data-hide-mobileportrait="1"] {
        display: block !important;
    }
}

/* ── Single product gallery: first-load fade-in + flicker prevention ──────
   YITH's template outputs div.images, NOT .woocommerce-product-gallery.
   On variable products YITH triggers a variation change at DOM-ready to sync
   the gallery: WooCommerce swaps the img src AND YITH destroys/reinits the
   magnifier (DOM unwrap → AJAX → rewrap). We hide the gallery until after
   that full async cycle, then JS fades it in (see fix.js: initObserver).     */

/* Start hidden — JS fades in after YITH _initTrap completes (mousetrap added) */
.single-product div.product div.images {
    opacity: 0;
}

/* Keep intermediate containers permanently visible — YITH / WC cannot hide them */
.single-product div.product div.images .woocommerce-product-gallery__image,
.single-product div.product div.images .yith_magnifier_zoom {
    opacity: 1 !important;
    visibility: visible !important;
}

.woocommerce-product-gallery__image {
    background-color: #f7f7f7;
}

/* ── CLS reduction for single product gallery ─────────────────────────────
   Pre-reserve space with aspect-ratio before flexslider / YITH init so that
   JS-driven height/width assignments don't shift the page layout.
   Images are registered at 600×600 (basco_product_square → 1:1 ratio).       */

/* Main gallery wrapper — holds all slides before flexslider wraps them */
.single-product div.product .woocommerce-product-gallery__wrapper {
    aspect-ratio: 1 / 1;
}

/* YITH main image anchor — reserve identical space */
.single-product div.product .yith_magnifier_zoom {
    display: block;
    aspect-ratio: 1 / 1;
}

/* Reserve thumbnail strip height before YITH carousel JS runs and calculates
   its ul width — prevents the push-down caused by thumbnails appearing */
.single-product div.product div.images .thumbnails,
.single-product div.product div.images .yith_magnifier_gallery {
    min-height: 90px;
    overflow: hidden;
}
/* ── end CLS ────────────────────────────────────────────────────────────── */

.yith_magnifier_preloader,
.yith_magnifier_loading {
    display: none !important;
}

/* Keep main product image visible at all times; crossfade on thumbnail/variation swap.
   JS adds .is-crossfading to div.images to trigger the controlled fade-out. */
.single-product div.product div.images .yith_magnifier_zoom img {
    opacity: 1 !important;
    transition: opacity 0.3s ease !important;
}
.single-product div.product div.images.is-crossfading .yith_magnifier_zoom img {
    opacity: 0 !important;
    transition: opacity 0.15s ease !important;
}

/* Quantity +/- button size fix on single product page */
.woocommerce div.product .qib-button-wrapper button.qib-button {
    height: 36px !important;
    min-width: 36px !important;
    font-size: 14px !important;
    padding: 4px 10px !important;
    line-height: 1 !important;
    text-align: center !important;
}

.woocommerce #content .quantity, .woocommerce-page #content .quantity
{
    width: 45px;
}

/* Quantity + Add To Quote: same row via float; product meta: own line */
.woocommerce div.product form.cart {
    float: left !important;
    clear: none !important;
    margin-bottom: 0 !important;
}

.woocommerce div.product .yith-ywraq-add-to-quote {
    float: left !important;
    clear: none !important;
    margin-top: 0 !important;
    margin-left: 10px !important;
}

.woocommerce div.product .product_meta {
    clear: both !important;
    display: block !important;
    margin-top: 12px !important;
}

.woocommerce div.product .qib-button-wrapper .quantity input.input-text.qty.text,
.woocommerce div.product .qib-button-wrapper div.quantity.wqpmb_quantity {
    height: 36px !important;
    font-size: 14px !important;
}

/* View My Quote List — style as button, align with quantity control */
.woocommerce div.product .yith_ywraq_add_item_browse_message {
    float: left !important;
    clear: none !important;
    margin-top: 0 !important;
    margin-left: 10px !important;
}

.woocommerce div.product .yith_ywraq_add_item_browse_message a {
    background-color: #0066b4 !important;
    color: #ffffff !important;
    border: 1px solid transparent !important;
    font-weight: normal !important;
    height: 36px !important;
    line-height: 36px !important;
    padding: 0 18px !important;
    margin-top: 0 !important;
    border-radius: 2px !important;
    display: inline-flex !important;
    align-items: center !important;
    text-decoration: none !important;
    white-space: nowrap;
}

.woocommerce div.product .yith_ywraq_add_item_browse_message a:hover {
    background-color: #044a80 !important;
    color: #ffffff !important;
    border: 1px solid #ffffff !important;
    opacity: 1 !important;
}

/* Add To Quote button — override YITH CSS vars + margin-top that breaks alignment */
.woocommerce a.add-request-quote-button.button,
.woocommerce .add-request-quote-button.button {
    background-color: #0066b4 !important;
    color: #ffffff !important;
    border: 1px solid transparent !important;
    font-weight: normal !important;
    text-transform: capitalize !important;
    height: 36px !important;
    line-height: 36px !important;
    padding: 0 18px !important;
    margin-top: 0 !important;
    border-radius: 2px !important;
    display: inline-flex !important;
    align-items: center !important;
    vertical-align: top !important;
}

.woocommerce a.add-request-quote-button.button:hover,
.woocommerce .add-request-quote-button.button:hover {
    background-color: #044a80 !important;
    color: #ffffff !important;
    border: 1px solid #ffffff !important;
    opacity: 1 !important;
}

/* Product loop: YITH button inside .zolo_product_thumbnail, slides from left on hover */
ul.products li.product .zolo_product_thumbnail .yith-ywraq-add-to-quote {
    position: absolute !important;
    top: 50% !important;
    left: 0 !important;
    transform: translateY(-50%) !important;
    float: none !important;
    margin: 0 !important;
    z-index: 15;
    white-space: nowrap;
    opacity: 0;
    pointer-events: none;
    transition: left 0.6s ease, opacity 0.4s ease !important;
}

ul.products li.product .product_list_item:hover .zolo_product_thumbnail .yith-ywraq-add-to-quote {
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
    opacity: 1;
    pointer-events: all;
}

/* Prevent text wrap in product page tables until columns are at minimum width */
.single-product table:not(.basco-product-table) td,
.single-product table:not(.basco-product-table) th {
    white-space: nowrap;
}

/* Remove borders/padding from outer tables that wrap an inner table */
.single-product .entry-content table:has(> tbody > tr > td > table) {
    border: none !important;
    border-collapse: collapse !important;
}

.single-product .entry-content table:has(> tbody > tr > td > table) > tbody > tr > td {
    border: none !important;
    padding: 0 !important;
}


/* Restore the outer border on the inner table itself */
.single-product .entry-content table:has(> tbody > tr > td > table) > tbody > tr > td > table {
    border: 1px solid #ddd !important;
}

.woocommerce-page ul.products li.product .product_list_item, .woocommerce ul.products li.product .product_list_item {
    border: none !important;
}

/* Hide category on single product pages */
.single-product .product_meta .posted_in {
    display: none !important;
}

/* Variation select dropdowns: prevent text cutoff */
.woocommerce div.product form.cart .variations select {
    min-width: 200px !important;
    max-width: 100% !important;
}

.single_variation_wrap {
    margin: 15px 0px;
}

.woocommerce div.product .single_variation_wrap .yith-ywraq-add-to-quote {
    margin-top: 3px;
}

.woocommerce div.product .yith-ywraq-add-to-quote .yith_ywraq_add_item_browse_message {
    margin-left: 0px !important;
}

/* Product table: quantity controls + Add To Quote button on same row */
table.wc-product-table th.col-buy,
table.wc-product-table td.col-buy {
    min-width: 260px;
    white-space: nowrap;
}

table.wc-product-table td.col-buy .add-to-cart-wrapper,
table.wc-product-table td.col-buy form.cart {
    float: none !important;
    clear: none !important;
    margin-bottom: 0 !important;
}

table.wc-product-table td.col-buy .qib-button-wrapper,
table.wc-product-table td.col-buy .yith-ywraq-add-to-quote {
    display: inline-block !important;
    vertical-align: middle !important;
    float: none !important;
    position: static !important;
    margin: 0 !important;
    transform: none !important;
    opacity: 1 !important;
    pointer-events: auto !important;
}

/* basco-product-table: suppress horizontal scrollbar caused by the wider
   "View My Quote List" message. When YITH swaps the button for the message,
   stack it below the qty controls instead of sitting inline beside them.     */
.basco-product-table-wrapper {
    overflow-x: hidden !important;
}

.basco-product-table .col-buy:has(.yith_ywraq_add_item_browse_message) .basco-cart-form {
    display: block !important;
}

.basco-product-table .col-buy:has(.yith_ywraq_add_item_browse_message) .basco-quote-wrap {
    display: block !important;
    margin-left: 0 !important;
    margin-top: 6px !important;
}

/* Product table: hide search box, pagination, page-length, and totals bar */
.wc-product-table-wrapper .dataTables_filter,
.wc-product-table-wrapper .dataTables_info,
.wc-product-table-wrapper .dataTables_length,
.wc-product-table-wrapper .dataTables_paginate {
    display: none !important;
}