/* Sofitalib Woo single product layout */
/* On single product page header should be non-sticky and scroll away naturally */
body.single-product .sofitalib-site-header-wrap {
    position: relative;
    top: 0;
}

/* Match product page width rhythm with full-width header/footer */
body.single-product.woocommerce #primary,
body.single-product.woocommerce .content-area,
body.single-product.woocommerce .site-main {
    max-width: none !important;
    width: 100%;
}

body.single-product.woocommerce .site-main {
    display: flow-root;
    overflow: visible;
    padding-top: 16px;
    padding-inline: clamp(14px, 2.5vw, 34px);
    padding-bottom: 36px;
}

body.single-product.woocommerce .woocommerce-breadcrumb,
body.single-product.woocommerce .rank-math-breadcrumb,
body.single-product.woocommerce .yoast-breadcrumb,
body.single-product.woocommerce .breadcrumbs {
    display: none !important;
}

body.single-product.woocommerce div.product {
    display: flow-root;
    margin-bottom: 44px;
    position: relative;
}

/* Do not show thumbnail strips below main image */
body.single-product .woo-variation-gallery-thumbnail-wrapper,
body.single-product .woocommerce-product-gallery .flex-control-thumbs {
    display: none !important;
}

/* Compare reveal widget */
.sofitalib-variation-compare-desktop {
    margin-bottom: 10px;
    width: 100%;
}

.sofitalib-variation-compare {
    --sofitalib-compare-split: 88%;
    aspect-ratio: 1 / 1;
    background: #f5f5f5;
    border-radius: 10px;
    overflow: hidden;
    position: relative;
    width: 100%;
}

.sofitalib-compare-download {
    align-items: center;
    background: rgba(255, 255, 255, 0.92);
    border: 0;
    border-radius: 999px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.16);
    color: #111;
    cursor: pointer;
    display: inline-flex;
    height: 34px;
    justify-content: center;
    position: absolute;
    right: 10px;
    top: 10px;
    width: 34px;
    z-index: 6;
}

.sofitalib-compare-download i {
    font-size: 15px;
    line-height: 1;
}

.sofitalib-compare-download:hover,
.sofitalib-compare-download:focus {
    background: #fff;
    color: #111;
    outline: none;
}

.sofitalib-variation-compare-before,
.sofitalib-variation-compare-after {
    display: block;
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.sofitalib-variation-compare-after-layer {
    clip-path: inset(0 0 0 var(--sofitalib-compare-split));
    inset: 0;
    position: absolute;
    transition: clip-path 0.08s linear;
}

.sofitalib-variation-compare-range {
    appearance: none;
    background: transparent;
    cursor: ew-resize;
    inset: 0;
    margin: 0;
    opacity: 0;
    position: absolute;
    width: 100%;
    z-index: 4;
}

.sofitalib-variation-compare-divider {
    background: #fff;
    bottom: 0;
    box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.22);
    left: var(--sofitalib-compare-split);
    pointer-events: none;
    position: absolute;
    top: 0;
    transform: translateX(-1px);
    width: 2px;
    z-index: 3;
}

.sofitalib-variation-compare-divider::after {
    background: #fff;
    border: 1px solid rgba(0, 0, 0, 0.28);
    border-radius: 50%;
    content: "";
    height: 26px;
    left: 50%;
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 26px;
}

body.single-product.woocommerce div.product::after {
    clear: both;
    content: "";
    display: block;
}

body.single-product .site-footer {
    clear: both;
    margin-top: 20px;
    position: relative;
    z-index: 2;
}

@media (min-width: 992px) {
    body.single-product.woocommerce div.product {
        align-items: start;
        column-gap: 40px;
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(320px, 430px);
    }

    body.single-product.woocommerce div.product div.images,
    body.single-product.woocommerce div.product div.summary {
        float: none !important;
        margin: 0 !important;
        width: auto !important;
    }

    body.single-product.woocommerce div.product div.images {
        align-self: start;
        height: max-content;
        position: sticky;
        top: 16px;
    }
}

body.single-product.woocommerce div.product .summary {
    max-width: 430px;
}

body.single-product.woocommerce div.product .summary .product_title,
body.single-product.woocommerce div.product .summary h1.product_title {
    color: #111;
    font-size: 30px;
    font-weight: 600;
    letter-spacing: 0;
    line-height: 1.18;
    margin-bottom: 8px;
}

body.single-product.woocommerce div.product .summary .price {
    align-items: center;
    color: #151515;
    display: inline-flex;
    font-size: 28px;
    font-weight: 500;
    gap: 10px;
    line-height: 1.2;
    margin-bottom: 14px;
    flex-wrap: wrap;
}

.sofitalib-sold-out-note {
    color: #8b8b8b;
    display: none;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.01em;
}

.sofitalib-sold-out-note.is-visible {
    display: inline-block;
}

body.single-product.woocommerce div.product .summary .product_meta,
body.single-product.woocommerce div.product .wc-tabs-wrapper,
body.single-product.woocommerce div.product .woocommerce-tabs {
    display: none !important;
}

/* Hide installment widgets if present (Boodmay/other providers) */
body.single-product.woocommerce div.product .summary [class*="bood"],
body.single-product.woocommerce div.product .summary [id*="bood"],
body.single-product.woocommerce div.product .summary .tabby-promo,
body.single-product.woocommerce div.product .summary .tamara-product-widget,
body.single-product.woocommerce div.product .summary .payment-installments {
    display: none !important;
}

body.single-product.woocommerce div.product form.variations_form {
    margin-top: 10px;
}

.sofitalib-fallback-attrs {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin: 0 0 12px;
}

.sofitalib-fallback-attr-label {
    color: #3F3F3F;
    font-size: 16px;
    font-weight: 600;
    margin-bottom: 6px;
}

.sofitalib-fallback-option-grid {
    margin-top: 0;
}

body.single-product.woocommerce div.product form.variations_form table.variations {
    background: transparent !important;
    border: 0;
    margin: 0 0 14px;
    width: 100%;
}

body.single-product.woocommerce div.product form.variations_form table.variations tbody {
    background: transparent !important;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

body.single-product.woocommerce div.product form.variations_form table.variations tr {
    background: transparent !important;
    display: block;
    margin: 0;
}

body.single-product.woocommerce div.product form.variations_form table.variations tr.sofitalib-attr-row-hidden {
    display: none !important;
}

body.single-product.woocommerce div.product form.variations_form table.variations tr.sofitalib-attr-size {
    order: 1;
}

body.single-product.woocommerce div.product form.variations_form table.variations tr.sofitalib-attr-material {
    order: 2;
}

body.single-product.woocommerce div.product form.variations_form table.variations tr.sofitalib-attr-color {
    order: 3;
}

body.single-product.woocommerce div.product form.variations_form table.variations th,
body.single-product.woocommerce div.product form.variations_form table.variations td {
    background: transparent !important;
    border: 0 !important;
    display: block;
    padding: 0;
    text-align: left;
    width: 100%;
}

body.single-product.woocommerce div.product form.variations_form table.variations th.label {
    margin-bottom: 6px;
}

body.single-product.woocommerce div.product form.variations_form table.variations th.label label {
    color: #3F3F3F;
    font-size: 16px;
    font-weight: 600;
}

body.single-product.woocommerce div.product form.variations_form table.variations td.value > select {
    appearance: none;
    background: #fff;
    border: 1.5px solid #1d1d1d;
    border-radius: 2px;
    color: #1d1d1d;
    font-size: 15px;
    font-weight: 500;
    margin: 0;
    max-width: 100%;
    min-width: 150px;
    padding: 10px 35px 10px 12px;
}

body.single-product.woocommerce div.product form.variations_form table.variations td.value a.reset_variations {
    display: none !important;
}

/* Hide native select only when a custom UI exists for that row */
body.single-product.woocommerce div.product form.variations_form table.variations tr.sofitalib-has-custom-options td.value > select {
    display: none !important;
}

/* Attribute option buttons (size/material/etc) */
.sofitalib-attr-option-grid {
    align-items: center;
    background: transparent !important;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 8px;
}

.sofitalib-attr-option {
    align-items: center;
    background: #fff;
    border: 2px solid #161616;
    border-radius: 2px;
    color: #161616;
    cursor: pointer;
    display: inline-flex;
    font-size: 15px;
    font-weight: 600;
    justify-content: center;
    min-height: 42px;
    min-width: 94px;
    padding: 8px 14px;
    text-align: center;
}

.sofitalib-attr-option.is-selected,
.sofitalib-attr-option[aria-pressed="true"] {
    background: #fff !important;
    border-color: #161616;
    color: #161616 !important;
}

.sofitalib-attr-option:hover,
.sofitalib-attr-option:focus,
.sofitalib-attr-option:active {
    background: #fff !important;
    border-color: #161616;
    color: #161616 !important;
    outline: none;
}

.sofitalib-attr-option-static {
    cursor: default;
    pointer-events: none;
}

/* Size options should match color-like border states */
.sofitalib-fallback-option-grid[data-attribute_name*="size"] .sofitalib-attr-option,
body.single-product.woocommerce div.product form.variations_form table.variations tr.sofitalib-attr-size .sofitalib-attr-option {
    background: #fff;
    border: 1px solid #d6d6d6;
    color: #1f1f1f;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.sofitalib-fallback-option-grid[data-attribute_name*="size"] .sofitalib-attr-option:hover,
.sofitalib-fallback-option-grid[data-attribute_name*="size"] .sofitalib-attr-option:focus,
.sofitalib-fallback-option-grid[data-attribute_name*="size"] .sofitalib-attr-option:active,
body.single-product.woocommerce div.product form.variations_form table.variations tr.sofitalib-attr-size .sofitalib-attr-option:hover,
body.single-product.woocommerce div.product form.variations_form table.variations tr.sofitalib-attr-size .sofitalib-attr-option:focus,
body.single-product.woocommerce div.product form.variations_form table.variations tr.sofitalib-attr-size .sofitalib-attr-option:active {
    background: #fff !important;
    border-color: #d6d6d6;
    box-shadow: none;
    color: #1f1f1f !important;
    outline: none;
}

.sofitalib-fallback-option-grid[data-attribute_name*="size"] .sofitalib-attr-option.is-selected,
.sofitalib-fallback-option-grid[data-attribute_name*="size"] .sofitalib-attr-option[aria-pressed="true"],
body.single-product.woocommerce div.product form.variations_form table.variations tr.sofitalib-attr-size .sofitalib-attr-option.is-selected,
body.single-product.woocommerce div.product form.variations_form table.variations tr.sofitalib-attr-size .sofitalib-attr-option[aria-pressed="true"] {
    background: #fff !important;
    border-color: #e0bc2f;
    box-shadow: 0 0 0 1px #e0bc2f inset;
    color: #1f1f1f !important;
}

/* Color swatches */
.sofitalib-color-swatch-grid {
    background: transparent !important;
    display: grid;
    gap: 8px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 8px;
}

.sofitalib-color-swatch {
    align-items: center;
    background: #fff;
    border: 1px solid #d6d6d6;
    color: #1f1f1f;
    cursor: pointer;
    display: flex;
    font-size: 15px;
    font-weight: 600;
    gap: 10px;
    min-height: 42px;
    padding: 8px 10px;
    text-align: left;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    width: 100%;
}

.sofitalib-color-swatch:hover {
    background: #fff !important;
    border-color: #d6d6d6;
    box-shadow: none;
    color: #1f1f1f !important;
}

.sofitalib-color-swatch.is-selected {
    background: #fff !important;
    border-color: #e0bc2f;
    box-shadow: 0 0 0 1px #e0bc2f inset;
    color: #1f1f1f !important;
}

.sofitalib-color-swatch.selected,
.sofitalib-color-swatch[aria-pressed="true"] {
    background: #fff !important;
    border-color: #e0bc2f;
    box-shadow: 0 0 0 1px #e0bc2f inset;
    color: #1f1f1f !important;
}

.sofitalib-color-swatch:focus,
.sofitalib-color-swatch:active {
    background: #fff !important;
    border-color: #e0bc2f;
    box-shadow: 0 0 0 1px #e0bc2f inset;
    color: #1f1f1f !important;
    outline: none;
}

.sofitalib-color-thumb {
    background-color: #e8e8e8;
    background-image: var(--swatch-image, none);
    background-position: center;
    background-size: 230% auto;
    border: 1px solid #c8c8c8;
    border-radius: 50%;
    display: inline-block;
    flex: 0 0 18px;
    height: 18px;
    width: 18px;
}

.sofitalib-color-name {
    color: inherit;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.2;
    position: relative;
}

.sofitalib-color-swatch.is-out-of-stock .sofitalib-color-name {
    color: #a5a5a5 !important;
    text-decoration-color: #a5a5a5;
    text-decoration-line: line-through;
    text-decoration-thickness: 1px;
}

.sofitalib-color-swatch.is-out-of-stock .sofitalib-color-thumb {
    filter: grayscale(16%);
    opacity: 0.8;
}

/* Quantity + buttons row */
body.single-product.woocommerce div.product form.cart .woocommerce-variation-add-to-cart,
body.single-product.woocommerce div.product form.cart {
    align-items: flex-end;
}

body.single-product.woocommerce div.product form.cart .woocommerce-variation-add-to-cart,
body.single-product.woocommerce div.product form.cart .variations_button {
    align-items: end;
    display: grid;
    gap: 8px;
    grid-template-columns: minmax(0, 1fr) auto;
}

body.single-product.woocommerce div.product form.cart .quantity {
    grid-column: 1 / -1;
    justify-self: start;
    margin: 0 0 10px;
    order: 1;
}

body.single-product.woocommerce div.product form.cart .quantity.sofitalib-qty-enhanced {
    align-items: stretch;
    background: transparent;
    border: 2px solid #111;
    border-radius: 2px;
    display: inline-flex;
    height: 42px;
    overflow: hidden;
}

body.single-product.woocommerce div.product form.cart .quantity.sofitalib-qty-enhanced .qty {
    appearance: textfield;
    background: transparent;
    border: 0;
    color: #111;
    font-family: Arial, sans-serif;
    font-size: 24px;
    font-weight: 400;
    line-height: 1;
    margin: 0;
    min-height: 42px;
    min-width: 58px;
    padding: 0;
    text-align: center;
    width: 58px;
}

body.single-product.woocommerce div.product form.cart .quantity.sofitalib-qty-enhanced .sofitalib-qty-btn {
    align-items: center;
    background: transparent;
    border: 0;
    color: #111;
    cursor: pointer;
    display: inline-flex;
    font-family: Arial, sans-serif;
    font-size: 30px;
    font-weight: 400;
    height: 42px;
    justify-content: center;
    line-height: 1;
    padding: 0;
    transition: background-color 0.2s ease, color 0.2s ease;
    width: 42px;
}

body.single-product.woocommerce div.product form.cart .quantity.sofitalib-qty-enhanced .sofitalib-qty-btn:hover {
    background: transparent;
    color: #111;
}

body.single-product.woocommerce div.product form.cart .quantity.sofitalib-qty-enhanced .sofitalib-qty-btn:focus {
    background: transparent;
    color: #111;
    outline: none;
}

body.single-product.woocommerce div.product form.cart .quantity.sofitalib-qty-enhanced .sofitalib-qty-minus {
    border-right: 0;
}

body.single-product.woocommerce div.product form.cart .quantity.sofitalib-qty-enhanced .sofitalib-qty-plus {
    border-left: 0;
}

body.single-product.woocommerce div.product form.cart .quantity.sofitalib-qty-enhanced .qty::-webkit-inner-spin-button,
body.single-product.woocommerce div.product form.cart .quantity.sofitalib-qty-enhanced .qty::-webkit-outer-spin-button {
    appearance: none;
    margin: 0;
}

body.single-product.woocommerce div.product form.cart .sofitalib-buy-now-button {
    background: #070707;
    border: 1px solid #070707;
    border-radius: 999px;
    color: #fff;
    flex: 1 1 220px;
    font-size: 15px;
    font-weight: 500;
    min-height: 44px;
    order: 2;
    transition: background-color 0.22s ease, color 0.22s ease, border-color 0.22s ease;
}

body.single-product.woocommerce div.product form.cart .single_add_to_cart_button.button {
    background: #111;
    border: 1px solid #111;
    border-radius: 999px;
    color: #fff;
    flex: 0 0 88px;
    font-size: 13px;
    font-weight: 500;
    min-height: 44px;
    order: 3;
    padding-inline: 10px;
    transition: background-color 0.22s ease, color 0.22s ease, border-color 0.22s ease;
}

body.single-product.woocommerce div.product form.cart .sofitalib-buy-now-button:hover,
body.single-product.woocommerce div.product form.cart .sofitalib-buy-now-button:focus,
body.single-product.woocommerce div.product form.cart .single_add_to_cart_button.button:hover,
body.single-product.woocommerce div.product form.cart .single_add_to_cart_button.button:focus {
    background: #fff !important;
    border: 1px solid #111 !important;
    color: #111 !important;
    outline: none;
}

body.single-product.woocommerce div.product form.cart .sofitalib-buy-now-button.is-sold-out-disabled,
body.single-product.woocommerce div.product form.cart .single_add_to_cart_button.button.is-sold-out-disabled,
body.single-product.woocommerce div.product form.cart .sofitalib-buy-now-button[disabled],
body.single-product.woocommerce div.product form.cart .single_add_to_cart_button.button[disabled] {
    background: #fff !important;
    border: 1px solid #b9b9b9 !important;
    color: #9a9a9a !important;
    cursor: not-allowed !important;
    pointer-events: none !important;
}

/* Keep selected variation price only in top price block */
body.single-product.woocommerce div.product .woocommerce-variation-price,
body.single-product.woocommerce div.product .single_variation .price {
    display: none !important;
}

/* WhatsApp button */
.sofitalib-whatsapp-button {
    align-items: center;
    color: #3a3a3a;
    display: inline-flex;
    font-size: 15px;
    font-weight: 500;
    gap: 8px;
    margin-top: 16px;
    text-decoration: none;
}

.sofitalib-whatsapp-icon {
    align-items: center;
    display: inline-flex;
    height: 22px;
    justify-content: center;
    width: 22px;
}

.sofitalib-whatsapp-icon i {
    color: #25d366;
    display: block;
    font-size: 22px;
    line-height: 1;
}

.sofitalib-whatsapp-button:hover {
    color: #111;
}

/* Description accordion */
.sofitalib-accordion {
    border-bottom: 1px solid #e2e2e2;
    border-top: 1px solid #e2e2e2;
    margin-top: 16px;
}

.sofitalib-accordion-trigger {
    align-items: center;
    background: transparent;
    border: 0;
    color: #1d1d1d;
    cursor: pointer;
    display: flex;
    font-size: 27px;
    font-weight: 400;
    justify-content: space-between;
    padding: 13px 0;
    text-align: left;
    width: 100%;
}

.sofitalib-accordion-trigger:hover,
.sofitalib-accordion-trigger:focus,
.sofitalib-accordion-trigger:active {
    background: transparent;
    color: #1d1d1d;
    outline: none;
}

.sofitalib-accordion-plus {
    font-size: 28px;
    line-height: 1;
    transform: translateY(-1px);
    transition: transform 0.28s cubic-bezier(0.2, 0.6, 0.2, 1);
}

.sofitalib-accordion-trigger[aria-expanded="true"] .sofitalib-accordion-plus {
    transform: rotate(45deg);
}

.sofitalib-accordion-panel {
    color: #252525;
    font-size: 15px;
    line-height: 1.6;
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    padding: 0;
    transform: translateY(-6px);
    transition: max-height 0.38s cubic-bezier(0.2, 0.6, 0.2, 1), opacity 0.28s ease, transform 0.35s ease, padding 0.3s ease;
}

.sofitalib-accordion.is-open .sofitalib-accordion-panel {
    max-height: 1200px;
    opacity: 1;
    padding: 0 0 14px;
    transform: translateY(0);
}

.sofitalib-mobile-gallery {
    display: none;
}

@media (max-width: 1024px) {
    body.single-product .sofitalib-variation-compare-desktop {
        display: none !important;
    }

    body.single-product .woo-variation-gallery-wrapper,
    body.single-product .woo-variation-gallery-slider-wrapper,
    body.single-product .woo-variation-gallery-thumbnail-wrapper {
        display: none !important;
    }

    body.single-product.woocommerce div.product .summary .product_title,
    body.single-product.woocommerce div.product .summary h1.product_title {
        font-size: 25px;
        font-weight: 600;
        line-height: 1.2;
    }

    body.single-product.woocommerce div.product .sofitalib-mobile-gallery {
        display: block;
        margin: 0 0 14px;
        position: relative;
        width: 100%;
    }

    body.single-product.woocommerce div.product .sofitalib-mobile-gallery-main {
        border-radius: 10px;
        display: block;
        overflow: hidden;
        position: relative;
    }

    body.single-product.woocommerce div.product .sofitalib-mobile-gallery-main img {
        aspect-ratio: 1 / 1;
        display: block;
        object-fit: cover;
        width: 100%;
    }

    body.single-product.woocommerce div.product .sofitalib-mobile-gallery-main.has-compare > img {
        display: none !important;
    }

    body.single-product.woocommerce div.product .sofitalib-mobile-gallery-nav,
    body.single-product.woocommerce div.product .sofitalib-mobile-gallery-trigger {
        align-items: center;
        background: #fff;
        border: 0;
        border-radius: 50%;
        box-shadow: 0 4px 14px rgba(0, 0, 0, 0.15);
        color: #666;
        cursor: pointer;
        display: inline-flex;
        height: 36px;
        justify-content: center;
        line-height: 1;
        position: absolute;
        width: 36px;
        z-index: 3;
    }

    body.single-product.woocommerce div.product .sofitalib-mobile-gallery-nav,
    body.single-product.woocommerce div.product .sofitalib-mobile-gallery-trigger {
        display: none !important;
    }

    body.single-product.woocommerce div.product .sofitalib-mobile-gallery-trigger {
        color: #1d1d1d;
        font-size: 16px;
        height: 42px;
        left: 12px;
        top: 12px;
        width: 42px;
        z-index: 4;
    }

    body.single-product.woocommerce div.product .sofitalib-mobile-gallery-nav.is-prev {
        left: -10px;
        top: 50%;
        transform: translateY(-50%);
    }

    body.single-product.woocommerce div.product .sofitalib-mobile-gallery-nav.is-next {
        right: -10px;
        top: 50%;
        transform: translateY(-50%);
    }

    body.single-product.woocommerce div.product .sofitalib-mobile-gallery-thumbs {
        display: flex !important;
        gap: 10px;
        margin-top: 10px;
        overflow-x: auto;
        padding: 0 2px;
        scrollbar-width: none;
    }

    body.single-product.woocommerce div.product .sofitalib-mobile-gallery-thumbs::-webkit-scrollbar {
        display: none;
    }

    body.single-product.woocommerce div.product .sofitalib-mobile-gallery-thumb {
        background: transparent;
        border: 0;
        border-radius: 10px;
        cursor: pointer;
        flex: 0 0 84px;
        overflow: hidden;
        padding: 0;
        width: 84px;
    }

    body.single-product.woocommerce div.product .sofitalib-mobile-gallery-thumb img {
        border: 1px solid #d7d7d7;
        border-radius: 10px;
        display: block;
        height: 84px;
        object-fit: cover;
        width: 84px;
    }

    body.single-product.woocommerce div.product .sofitalib-mobile-gallery-thumb.is-active img,
    body.single-product.woocommerce div.product .sofitalib-mobile-gallery-thumb[aria-pressed="true"] img {
        border: 3px solid #111;
    }

    body.single-product.woocommerce div.product div.images {
        display: none !important;
    }

    body.single-product.woocommerce .elementor-widget-woocommerce-product-images,
    body.single-product.woocommerce .woocommerce-product-gallery {
        display: none !important;
    }

    body.single-product.woocommerce div.product div.images,
    body.single-product.woocommerce div.product .woocommerce-product-gallery,
    body.single-product.woocommerce .elementor-widget-woocommerce-product-images,
    body.single-product.woocommerce .elementor-widget-woocommerce-product-images .woocommerce-product-gallery {
        float: none !important;
        margin: 0 0 14px !important;
        max-width: 100% !important;
        width: 100% !important;
    }

    body.single-product.woocommerce div.product .woocommerce-product-gallery .flex-viewport,
    body.single-product.woocommerce .elementor-widget-woocommerce-product-images .woocommerce-product-gallery .flex-viewport {
        border-radius: 10px !important;
        overflow: hidden !important;
    }

    body.single-product.woocommerce div.product .woocommerce-product-gallery .woocommerce-product-gallery__image img,
    body.single-product.woocommerce .elementor-widget-woocommerce-product-images .woocommerce-product-gallery .woocommerce-product-gallery__image img {
        aspect-ratio: 1 / 1;
        display: block !important;
        object-fit: cover !important;
        width: 100% !important;
    }

    body.single-product.woocommerce div.product .woocommerce-product-gallery .woocommerce-product-gallery__trigger,
    body.single-product.woocommerce .elementor-widget-woocommerce-product-images .woocommerce-product-gallery .woocommerce-product-gallery__trigger {
        align-items: center;
        background: #fff !important;
        border-radius: 50% !important;
        box-shadow: 0 4px 14px rgba(0, 0, 0, 0.14) !important;
        color: #111 !important;
        display: inline-flex !important;
        height: 42px !important;
        justify-content: center;
        left: 12px !important;
        right: auto !important;
        top: 12px !important;
        width: 42px !important;
        z-index: 4 !important;
    }

    body.single-product.woocommerce div.product .woocommerce-product-gallery .flex-direction-nav a,
    body.single-product.woocommerce .elementor-widget-woocommerce-product-images .woocommerce-product-gallery .flex-direction-nav a {
        align-items: center;
        background: #fff !important;
        border-radius: 50% !important;
        box-shadow: 0 4px 14px rgba(0, 0, 0, 0.15) !important;
        color: #5d5d5d !important;
        display: inline-flex !important;
        font-size: 0;
        height: 36px !important;
        justify-content: center;
        margin-top: -18px !important;
        opacity: 1 !important;
        text-indent: 0;
        top: 50% !important;
        width: 36px !important;
        z-index: 3 !important;
    }

    body.single-product.woocommerce div.product .woocommerce-product-gallery .flex-direction-nav .flex-prev,
    body.single-product.woocommerce .elementor-widget-woocommerce-product-images .woocommerce-product-gallery .flex-direction-nav .flex-prev {
        left: -18px !important;
    }

    body.single-product.woocommerce div.product .woocommerce-product-gallery .flex-direction-nav .flex-next,
    body.single-product.woocommerce .elementor-widget-woocommerce-product-images .woocommerce-product-gallery .flex-direction-nav .flex-next {
        right: -18px !important;
    }

    body.single-product.woocommerce div.product .woocommerce-product-gallery .flex-direction-nav a::before,
    body.single-product.woocommerce .elementor-widget-woocommerce-product-images .woocommerce-product-gallery .flex-direction-nav a::before {
        color: #666 !important;
        font-size: 18px !important;
        line-height: 1 !important;
        position: static;
        text-shadow: none;
    }

    body.single-product.woocommerce div.product .woocommerce-product-gallery .flex-control-thumbs,
    body.single-product.woocommerce .elementor-widget-woocommerce-product-images .woocommerce-product-gallery .flex-control-thumbs {
        display: none !important;
        gap: 10px !important;
        margin-top: 10px !important;
        overflow-x: auto !important;
        padding: 0 !important;
        scrollbar-width: none;
    }

    body.single-product.woocommerce div.product .woocommerce-product-gallery .flex-control-thumbs::-webkit-scrollbar,
    body.single-product.woocommerce .elementor-widget-woocommerce-product-images .woocommerce-product-gallery .flex-control-thumbs::-webkit-scrollbar {
        display: none;
    }

    body.single-product.woocommerce div.product .woocommerce-product-gallery .flex-control-thumbs li,
    body.single-product.woocommerce .elementor-widget-woocommerce-product-images .woocommerce-product-gallery .flex-control-thumbs li {
        border: 0 !important;
        border-radius: 10px !important;
        flex: 0 0 84px !important;
        margin: 0 !important;
        overflow: hidden !important;
        width: 84px !important;
    }

    body.single-product.woocommerce div.product .woocommerce-product-gallery .flex-control-thumbs li img,
    body.single-product.woocommerce .elementor-widget-woocommerce-product-images .woocommerce-product-gallery .flex-control-thumbs li img {
        border: 1px solid #d7d7d7 !important;
        border-radius: 10px !important;
        display: block !important;
        height: 84px !important;
        object-fit: cover !important;
        opacity: 1 !important;
        width: 84px !important;
    }

    body.single-product.woocommerce div.product .woocommerce-product-gallery .flex-control-thumbs li img.flex-active,
    body.single-product.woocommerce div.product .woocommerce-product-gallery .flex-control-thumbs li.flex-active img,
    body.single-product.woocommerce .elementor-widget-woocommerce-product-images .woocommerce-product-gallery .flex-control-thumbs li img.flex-active,
    body.single-product.woocommerce .elementor-widget-woocommerce-product-images .woocommerce-product-gallery .flex-control-thumbs li.flex-active img {
        border: 3px solid #111 !important;
        padding: 0 !important;
    }

    body.single-product.woocommerce div.product .woocommerce-product-gallery .slick-list,
    body.single-product.woocommerce div.product .woocommerce-product-gallery .swiper,
    body.single-product.woocommerce div.product .woocommerce-product-gallery .swiper-wrapper,
    body.single-product.woocommerce .elementor-widget-woocommerce-product-images .woocommerce-product-gallery .slick-list,
    body.single-product.woocommerce .elementor-widget-woocommerce-product-images .woocommerce-product-gallery .swiper,
    body.single-product.woocommerce .elementor-widget-woocommerce-product-images .woocommerce-product-gallery .swiper-wrapper {
        border-radius: 10px !important;
    }

    body.single-product.woocommerce div.product .woocommerce-product-gallery .swiper-button-prev,
    body.single-product.woocommerce div.product .woocommerce-product-gallery .swiper-button-next,
    body.single-product.woocommerce div.product .woocommerce-product-gallery .slick-prev,
    body.single-product.woocommerce div.product .woocommerce-product-gallery .slick-next,
    body.single-product.woocommerce .elementor-widget-woocommerce-product-images .woocommerce-product-gallery .swiper-button-prev,
    body.single-product.woocommerce .elementor-widget-woocommerce-product-images .woocommerce-product-gallery .swiper-button-next,
    body.single-product.woocommerce .elementor-widget-woocommerce-product-images .woocommerce-product-gallery .slick-prev,
    body.single-product.woocommerce .elementor-widget-woocommerce-product-images .woocommerce-product-gallery .slick-next {
        align-items: center !important;
        background: #fff !important;
        border-radius: 50% !important;
        box-shadow: 0 4px 14px rgba(0, 0, 0, 0.15) !important;
        color: #666 !important;
        display: inline-flex !important;
        height: 36px !important;
        justify-content: center !important;
        margin-top: -18px !important;
        width: 36px !important;
        z-index: 3 !important;
    }

    .sofitalib-color-swatch-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    body.single-product.woocommerce div.product form.cart .single_add_to_cart_button.button {
        flex-basis: 72px;
    }
}

@media (min-width: 1025px) {
    body.single-product .woo-variation-gallery-slider-wrapper,
    body.single-product .woo-variation-gallery-thumbnail-wrapper {
        display: none !important;
    }
}
