/* ==========================================================
   WOO VARIATION — v1.5.2
   Styles de base : neutres, structure minimale, pastilles carrées.
   Suppression renforcée des flèches Divi.
   Pour personnaliser l'apparence, voir woo-variation-custom-style.css
   Les effets visuels avancés (glass, border-radius) sont
   à ajouter dans le CSS global du thème (voir snippet fourni).
   ========================================================== */

/* ── Masques généraux ─────────────────────────────────────── */
.variations_form select[name^="attribute_"] { display: none !important; }
.variations_form .reset_variations          { display: none !important; visibility: hidden !important; }
.variations_form .single_variation .price   { display: none !important; }
.price .contenance-attribute                { display: none !important; }

/* ANTI-FLÈCHES GLOBALES - Masque TOUS les pseudo-éléments sur les lignes de couleurs */
.variations_form tr:has(.wv-color-swatches) *::before,
.variations_form tr:has(.wv-color-swatches) *::after,
.variations_form tr.has-color-swatches *::before,
.variations_form tr.has-color-swatches *::after {
    content: none !important; 
    display: none !important;
    background: none !important;
    background-image: none !important;
}

/* Masquer les boutons Divi créés pour le select couleur */
.wv-color-wrapper + .acme-attr-buttons,
.wv-color-wrapper .acme-attr-buttons,
span:has(> .wv-color-select-hidden) + .acme-attr-buttons {
    display: none !important;
}

/* Masquer la flèche de select au hover */
.wv-color-wrapper::after,
.wv-color-wrapper > span::after,
td.value:has(.wv-color-wrapper)::after {
    display: none !important;
    content: none !important;
}

/* ── Boutons attributs (hors couleur) ────────────────────── */
.acme-attr-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 0 0 14px;
    max-width: 100%;
}
.acme-attr-btn {
    background: #e9e9e9;
    border: 2px solid #ccc;
    color: #333;
    border-radius: 4px;
    padding: 10px 16px;
    font-weight: 600;
    font-size: 14px;
    line-height: 1;
    cursor: pointer;
    white-space: nowrap;
    transition: background .15s, border-color .15s;
}
.acme-attr-btn:hover   { background: #ddd; border-color: #aaa; }
.acme-attr-btn.selected { background: #333; border-color: #333; color: #fff; }
.acme-attr-btn:disabled { opacity: .45; cursor: not-allowed; }

/* ── Pastilles couleur ───────────────────────────────────── */
.wv-color-swatches {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 0 0 14px;
    align-items: center;
}

/* Pastille — structure de base carrée */
.wv-color-swatch {
    position: relative;
    width: 34px;
    height: 34px;
    border-radius: 0;             /* Carré par défaut */
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 0;
    overflow: visible;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: opacity 0.2s, transform 0.2s;
}

/* Couleur désactivée/non disponible */
.wv-color-swatch.disabled {
    opacity: 0.3;
    cursor: not-allowed;
    pointer-events: none;
}

/* Supprimer les pseudo-éléments de Divi */
.wv-color-swatch::before,
.wv-color-swatch::after {
    display: none !important;
    content: none !important;
}

/* Disque coloré intérieur */
.wv-color-inner {
    width: 100%;
    height: 100%;
    border-radius: 0;             /* Carré par défaut */
    display: block;
}

/* Label masqué - utilisé uniquement pour accessibilité */
.wv-color-label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* ── Badge économie ──────────────────────────────────────── */
.acme-economy-badge {
    display: none;
    font-weight: 700;
    font-size: .9rem;
    padding: 5px .5rem;
    border-radius: 4px;
    color: #fff;
    background: #333;
    margin-left: 10px;
}
.acme-economy-badge:empty { display: none !important; }

/* ── Badge promo galerie ─────────────────────────────────── */
.product.product-type-variable .onsale { display: none; }
body.single-product .onsale[style*="display: block"],
body.single-product .onsale:not([style*="display: none"]) { display: inline-block !important; }

/* ── Bouton add-to-cart ──────────────────────────────────── */
.woocommerce div.product form.cart .single_add_to_cart_button.button.alt { font-weight: 500 !important; }

/* ── Mise en page variations ─────────────────────────────── */
.woocommerce div.product form.cart .variations { margin-bottom: 0 !important; }

/* Masquer la description vide des variations couleur */
.woocommerce-variation-description:empty,
.woocommerce-variation-description:not(:has(*)) {
    margin-top: 0 !important;
    display: none !important;
}

/* Neutralise la flèche ::after du thème - CIBLAGE ULTRA SPÉCIFIQUE */
.variations_form td.value > span::after,
.variations_form .value > span::after,
.woocommerce div.product form.cart .variations .value > span::after,
.et_pb_wc_add_to_cart form.cart .variations .value > span::after,
.variations_form td.value::after,
.variations_form td.value::before,
.acme-no-arrow::after,
.acme-no-arrow::before,
.wv-color-swatches::before,
.wv-color-swatches::after,
td.value:has(.wv-color-swatches)::before,
td.value:has(.wv-color-swatches)::after,
.variations_form tr:has(.wv-color-swatches) td.value::before,
.variations_form tr:has(.wv-color-swatches) td.value::after,
.variations_form tr.has-color-swatches td.value::before,
.variations_form tr.has-color-swatches td.value::after,
.variations_form td.value:has(.wv-color-wrapper)::before,
.variations_form td.value:has(.wv-color-wrapper)::after {
    content: none !important; 
    display: none !important;
    background: none !important; 
    background-image: none !important;
    border: 0 !important;
    width: 0 !important; 
    height: 0 !important;
    opacity: 0 !important; 
    visibility: hidden !important;
    position: absolute !important;
    left: -9999px !important;
}
.variations_form td.value,
.variations_form td.value > span,
.variations_form td.value .acme-attr-buttons {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
    line-height: 1 !important;
}
.variations_form .variations tr { margin-bottom: 0 !important; padding-bottom: 0 !important; }

/* Layout tableau flex */
.single-product form.variations_form table.variations { table-layout: auto !important; }
.single-product form.variations_form table.variations tr {
    display: flex !important;
    align-items: center !important;
}
.single-product form.variations_form table.variations th.label,
.single-product form.variations_form table.variations td.label {
    width: auto !important; flex: 0 0 auto !important;
    padding: 0 !important; margin: 0 !important;
    white-space: nowrap !important; align-self: center !important;
}
.single-product form.variations_form table.variations th.label { margin-right: 10px !important; }
.single-product form.variations_form table.variations td.value {
    flex: 1 1 auto !important; width: auto !important;
    padding: 0 !important; align-self: center !important;
}
.single-product .variations_form td.value > span {
    display: flex !important;
    align-items: center !important;
    gap: 10px;
    background: none !important;
    position: static !important;
}
.single-product form.variations_form table.variations th.label label::after { content: " : "; opacity: .8; }

/* Ligne quantité + bouton */
.single-product .variations_button,
.single-product form.cart {
    display: flex; align-items: center; flex-wrap: wrap; gap: 15px;
}
.single-product form.cart .quantity { display: flex; align-items: center; margin: 0; }
.single-product form.cart .quantity input.qty {
    width: 74px; min-height: 48px; padding: 0 12px;
    border-radius: 12px; font-size: 16px; font-weight: 600; text-align: center;
}
.single-product form.cart .single_add_to_cart_button {
    min-height: 48px; border-radius: 12px; padding: 0 18px; font-weight: 800;
}

.woocommerce-variation-description { margin-top: 15px; }
.woocommerce-variation-description p { margin-bottom: 0 !important; }

/* ── Responsive ──────────────────────────────────────────── */
@media (max-width: 768px) {
    .wv-color-swatches { gap: 8px; }
}
