/* ════════════════════════════════════════
   KOCOON — Page Panier WooCommerce
   Cible : widget Elementor Pro woocommerce-cart (two-column)
   Concept A (≥768px) : grid 2 colonnes
   Concept B (<768px)  : colonne unique
   ════════════════════════════════════════ */

/* ══════════════════════════════════════
   0) MASQUER LE TITRE ASTRA EXISTANT
   (remplacé par le hero kocoon-cart-hero)
   ══════════════════════════════════════ */

body.woocommerce-cart .entry-title,
body.woocommerce-cart .ast-page-title-wrap,
body.woocommerce-cart .site-above-header-wrap,
body.woocommerce-cart .ast-breadcrumbs-wrap {
    display: none !important;
}

/* ── Supprimer le padding/marge au-dessus du hero ── */
/* entry-content Astra */
body.woocommerce-cart .entry-content,
body.woocommerce-cart .entry-content.clear {
    padding-top: 0 !important;
    margin-top: 0 !important;
}

/* Elementor wrapper page 1803 */
body.woocommerce-cart .elementor.elementor-1803 {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

/* Premier container Elementor (e-con-full) qui wrap le widget cart */
body.woocommerce-cart .entry-content > .elementor > .e-con:first-child,
body.woocommerce-cart .elementor-1803 > .e-con:first-child,
body.woocommerce-cart .elementor-element-2653fe5b {
    padding-top: 0 !important;
    margin-top: 0 !important;
}

/* Widget woocommerce-cart lui-même */
body.woocommerce-cart .elementor-widget-woocommerce-cart,
body.woocommerce-cart .elementor-element-86d7720 {
    padding-top: 0 !important;
    margin-top: 0 !important;
}

/* .woocommerce div (parent direct du hero) */
body.woocommerce-cart .elementor-widget-woocommerce-cart .woocommerce {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

/* Éviter le scroll horizontal causé par width:100vw du hero
   → overflow-x: hidden sur body (pas sur entry-content qui clipperait le hero) */
body.woocommerce-cart {
    overflow-x: hidden;
}

/* ══════════════════════════════════════
   0b) HERO BANNER PANIER
   Structure : .kocoon-cart-hero
     .kch-left  (breadcrumb, titre, sub, steps)
     .kch-right (count card, secure)
   Injecté via woocommerce_before_cart hook
   ══════════════════════════════════════ */

.elementor-widget-woocommerce-cart .kocoon-cart-hero {
    background: #B2CBB6;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 32px;
    padding: 36px 48px;
    /* Casse le padding Elementor pour aller bord à bord */
    margin: 0 calc(-50vw + 50%) 28px;
    width: 100vw;
    box-sizing: border-box;
}

/* Colonne gauche */
.elementor-widget-woocommerce-cart .kch-left {
    display: flex;
    flex-direction: column;
    gap: 14px;
    max-width: 520px;
}

/* Breadcrumb */
.elementor-widget-woocommerce-cart .kch-breadcrumb {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 11px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: rgba(44, 44, 44, 0.55);
}

.elementor-widget-woocommerce-cart .kch-breadcrumb a {
    color: rgba(44, 44, 44, 0.55) !important;
    text-decoration: none !important;
    transition: color 0.15s;
}

.elementor-widget-woocommerce-cart .kch-breadcrumb a:hover {
    color: #2C2C2C !important;
}

.elementor-widget-woocommerce-cart .kch-sep {
    color: rgba(44, 44, 44, 0.3);
}

.elementor-widget-woocommerce-cart .kch-current {
    color: #2C2C2C;
    font-weight: 500;
}

/* Titre h1 */
.elementor-widget-woocommerce-cart .kch-title {
    font-size: 28px !important;
    font-weight: 500 !important;
    color: #2C2C2C !important;
    line-height: 1.2 !important;
    margin: 0 !important;
    padding: 0 !important;
    text-align: left !important;
    background: none !important;
    border: none !important;
}

/* Sous-titre */
.elementor-widget-woocommerce-cart .kch-sub {
    font-size: 13px;
    color: rgba(44, 44, 44, 0.65);
    line-height: 1.6;
    margin: 0;
}

/* Stepper */
.elementor-widget-woocommerce-cart .kch-steps {
    display: flex;
    align-items: center;
    gap: 0;
    margin-top: 2px;
}

.elementor-widget-woocommerce-cart .kch-step {
    display: flex;
    align-items: center;
    gap: 8px;
}

.elementor-widget-woocommerce-cart .kch-step__dot {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 500;
    flex-shrink: 0;
    background: rgba(44, 44, 44, 0.15);
    color: rgba(44, 44, 44, 0.5);
    line-height: 1;
}

.elementor-widget-woocommerce-cart .kch-step--active .kch-step__dot {
    background: #2C2C2C;
    color: #F5F2EC;
}

.elementor-widget-woocommerce-cart .kch-step__label {
    font-size: 12px;
    color: #2C2C2C;
    font-weight: 500;
    white-space: nowrap;
}

.elementor-widget-woocommerce-cart .kch-step__label--todo {
    color: rgba(44, 44, 44, 0.45);
    font-weight: 400;
}

.elementor-widget-woocommerce-cart .kch-step__line {
    width: 32px;
    height: 1px;
    background: rgba(44, 44, 44, 0.2);
    margin: 0 6px;
    flex-shrink: 0;
    display: inline-block;
}

/* Colonne droite */
.elementor-widget-woocommerce-cart .kch-right {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 10px;
    flex-shrink: 0;
}

/* Carte article count */
.elementor-widget-woocommerce-cart .kch-count-card {
    background: rgba(255, 255, 255, 0.45);
    border: 1px solid rgba(255, 255, 255, 0.6);
    border-radius: 14px;
    padding: 16px 24px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    min-width: 100px;
}

.elementor-widget-woocommerce-cart .kch-count-num {
    font-size: 28px;
    font-weight: 500;
    color: #2C2C2C;
    line-height: 1;
}

.elementor-widget-woocommerce-cart .kch-count-lbl {
    font-size: 11px;
    color: rgba(44, 44, 44, 0.55);
    letter-spacing: 1px;
    text-transform: uppercase;
}

/* Badge paiement sécurisé */
.elementor-widget-woocommerce-cart .kch-secure {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 11px;
    color: rgba(44, 44, 44, 0.55);
}

.elementor-widget-woocommerce-cart .kch-secure__icon {
    width: 14px;
    height: 14px;
    border: 1.5px solid rgba(44, 44, 44, 0.4);
    border-radius: 3px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    position: relative;
}

.elementor-widget-woocommerce-cart .kch-secure__icon::after {
    content: '';
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: rgba(44, 44, 44, 0.4);
}

/* ══════════════════════════════════════
   DESKTOP SIDEBAR HERO (≥1025px)
   Layout : hero sidebar gauche (240px) + cart droite (flex:1)
   ══════════════════════════════════════ */

@media (min-width: 1025px) {

    /* .woocommerce → flex-row : hero à gauche, cart à droite
       max-width + margin auto pour centrer et aérer les bords */
    .elementor-widget-woocommerce-cart .woocommerce {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: wrap !important;
        align-items: flex-start !important;
        gap: 0 20px !important;          /* même gap que le grid cart↔résumé */
        padding: 28px 24px 32px !important;
        max-width: 1160px !important;
        margin: 0 auto !important;
        box-sizing: border-box !important;
    }

    /* Messages WooCommerce → pleine largeur avant le hero */
    .elementor-widget-woocommerce-cart .woocommerce > .woocommerce-notices-wrapper,
    .elementor-widget-woocommerce-cart .woocommerce > .woocommerce-info,
    .elementor-widget-woocommerce-cart .woocommerce > .woocommerce-message,
    .elementor-widget-woocommerce-cart .woocommerce > .woocommerce-error {
        flex-basis: 100% !important;
        order: -1 !important;
        margin-bottom: 12px !important;
    }

    /* Hero → sidebar verticale gauche */
    .elementor-widget-woocommerce-cart .kocoon-cart-hero {
        /* Annuler le banner pleine-largeur */
        width: 240px !important;
        margin: 0 !important;
        flex-shrink: 0 !important;
        align-self: stretch !important;
        /* Layout vertical */
        flex-direction: column !important;
        justify-content: flex-start !important;
        align-items: flex-start !important;
        gap: 20px !important;
        padding: 28px 22px !important;
        border-radius: 16px !important;
        box-sizing: border-box !important;
    }

    /* Colonne gauche du hero → pleine largeur */
    .elementor-widget-woocommerce-cart .kch-left {
        max-width: 100% !important;
        width: 100% !important;
        gap: 12px !important;
    }

    /* Colonne droite → pleine largeur, alignée en bas */
    .elementor-widget-woocommerce-cart .kch-right {
        align-items: flex-start !important;
        width: 100% !important;
        gap: 8px !important;
        margin-top: auto !important;
    }

    /* Count card → pleine largeur horizontale */
    .elementor-widget-woocommerce-cart .kch-count-card {
        width: 100% !important;
        flex-direction: row !important;
        justify-content: center !important;
        gap: 10px !important;
        padding: 12px 14px !important;
        min-width: unset !important;
    }

    /* Stepper → vertical */
    .elementor-widget-woocommerce-cart .kch-steps {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 0 !important;
    }

    /* Ligne du stepper → verticale */
    .elementor-widget-woocommerce-cart .kch-step__line {
        display: block !important;
        width: 1px !important;
        height: 18px !important;
        margin: 0 0 0 13px !important;
    }

    /* Cart container → occupe l'espace restant */
    .elementor-widget-woocommerce-cart .e-cart__container {
        flex: 1 1 0% !important;
        min-width: 0 !important;
        max-width: none !important;
        margin: 0 !important;
        padding: 0 !important;
        width: auto !important;
    }
}

/* ── Hero — tablette (768–1024px) ── */
@media (min-width: 768px) and (max-width: 1024px) {
    .elementor-widget-woocommerce-cart .kocoon-cart-hero {
        padding: 28px 32px;
        gap: 20px;
    }

    .elementor-widget-woocommerce-cart .kch-title {
        font-size: 22px !important;
    }

    .elementor-widget-woocommerce-cart .kch-count-card {
        padding: 12px 18px;
    }

    .elementor-widget-woocommerce-cart .kch-count-num {
        font-size: 22px;
    }
}

/* ── Hero — mobile (<768px) ── */
@media (max-width: 767px) {
    .elementor-widget-woocommerce-cart .kocoon-cart-hero {
        flex-direction: column;
        align-items: flex-start;
        padding: 24px 20px;
        gap: 20px;
        /* Conserver la technique 100vw pour casser hors du container Astra */
        margin-left: calc(-50vw + 50%);
        margin-right: calc(-50vw + 50%);
        width: 100vw;
        margin-top: 0;
        margin-bottom: 20px;
    }

    .elementor-widget-woocommerce-cart .kch-left {
        gap: 10px;
        max-width: 100%;
    }

    .elementor-widget-woocommerce-cart .kch-title {
        font-size: 22px !important;
    }

    .elementor-widget-woocommerce-cart .kch-right {
        flex-direction: row;
        align-items: center;
        width: 100%;
        justify-content: space-between;
    }

    .elementor-widget-woocommerce-cart .kch-count-card {
        flex-direction: row;
        gap: 8px;
        padding: 10px 16px;
        min-width: auto;
    }

    .elementor-widget-woocommerce-cart .kch-count-num {
        font-size: 18px;
    }

    .elementor-widget-woocommerce-cart .kch-step__line {
        width: 20px;
    }
}

/* ── Variables locales ── */
.elementor-widget-woocommerce-cart {
    --k-beige:        #FAF8F4;
    --k-beige-2:      #F5F2EC;
    --k-border:       #D4CFC4;
    --k-border-light: #EDE8DF;
    --k-ocre:         #C9A96E;
    --k-gris:         #7A7468;
    --k-gris-clair:   #A09A90;
}

/* ══════════════════════════════════════
   1) CONTENEUR PRINCIPAL — GRID 2 COL
   Structure Elementor :
   .e-cart__container
     .e-cart__column-start  (liste)
     .e-cart__column-end    (résumé)
   ══════════════════════════════════════ */

.elementor-widget-woocommerce-cart .e-cart__container {
    display: grid !important;
    grid-template-columns: 1fr 280px !important;
    gap: 20px !important;
    align-items: start !important;
    max-width: 900px !important;
    width: 100% !important;
    margin: 0 auto !important;
    padding: 0 1rem !important;
    box-sizing: border-box !important;
}

.elementor-widget-woocommerce-cart .e-cart__column-start {
    grid-column: 1 !important;
    min-width: 0 !important;
}

.elementor-widget-woocommerce-cart .e-cart__column-end {
    grid-column: 2 !important;
    min-width: 0 !important;
}

.elementor-widget-woocommerce-cart .e-cart__column-inner.e-sticky-right-column {
    position: sticky !important;
    top: 20px !important;
}

/* ══════════════════════════════════════
   2) SECTIONS (blocs avec fond/bordure)
   ══════════════════════════════════════ */

/* Reset sections Elementor */
.elementor-widget-woocommerce-cart .e-cart-section {
    background-color: var(--k-beige) !important;
    border: 1px solid var(--k-border) !important;
    border-radius: 12px !important;
    padding: 14px 16px !important;
    margin: 0 0 12px !important;
}

.elementor-widget-woocommerce-cart .e-cart-section:last-child {
    margin-bottom: 0 !important;
}

/* Section totaux */
.elementor-widget-woocommerce-cart .e-cart-totals.e-cart-section {
    border-radius: 14px !important;
    padding: 18px 20px !important;
}

/* ══════════════════════════════════════
   3) TABLE ARTICLES
   ══════════════════════════════════════ */

.elementor-widget-woocommerce-cart .e-shop-table.e-cart-section {
    padding: 0 !important;
    overflow: hidden !important;
}

.elementor-widget-woocommerce-cart table.cart,
.elementor-widget-woocommerce-cart table.shop_table {
    width: 100% !important;
    border: none !important;
    border-collapse: collapse !important;
    margin: 0 !important;
}

.elementor-widget-woocommerce-cart table.cart thead,
.elementor-widget-woocommerce-cart table.shop_table thead {
    display: none !important;
}

/* Reset toutes les cellules */
.elementor-widget-woocommerce-cart table.cart td,
.elementor-widget-woocommerce-cart table.cart th,
.elementor-widget-woocommerce-cart table.shop_table td,
.elementor-widget-woocommerce-cart table.shop_table th {
    border: none !important;
    background: transparent !important;
}

.elementor-widget-woocommerce-cart table.cart td.product-subtotal {
    display: none !important;
}

/* ── Chaque ligne = card ── */
.elementor-widget-woocommerce-cart table.cart tbody {
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
    padding: 14px 16px !important;
}

.elementor-widget-woocommerce-cart table.cart tbody tr.cart_item {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    width: 100% !important;
    padding: 12px 14px !important;
    margin: 0 !important;
    background: var(--k-beige) !important;
    border: 1px solid var(--k-border) !important;
    border-radius: 12px !important;
    box-sizing: border-box !important;
    transition: border-color 0.2s ease !important;
}

.elementor-widget-woocommerce-cart table.cart tbody tr.cart_item:hover {
    border-color: var(--k-ocre) !important;
}

/* Bouton supprimer */
.elementor-widget-woocommerce-cart table.cart td.product-remove {
    width: 24px !important;
    min-width: 24px !important;
    flex-shrink: 0 !important;
    padding: 0 !important;
    border: none !important;
}

.elementor-widget-woocommerce-cart table.cart td.product-remove a.remove,
.elementor-widget-woocommerce-cart .woocommerce .remove {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 22px !important;
    height: 22px !important;
    border-radius: 50% !important;
    background: var(--k-beige-2) !important;
    color: var(--k-gris-clair) !important;
    font-size: 14px !important;
    line-height: 1 !important;
    text-decoration: none !important;
    transition: background 0.2s, color 0.2s !important;
    width: auto !important;
}

.elementor-widget-woocommerce-cart table.cart td.product-remove a.remove:hover,
.elementor-widget-woocommerce-cart .woocommerce .remove:hover {
    background: #FCEBEB !important;
    color: #E24B4A !important;
}

/* Miniature */
.elementor-widget-woocommerce-cart table.cart td.product-thumbnail {
    width: 52px !important;
    min-width: 52px !important;
    flex-shrink: 0 !important;
    padding: 0 !important;
}

.elementor-widget-woocommerce-cart table.cart td.product-thumbnail img,
.elementor-widget-woocommerce-cart table.cart img {
    display: block !important;
    width: 52px !important;
    height: 52px !important;
    border-radius: 8px !important;
    object-fit: cover !important;
}

/* Nom produit */
.elementor-widget-woocommerce-cart table.cart td.product-name {
    flex: 1 1 0 !important;
    min-width: 0 !important;
    padding: 0 !important;
}

.elementor-widget-woocommerce-cart table.cart td.product-name a,
.elementor-widget-woocommerce-cart .woocommerce .product-name a {
    display: block !important;
    color: var(--k-noir) !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    line-height: 1.35 !important;
    text-decoration: none !important;
}

.elementor-widget-woocommerce-cart table.cart td.product-name a:hover,
.elementor-widget-woocommerce-cart .woocommerce .product-name a:hover {
    color: var(--k-ocre) !important;
}

.elementor-widget-woocommerce-cart table.cart td.product-name .variation,
.elementor-widget-woocommerce-cart table.cart td.product-name small,
.elementor-widget-woocommerce-cart table.cart td.product-name p,
.elementor-widget-woocommerce-cart table.cart td.product-name span {
    color: var(--k-gris) !important;
    font-size: 11px !important;
    font-weight: 400 !important;
}

/* Prix unitaire */
.elementor-widget-woocommerce-cart table.cart td.product-price {
    flex-shrink: 0 !important;
    white-space: nowrap !important;
    padding: 0 !important;
}

.elementor-widget-woocommerce-cart table.cart td.product-price .amount,
.elementor-widget-woocommerce-cart table.cart td.product-price bdi {
    color: var(--k-noir) !important;
    font-size: 14px !important;
    font-weight: 500 !important;
}

/* ══════════════════════════════════════
   4) COULEUR DE CARD SELON LE TYPE
   Classes ajoutées par kocoon_cart_item_row_class()
   ══════════════════════════════════════ */

.elementor-widget-woocommerce-cart table.cart tbody tr.kocoon-cart-item-event {
    background-color: #FAE8E2 !important;
    border-left: 4px solid #C8603A !important;
}

.elementor-widget-woocommerce-cart table.cart tbody tr.kocoon-cart-item-boutique {
    background-color: #FDF3E3 !important;
    border-left: 4px solid #C9A96E !important;
}

/* ══════════════════════════════════════
   5) CONTRÔLES QUANTITÉ (desktop)
   Astra génère : .ast-qty-placeholder.minus / .ast-qty-placeholder.plus
   (liens <a>) + input[type="hidden"] géré par JS
   ══════════════════════════════════════ */

.elementor-widget-woocommerce-cart table.cart td.product-quantity {
    flex-shrink: 0 !important;
    padding: 0 !important;
}

.elementor-widget-woocommerce-cart table.cart td.product-quantity .quantity {
    display: inline-flex !important;
    align-items: center !important;
    gap: 4px !important;
    background: var(--k-beige-2) !important;
    border: 1px solid var(--k-border) !important;
    border-radius: 20px !important;
    padding: 3px 8px !important;
}

/* Boutons Astra : .ast-qty-placeholder.minus / .plus */
.elementor-widget-woocommerce-cart table.cart td.product-quantity .ast-qty-placeholder,
.elementor-widget-woocommerce-cart table.cart td.product-quantity a.ast-qty-placeholder {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 24px !important;
    height: 24px !important;
    border: 1px solid var(--k-border) !important;
    border-radius: 50% !important;
    background: #FFFFFF !important;
    color: var(--k-noir) !important;
    font-size: 15px !important;
    font-weight: 400 !important;
    line-height: 1 !important;
    padding: 0 !important;
    cursor: pointer !important;
    flex-shrink: 0 !important;
    text-decoration: none !important;
    transition: border-color 0.2s, background 0.2s !important;
    /* Astra met cursor:not-allowed avant JS — on écrase */
    cursor: pointer !important;
}

.elementor-widget-woocommerce-cart table.cart td.product-quantity .ast-qty-placeholder:hover {
    border-color: var(--k-ocre) !important;
    background: var(--k-border-light) !important;
    color: var(--k-noir) !important;
}

/* Valeur affichée (Astra crée un span .qty-count ou la valeur via JS) */
.elementor-widget-woocommerce-cart table.cart td.product-quantity .qty-count,
.elementor-widget-woocommerce-cart table.cart td.product-quantity .woocommerce-quantity-input-value {
    min-width: 24px !important;
    text-align: center !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    color: var(--k-noir) !important;
}

/* Input (visible ou hidden selon Astra) */
.elementor-widget-woocommerce-cart table.cart td.product-quantity input.qty,
.elementor-widget-woocommerce-cart .woocommerce .input-text.qty,
.elementor-widget-woocommerce-cart table.cart td.product-quantity input[type="number"],
.elementor-widget-woocommerce-cart table.cart td.product-quantity input[type="text"] {
    width: 32px !important;
    height: 24px !important;
    max-height: 24px !important;
    min-height: 24px !important;
    border: none !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: var(--k-noir) !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    text-align: center !important;
    padding: 0 !important;
    box-sizing: border-box !important;
    box-shadow: none !important;
}

.elementor-widget-woocommerce-cart table.cart td.product-quantity input.qty:focus {
    outline: none !important;
    box-shadow: none !important;
    background: transparent !important;
    border-color: transparent !important;
}

/* ══════════════════════════════════════
   6) ZONE COUPON
   Structure Elementor : .coupon.e-cart-section
   ══════════════════════════════════════ */

.elementor-widget-woocommerce-cart .coupon.e-cart-section,
.elementor-widget-woocommerce-cart .woocommerce .coupon.e-cart-section {
    background: var(--k-beige) !important;
    border: 1px solid var(--k-border) !important;
    border-radius: 12px !important;
    padding: 14px 16px !important;
}

.elementor-widget-woocommerce-cart .woocommerce .coupon-col {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    flex-wrap: wrap !important;
}

.elementor-widget-woocommerce-cart .woocommerce .coupon-col-start {
    flex: 1 !important;
    padding-inline-end: 0 !important;
}

.elementor-widget-woocommerce-cart .woocommerce .coupon-col-end {
    flex: 0 0 auto !important;
}

.elementor-widget-woocommerce-cart .woocommerce .coupon #coupon_code,
.elementor-widget-woocommerce-cart .woocommerce .input-text#coupon_code {
    width: 100% !important;
    height: 38px !important;
    border: 1px solid var(--k-border) !important;
    border-radius: 8px !important;
    background: #FFFFFF !important;
    color: var(--k-noir) !important;
    font-size: 13px !important;
    padding: 0 12px !important;
    box-sizing: border-box !important;
    outline: none !important;
}

.elementor-widget-woocommerce-cart .woocommerce .coupon #coupon_code:focus {
    border-color: var(--k-ocre) !important;
    background-color: #FFFFFF !important;
}

.elementor-widget-woocommerce-cart .woocommerce .coupon #coupon_code::placeholder {
    color: var(--k-gris-clair) !important;
    opacity: 1 !important;
}

.elementor-widget-woocommerce-cart .woocommerce .coupon .button,
.elementor-widget-woocommerce-cart .woocommerce button[name="apply_coupon"] {
    height: 38px !important;
    padding: 0 16px !important;
    border: 1px solid var(--k-border) !important;
    border-radius: 8px !important;
    background: var(--k-border-light) !important;
    background-color: var(--k-border-light) !important;
    color: #8B7355 !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    cursor: pointer !important;
    white-space: nowrap !important;
    width: auto !important;
    float: none !important;
    display: inline-flex !important;
    align-items: center !important;
}

/* Bouton Mise à jour panier */
.elementor-widget-woocommerce-cart .woocommerce table.shop_table.cart .actions .button,
.elementor-widget-woocommerce-cart .woocommerce button[name="update_cart"] {
    height: 38px !important;
    padding: 0 14px !important;
    border: 1px solid var(--k-border) !important;
    border-radius: 8px !important;
    background: #FFFFFF !important;
    background-color: #FFFFFF !important;
    color: var(--k-gris) !important;
    font-size: 12px !important;
    font-weight: 400 !important;
    cursor: pointer !important;
    display: inline-flex !important;
    align-items: center !important;
    width: auto !important;
}

/* ══════════════════════════════════════
   7) BLOC RÉSUMÉ / TOTAUX
   Structure : .e-cart-totals.e-cart-section
                 > .cart_totals
                   > h2
                   > table.shop_table.shop_table_responsive
                   > .wc-proceed-to-checkout
   Note: Elementor Pro à ≤1024px masque les <th> et
   injecte ::before avec data-title → on corrige les deux.
   ══════════════════════════════════════ */

.elementor-widget-woocommerce-cart .e-cart-totals.e-cart-section {
    background: var(--k-beige) !important;
    border: 1px solid var(--k-border) !important;
    border-radius: 14px !important;
    padding: 18px 20px !important;
}

/* Titre RÉSUMÉ */
.elementor-widget-woocommerce-cart .woocommerce .cart_totals h2 {
    color: var(--k-ocre) !important;
    font-size: 10px !important;
    font-weight: 500 !important;
    letter-spacing: 2px !important;
    text-transform: uppercase !important;
    margin: 0 0 14px !important;
    padding: 0 !important;
    background: none !important;
    border: none !important;
}

/* Table totaux — layout deux colonnes th / td */
.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table,
.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive {
    width: 100% !important;
    border: none !important;
    border-collapse: collapse !important;
    display: table !important;
}

.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table tbody,
.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tbody {
    display: table-row-group !important;
}

.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table tr,
.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr {
    display: table-row !important;
}

/* <th> toujours visible (Elementor le cache à ≤1024px) */
.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table th,
.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive th,
.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table tbody th,
.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tbody th {
    display: table-cell !important;
    padding: 7px 0 !important;
    border: none !important;
    background: transparent !important;
    font-size: 13px !important;
    color: var(--k-gris) !important;
    text-align: left !important;
    font-weight: 400 !important;
    white-space: nowrap !important;
}

/* <td> */
.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table td,
.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive td {
    display: table-cell !important;
    padding: 7px 0 !important;
    border: none !important;
    background: transparent !important;
    font-size: 13px !important;
    color: var(--k-noir) !important;
    text-align: right !important;
    font-weight: 400 !important;
    padding-inline-start: 0 !important;
}

/* Supprimer les pseudo-labels ::before générés par Elementor Pro */
.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table td::before,
.elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive td::before,
.elementor-widget-woocommerce-cart .woocommerce .cart_totals table tr td::before,
.elementor-widget-woocommerce-cart .woocommerce-page .cart_totals table tr td::before {
    display: none !important;
    content: none !important;
}

/* Livraison gratuite en vert */
.elementor-widget-woocommerce-cart .woocommerce .cart_totals table tr.shipping th,
.elementor-widget-woocommerce-cart .woocommerce .cart_totals table tr.shipping td,
.elementor-widget-woocommerce-cart .woocommerce .cart_totals table tr.shipping td * {
    color: var(--k-vert) !important;
    font-weight: 500 !important;
}

/* Ligne Total — séparateur + taille */
.elementor-widget-woocommerce-cart .woocommerce .cart_totals table tr.order-total th,
.elementor-widget-woocommerce-cart .woocommerce .cart_totals table tr.order-total td {
    border-top: 1px solid var(--k-border) !important;
    border-bottom: none !important;
    padding-top: 12px !important;
    font-size: 15px !important;
    font-weight: 500 !important;
    color: var(--k-noir) !important;
}

.elementor-widget-woocommerce-cart .woocommerce .cart_totals table tr.order-total td .woocommerce-Price-amount {
    color: var(--k-noir) !important;
    font-weight: 500 !important;
}

/* Ligne sous-total */
.elementor-widget-woocommerce-cart .woocommerce .cart_totals table tr.cart-subtotal th,
.elementor-widget-woocommerce-cart .woocommerce .cart_totals table tr.cart-subtotal td {
    padding-top: 0 !important;
}

/* TVA masquée — montants affichés TTC */
.elementor-widget-woocommerce-cart .woocommerce .cart_totals table tr.tax-total,
.elementor-widget-woocommerce-cart .woocommerce .cart_totals table tr[class*="tax-rate"] {
    display: none !important;
}

/* Coupon appliqué (remise) */
.elementor-widget-woocommerce-cart .woocommerce .cart_totals table tr.cart-discount td {
    color: var(--k-vert) !important;
}
.elementor-widget-woocommerce-cart .woocommerce .cart_totals table tr.cart-discount td a {
    color: #E24B4A !important;
    font-size: 11px !important;
}

/* ══════════════════════════════════════
   8) BOUTON COMMANDER
   ══════════════════════════════════════ */

.elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout {
    margin-top: 14px !important;
    padding: 0 !important;
    padding-bottom: 0 !important;
    display: block !important;
}

.elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout .checkout-button,
.elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout a.checkout-button {
    display: block !important;
    width: 100% !important;
    border: none !important;
    border-radius: 20px !important;
    background: var(--k-noir) !important;
    background-color: var(--k-noir) !important;
    color: var(--k-beige) !important;
    text-align: center !important;
    text-decoration: none !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    padding: 13px 18px !important;
    box-sizing: border-box !important;
    cursor: pointer !important;
    transition: background 0.2s ease !important;
    min-height: auto !important;
    margin-bottom: 0 !important;
}

.elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout .checkout-button:hover,
.elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout a.checkout-button:hover {
    background: var(--k-ocre) !important;
    background-color: var(--k-ocre) !important;
    color: #FFFFFF !important;
    transition-duration: 0.2s !important;
}

.elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout::after {
    content: "Paiement sécurisé" !important;
    display: block !important;
    margin-top: 8px !important;
    text-align: center !important;
    color: var(--k-gris-clair) !important;
    font-size: 11px !important;
    letter-spacing: 0.4px !important;
}

/* ══════════════════════════════════════
   9) MESSAGES WOOCOMMERCE
   ══════════════════════════════════════ */

.elementor-widget-woocommerce-cart .woocommerce-info,
.elementor-widget-woocommerce-cart .woocommerce-message,
.elementor-widget-woocommerce-cart .woocommerce-error {
    border-radius: 8px !important;
    font-size: 13px !important;
}

.elementor-widget-woocommerce-cart .woocommerce-info {
    background: var(--k-beige) !important;
    border-top-color: var(--k-ocre) !important;
    color: var(--k-gris) !important;
}

.elementor-widget-woocommerce-cart .woocommerce-message {
    background: var(--k-beige) !important;
    border-top-color: var(--k-ocre) !important;
    color: #8B7355 !important;
}

.elementor-widget-woocommerce-cart .woocommerce-error {
    background: #FCEBEB !important;
    border-top-color: #E24B4A !important;
    color: #A32D2D !important;
}

/* ══════════════════════════════════════
   10) PANIER VIDE
   ══════════════════════════════════════ */

.elementor-widget-woocommerce-cart .cart-empty,
.elementor-widget-woocommerce-cart .wc-empty-cart-message {
    padding: 2rem 1rem !important;
    text-align: center !important;
    color: var(--k-gris) !important;
    font-size: 14px !important;
    background: transparent !important;
    border: none !important;
}

.elementor-widget-woocommerce-cart .return-to-shop {
    text-align: center !important;
}

.elementor-widget-woocommerce-cart .return-to-shop a,
.elementor-widget-woocommerce-cart .woocommerce a.button.wc-backward {
    display: inline-block !important;
    min-width: 220px !important;
    padding: 10px 20px !important;
    border-radius: 20px !important;
    border: 1px solid var(--k-noir) !important;
    background: transparent !important;
    background-color: transparent !important;
    color: var(--k-noir) !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    text-align: center !important;
    text-decoration: none !important;
    transition: background 0.2s, color 0.2s !important;
}

.elementor-widget-woocommerce-cart .return-to-shop a:hover,
.elementor-widget-woocommerce-cart .woocommerce a.button.wc-backward:hover {
    background: var(--k-noir) !important;
    background-color: var(--k-noir) !important;
    color: var(--k-beige) !important;
}

/* ══════════════════════════════════════
   11) LIENS — surcharge couleur Elementor
   ══════════════════════════════════════ */

.elementor-widget-woocommerce-cart .woocommerce a:not(.add_to_cart_button):not(.restore-item):not(.wc-backward):not(.wc-forward):not(.checkout-button):not(.remove) {
    color: var(--k-noir) !important;
}

.elementor-widget-woocommerce-cart .woocommerce a:not(.add_to_cart_button):not(.restore-item):not(.wc-backward):not(.wc-forward):not(.checkout-button):not(.remove):hover {
    color: var(--k-ocre) !important;
}

/* ══════════════════════════════════════
   12) MEDIA QUERY — Tablette (768px–1024px)
   Grid 2 colonnes maintenu, sidebar réduite,
   cards plus compactes
   ══════════════════════════════════════ */

@media (min-width: 768px) and (max-width: 1024px) {

    /* Grid : réduire la sidebar résumé */
    .elementor-widget-woocommerce-cart .e-cart__container {
        grid-template-columns: 1fr 240px !important;
        gap: 14px !important;
        padding: 0 0.75rem !important;
        max-width: 100% !important;
    }

    /* Cards articles — padding réduit */
    .elementor-widget-woocommerce-cart table.cart tbody tr.cart_item {
        gap: 10px !important;
        padding: 10px 12px !important;
    }

    /* Miniature légèrement réduite */
    .elementor-widget-woocommerce-cart table.cart td.product-thumbnail {
        width: 44px !important;
        min-width: 44px !important;
    }

    .elementor-widget-woocommerce-cart table.cart td.product-thumbnail img,
    .elementor-widget-woocommerce-cart table.cart img {
        width: 44px !important;
        height: 44px !important;
    }

    /* Nom produit — font réduite pour éviter le wrap */
    .elementor-widget-woocommerce-cart table.cart td.product-name a,
    .elementor-widget-woocommerce-cart .woocommerce .product-name a {
        font-size: 12px !important;
    }

    /* Prix — font réduite */
    .elementor-widget-woocommerce-cart table.cart td.product-price .amount,
    .elementor-widget-woocommerce-cart table.cart td.product-price bdi {
        font-size: 12px !important;
    }

    /* Boutons quantité Astra — légèrement plus petits */
    .elementor-widget-woocommerce-cart table.cart td.product-quantity .ast-qty-placeholder,
    .elementor-widget-woocommerce-cart table.cart td.product-quantity a.ast-qty-placeholder {
        width: 22px !important;
        height: 22px !important;
        font-size: 13px !important;
    }

    /* Bloc résumé — padding réduit */
    .elementor-widget-woocommerce-cart .e-cart-totals.e-cart-section {
        padding: 14px 16px !important;
    }

    .elementor-widget-woocommerce-cart .woocommerce .cart_totals h2 {
        font-size: 9px !important;
        letter-spacing: 1.5px !important;
        margin-bottom: 10px !important;
    }

    /* Tablette : forcer le layout table + re-montrer les <th> cachés par Elementor */
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table,
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive {
        display: table !important;
    }

    .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table tbody,
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tbody {
        display: table-row-group !important;
    }

    .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table tr,
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tr {
        display: table-row !important;
    }

    .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table th,
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive th,
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table tbody th,
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive tbody th {
        display: table-cell !important;
        font-size: 12px !important;
        padding: 5px 0 !important;
        color: var(--k-gris) !important;
        font-weight: 400 !important;
        text-align: left !important;
    }

    .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table td,
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive td {
        display: table-cell !important;
        font-size: 12px !important;
        padding: 5px 0 !important;
        text-align: right !important;
    }

    /* Supprimer ::before dans la tablette aussi */
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table td::before,
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals table.shop_table_responsive td::before,
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals table tr td::before {
        display: none !important;
        content: none !important;
    }

    .elementor-widget-woocommerce-cart .woocommerce .cart_totals table tr.order-total th,
    .elementor-widget-woocommerce-cart .woocommerce .cart_totals table tr.order-total td {
        font-size: 14px !important;
        padding-top: 10px !important;
    }

    /* Bouton Commander — adapté */
    .elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout .checkout-button,
    .elementor-widget-woocommerce-cart .woocommerce .wc-proceed-to-checkout a.checkout-button {
        font-size: 13px !important;
        padding: 11px 14px !important;
    }

    /* Coupon — input plus étroit */
    .elementor-widget-woocommerce-cart .woocommerce .coupon #coupon_code,
    .elementor-widget-woocommerce-cart .woocommerce .input-text#coupon_code {
        font-size: 12px !important;
    }

    .elementor-widget-woocommerce-cart .woocommerce .coupon .button,
    .elementor-widget-woocommerce-cart .woocommerce button[name="apply_coupon"] {
        font-size: 11px !important;
        padding: 0 10px !important;
    }

    /* Sections — marges réduites */
    .elementor-widget-woocommerce-cart .e-cart-section {
        margin-bottom: 10px !important;
        padding: 12px 14px !important;
    }
}

/* ══════════════════════════════════════
   13) MEDIA QUERY — Concept B Mobile
   ══════════════════════════════════════ */

@media (max-width: 767px) {

    /* Colonne unique */
    .elementor-widget-woocommerce-cart .e-cart__container {
        display: block !important;
        padding: 0 !important;
        max-width: 100% !important;
    }

    .elementor-widget-woocommerce-cart .e-cart__column-start,
    .elementor-widget-woocommerce-cart .e-cart__column-end {
        width: 100% !important;
    }

    .elementor-widget-woocommerce-cart .e-cart__column-inner.e-sticky-right-column {
        position: static !important;
    }

    /* Cards articles mobile */
    .elementor-widget-woocommerce-cart table.cart tbody tr.cart_item {
        flex-wrap: wrap !important;
        gap: 10px !important;
        align-items: flex-start !important;
    }

    .elementor-widget-woocommerce-cart table.cart td.product-thumbnail {
        width: 48px !important;
        min-width: 48px !important;
        order: 1 !important;
    }

    .elementor-widget-woocommerce-cart table.cart td.product-thumbnail img {
        width: 48px !important;
        height: 48px !important;
    }

    .elementor-widget-woocommerce-cart table.cart td.product-name {
        order: 2 !important;
        flex: 1 1 0 !important;
    }

    .elementor-widget-woocommerce-cart table.cart td.product-remove {
        order: 3 !important;
        margin-left: auto !important;
    }

    /* Quantité mobile — pill arrondie */
    .elementor-widget-woocommerce-cart table.cart td.product-quantity {
        order: 4 !important;
    }

    /* La pill est déjà définie en desktop — on s'assure qu'elle reste sur mobile */
    .elementor-widget-woocommerce-cart table.cart td.product-quantity .quantity {
        background: var(--k-beige-2) !important;
        border: 1px solid var(--k-border) !important;
        border-radius: 20px !important;
        padding: 2px 8px !important;
        gap: 4px !important;
    }

    /* Boutons Astra sur mobile */
    .elementor-widget-woocommerce-cart table.cart td.product-quantity .ast-qty-placeholder,
    .elementor-widget-woocommerce-cart table.cart td.product-quantity a.ast-qty-placeholder {
        width: 22px !important;
        height: 22px !important;
        border: none !important;
        background: transparent !important;
        font-size: 16px !important;
    }

    .elementor-widget-woocommerce-cart table.cart td.product-quantity input.qty,
    .elementor-widget-woocommerce-cart .woocommerce .input-text.qty {
        width: 28px !important;
        height: 22px !important;
        max-height: 22px !important;
        min-height: 22px !important;
        border: none !important;
        background: transparent !important;
        border-radius: 0 !important;
        padding: 0 !important;
    }

    /* Prix mobile */
    .elementor-widget-woocommerce-cart table.cart td.product-price {
        order: 5 !important;
        margin-left: auto !important;
    }

    /* Coupon mobile */
    .elementor-widget-woocommerce-cart .woocommerce .coupon-col {
        display: block !important;
    }

    .elementor-widget-woocommerce-cart .woocommerce .coupon #coupon_code {
        margin-bottom: 10px !important;
    }

    .elementor-widget-woocommerce-cart .woocommerce .coupon .button,
    .elementor-widget-woocommerce-cart .woocommerce button[name="apply_coupon"] {
        width: 100% !important;
        justify-content: center !important;
    }

    .elementor-widget-woocommerce-cart .woocommerce table.shop_table.cart .actions .button,
    .elementor-widget-woocommerce-cart .woocommerce button[name="update_cart"] {
        width: 100% !important;
        justify-content: center !important;
    }
}

/* ══════════════════════════════════════
   14) MINI-CART LATÉRAL ELEMENTOR
   Cible : widget Menu Cart d'Elementor Pro
   (.elementor-menu-cart__*)
   ══════════════════════════════════════ */

/* 14a) Masquer les métadonnées participants (dl.variation) */
.elementor-menu-cart__product dl.variation {
    display: none !important;
}

/* 14b) Croix de suppression → noire */
.elementor-menu-cart__product-remove a::before,
.elementor-menu-cart__product-remove a {
    color: #1A1A1A !important;
}

/* 14c) Sous-total → noir */
.elementor-menu-cart__subtotal,
.elementor-menu-cart__subtotal .woocommerce-Price-amount {
    color: #1A1A1A !important;
}

/* 14d) Boutons footer (Voir panier / Commander) → vert sauge */
.elementor-menu-cart__footer-buttons .elementor-button {
    background-color: #4A6B52 !important;
    color: #F5F2EC !important;
    border-color: #4A6B52 !important;
}

.elementor-menu-cart__footer-buttons .elementor-button:hover {
    background-color: #3a5542 !important;
    border-color: #3a5542 !important;
}
