ul.products::before,
ul.products::after {
    content: none !important;
    display: none !important;
}

ul.products {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: var(--fp-gap-xl) !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    align-items: stretch !important;
}

ul.products.columns-2 { grid-template-columns: repeat(2, 1fr) !important; }
ul.products.columns-3 { grid-template-columns: repeat(3, 1fr) !important; }
ul.products.columns-4 { grid-template-columns: repeat(4, 1fr) !important; }
ul.products.columns-5 { grid-template-columns: repeat(5, 1fr) !important; }

ul.products li.product,
ul.products li.product.first,
ul.products li.product.last {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    margin: 0 !important;
    float: none !important;
    clear: none !important;
    box-sizing: border-box !important;
}

ul.products li.product a.woocommerce-LoopProduct-link {
    display: flex !important;
    flex: 1 !important;
    flex-direction: column !important;
    min-height: 0 !important;
}

ul.products li.product .woocommerce-loop-product__title {
    flex-grow: 1 !important;
}

ul.products li.product .wc-gzd-additional-info {
    margin: 4px 0 !important;
}

ul.products li.product .button,
ul.products li.product .add_to_cart_button,
ul.products li.product a.add_to_cart_button {
    display: block !important;
    width: 100% !important;
    margin-top: auto !important;
    text-align: center !important;
    box-sizing: border-box !important;
}

.wp-block-woocommerce-product-collection .wp-block-woocommerce-product-template {
    align-items: stretch !important;
}

@media (max-width: 1279px) {
    ul.products,
    ul.products.columns-4,
    ul.products.columns-5 {
        grid-template-columns: repeat(3, 1fr) !important;
    }
}

@media (max-width: 1023px) {
    ul.products,
    ul.products.columns-3,
    ul.products.columns-4,
    ul.products.columns-5 {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: var(--fp-gap-lg) !important;
    }

    .wp-block-woocommerce-product-collection .wp-block-woocommerce-product-template {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

@media (max-width: 767px) {
    ul.products,
    ul.products.columns-2,
    ul.products.columns-3,
    ul.products.columns-4,
    ul.products.columns-5 {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: var(--fp-gap-md) !important;
    }

    ul.products li.product .woocommerce-loop-product__title {
        font-size: 0.9em !important;
    }

    .wp-block-woocommerce-product-collection .wp-block-post-title {
        min-height: 3em;
    }
}

@media (max-width: 480px) {
    ul.products,
    ul.products[class*="columns-"] {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: var(--fp-gap-sm) !important;
    }

    ul.products li.product .woocommerce-loop-product__title {
        font-size: 0.82em !important;
    }

    ul.products li.product .wc-gzd-additional-info {
        font-size: 0.72em !important;
    }

    ul.products li.product .button,
    ul.products li.product a.add_to_cart_button {
        font-size: 0.8em !important;
        padding: 8px 6px !important;
    }

    .price ins bdi,
    .price > .woocommerce-Price-amount bdi {
        font-size: 17px !important;
    }
}

@media (max-width: 359px) {
    ul.products,
    ul.products[class*="columns-"] {
        grid-template-columns: 1fr !important;
    }
}
