/* ACEB Product Grid V5 — orange titles, green buttons, red hover */
:root { --aceb-grid-accent: #ff6500; --aceb-grid-accent-hover: #ff8533; }
.woocommerce ul.products,
.woocommerce-page ul.products {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 32px 22px;
    padding: 0 !important;
    margin: 0 0 32px !important;
    list-style: none;
    background: transparent !important;
}
.woocommerce ul.products::before, .woocommerce ul.products::after,
.woocommerce-page ul.products::before, .woocommerce-page ul.products::after {
    display: none !important;
}
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
    position: relative;
    container-type: inline-size;
    width: auto !important;
    max-width: none !important;
    float: none !important;
    clear: none !important;
    margin: 0 !important;
    padding: 0 0 14px !important;
    min-width: 0;
    text-align: center;
    background: transparent !important;
}
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link,
.woocommerce-page ul.products li.product a.woocommerce-LoopProduct-link {
    display: block;
    text-decoration: none;
}
.woocommerce ul.products li.product a img,
.woocommerce-page ul.products li.product a img {
    display: block;
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 1 / 1;
    object-fit: contain;
    border-radius: 16px;
    background: #fff;
    margin: 0 0 13px !important;
    transition: box-shadow .22s ease, filter .22s ease;
}
.woocommerce ul.products li.product:hover a img,
.woocommerce-page ul.products li.product:hover a img {
    box-shadow: 0 10px 25px rgba(0,0,0,.22);
}
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce-page ul.products li.product .woocommerce-loop-product__title {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    line-clamp: 3;
    overflow: hidden;
    font-size: 15px !important;
    line-height: 1.4 !important;
    font-weight: 600 !important;
    text-align: center;
    padding: 0 5px !important;
    margin: 0 0 9px !important;
    transition: color .2s ease;
}
.woocommerce ul.products li.product:hover .woocommerce-loop-product__title,
.woocommerce ul.products li.product a:hover .woocommerce-loop-product__title,
.woocommerce ul.products li.product a:focus-visible .woocommerce-loop-product__title,
.woocommerce-page ul.products li.product:hover .woocommerce-loop-product__title,
.woocommerce-page ul.products li.product a:hover .woocommerce-loop-product__title,
.woocommerce-page ul.products li.product a:focus-visible .woocommerce-loop-product__title {
    color: var(--aceb-grid-accent) !important;
}
.woocommerce ul.products li.product .price,
.woocommerce-page ul.products li.product .price {
    display: block;
    text-align: center;
    font-size: 16px !important;
    font-weight: 700 !important;
    margin: 0 0 10px !important;
}
.woocommerce ul.products li.product .star-rating,
.woocommerce-page ul.products li.product .star-rating {
    margin: 0 auto 9px !important;
}
/* Astra : supprimer uniquement le bouton panier rond supplémentaire sur les cartes.
   Ne pas masquer les boutons WooCommerce natifs ni le panier d'en-tête. */
.woocommerce ul.products li.product .ast-on-card-button,
.woocommerce-page ul.products li.product .ast-on-card-button,
.woocommerce ul.products li.product .ast-card-action-tooltip,
.woocommerce-page ul.products li.product .ast-card-action-tooltip {
    display: none !important;
}

/* Badge promotionnel autonome : le thème Astra peut masquer son badge
   lorsque les commandes de carte sont désactivées. La classe WooCommerce
   .sale est appliquée seulement aux produits réellement en promotion. */
.woocommerce ul.products li.product.sale::before,
.woocommerce-page ul.products li.product.sale::before {
    content: "Promo";
    position: absolute;
    top: 12px;
    left: 12px;
    z-index: 6;
    display: inline-block;
    width: auto;
    height: auto;
    padding: 5px 11px;
    background: #ff6500 !important;
    color: #fff !important;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
    box-shadow: 0 2px 7px rgba(0,0,0,.15);
    pointer-events: none;
}
/* Éviter deux badges promotionnels sur une même carte. */
.woocommerce ul.products li.product.sale .onsale,
.woocommerce-page ul.products li.product.sale .onsale {
    display: none !important;
}

/* ACEB — Boutons d'achat WooCommerce uniquement */

.woocommerce ul.products li.product a.button[class*="product_type_"],
.woocommerce-page ul.products li.product a.button[class*="product_type_"] {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    min-height: 41px;
    max-width: calc(100% - 16px);
    padding: 10px 18px !important;
    margin: 4px auto 0 !important;
    border: 0 !important;
    border-radius: 24px !important;
    background: #16A34A !important;
    color: #fff !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
    text-align: center;
    text-decoration: none !important;
    white-space: normal;
    box-shadow: 0 5px 14px rgba(0,0,0,.14);
    transition: background .2s ease, opacity .2s ease, transform .2s ease;
}

.woocommerce ul.products li.product a.button[class*="product_type_"]:hover,
.woocommerce ul.products li.product a.button[class*="product_type_"]:focus-visible,
.woocommerce-page ul.products li.product a.button[class*="product_type_"]:hover,
.woocommerce-page ul.products li.product a.button[class*="product_type_"]:focus-visible {
    background: #DC2626 !important;
    color: #fff !important;
}

/* Bouton d'achat superposé à l'image sur ordinateur */
@media (hover: hover) and (pointer: fine) and (min-width: 768px) {

    .woocommerce ul.products li.product a.button[class*="product_type_"],
    .woocommerce-page ul.products li.product a.button[class*="product_type_"] {
        position: absolute !important;
        z-index: 4;
        top: calc(100cqw - 63px);
        left: 50%;
        width: max-content;
        margin: 0 !important;
        opacity: 0;
        visibility: hidden;
        transform: translate(-50%, 8px);
        pointer-events: none;
    }

    /* Produit indisponible : remonter "Lire la suite" pour laisser
       entièrement visible la mention de rupture de stock sur la photo. */
    .woocommerce ul.products li.product.outofstock a.button[class*="product_type_"],
    .woocommerce-page ul.products li.product.outofstock a.button[class*="product_type_"] {
        top: calc(100cqw - 105px);
    }

    .woocommerce ul.products li.product:hover a.button[class*="product_type_"],
    .woocommerce ul.products li.product:focus-within a.button[class*="product_type_"],
    .woocommerce-page ul.products li.product:hover a.button[class*="product_type_"],
    .woocommerce-page ul.products li.product:focus-within a.button[class*="product_type_"] {
        opacity: 1;
        visibility: visible;
        transform: translate(-50%, 0);
        pointer-events: auto;
    }
}
/* En tactile et au clavier, le bouton reste accessible sous le prix. */
.woocommerce ul.products li.product .onsale,
.woocommerce-page ul.products li.product .onsale {
    z-index: 5;
    border-radius: 8px !important;
}
@media (max-width: 1024px) {
    .woocommerce ul.products, .woocommerce-page ul.products {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 26px 16px;
    }
}
@media (max-width: 767px) {
    .woocommerce ul.products li.product a.button[class*="product_type_"],
    .woocommerce-page ul.products li.product a.button[class*="product_type_"] {
        position: static !important;
        opacity: 1 !important;
        visibility: visible !important;
        transform: none !important;
        pointer-events: auto !important;
    }
}
@media (max-width: 480px) {
    .woocommerce ul.products, .woocommerce-page ul.products { gap: 20px 12px; }
    .woocommerce ul.products li.product .woocommerce-loop-product__title,
    .woocommerce-page ul.products li.product .woocommerce-loop-product__title { font-size: 13px !important; }
    .woocommerce ul.products li.product .price,
    .woocommerce-page ul.products li.product .price { font-size: 14px !important; }
    .woocommerce ul.products li.product a.button[class*="product_type_"],
    .woocommerce-page ul.products li.product a.button[class*="product_type_"] { font-size: 12px !important; padding: 9px 12px !important; }
}
/* ACEB V7.3 — mobile uniquement : une fiche par ligne et correction du chevauchement Elementor.
   Le test en console a confirmé que container-type: normal supprime les 254 px de chevauchement.
   Ne touche pas aux regles ordinateur (min-width: 768px). */
@media (max-width: 767px) {
    .aceb-grid-selection ul.products {
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 22px 0 !important;
        background: transparent !important;
    }
    .aceb-grid-selection ul.products li.product {
        container-type: normal !important;
        min-width: 0 !important;
        max-width: 100% !important;
        background: transparent !important;
    }
    .aceb-grid-selection ul.products li.product a img {
        display: block;
        max-width: 100% !important;
        height: auto !important;
        object-fit: contain;
    }
}
@media (prefers-reduced-motion: reduce) {
    .woocommerce ul.products li.product *,
    .woocommerce-page ul.products li.product * { transition-duration: 0s !important; }
}
