/**
 * WooCommerce layout fixes — prevent horizontal overflow on single product and shop.
 */

*,
*::before,
*::after {
    box-sizing: border-box;
}

body.woocommerce-page,
body.woocommerce {
    overflow-x: hidden;
}

#primary.content-area,
#primary.content-area #main.site-main {
    max-width: 100%;
    width: 100%;
    float: none;
    clear: both;
}

/* #primary.content-area uses max-width:100% above; restore ghost-container cap when both apply */
#primary.content-area.ghost-container {
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 1.25rem;
    padding-right: 1.25rem;
}

/* Single product: keep inner layout inside the theme container */
body.single-product.woocommerce #primary.content-area.ghost-container,
body.single-product.woocommerce-page #primary.content-area.ghost-container {
    width: 100%;
}

body.single-product #primary.content-area #main.site-main,
body.single-product.woocommerce #main.site-main,
body.single-product.woocommerce-page #main.site-main {
    max-width: 100%;
    min-width: 0;
}

body.single-product .woocommerce #main .woocommerce,
body.single-product.woocommerce div.product,
body.single-product.woocommerce-page div.product {
    max-width: 100%;
    min-width: 0;
    margin-left: auto;
    margin-right: auto;
    column-gap: clamp(1rem, 4vw, 2.5rem);
}

@media (min-width: 769px) {
    body.single-product .woocommerce div.product {
        align-items: flex-start;
    }
}

/* Flex product layout: allow children to shrink (common overflow cause) */
.woocommerce div.product {
    max-width: 100%;
}

.woocommerce div.product div.images,
.woocommerce div.product div.summary,
.woocommerce-page div.product div.images,
.woocommerce-page div.product div.summary {
    max-width: 100%;
    min-width: 0;
}

.woocommerce div.product div.images img,
.woocommerce div.product div.images .woocommerce-product-gallery__image img,
.woocommerce-page div.product div.images img {
    max-width: 100%;
    height: auto;
}

.woocommerce-product-gallery {
    max-width: 100%;
}

.woocommerce-product-gallery__wrapper,
.woocommerce-product-gallery__image {
    max-width: 100%;
}

/* Related / upsells: let WooCommerce layout CSS control the grid; only cap width */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
    max-width: 100%;
}

/* Wide tables: scroll instead of forcing page overflow */
.woocommerce table.shop_table {
    max-width: 100%;
}

/* Forms */
.woocommerce .quantity .qty {
    max-width: 100%;
}

.woocommerce form .form-row {
    max-width: 100%;
}

/* Singular + Woo: override plugin min-width / nowrap on buttons */
.gb-singular__content a.button,
.gb-singular__content button,
.gb-singular__content .woocommerce-variation-add-to-cart {
    max-width: 100% !important;
    white-space: normal !important;
    height: auto !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
}

/* Add to cart row: force wrap + width; overflow clips stray plugin bleed */
.woocommerce div.product form.cart,
.woocommerce-page div.product form.cart {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center;
    gap: 10px;
    width: 100% !important;
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
}

.woocommerce div.product form.cart .quantity,
.woocommerce-page div.product form.cart .quantity {
    min-width: 0;
    flex: 0 1 auto;
}

.woocommerce div.product form.cart .button,
.woocommerce-page div.product form.cart .button {
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
}

.single-product div.product .woocommerce-variation-add-to-cart {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.625rem 0.75rem;
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
}

.single-product div.product .woocommerce-variation-add-to-cart .button {
    flex: 1 1 auto;
    max-width: 100%;
}
