/* Only layout differs: product markup and card styling come from the shop. */
.elementor-widget-fluxo-products .woocommerce.fc-elementor-products ul.products {
    display: grid;
    grid-template-columns: repeat(var(--fc-elementor-columns, 4), minmax(0, 1fr)) !important;
    gap: var(--fc-elementor-gap, 16px);
    margin: 0;
    padding: 0;
    width: 100%;
}
.elementor-widget-fluxo-products .woocommerce.fc-elementor-products ul.products::before,
.elementor-widget-fluxo-products .woocommerce.fc-elementor-products ul.products::after { display: none; }
.elementor-widget-fluxo-products .woocommerce.fc-elementor-products ul.products li.product {
    width: 100%;
    max-width: none;
    min-width: 0;
    margin: 0;
    float: none;
    clear: none;
}

/* Elementor card controls are scoped to this widget so the regular shop and
 * related-product grids keep their own Customizer design. */
.elementor-widget-fluxo-products .fc-elementor-products ul.products li.product {
    display: flex;
    flex-direction: column;
    transition: transform 180ms ease, box-shadow 180ms ease, background-color 180ms ease, border-color 180ms ease;
}
.elementor-widget-fluxo-products .fc-elementor-products ul.products li.product > .woocommerce-loop-product__link {
    display: block;
}
.elementor-widget-fluxo-products .fc-elementor-products .fc-loop-category,
.elementor-widget-fluxo-products .fc-elementor-products .woocommerce-loop-product__title,
.elementor-widget-fluxo-products .fc-elementor-products .price {
    padding-left: var(--fc-product-content-inline, 12px);
    padding-right: var(--fc-product-content-inline, 12px);
}
.elementor-widget-fluxo-products .fc-elementor-products .fc-card-detail,
.elementor-widget-fluxo-products .fc-elementor-products .fc-card-tax {
    margin-left: var(--fc-product-content-inline, 12px);
    margin-right: var(--fc-product-content-inline, 12px);
}
.elementor-widget-fluxo-products .fc-elementor-products ul.products li.product .button {
    width: calc(100% - (var(--fc-product-content-inline, 12px) * 2));
    margin-left: var(--fc-product-content-inline, 12px);
    margin-right: var(--fc-product-content-inline, 12px);
}
.elementor-widget-fluxo-products .fc-elementor-products ul.products li.product > .button:last-child {
    margin-bottom: var(--fc-product-button-bottom, 12px);
}

/* Keep product cards aligned and make long names end with an ellipsis. */
.elementor-widget-fluxo-products .fc-elementor-products .woocommerce-loop-product__title {
    display: -webkit-box;
    min-block-size: 2lh;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    text-overflow: ellipsis;
}
.elementor-widget-fluxo-products .fc-elementor-products ul.products li.product > .button:not(.fc-loop-buy-now):not(.fc-product-quick-view) {
    margin-top: auto;
}

/* Widget-local visibility switches. */
.elementor-widget-fluxo-products .fc-products-hide-image a.woocommerce-loop-product__link img,
.elementor-widget-fluxo-products .fc-products-hide-image a:first-child img,
.elementor-widget-fluxo-products .fc-products-hide-badges .fc-loop-badges,
.elementor-widget-fluxo-products .fc-products-hide-badges .onsale,
.elementor-widget-fluxo-products .fc-products-hide-title .woocommerce-loop-product__title,
.elementor-widget-fluxo-products .fc-products-hide-category .fc-loop-category,
.elementor-widget-fluxo-products .fc-products-hide-rating .star-rating {
    display: none !important;
}
.elementor-widget-fluxo-products .fc-elementor-products .price ~ .price {
    display: none !important;
}

@media (max-width: 1024px) {
    .elementor-widget-fluxo-products .woocommerce.fc-elementor-products { --fc-elementor-columns: 3; }
}
@media (max-width: 767px) {
    .elementor-widget-fluxo-products .woocommerce.fc-elementor-products { --fc-elementor-columns: 2; }
}
