/* =========================================================
   NULUYAFIT - PRODUITS WOODMART GLOBAL
   Objectif :
   - images produits uniformes
   - arrondi uniquement sur les images
   - espacement e-commerce premium entre les cartes
   - ne pas casser les widgets Catégories de produits
   ========================================================= */

:root {
    --nuluya-product-card-width: 330px;
    --nuluya-product-card-width-tablet: 300px;
    --nuluya-product-radius: 10px;
    --nuluya-product-radius-mobile: 8px;
    --nuluya-product-image-ratio: 4 / 5;

    /* Espacements entre cartes produits (style e-commerce mode) */
    --nuluya-product-gap-x: 20px;
    --nuluya-product-gap-y: 48px;
    --nuluya-product-gap-x-tablet: 16px;
    --nuluya-product-gap-y-tablet: 40px;
    --nuluya-product-gap-x-mobile: 12px;
    --nuluya-product-gap-y-mobile: 32px;
}

/* Carte produit globale */
body .wd-product:not(.product-category) .wd-product-wrapper {
    max-width: var(--nuluya-product-card-width);
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
    box-shadow: none !important;
    box-sizing: border-box;
    transition: transform 0.25s ease;
}

/* Effet léger au survol */
@media (hover: hover) {
    body .wd-product:not(.product-category) .wd-product-wrapper:hover {
        transform: translateY(-2px);
    }
}

/* Zone image produit */
body .wd-product:not(.product-category) .product-element-top,
body .wd-product:not(.product-category) .wd-loop-prod-thumb,
body .wd-product:not(.product-category) .wd-product-thumb {
    width: 100%;
    aspect-ratio: var(--nuluya-product-image-ratio);
    overflow: hidden !important;
    background: #f7f7f7;
    border: none !important;
    border-radius: var(--nuluya-product-radius) !important;
    box-sizing: border-box;
    position: relative !important;
}

/* Lien image */
body .wd-product:not(.product-category) .product-image-link {
    display: block;
    width: 100%;
    height: 100%;
    overflow: hidden !important;
    border-radius: var(--nuluya-product-radius) !important;
}

/* Image principale + image hover */
body .wd-product:not(.product-category) .product-element-top img,
body .wd-product:not(.product-category) .wd-loop-prod-thumb img,
body .wd-product:not(.product-category) .wd-product-thumb img,
body .wd-product:not(.product-category) .product-image-link img,
body .wd-product:not(.product-category) .wd-product-img-hover img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center top !important;
    display: block !important;
    border-radius: var(--nuluya-product-radius) !important;
}

/* Image hover WoodMart */
body .wd-product:not(.product-category) .wd-product-img-hover {
    width: 100%;
    height: 100%;
    overflow: hidden !important;
    border-radius: var(--nuluya-product-radius) !important;
}


/* =========================================================
   NULUYAFIT - WIDGETS PRODUITS WOODMART / ELEMENTOR
   Home + catégories + carrousels produits
   Espacement horizontal + vertical entre les cartes
   ========================================================= */
body .elementor-widget-wd_products,
body [data-widget_type="wd_products.default"],
body .wd-carousel-container:has(.wd-product),
body .wd-carousel:not(.banners-carousel):has(.wd-product) {
    --wd-gap-lg: var(--nuluya-product-gap-x) !important;
    --wd-gap-md: var(--nuluya-product-gap-x) !important;
    --wd-gap-sm: var(--nuluya-product-gap-x) !important;
}

/* Carrousel produits : espacement entre slides */
body .wd-carousel:not(.banners-carousel):has(.wd-product) {
    --wd-gap-lg: var(--nuluya-product-gap-x) !important;
    --wd-gap-md: var(--nuluya-product-gap-x) !important;
    --wd-gap-sm: var(--nuluya-product-gap-x) !important;
}

/* Items de carrousel : padding latéral = moitié du gap de chaque côté */
body .wd-carousel-item:has(.wd-product) {
    padding-left: calc(var(--nuluya-product-gap-x) / 2) !important;
    padding-right: calc(var(--nuluya-product-gap-x) / 2) !important;
}

/* Grilles produits Elementor classiques uniquement */
body .elementor-widget-wd_products .wd-products,
body [data-widget_type="wd_products.default"] .wd-products {
    column-gap: var(--nuluya-product-gap-x) !important;
    row-gap: var(--nuluya-product-gap-y) !important;
}

/* Items de grille : pas de marges parasites */
body .wd-products > .wd-product:not(.product-category) {
    margin-left: 0 !important;
    margin-right: 0 !important;
    margin-bottom: 0 !important;
}

/* Carte centrée dans son slot, uniquement pour les widgets produits classiques et carrousels */
body .elementor-widget-wd_products .wd-product:not(.product-category) .wd-product-wrapper,
body [data-widget_type="wd_products.default"] .wd-product:not(.product-category) .wd-product-wrapper,
body .wd-carousel-container .wd-product:not(.product-category) .wd-product-wrapper,
body .wd-carousel-wrap .wd-product:not(.product-category) .wd-product-wrapper {
    max-width: var(--nuluya-product-card-width);
    margin-left: auto;
    margin-right: auto;
}

/* =========================================================
   NULUYAFIT - ARCHIVES PRODUITS NATIVES
   Boutique + archives WooCommerce
   ========================================================= */

body.tax-product_cat,
body.post-type-archive-product,
body.archive.woocommerce {
    --nuluya-archive-card-width: 280px;
}

body.tax-product_cat .wd-content-area > .products,
body.tax-product_cat .wd-content-area > .wd-products,
body.post-type-archive-product .wd-content-area > .products,
body.post-type-archive-product .wd-content-area > .wd-products,
body.archive.woocommerce .wd-content-area > .products,
body.archive.woocommerce .wd-content-area > .wd-products {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, var(--nuluya-archive-card-width)) !important;
    justify-content: flex-start !important;
    align-items: flex-start !important;

    column-gap: var(--nuluya-product-gap-x) !important;
    row-gap: var(--nuluya-product-gap-y) !important;

    margin-left: 0 !important;
    margin-right: 0 !important;

    --wd-gap-lg: var(--nuluya-product-gap-x) !important;
    --wd-gap-md: var(--nuluya-product-gap-x) !important;
    --wd-gap-sm: var(--nuluya-product-gap-x) !important;
}

body.tax-product_cat .wd-content-area > .products > .wd-product:not(.product-category),
body.tax-product_cat .wd-content-area > .wd-products > .wd-product:not(.product-category),
body.post-type-archive-product .wd-content-area > .products > .wd-product:not(.product-category),
body.post-type-archive-product .wd-content-area > .wd-products > .wd-product:not(.product-category),
body.archive.woocommerce .wd-content-area > .products > .wd-product:not(.product-category),
body.archive.woocommerce .wd-content-area > .wd-products > .wd-product:not(.product-category) {
    width: var(--nuluya-archive-card-width) !important;
    max-width: var(--nuluya-archive-card-width) !important;
    margin: 0 !important;
    padding: 0 !important;
}


/* =========================================================
   NULUYAFIT - NE PAS TOUCHER AUX CATÉGORIES PRODUITS
   ========================================================= */

body .product-category,
body .wd-product-category,
body .category-grid-item,
body .wd-cat,
body .wrapp-category {
    flex: initial !important;
    width: initial !important;
    max-width: initial !important;
}

body .product-category img,
body .wd-product-category img,
body .category-grid-item img,
body .wd-cat img,
body .wrapp-category img {
    aspect-ratio: initial !important;
    object-fit: initial !important;
    width: auto;
    height: auto;
    border-radius: inherit;
}


/* =========================================================
   NULUYAFIT - CATÉGORIES : SYNCHRO WIDGETS PRODUITS AVEC HOME
   ========================================================= */

body.tax-product_cat .elementor-widget-wd_products .wd-carousel,
body.tax-product_cat .elementor-widget-wd_products .wd-products,
body.tax-product_cat .elementor-widget-wd_products .wd-grid,
body.tax-product_cat [data-widget_type^="wd_products"] .wd-carousel,
body.tax-product_cat [data-widget_type^="wd_products"] .wd-products,
body.tax-product_cat [data-widget_type^="wd_products"] .wd-grid,
body.tax-product_cat .wd-products-element .wd-carousel,
body.tax-product_cat .wd-products-element .wd-products,
body.tax-product_cat .wd-products-element .wd-grid {
    --wd-col-lg: 5 !important;
    --wd-col-md: 3 !important;
    --wd-col-sm: 2 !important;

    --wd-gap-lg: var(--nuluya-product-gap-x) !important;
    --wd-gap-md: var(--nuluya-product-gap-x) !important;
    --wd-gap-sm: var(--nuluya-product-gap-x) !important;

    column-gap: var(--nuluya-product-gap-x) !important;
    row-gap: var(--nuluya-product-gap-y) !important;
}

body.tax-product_cat .elementor-widget-wd_products .wd-carousel-item,
body.tax-product_cat [data-widget_type^="wd_products"] .wd-carousel-item,
body.tax-product_cat .wd-products-element .wd-carousel-item {
    padding-left: calc(var(--nuluya-product-gap-x) / 2) !important;
    padding-right: calc(var(--nuluya-product-gap-x) / 2) !important;
}

body.tax-product_cat .elementor-widget-wd_products .wd-product:not(.product-category) .wd-product-wrapper,
body.tax-product_cat [data-widget_type^="wd_products"] .wd-product:not(.product-category) .wd-product-wrapper,
body.tax-product_cat .wd-products-element .wd-product:not(.product-category) .wd-product-wrapper {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

body.tax-product_cat .elementor-widget-wd_products .wd-product:not(.product-category) .product-element-top,
body.tax-product_cat [data-widget_type^="wd_products"] .wd-product:not(.product-category) .product-element-top,
body.tax-product_cat .wd-products-element .wd-product:not(.product-category) .product-element-top,
body.tax-product_cat .elementor-widget-wd_products .wd-product:not(.product-category) .wd-loop-prod-thumb,
body.tax-product_cat [data-widget_type^="wd_products"] .wd-product:not(.product-category) .wd-loop-prod-thumb,
body.tax-product_cat .wd-products-element .wd-product:not(.product-category) .wd-loop-prod-thumb,
body.tax-product_cat .elementor-widget-wd_products .wd-product:not(.product-category) .wd-product-thumb,
body.tax-product_cat [data-widget_type^="wd_products"] .wd-product:not(.product-category) .wd-product-thumb,
body.tax-product_cat .wd-products-element .wd-product:not(.product-category) .wd-product-thumb {
    width: 100% !important;
    max-width: 100% !important;
}

body.tax-product_cat .product-category,
body.tax-product_cat .wd-product-category,
body.tax-product_cat .category-grid-item,
body.tax-product_cat .wd-cat,
body.tax-product_cat .wrapp-category {
    flex: initial !important;
    width: initial !important;
    max-width: initial !important;
}

body.tax-product_cat .product-category img,
body.tax-product_cat .wd-product-category img,
body.tax-product_cat .category-grid-item img,
body.tax-product_cat .wd-cat img,
body.tax-product_cat .wrapp-category img {
    aspect-ratio: initial !important;
    object-fit: initial !important;
    width: auto;
    height: auto;
}


/* =========================================================
   NULUYAFIT - HOME : SYNCHRO PRODUCT TABS AVEC CATÉGORIES
   Cible uniquement le Product Tabs de la home
   ========================================================= */

body.page-id-959 .elementor-element-8bc2f7e .wd-products {
    --wd-col-lg: 5 !important;
    --wd-col-md: 3 !important;
    --wd-col-sm: 2 !important;

    --wd-gap-lg: var(--nuluya-product-gap-x) !important;
    --wd-gap-md: var(--nuluya-product-gap-x) !important;
    --wd-gap-sm: var(--nuluya-product-gap-x) !important;

    column-gap: var(--nuluya-product-gap-x) !important;
    row-gap: var(--nuluya-product-gap-y) !important;
}

body.page-id-959 .elementor-element-8bc2f7e .wd-product:not(.product-category) .wd-product-wrapper {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

body.page-id-959 .elementor-element-8bc2f7e .wd-product:not(.product-category) .product-element-top,
body.page-id-959 .elementor-element-8bc2f7e .wd-product:not(.product-category) .wd-loop-prod-thumb,
body.page-id-959 .elementor-element-8bc2f7e .wd-product:not(.product-category) .wd-product-thumb {
    width: 100% !important;
    max-width: 100% !important;
}

/* =========================================================
   RESPONSIVE PRODUITS
   ========================================================= */

@media (max-width: 1024px) {
    :root {
        --nuluya-product-card-width: var(--nuluya-product-card-width-tablet);
        --nuluya-product-gap-x: var(--nuluya-product-gap-x-tablet);
        --nuluya-product-gap-y: var(--nuluya-product-gap-y-tablet);
    }

    body.tax-product_cat,
    body.post-type-archive-product,
    body.archive.woocommerce {
        --nuluya-archive-card-width: 250px;
    }

    body.tax-product_cat .elementor-widget-wd_products .wd-carousel,
    body.tax-product_cat .elementor-widget-wd_products .wd-products,
    body.tax-product_cat .elementor-widget-wd_products .wd-grid,
    body.tax-product_cat [data-widget_type^="wd_products"] .wd-carousel,
    body.tax-product_cat [data-widget_type^="wd_products"] .wd-products,
    body.tax-product_cat [data-widget_type^="wd_products"] .wd-grid,
    body.tax-product_cat .wd-products-element .wd-carousel,
    body.tax-product_cat .wd-products-element .wd-products,
    body.tax-product_cat .wd-products-element .wd-grid {
        --wd-col-lg: 3 !important;
        --wd-col-md: 3 !important;
        --wd-col-sm: 2 !important;
    }
}

@media (max-width: 767px) {
    :root {
        --nuluya-product-gap-x: var(--nuluya-product-gap-x-mobile);
        --nuluya-product-gap-y: var(--nuluya-product-gap-y-mobile);
    }

    body.tax-product_cat,
    body.post-type-archive-product,
    body.archive.woocommerce {
        --nuluya-archive-card-width: 1fr;
    }

    body.tax-product_cat .wd-content-area > .products,
    body.tax-product_cat .wd-content-area > .wd-products,
    body.post-type-archive-product .wd-content-area > .products,
    body.post-type-archive-product .wd-content-area > .wd-products,
    body.archive.woocommerce .wd-content-area > .products,
    body.archive.woocommerce .wd-content-area > .wd-products {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        column-gap: var(--nuluya-product-gap-x-mobile) !important;
        row-gap: var(--nuluya-product-gap-y-mobile) !important;
    }

    body.tax-product_cat .wd-content-area > .products > .wd-product:not(.product-category),
    body.tax-product_cat .wd-content-area > .wd-products > .wd-product:not(.product-category),
    body.post-type-archive-product .wd-content-area > .products > .wd-product:not(.product-category),
    body.post-type-archive-product .wd-content-area > .wd-products > .wd-product:not(.product-category),
    body.archive.woocommerce .wd-content-area > .products > .wd-product:not(.product-category),
    body.archive.woocommerce .wd-content-area > .wd-products > .wd-product:not(.product-category) {
        width: 100% !important;
        max-width: 100% !important;
    }

    body .wd-product:not(.product-category) .wd-product-wrapper {
        max-width: 100%;
    }

    body .wd-product:not(.product-category) .product-element-top,
    body .wd-product:not(.product-category) .wd-loop-prod-thumb,
    body .wd-product:not(.product-category) .wd-product-thumb,
    body .wd-product:not(.product-category) .product-image-link,
    body .wd-product:not(.product-category) .wd-product-img-hover,
    body .wd-product:not(.product-category) .product-element-top img,
    body .wd-product:not(.product-category) .wd-loop-prod-thumb img,
    body .wd-product:not(.product-category) .wd-product-thumb img,
    body .wd-product:not(.product-category) .product-image-link img,
    body .wd-product:not(.product-category) .wd-product-img-hover img {
        border-radius: var(--nuluya-product-radius-mobile) !important;
    }

    body .wd-product:not(.product-category) .product-labels,
    body .wd-product:not(.product-category) .wd-loop-prod-labels {
        top: 6px !important;
        left: 6px !important;
    }

    body .wd-product:not(.product-category) .product-label,
    body .wd-product:not(.product-category) .onsale,
    body .wd-product:not(.product-category) .out-of-stock {
        font-size: 10px !important;
        padding: 3px 6px !important;
    }

    body.tax-product_cat .elementor-widget-wd_products .wd-carousel,
    body.tax-product_cat .elementor-widget-wd_products .wd-products,
    body.tax-product_cat .elementor-widget-wd_products .wd-grid,
    body.tax-product_cat [data-widget_type^="wd_products"] .wd-carousel,
    body.tax-product_cat [data-widget_type^="wd_products"] .wd-products,
    body.tax-product_cat [data-widget_type^="wd_products"] .wd-grid,
    body.tax-product_cat .wd-products-element .wd-carousel,
    body.tax-product_cat .wd-products-element .wd-products,
    body.tax-product_cat .wd-products-element .wd-grid {
        --wd-col-lg: 2 !important;
        --wd-col-md: 2 !important;
        --wd-col-sm: 2 !important;
    }
}


/* =========================================================
   NULUYAFIT - SECTION SPÉCIFIQUE :
   UNIFORMISATION IMAGES DU NESTED CAROUSEL
   
   Cible UNIQUEMENT les images du wd_nested_carousel
   marqué "nuluya-products-large".
   
   ⚠️ NE TOUCHE PAS À :
   - La structure du carrousel (1 slide visible à la fois)
   - Le nombre de colonnes de la grille interne (géré par .grid-columns-2)
   - La largeur des cartes (héritée du natif)
   
   FORCE UNIQUEMENT :
   - Le ratio 4/5 sur les conteneurs image (uniformisation)
   - L'object-fit cover (cadrage centré propre)
   - Les arrondis sur les images
   ========================================================= */

/* ----- 1) Sécurité : force 2 colonnes sur la grille INTERNE uniquement ----- */
/*    (ciblage chirurgical : seulement .wd-products dans un .wd-carousel-item)  */
body .nuluya-products-large .wd-nested-carousel .wd-carousel-item .wd-products {
    --wd-col-lg: 2 !important;
    --wd-col-md: 2 !important;
    --wd-col-sm: 2 !important;
}

/* ----- 2) Conteneur image : ratio 4/5 FORCÉ pour uniformiser ----- */
body .nuluya-products-large .wd-nested-carousel .wd-product:not(.product-category) .product-element-top,
body .nuluya-products-large .wd-nested-carousel .wd-product:not(.product-category) .wd-loop-prod-thumb,
body .nuluya-products-large .wd-nested-carousel .wd-product:not(.product-category) .wd-product-thumb {
    aspect-ratio: var(--nuluya-product-image-ratio, 4 / 5) !important;
    width: 100% !important;
    height: auto !important;
    background: #f7f7f7 !important;
    border-radius: var(--nuluya-product-radius, 10px) !important;
    overflow: hidden !important;
    position: relative !important;
}

/* ----- 3) Lien image : remplit le conteneur ----- */
body .nuluya-products-large .wd-nested-carousel .wd-product:not(.product-category) .wd-product-img-link {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    border-radius: var(--nuluya-product-radius, 10px) !important;
    overflow: hidden !important;
}

/* ----- 4) Image principale : cadrage UNIFORME centré ----- */
body .nuluya-products-large .wd-nested-carousel .wd-product:not(.product-category) .wd-product-img-link > img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center center !important;
    aspect-ratio: auto !important;
    border-radius: var(--nuluya-product-radius, 10px) !important;
    display: block !important;
}

/* ----- 5) Image hover : remplit + cadrage uniforme ----- */
body .nuluya-products-large .wd-nested-carousel .wd-product:not(.product-category) .wd-product-img-hover {
    width: 100% !important;
    height: 100% !important;
    border-radius: var(--nuluya-product-radius, 10px) !important;
    overflow: hidden !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
}

body .nuluya-products-large .wd-nested-carousel .wd-product:not(.product-category) .wd-product-img-hover img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center center !important;
    aspect-ratio: auto !important;
    border-radius: var(--nuluya-product-radius, 10px) !important;
    display: block !important;
}

/* ----- 6) Responsive mobile : arrondis adaptés ----- */
@media (max-width: 767px) {
    body .nuluya-products-large .wd-nested-carousel .wd-product:not(.product-category) .product-element-top,
    body .nuluya-products-large .wd-nested-carousel .wd-product:not(.product-category) .wd-loop-prod-thumb,
    body .nuluya-products-large .wd-nested-carousel .wd-product:not(.product-category) .wd-product-thumb,
    body .nuluya-products-large .wd-nested-carousel .wd-product:not(.product-category) .wd-product-img-link,
    body .nuluya-products-large .wd-nested-carousel .wd-product:not(.product-category) .wd-product-img-hover,
    body .nuluya-products-large .wd-nested-carousel .wd-product:not(.product-category) img {
        border-radius: var(--nuluya-product-radius-mobile, 8px) !important;
    }
}