/* ─────────────────────────────────────────────────────
   EP Panier — thème clair
   ───────────────────────────────────────────────────── */

:root {
    --cart-gold:    #c9a96a;
    --cart-gold-h:  #b8944f;
    --cart-bg:      #f0f4f8;
    --cart-white:   #ffffff;
    --cart-text:    #1e293b;
    --cart-mid:     #475569;
    --cart-light:   #94a3b8;
    --cart-border:  #e2e8f0;
    --cart-blue:    #002d5d;
    --cart-radius:  16px;
    --cart-shadow:  0 1px 3px rgba(0,0,0,.07), 0 4px 16px rgba(0,0,0,.05);
}

/* ── Élargit uniquement le contenu principal (pas header/footer) ── */
body.woocommerce-cart .entry-content .elementor-section-boxed > .elementor-container,
body.woocommerce-checkout .entry-content .elementor-section-boxed > .elementor-container {
    max-width: 100% !important;
    padding-left: 32px !important;
    padding-right: 32px !important;
}
body.woocommerce-cart .entry-content .elementor-column,
body.woocommerce-cart .entry-content .elementor-widget-shortcode,
body.woocommerce-cart .entry-content .elementor-widget-container,
body.woocommerce-checkout .entry-content .elementor-column,
body.woocommerce-checkout .entry-content .elementor-widget-shortcode,
body.woocommerce-checkout .entry-content .elementor-widget-container {
    flex: 0 0 100% !important;
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}
/* Reset #rappel-gratuit — widget fixe droit, ne pas toucher */
body.woocommerce-cart #rappel-gratuit .elementor-widget-container,
body.woocommerce-checkout #rappel-gratuit .elementor-widget-container {
    flex: unset !important;
    width: unset !important;
    max-width: unset !important;
    padding-left: unset !important;
    padding-right: unset !important;
}

/* ── Titre de page ──────────────────────────────────── */
body.woocommerce-cart .ep-page-title,
body.woocommerce-checkout .ep-page-title {
    font-size: 24px !important;
    font-weight: 700 !important;
    color: #002d5d !important;
    -webkit-text-fill-color: #002d5d !important;
    margin: 0 0 24px !important;
    padding: 0 !important;
    line-height: 1.2 !important;
    text-transform: none !important;
}

/* ── Fond de page ───────────────────────────────────── */
body.woocommerce-cart,
body.woocommerce-cart .site-main,
body.woocommerce-cart .content-area,
body.woocommerce-cart #main,
body.woocommerce-cart #content,
body.woocommerce-cart .entry-content,
body.woocommerce-cart .woocommerce,
body.woocommerce-cart .woocommerce-page {
    background: var(--cart-bg) !important;
    color: var(--cart-text) !important;
}

/* ── Reset texte global (thème force blanc partout) ─── */
body.woocommerce-cart .woocommerce p,
body.woocommerce-cart .woocommerce span,
body.woocommerce-cart .woocommerce td,
body.woocommerce-cart .woocommerce th,
body.woocommerce-cart .woocommerce label,
body.woocommerce-cart .woocommerce strong,
body.woocommerce-cart .woocommerce button,
body.woocommerce-cart .woocommerce h2,
body.woocommerce-cart .woocommerce h3,
body.woocommerce-cart .woocommerce a:not(.ep-cart-empty-btn):not(.checkout-button) {
    color: var(--cart-text) !important;
}

/* ══════════════════════════════════════════════════════
   PANIER VIDE
   ══════════════════════════════════════════════════════ */
.ep-cart-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 60px 24px 80px;
    max-width: 440px;
    margin: 0 auto;
}

.ep-cart-empty-icon {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 24px;
    color: var(--cart-blue);
}
.ep-cart-empty-icon svg { width: 34px; height: 34px; }

.ep-cart-empty-title {
    font-size: 26px !important;
    font-weight: 700 !important;
    color: var(--cart-blue) !important;
    margin: 0 0 10px !important;
    line-height: 1.2 !important;
}

.ep-cart-empty-sub {
    font-size: 14px !important;
    color: var(--cart-mid) !important;
    line-height: 1.6 !important;
    margin: 0 0 28px !important;
}

.ep-cart-empty-btn {
    display: inline-flex;
    align-items: center;
    padding: 12px 26px;
    background: var(--cart-blue);
    color: #fff !important;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    border-radius: 10px;
    transition: background .15s;
}
.ep-cart-empty-btn:hover {
    background: #004a99;
    color: #fff !important;
}

/* ══════════════════════════════════════════════════════
   PANIER PLEIN — table
   ══════════════════════════════════════════════════════ */
body.woocommerce-cart .woocommerce {
    padding: 32px 0 60px !important;
    width: 100% !important;
    max-width: none !important;
    box-sizing: border-box !important;
}

body.woocommerce-cart .woocommerce-cart-form {
    background: var(--cart-white) !important;
    border-radius: var(--cart-radius) !important;
    box-shadow: var(--cart-shadow) !important;
    overflow: hidden !important;
    margin-bottom: 24px !important;
}

body.woocommerce-cart table.shop_table {
    width: 100% !important;
    border-collapse: collapse !important;
    margin: 0 !important;
    background: transparent !important;
}

/* Entêtes */
body.woocommerce-cart table.shop_table thead tr {
    background: #f8fafc !important;
    border-bottom: 1px solid var(--cart-border) !important;
}
body.woocommerce-cart table.shop_table thead th {
    font-size: 11px !important;
    font-weight: 700 !important;
    letter-spacing: .07em !important;
    text-transform: uppercase !important;
    color: var(--cart-light) !important;
    padding: 14px 16px !important;
    background: transparent !important;
    border: none !important;
}

/* Lignes */
body.woocommerce-cart table.shop_table tbody tr {
    border-bottom: 1px solid var(--cart-border) !important;
}
body.woocommerce-cart table.shop_table tbody td {
    padding: 16px !important;
    vertical-align: middle !important;
    color: var(--cart-text) !important;
    font-size: 14px !important;
    background: transparent !important;
}

/* Thumbnail */
body.woocommerce-cart .product-thumbnail img {
    width: 64px !important;
    height: 64px !important;
    object-fit: cover !important;
    border-radius: 8px !important;
}

/* Nom */
body.woocommerce-cart .product-name a {
    color: var(--cart-text) !important;
    font-weight: 600 !important;
    text-decoration: none !important;
}
body.woocommerce-cart .product-name a:hover { color: var(--cart-blue) !important; }

/* Prix unitaire */
body.woocommerce-cart .product-price bdi,
body.woocommerce-cart .product-price .woocommerce-Price-amount { color: var(--cart-mid) !important; }

/* Sous-total */
body.woocommerce-cart .product-subtotal { color: var(--cart-blue) !important; font-weight: 700 !important; }
body.woocommerce-cart .product-subtotal bdi,
body.woocommerce-cart .product-subtotal .woocommerce-Price-amount { color: var(--cart-blue) !important; }

/* Supprimer */
body.woocommerce-cart .product-remove a.remove {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 32px !important;
    height: 32px !important;
    border-radius: 50% !important;
    background: #fee2e2 !important;
    color: transparent !important;  /* masque le × natif */
    font-size: 0 !important;
    text-decoration: none !important;
    transition: background .12s !important;
    border: none !important;
    position: relative !important;
    flex-shrink: 0 !important;
}
body.woocommerce-cart .product-remove a.remove::before {
    content: '' !important;
    display: block !important;
    width: 14px !important;
    height: 14px !important;
    background-color: #ef4444 !important;
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='2.5' stroke='currentColor'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M6 18 18 6M6 6l12 12'/%3E%3C/svg%3E") !important;
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='2.5' stroke='currentColor'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M6 18 18 6M6 6l12 12'/%3E%3C/svg%3E") !important;
    -webkit-mask-size: contain !important;
    mask-size: contain !important;
    -webkit-mask-repeat: no-repeat !important;
    mask-repeat: no-repeat !important;
    -webkit-mask-position: center !important;
    mask-position: center !important;
    flex-shrink: 0 !important;
}
body.woocommerce-cart .product-remove a.remove:hover { background: #fecaca !important; }

/* Quantité */
body.woocommerce-cart .quantity .qty {
    width: 60px !important;
    padding: 6px 10px !important;
    background: #f8fafc !important;
    border: 1px solid var(--cart-border) !important;
    border-radius: 8px !important;
    color: var(--cart-text) !important;
    font-size: 14px !important;
    text-align: center !important;
}

/* Zone actions */
body.woocommerce-cart .actions {
    padding: 14px 16px !important;
    background: #f8fafc !important;
    border-top: 1px solid var(--cart-border) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    flex-wrap: wrap !important;
    gap: 10px !important;
}
body.woocommerce-cart .coupon {
    display: flex !important;
    gap: 8px !important;
    align-items: center !important;
}
body.woocommerce-cart .coupon input#coupon_code {
    background: #fff !important;
    border: 1px solid var(--cart-border) !important;
    border-radius: 8px !important;
    padding: 8px 14px !important;
    color: var(--cart-text) !important;
    font-size: 13px !important;
}
/* Coupon button */
body.woocommerce-cart .woocommerce .coupon .button {
    background: #f8fafc !important;
    color: var(--cart-mid) !important;
    border: 1px solid var(--cart-border) !important;
    border-radius: 8px !important;
    padding: 8px 16px !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    cursor: pointer !important;
    box-shadow: none !important;
}

/* Update cart — spécificité maximale */
body.woocommerce-cart .woocommerce table.shop_table.cart td.actions button[name="update_cart"],
body.woocommerce-cart .woocommerce-cart-form table td.actions button[name="update_cart"] {
    background: #f8fafc !important;
    color: #475569 !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 8px !important;
    padding: 8px 16px !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    box-shadow: none !important;
    cursor: pointer !important;
    -webkit-text-fill-color: #475569 !important;
}
body.woocommerce-cart .woocommerce table.shop_table.cart td.actions button[name="update_cart"]:hover,
body.woocommerce-cart .woocommerce-cart-form table td.actions button[name="update_cart"]:hover {
    border-color: var(--cart-blue) !important;
    color: var(--cart-blue) !important;
    -webkit-text-fill-color: var(--cart-blue) !important;
    background: #fff !important;
}

/* ══════════════════════════════════════════════════════
   TOTAUX
   ══════════════════════════════════════════════════════ */
body.woocommerce-cart .cart-collaterals {
    display: flex !important;
    justify-content: flex-end !important;
}
body.woocommerce-cart .cart_totals {
    width: 100% !important;
    max-width: 380px !important;
    background: var(--cart-white) !important;
    border-radius: var(--cart-radius) !important;
    box-shadow: var(--cart-shadow) !important;
    padding: 24px !important;
}
body.woocommerce-cart .cart_totals h2 {
    font-size: 15px !important;
    font-weight: 700 !important;
    color: var(--cart-text) !important;
    margin: 0 0 16px !important;
    padding-bottom: 14px !important;
    border-bottom: 1px solid var(--cart-border) !important;
}
body.woocommerce-cart .cart_totals table th,
body.woocommerce-cart .cart_totals table td {
    padding: 9px 0 !important;
    font-size: 14px !important;
    color: var(--cart-text) !important;
    -webkit-text-fill-color: var(--cart-text) !important;
    border: none !important;
    background: transparent !important;
}
body.woocommerce-cart .cart_totals table th {
    color: var(--cart-mid) !important;
    -webkit-text-fill-color: var(--cart-mid) !important;
    font-weight: 500 !important;
    white-space: nowrap !important;
    padding-right: 16px !important;
    vertical-align: top !important;
}
body.woocommerce-cart .cart_totals .woocommerce-Price-amount,
body.woocommerce-cart .cart_totals bdi { color: var(--cart-text) !important; }
body.woocommerce-cart .cart_totals .order-total th,
body.woocommerce-cart .cart_totals .order-total td,
body.woocommerce-cart .cart_totals .order-total bdi,
body.woocommerce-cart .cart_totals .order-total .woocommerce-Price-amount {
    font-size: 17px !important;
    font-weight: 700 !important;
    color: var(--cart-blue) !important;
    padding-top: 14px !important;
    border-top: 1px solid var(--cart-border) !important;
}

/* Bouton Commander */
body.woocommerce-cart .wc-proceed-to-checkout .checkout-button {
    display: block !important;
    width: 100% !important;
    padding: 14px !important;
    margin-top: 16px !important;
    background: var(--cart-blue) !important;
    color: #fff !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    text-align: center !important;
    text-decoration: none !important;
    border-radius: 10px !important;
    border: none !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    transition: background .15s !important;
}
body.woocommerce-cart .wc-proceed-to-checkout .checkout-button:hover {
    background: #004a99 !important;
    color: #fff !important;
}
/* ══════════════════════════════════════════════════════
   COMMANDE (CHECKOUT)
   ══════════════════════════════════════════════════════ */

/* ── Fond de page ───────────────────────────────────── */
body.woocommerce-checkout,
body.woocommerce-checkout .site-main,
body.woocommerce-checkout .content-area,
body.woocommerce-checkout #main,
body.woocommerce-checkout #content,
body.woocommerce-checkout .entry-content,
body.woocommerce-checkout .woocommerce,
body.woocommerce-checkout .woocommerce-page {
    background: var(--cart-bg) !important;
    color: var(--cart-text) !important;
}

/* ── Reset texte ────────────────────────────────────── */
body.woocommerce-checkout .woocommerce p,
body.woocommerce-checkout .woocommerce span,
body.woocommerce-checkout .woocommerce td,
body.woocommerce-checkout .woocommerce th,
body.woocommerce-checkout .woocommerce label,
body.woocommerce-checkout .woocommerce strong,
body.woocommerce-checkout .woocommerce b,
body.woocommerce-checkout .woocommerce li,
body.woocommerce-checkout .woocommerce h2,
body.woocommerce-checkout .woocommerce h3,
body.woocommerce-checkout .woocommerce h4 {
    color: var(--cart-text) !important;
}

/* ── Wrapper ────────────────────────────────────────── */
body.woocommerce-checkout .woocommerce {
    padding: 32px 0 60px !important;
    width: 100% !important;
    max-width: none !important;
    box-sizing: border-box !important;
}

/* ── Layout 2 colonnes ──────────────────────────────── */
body.woocommerce-checkout form.woocommerce-checkout {
    display: grid !important;
    grid-template-columns: 1fr 380px !important;
    column-gap: 28px !important;
    align-items: start !important;
    width: 100% !important;
    max-width: none !important;
    box-sizing: border-box !important;
}
body.woocommerce-checkout form.woocommerce-checkout > *:not(.ep-co-right) {
    grid-column: 1 !important;
}

/* ── Colonne gauche ─────────────────────────────────── */
body.woocommerce-checkout #customer_details {
    display: flex !important;
    flex-direction: column !important;
    gap: 20px !important;
    width: 100% !important;
}
body.woocommerce-checkout #customer_details .col-1,
body.woocommerce-checkout #customer_details .col-2 {
    width: 100% !important;
    float: none !important;
    max-width: none !important;
}

/* Cartes sections */
body.woocommerce-checkout .woocommerce-billing-fields,
body.woocommerce-checkout .woocommerce-shipping-fields,
body.woocommerce-checkout #ship-to-different-address,
body.woocommerce-checkout .woocommerce-additional-fields {
    background: var(--cart-white) !important;
    border-radius: var(--cart-radius) !important;
    box-shadow: var(--cart-shadow) !important;
    padding: 24px !important;
    box-sizing: border-box !important;
}

/* Titres sections */
body.woocommerce-checkout .woocommerce-billing-fields h3,
body.woocommerce-checkout .woocommerce-shipping-fields h3,
body.woocommerce-checkout .woocommerce-additional-fields h3 {
    font-size: 13px !important;
    font-weight: 700 !important;
    color: var(--cart-blue) !important;
    text-transform: uppercase !important;
    letter-spacing: .06em !important;
    margin: 0 0 20px !important;
    padding-bottom: 14px !important;
    border-bottom: 1px solid var(--cart-border) !important;
}

/* "Expédier à une adresse différente" */
body.woocommerce-checkout #ship-to-different-address label {
    font-size: 14px !important;
    font-weight: 600 !important;
    color: var(--cart-text) !important;
    cursor: pointer !important;
}

/* Grille champs 2 colonnes */
body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
body.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    column-gap: 16px !important;
}
body.woocommerce-checkout .form-row-wide { grid-column: 1 / -1 !important; }

/* Labels */
body.woocommerce-checkout .form-row label {
    display: block !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    color: var(--cart-mid) !important;
    text-transform: uppercase !important;
    letter-spacing: .05em !important;
    margin-bottom: 6px !important;
}
body.woocommerce-checkout .form-row label .required { color: #ef4444 !important; }

/* Inputs */
body.woocommerce-checkout .form-row input.input-text,
body.woocommerce-checkout .form-row select,
body.woocommerce-checkout .form-row textarea {
    width: 100% !important;
    background: #f8fafc !important;
    border: 1.5px solid var(--cart-border) !important;
    border-radius: 8px !important;
    padding: 10px 13px !important;
    font-size: 13px !important;
    color: var(--cart-text) !important;
    -webkit-text-fill-color: var(--cart-text) !important;
    outline: none !important;
    box-shadow: none !important;
    box-sizing: border-box !important;
    transition: border-color .15s !important;
}
body.woocommerce-checkout .form-row input.input-text:focus,
body.woocommerce-checkout .form-row select:focus,
body.woocommerce-checkout .form-row textarea:focus {
    border-color: #004a99 !important;
    background: #fff !important;
}
body.woocommerce-checkout .form-row input.input-text::placeholder {
    color: var(--cart-light) !important;
}

/* ── Colonne droite — carte récap unifiée ───────────── */
body.woocommerce-checkout .ep-co-right {
    grid-column: 2 !important;
    align-self: start !important;
    background: var(--cart-white) !important;
    border-radius: var(--cart-radius) !important;
    box-shadow: var(--cart-shadow) !important;
    overflow: hidden !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

/* Titre récap */
body.woocommerce-checkout #order_review_heading {
    font-size: 13px !important;
    font-weight: 700 !important;
    color: var(--cart-blue) !important;
    text-transform: uppercase !important;
    letter-spacing: .06em !important;
    padding: 20px 24px 16px !important;
    margin: 0 !important;
    border-bottom: 1px solid var(--cart-border) !important;
    background: transparent !important;
    box-shadow: none !important;
    border-radius: 0 !important;
}

/* Review wrapper */
body.woocommerce-checkout #order_review {
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

/* Tableau récap */
body.woocommerce-checkout table.shop_table {
    width: 100% !important;
    border-collapse: collapse !important;
    background: transparent !important;
    margin: 0 !important;
}
body.woocommerce-checkout table.shop_table thead th {
    font-size: 10px !important;
    font-weight: 700 !important;
    letter-spacing: .08em !important;
    text-transform: uppercase !important;
    color: var(--cart-light) !important;
    padding: 14px 24px 10px !important;
    border-bottom: 1px solid var(--cart-border) !important;
    background: transparent !important;
}
body.woocommerce-checkout table.shop_table tbody td,
body.woocommerce-checkout table.shop_table tfoot td,
body.woocommerce-checkout table.shop_table tfoot th {
    padding: 10px 24px !important;
    font-size: 13px !important;
    color: var(--cart-text) !important;
    border-bottom: 1px solid var(--cart-border) !important;
    background: transparent !important;
}
body.woocommerce-checkout table.shop_table tfoot tr:last-child td,
body.woocommerce-checkout table.shop_table tfoot tr:last-child th {
    font-size: 15px !important;
    font-weight: 700 !important;
    color: var(--cart-blue) !important;
    border-bottom: none !important;
    padding-bottom: 16px !important;
}
body.woocommerce-checkout table.shop_table .woocommerce-Price-amount,
body.woocommerce-checkout table.shop_table bdi { color: var(--cart-text) !important; }
body.woocommerce-checkout table.shop_table tfoot tr:last-child .woocommerce-Price-amount,
body.woocommerce-checkout table.shop_table tfoot tr:last-child bdi { color: var(--cart-blue) !important; }

/* ── Paiement ───────────────────────────────────────── */
body.woocommerce-checkout #payment {
    padding: 0 24px 24px !important;
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    width: 100% !important;
    box-sizing: border-box !important;
    margin-top: 0 !important;
    position: static !important;
}
/* Supprime le pseudo-élément "bande" du thème WGL */
body.woocommerce-checkout #payment::before {
    display: none !important;
    content: none !important;
}
body.woocommerce-checkout #payment .payment_methods {
    list-style: none !important;
    margin: 0 0 16px !important;
    padding: 0 !important;
    border: 1px solid var(--cart-border) !important;
    border-radius: 10px !important;
    overflow: hidden !important;
    width: 100% !important;
    box-sizing: border-box !important;
}
body.woocommerce-checkout #payment .payment_methods li {
    padding: 12px 16px !important;
    border-bottom: 1px solid var(--cart-border) !important;
    background: #f8fafc !important;
    box-sizing: border-box !important;
}
body.woocommerce-checkout #payment .payment_methods li:last-child { border-bottom: none !important; }
body.woocommerce-checkout #payment .payment_methods li label {
    font-size: 13px !important;
    font-weight: 600 !important;
    color: var(--cart-text) !important;
    cursor: pointer !important;
}
body.woocommerce-checkout #payment .payment_box {
    background: #eff6ff !important;
    border: none !important;
    border-radius: 6px !important;
    padding: 10px 12px !important;
    margin: 8px 0 0 !important;
    font-size: 12px !important;
    line-height: 1.55 !important;
    color: var(--cart-mid) !important;
    word-break: break-word !important;
    box-sizing: border-box !important;
}

/* Privacy text */
body.woocommerce-checkout .woocommerce-privacy-policy-text {
    font-size: 11px !important;
    color: var(--cart-light) !important;
    line-height: 1.5 !important;
    margin-bottom: 12px !important;
}
body.woocommerce-checkout .woocommerce-privacy-policy-text a { color: var(--cart-mid) !important; }

/* ── Bouton Commander ───────────────────────────────── */
body.woocommerce-checkout #place_order {
    display: block !important;
    width: 100% !important;
    padding: 15px !important;
    background: var(--cart-blue) !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    text-align: center !important;
    border: none !important;
    border-radius: 10px !important;
    cursor: pointer !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    box-shadow: none !important;
    transition: background .15s !important;
    box-sizing: border-box !important;
}
body.woocommerce-checkout #place_order:hover { background: #004a99 !important; }

/* ── Code promo (checkout) ──────────────────────────── */
body.woocommerce-checkout form.checkout_coupon,
body.woocommerce-checkout form.woocommerce-form-coupon {
    background: var(--cart-white) !important;
    border: 1px solid var(--cart-border) !important;
    border-radius: var(--cart-radius) !important;
    box-shadow: var(--cart-shadow) !important;
    padding: 20px 24px !important;
    margin-bottom: 24px !important;
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    flex-wrap: wrap !important;
}
body.woocommerce-checkout form.checkout_coupon p,
body.woocommerce-checkout form.woocommerce-form-coupon p {
    margin: 0 !important;
    flex: 1 !important;
    min-width: 160px !important;
}
body.woocommerce-checkout form.checkout_coupon input[name="coupon_code"],
body.woocommerce-checkout form.woocommerce-form-coupon input[name="coupon_code"] {
    width: 100% !important;
    background: #f8fafc !important;
    border: 1.5px solid var(--cart-border) !important;
    border-radius: 8px !important;
    padding: 10px 14px !important;
    font-size: 13px !important;
    color: var(--cart-text) !important;
    -webkit-text-fill-color: var(--cart-text) !important;
    box-shadow: none !important;
    outline: none !important;
    box-sizing: border-box !important;
    height: 40px !important;
}
body.woocommerce-checkout form.checkout_coupon input[name="coupon_code"]::placeholder,
body.woocommerce-checkout form.woocommerce-form-coupon input[name="coupon_code"]::placeholder {
    color: var(--cart-light) !important;
}
body.woocommerce-checkout form.checkout_coupon .button,
body.woocommerce-checkout form.woocommerce-form-coupon .button {
    background: var(--cart-blue) !important;
    background-color: var(--cart-blue) !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    border: none !important;
    border-radius: 8px !important;
    padding: 0 20px !important;
    height: 40px !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    cursor: pointer !important;
    white-space: nowrap !important;
    display: flex !important;
    align-items: center !important;
}
body.woocommerce-checkout form.checkout_coupon .button:hover,
body.woocommerce-checkout form.woocommerce-form-coupon .button:hover {
    background: #004a99 !important;
    background-color: #004a99 !important;
}

/* ── Notices ────────────────────────────────────────── */
body.woocommerce-checkout .woocommerce-info,
body.woocommerce-checkout .woocommerce-message {
    border-radius: 10px !important;
    border-top: none !important;
    border-left: 4px solid #004a99 !important;
    background: #eff6ff !important;
    color: var(--cart-text) !important;
    padding: 12px 16px 12px 48px !important;
    margin-bottom: 20px !important;
    position: relative !important;
}
/* Icône ℹ — positionnée à gauche sans chevaucher le texte */
body.woocommerce-checkout .woocommerce-info::before,
body.woocommerce-checkout .woocommerce-message::before {
    position: absolute !important;
    left: 16px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    font-size: 16px !important;
    color: #004a99 !important;
}
/* Lien "Cliquez ici pour saisir votre code" */
body.woocommerce-checkout .woocommerce-info a,
body.woocommerce-checkout .woocommerce-message a {
    color: #004a99 !important;
    font-weight: 600 !important;
    text-decoration: underline !important;
}
body.woocommerce-checkout .woocommerce-error {
    border-radius: 10px !important;
    border-top: none !important;
    border-left: 4px solid #ef4444 !important;
    background: #fef2f2 !important;
    color: var(--cart-text) !important;
    padding: 12px 16px 12px 48px !important;
    margin-bottom: 20px !important;
}

/* ── Calculateur livraison ──────────────────────────── */
/* Ligne expédition : th + td empilés pour que le form soit pleine largeur */
body.woocommerce-cart .cart_totals tr.shipping {
    display: block !important;
}
body.woocommerce-cart .cart_totals tr.shipping th {
    display: block !important;
    width: 100% !important;
    padding-bottom: 4px !important;
}
body.woocommerce-cart .cart_totals tr.shipping td {
    display: block !important;
    width: 100% !important;
    padding-top: 0 !important;
    box-sizing: border-box !important;
}
body.woocommerce-cart form.woocommerce-shipping-calculator,
body.woocommerce-cart .cart_totals .shipping-calculator-form {
    width: 100% !important;
    box-sizing: border-box !important;
}
body.woocommerce-cart .woocommerce-shipping-calculator p {
    width: 100% !important;
    margin: 0 0 8px !important;
    box-sizing: border-box !important;
}
body.woocommerce-cart .shipping-calculator-form .form-row {
    width: 100% !important;
    box-sizing: border-box !important;
    text-align: left !important;
    float: none !important;
}
body.woocommerce-cart .shipping-calculator-form .form-row label {
    text-align: left !important;
}
body.woocommerce-cart .shipping-calculator-form .select2-container {
    width: 100% !important;
}
body.woocommerce-cart .shipping-calculator-button {
    font-size: 13px !important;
    color: var(--cart-blue) !important;
    text-decoration: none !important;
    font-weight: 600 !important;
}
body.woocommerce-cart .shipping-calculator-form {
    background: #f8fafc !important;
    border: 1px solid var(--cart-border) !important;
    border-radius: 10px !important;
    padding: 16px !important;
    margin-top: 12px !important;
}
body.woocommerce-cart .shipping-calculator-form .form-row label {
    display: block !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    color: var(--cart-mid) !important;
    text-transform: uppercase !important;
    letter-spacing: .05em !important;
    margin-bottom: 5px !important;
}
body.woocommerce-cart .shipping-calculator-form select,
body.woocommerce-cart .shipping-calculator-form .form-row select,
body.woocommerce-cart .shipping-calculator-form .form-row input[type="text"],
body.woocommerce-cart .shipping-calculator-form #calc_shipping_country,
body.woocommerce-cart .shipping-calculator-form #calc_shipping_state,
body.woocommerce-cart .shipping-calculator-form #calc_shipping_postcode,
body.woocommerce-cart .shipping-calculator-form #calc_shipping_city {
    width: 100% !important;
    background: #fff !important;
    border: 1.5px solid var(--cart-border) !important;
    border-radius: 8px !important;
    padding: 9px 12px !important;
    height: 40px !important;
    line-height: 1.4 !important;
    vertical-align: middle !important;
    font-size: 13px !important;
    color: var(--cart-text) !important;
    -webkit-text-fill-color: var(--cart-text) !important;
    box-shadow: none !important;
    outline: none !important;
    box-sizing: border-box !important;
}
body.woocommerce-cart .shipping-calculator-form select:focus,
body.woocommerce-cart .shipping-calculator-form .form-row select:focus,
body.woocommerce-cart .shipping-calculator-form .form-row input[type="text"]:focus {
    border-color: #004a99 !important;
}
body.woocommerce-cart .shipping-calculator-form .button,
body.woocommerce-cart button[name="calc_shipping"] {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    background: var(--cart-blue) !important;
    background-color: var(--cart-blue) !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    border: none !important;
    border-radius: 8px !important;
    height: 40px !important;
    padding: 0 10px !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    text-align: center !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    cursor: pointer !important;
    margin-top: 8px !important;
    box-sizing: border-box !important;
}
body.woocommerce-cart .shipping-calculator-form .button:hover,
body.woocommerce-cart button[name="calc_shipping"]:hover {
    background: #004a99 !important;
    background-color: #004a99 !important;
}

/* ── Select2 / selectWoo (calculateur livraison) ────── */
/* Boîte de sélection */
body.woocommerce-cart .shipping-calculator-form .select2-selection--single {
    background: #fff !important;
    background-color: #fff !important;
    border: 1.5px solid var(--cart-border) !important;
    border-radius: 8px !important;
    height: 40px !important;
    position: relative !important;
    display: flex !important;
    align-items: center !important;
}
body.woocommerce-cart .shipping-calculator-form .select2-selection__rendered {
    color: var(--cart-text) !important;
    -webkit-text-fill-color: var(--cart-text) !important;
    line-height: normal !important;
    padding: 0 30px 0 12px !important;
    flex: 1 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}
body.woocommerce-cart .shipping-calculator-form .select2-selection__arrow {
    display: none !important;
}
body.woocommerce-cart .shipping-calculator-form .select2-selection--single::after {
    content: '' !important;
    position: absolute !important;
    right: 12px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: 0 !important;
    height: 0 !important;
    border-left: 4px solid transparent !important;
    border-right: 4px solid transparent !important;
    border-top: 5px solid var(--cart-mid) !important;
    pointer-events: none !important;
}
/* Dropdown ouvert — rendu au niveau du body, pas besoin de parent */
.select2-dropdown {
    background: #fff !important;
    background-color: #fff !important;
    border: 1.5px solid var(--cart-border) !important;
    border-radius: 8px !important;
    box-shadow: 0 4px 16px rgba(0,0,0,.08) !important;
}
.select2-search--dropdown .select2-search__field {
    background: #f8fafc !important;
    border: 1px solid var(--cart-border) !important;
    border-radius: 6px !important;
    color: var(--cart-text) !important;
    -webkit-text-fill-color: var(--cart-text) !important;
}
.select2-results__option {
    background: #fff !important;
    color: var(--cart-text) !important;
    -webkit-text-fill-color: var(--cart-text) !important;
    font-size: 13px !important;
}
.select2-results__option--highlighted,
.select2-results__option[aria-selected="true"] {
    background: #eff6ff !important;
    color: var(--cart-blue) !important;
    -webkit-text-fill-color: var(--cart-blue) !important;
}

/* ── Coupon form ────────────────────────────────────── */
body.woocommerce-cart .woocommerce form.checkout_coupon,
body.woocommerce-cart form.checkout_coupon {
    background: var(--cart-white) !important;
    background-color: var(--cart-white) !important;
    border: 1px solid var(--cart-border) !important;
    border-radius: var(--cart-radius) !important;
    box-shadow: var(--cart-shadow) !important;
}

/* ── td mobile (WooCommerce responsive table) ────────── */
body.woocommerce-cart table.shop_table td,
body.woocommerce-cart table.shop_table tr {
    background: transparent !important;
    background-color: transparent !important;
    color: var(--cart-text) !important;
    -webkit-text-fill-color: var(--cart-text) !important;
}
body.woocommerce-cart table.shop_table td::before {
    color: #475569 !important;
    -webkit-text-fill-color: #475569 !important;
}

/* ── Notices panier ─────────────────────────────────── */
body.woocommerce-cart .wgl_module_message_box,
body.woocommerce-cart .woocommerce-info {
    background: #eff6ff !important;
    background-color: #eff6ff !important;
    color: var(--cart-blue) !important;
    border-left: 4px solid var(--cart-mid) !important;
    border-radius: 10px !important;
    border-top: none !important;
    border-right: none !important;
    border-bottom: none !important;
}
body.woocommerce-cart .wgl_module_message_box .message_text,
body.woocommerce-cart .wgl_module_message_box .message_content,
body.woocommerce-cart .woocommerce-info {
    color: var(--cart-blue) !important;
    -webkit-text-fill-color: var(--cart-blue) !important;
}
body.woocommerce-cart .wgl_module_message_box .message_icon_wrap {
    display: none !important;
}
body.woocommerce-cart .wgl_module_message_box .message_close_button {
    filter: invert(1) !important;
    opacity: .4 !important;
}

/* ── Responsive ─────────────────────────────────────── */
@media (max-width: 768px) {
    /* Cache le thead (labels colonnes inutiles sur mobile) */
    body.woocommerce-cart table.shop_table thead {
        display: none !important;
    }
    /* Supprime le ::before fantôme sur la ligne actions */
    body.woocommerce-cart table.shop_table td.actions::before {
        display: none !important;
    }
    body.woocommerce-cart table.shop_table td.actions {
        padding-top: 16px !important;
    }

    /* Bouton supprimer mobile : positionné en absolu top-right de la carte */
    body.woocommerce-cart table.shop_table tbody tr {
        position: relative !important;
    }
    body.woocommerce-cart table.shop_table td.product-remove {
        position: absolute !important;
        top: 12px !important;
        right: 12px !important;
        width: auto !important;
        padding: 0 !important;
        border: none !important;
        background: transparent !important;
    }
    body.woocommerce-cart table.shop_table td.product-remove::before {
        display: none !important;
    }
}

@media (max-width: 860px) {
    body.woocommerce-checkout form.woocommerce-checkout {
        grid-template-columns: 1fr !important;
    }
    body.woocommerce-checkout .ep-co-right {
        grid-column: 1 !important;
    }
    body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
    body.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper {
        grid-template-columns: 1fr !important;
    }
}
