/** PRISMA Native Commerce – product/catalog views. */
.prisma-commerce-active .woocommerce-products-header,
.prisma-commerce-active .wp-block-woocommerce-product-collection {
    margin-bottom: var(--wp--preset--spacing--2-xl);
}

.prisma-commerce-active .woocommerce .woocommerce-ordering select {
    min-width: 12rem;
}

.prisma-commerce-active .single-product .wp-block-post-title,
.prisma-commerce-active .single-product .product_title {
    line-height: 1.12;
}

.prisma-commerce-active :where(.wp-block-woocommerce-product-image-gallery,.woocommerce-product-gallery) img {
    border-radius: var(--wp--custom--radius--medium, 10px);
}

.prisma-commerce-active :where(.single_add_to_cart_button,.wp-block-add-to-cart-form .wc-block-components-button) {
    min-height: 3rem;
}

.prisma-commerce-active .quantity .qty {
    border: 1px solid var(--wp--preset--color--border-strong);
    border-radius: var(--wp--custom--radius--small, 6px);
    min-height: 3rem;
    width: 5rem;
}

.prisma-commerce-active .stock.in-stock { color: var(--wp--preset--color--success); }
.prisma-commerce-active .stock.out-of-stock { color: var(--wp--preset--color--error); }

.prisma-commerce-active .woocommerce-tabs,
.prisma-commerce-active .wp-block-woocommerce-product-details {
    border-top: 1px solid var(--wp--preset--color--border);
    margin-top: var(--wp--preset--spacing--3-xl);
    padding-top: var(--wp--preset--spacing--2-xl);
}

@media (max-width: 781px) {
    .prisma-commerce-active .wp-block-woocommerce-product-details,
    .prisma-commerce-active .woocommerce-tabs {
        margin-top: var(--wp--preset--spacing--2-xl);
    }
}

/* PRISMA 0.2.1: keep legal price information close to the single-product price. */
.prisma-commerce-active .single-product .prisma-gzd-product-meta a,
.prisma-commerce-active .prisma-gzd-product-meta a {
    color: currentColor;
    text-underline-offset: .16em;
}

.prisma-commerce-active .single-product .wc-gzd-additional-info-placeholder:empty {
    min-height: 1.25em;
}

.prisma-commerce-active :where(.wc-block-components-product-image,.wc-block-grid__product-image) img[src*="product-placeholder"] {
    object-fit: cover;
}

/* PRISMA 0.2.3: robust Related Products layout for both WooCommerce block and legacy markup. */
body.prisma-commerce-active.single-product :is(.wp-block-woocommerce-related-products, section.related.products, .related.products) {
    box-sizing: border-box;
    left: 50%;
    margin-block: clamp(3.75rem, 6vw, 6rem) clamp(3.5rem, 5vw, 5.5rem);
    max-width: none !important;
    position: relative;
    transform: translateX(-50%);
    width: min(calc(100vw - 2 * clamp(1rem, 4vw, 2.5rem)), var(--wp--style--global--wide-size, 1200px)) !important;
}

body.prisma-commerce-active.single-product :is(.wp-block-woocommerce-related-products, section.related.products, .related.products) :is(h2, .wp-block-heading, .related-products__title) {
    font-size: clamp(1.65rem, 1.35rem + 1.1vw, 2.35rem) !important;
    line-height: 1.2 !important;
    margin-block: 0 clamp(1.5rem, 3vw, 2.5rem) !important;
}

/* The high specificity is intentional: WooCommerce legacy styles use
   `.woocommerce ul.products.columns-4 li.product` and may be important. */
body.prisma-commerce-active.single-product .woocommerce .related.products ul.products,
body.prisma-commerce-active.single-product .woocommerce section.related.products ul.products,
body.prisma-commerce-active.single-product .wp-block-woocommerce-related-products ul.wc-block-product-template,
body.prisma-commerce-active.single-product .wp-block-woocommerce-related-products ul.wp-block-post-template,
body.prisma-commerce-active.single-product .wp-block-woocommerce-related-products .products-block-post-template {
    align-items: stretch !important;
    clear: both !important;
    display: grid !important;
    float: none !important;
    gap: clamp(1.25rem, 2.5vw, 2.25rem) !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    list-style: none !important;
    margin: 0 !important;
    max-width: none !important;
    padding: 0 !important;
    width: 100% !important;
}

body.prisma-commerce-active.single-product .woocommerce .related.products ul.products::before,
body.prisma-commerce-active.single-product .woocommerce .related.products ul.products::after,
body.prisma-commerce-active.single-product .woocommerce section.related.products ul.products::before,
body.prisma-commerce-active.single-product .woocommerce section.related.products ul.products::after {
    content: none !important;
    display: none !important;
}

body.prisma-commerce-active.single-product .woocommerce .related.products ul.products li.product,
body.prisma-commerce-active.single-product .woocommerce .related.products ul.products.columns-2 li.product,
body.prisma-commerce-active.single-product .woocommerce .related.products ul.products.columns-3 li.product,
body.prisma-commerce-active.single-product .woocommerce .related.products ul.products.columns-4 li.product,
body.prisma-commerce-active.single-product .woocommerce section.related.products ul.products li.product,
body.prisma-commerce-active.single-product .wp-block-woocommerce-related-products ul.wc-block-product-template > li.wc-block-product,
body.prisma-commerce-active.single-product .wp-block-woocommerce-related-products ul.wp-block-post-template > li,
body.prisma-commerce-active.single-product .wp-block-woocommerce-related-products .products-block-post-template > li {
    box-sizing: border-box !important;
    clear: none !important;
    display: flex !important;
    flex-direction: column !important;
    float: none !important;
    gap: .55rem !important;
    height: 100% !important;
    margin: 0 !important;
    max-width: none !important;
    min-width: 0 !important;
    padding: 0 !important;
    position: relative !important;
    width: 100% !important;
}

body.prisma-commerce-active.single-product .related.products li.product :is(a, .woocommerce-LoopProduct-link),
body.prisma-commerce-active.single-product .wp-block-woocommerce-related-products li :is(a, .wp-block-post-title a) {
    max-width: 100%;
}

body.prisma-commerce-active.single-product .related.products li.product img,
body.prisma-commerce-active.single-product .wp-block-woocommerce-related-products li .wc-block-components-product-image img,
body.prisma-commerce-active.single-product .wp-block-woocommerce-related-products li .wp-block-woocommerce-product-image img {
    aspect-ratio: 1 / 1;
    display: block;
    height: auto !important;
    margin: 0 0 .75rem !important;
    max-width: none !important;
    object-fit: cover;
    width: 100% !important;
}

body.prisma-commerce-active.single-product .related.products li.product :is(.woocommerce-loop-product__title, h2, h3),
body.prisma-commerce-active.single-product .wp-block-woocommerce-related-products li :is(.wc-block-components-product-title, .wp-block-post-title) {
    font-size: clamp(1rem, .94rem + .2vw, 1.125rem) !important;
    hyphens: none !important;
    line-height: 1.32 !important;
    overflow-wrap: normal !important;
    text-wrap: balance;
    word-break: normal !important;
}

body.prisma-commerce-active.single-product .related.products li.product :is(.button, .wp-block-button),
body.prisma-commerce-active.single-product .wp-block-woocommerce-related-products li :is(.wp-block-button, .wp-block-woocommerce-product-button) {
    margin-top: auto !important;
}

@media (max-width: 960px) {
    body.prisma-commerce-active.single-product .woocommerce .related.products ul.products,
    body.prisma-commerce-active.single-product .woocommerce section.related.products ul.products,
    body.prisma-commerce-active.single-product .wp-block-woocommerce-related-products ul.wc-block-product-template,
    body.prisma-commerce-active.single-product .wp-block-woocommerce-related-products ul.wp-block-post-template,
    body.prisma-commerce-active.single-product .wp-block-woocommerce-related-products .products-block-post-template {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 560px) {
    body.prisma-commerce-active.single-product :is(.wp-block-woocommerce-related-products, section.related.products, .related.products) {
        left: auto;
        transform: none;
        width: 100% !important;
    }

    body.prisma-commerce-active.single-product .woocommerce .related.products ul.products,
    body.prisma-commerce-active.single-product .woocommerce section.related.products ul.products,
    body.prisma-commerce-active.single-product .wp-block-woocommerce-related-products ul.wc-block-product-template,
    body.prisma-commerce-active.single-product .wp-block-woocommerce-related-products ul.wp-block-post-template,
    body.prisma-commerce-active.single-product .wp-block-woocommerce-related-products .products-block-post-template {
        grid-template-columns: minmax(0, 1fr) !important;
    }
}

/* PRISMA 0.2.4: exact WooCommerce Product Collection markup for related products.
   WooCommerce 10.9 renders the section as a product-collection block with a
   `columns-5` flex template. Reset both the flex-basis and width on each grid
   item; otherwise the cards remain at roughly 20% of their grid track. */
body.prisma-commerce-active.single-product .wp-block-woocommerce-product-collection[data-collection="woocommerce/product-collection/related"] {
    box-sizing: border-box;
    margin-block: clamp(3.75rem, 6vw, 6rem) clamp(3.5rem, 5vw, 5.5rem);
    max-width: var(--wp--style--global--wide-size, 1200px) !important;
    width: 100% !important;
}

body.prisma-commerce-active.single-product .wp-block-woocommerce-product-collection[data-collection="woocommerce/product-collection/related"] > .wp-block-heading {
    font-size: clamp(1.65rem, 1.35rem + 1.1vw, 2.35rem) !important;
    line-height: 1.2 !important;
    margin-block: 0 clamp(1.5rem, 3vw, 2.5rem) !important;
}

body.prisma-commerce-active.single-product .wp-block-woocommerce-product-collection[data-collection="woocommerce/product-collection/related"] > ul.wc-block-product-template,
.editor-styles-wrapper .wp-block-woocommerce-product-collection[data-collection="woocommerce/product-collection/related"] > ul.wc-block-product-template {
    align-items: stretch !important;
    display: grid !important;
    float: none !important;
    gap: clamp(1.25rem, 2.5vw, 2.25rem) !important;
    grid-auto-flow: row !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    list-style: none !important;
    margin: 0 !important;
    max-width: none !important;
    padding: 0 !important;
    width: 100% !important;
}

body.prisma-commerce-active.single-product .wp-block-woocommerce-product-collection[data-collection="woocommerce/product-collection/related"] > ul.wc-block-product-template > li.wc-block-product,
.editor-styles-wrapper .wp-block-woocommerce-product-collection[data-collection="woocommerce/product-collection/related"] > ul.wc-block-product-template > li.wc-block-product {
    box-sizing: border-box !important;
    clear: none !important;
    display: flex !important;
    flex: none !important;
    flex-basis: auto !important;
    flex-direction: column !important;
    float: none !important;
    gap: .55rem !important;
    grid-column: auto !important;
    height: 100% !important;
    justify-self: stretch !important;
    margin: 0 !important;
    max-width: none !important;
    min-width: 0 !important;
    padding: 0 !important;
    position: relative !important;
    width: 100% !important;
}

body.prisma-commerce-active.single-product .wp-block-woocommerce-product-collection[data-collection="woocommerce/product-collection/related"] > ul.wc-block-product-template > li.wc-block-product > .wp-block-woocommerce-product-image,
.editor-styles-wrapper .wp-block-woocommerce-product-collection[data-collection="woocommerce/product-collection/related"] > ul.wc-block-product-template > li.wc-block-product > .wp-block-woocommerce-product-image {
    margin: 0 0 .75rem !important;
    max-width: none !important;
    width: 100% !important;
}

body.prisma-commerce-active.single-product .wp-block-woocommerce-product-collection[data-collection="woocommerce/product-collection/related"] .wp-block-woocommerce-product-image > a,
.editor-styles-wrapper .wp-block-woocommerce-product-collection[data-collection="woocommerce/product-collection/related"] .wp-block-woocommerce-product-image > a {
    display: block !important;
    width: 100% !important;
}

body.prisma-commerce-active.single-product .wp-block-woocommerce-product-collection[data-collection="woocommerce/product-collection/related"] .wp-block-woocommerce-product-image img,
.editor-styles-wrapper .wp-block-woocommerce-product-collection[data-collection="woocommerce/product-collection/related"] .wp-block-woocommerce-product-image img {
    aspect-ratio: 1 / 1;
    display: block !important;
    height: auto !important;
    margin: 0 !important;
    max-width: none !important;
    object-fit: cover;
    width: 100% !important;
}

body.prisma-commerce-active.single-product .wp-block-woocommerce-product-collection[data-collection="woocommerce/product-collection/related"] :is(.wp-block-post-title,.wp-block-woocommerce-product-price,.prisma-gzd-product-meta,.wp-block-woocommerce-product-button),
.editor-styles-wrapper .wp-block-woocommerce-product-collection[data-collection="woocommerce/product-collection/related"] :is(.wp-block-post-title,.wp-block-woocommerce-product-price,.prisma-gzd-product-meta,.wp-block-woocommerce-product-button) {
    box-sizing: border-box;
    max-width: none !important;
    width: 100% !important;
}

body.prisma-commerce-active.single-product .wp-block-woocommerce-product-collection[data-collection="woocommerce/product-collection/related"] .wp-block-woocommerce-product-button,
.editor-styles-wrapper .wp-block-woocommerce-product-collection[data-collection="woocommerce/product-collection/related"] .wp-block-woocommerce-product-button {
    margin-top: auto !important;
}

@media (max-width: 1024px) {
    body.prisma-commerce-active.single-product .wp-block-woocommerce-product-collection[data-collection="woocommerce/product-collection/related"] > ul.wc-block-product-template,
    .editor-styles-wrapper .wp-block-woocommerce-product-collection[data-collection="woocommerce/product-collection/related"] > ul.wc-block-product-template {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 600px) {
    body.prisma-commerce-active.single-product .wp-block-woocommerce-product-collection[data-collection="woocommerce/product-collection/related"] > ul.wc-block-product-template,
    .editor-styles-wrapper .wp-block-woocommerce-product-collection[data-collection="woocommerce/product-collection/related"] > ul.wc-block-product-template {
        grid-template-columns: minmax(0, 1fr) !important;
    }
}

