@media (max-width: 767px) {
    /* Target WooCommerce product containers, overriding Elementor/Theme specific styles */
    .woocommerce ul.products li.product,
    .woocommerce-page ul.products li.product,
    .elementor-widget-wc-archive-products ul.products li.product,
    .elementor-widget-woocommerce-product-related ul.products li.product {
        display: flex !important;
        flex-direction: column !important;
        justify-content: flex-start !important;
        position: relative !important;
        padding-bottom: 20px !important;
    }

    /* Wrap the image anchor safely */
    .woocommerce ul.products li.product > a.woocommerce-LoopProduct-link,
    .elementor-widget-wc-archive-products ul.products li.product > a.woocommerce-LoopProduct-link {
        display: flex !important;
        flex-direction: column !important;
        position: static !important;
        height: auto !important;
        overflow: visible !important;
        margin-bottom: 10px !important;
    }

    /* Force images to behave predictably inside the anchor */
    .woocommerce ul.products li.product img,
    .woocommerce ul.products li.product .attachment-woocommerce_thumbnail {
        display: block !important;
        width: 100% !important;
        height: auto !important;
        position: static !important;
        object-fit: cover !important;
        margin-bottom: 0 !important;
        transform: none !important;
    }

    /* Force product title to definitively display below the image anchor */
    .woocommerce ul.products li.product .woocommerce-loop-product__title,
    .woocommerce ul.products li.product h2.woocommerce-loop-product__title,
    .elementor-widget-wc-archive-products ul.products li.product h2.woocommerce-loop-product__title {
        clear: both !important;
        position: relative !important;
        display: block !important;
        margin-top: 15px !important;
        padding-top: 0 !important;
        line-height: 1.2 !important;
        z-index: 10 !important;
        background-color: transparent !important;
        bottom: auto !important;
        top: auto !important;
        align-self: flex-start !important;
    }
}