/*
 * ============================================================================
 * INSTALL COMMUNICATION 33
 * Fichier : assets/css/cart.css
 * Panier IC33 — Maquette validée
 * ============================================================================
 *
 * IMPORTANT :
 * - Le layout maître reste assets/css/layout.css.
 * - Aucun changement de largeur globale du thème.
 * - Les moyens de paiement express restent fournis par leurs extensions.
 * - Le CSS ne remplace pas leur fonctionnement.
 * - Le bandeau de réassurance reprend exactement le style de la fiche produit.
 * ============================================================================
 */


.woocommerce-cart .site-main,
.woocommerce-cart .content-area,
.woocommerce-cart .col-full {
    box-sizing: border-box !important;
}


body.woocommerce-cart {
    background: #f8fafc !important;
    color: #111827;
}


body.woocommerce-cart .site-main {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}


body.woocommerce-cart .woocommerce {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}


/* ==========================================================================
   PAGE
   ========================================================================== */

.ic33-cart-page {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 38px clamp(20px, 4vw, 64px) 54px !important;
    box-sizing: border-box !important;
}


.ic33-cart-page__breadcrumb {
    display: flex !important;
    align-items: center !important;
    gap: 9px !important;
    margin: 0 0 18px !important;
    color: #667085 !important;
    font-size: 13px !important;
    line-height: 1.4 !important;
}


.ic33-cart-page__breadcrumb a {
    color: #53677f !important;
    text-decoration: none !important;
}


.ic33-cart-page__breadcrumb a:hover {
    color: #0057a4 !important;
}


.ic33-cart-page__breadcrumb span:last-child {
    color: #f58220 !important;
    font-weight: 700 !important;
}


.ic33-cart-page__header {
    margin: 0 0 26px !important;
}


.ic33-cart-page__header h1 {
    margin: 0 !important;
    padding: 0 !important;
    color: #08213b !important;
    font-family: var(
        --ic33-font-heading,
        "Inter",
        "Segoe UI",
        sans-serif
    ) !important;
    font-size: clamp(38px, 3vw, 58px) !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    letter-spacing: -1.8px !important;
}


.ic33-cart-page__accent {
    display: block !important;
    width: 72px !important;
    height: 4px !important;
    margin-top: 14px !important;
    background: #f58220 !important;
    border-radius: 999px !important;
}


/* ==========================================================================
   GRILLE PRINCIPALE
   ========================================================================== */

.ic33-cart-page__main {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 380px !important;
    gap: 32px !important;
    align-items: start !important;
}


.ic33-cart-page__products,
.ic33-cart-page__summary {
    min-width: 0 !important;
}


/* ==========================================================================
   CARTE PRODUITS
   ========================================================================== */

.ic33-cart-table {
    overflow: hidden !important;
    background: #ffffff !important;
    border: 1px solid #dce6ef !important;
    border-radius: 16px !important;
    box-shadow: 0 8px 28px rgba(8, 33, 59, 0.06) !important;
}


.ic33-cart-table__head {
    display: grid !important;
    grid-template-columns:
        minmax(0, 1fr)
        150px
        150px
        125px !important;
    gap: 20px !important;
    align-items: center !important;
    padding: 20px 24px !important;
    border-bottom: 1px solid #e5ebf1 !important;
    color: #173552 !important;
    font-size: 13px !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    letter-spacing: .04em !important;
}


.ic33-cart-table__price,
.ic33-cart-table__quantity,
.ic33-cart-table__total {
    text-align: center !important;
}


/* ==========================================================================
   LIGNE PRODUIT
   ========================================================================== */

.ic33-cart-item {
    display: grid !important;
    grid-template-columns:
        42px
        minmax(0, 1fr)
        150px
        150px
        125px !important;
    gap: 14px !important;
    align-items: center !important;
    padding: 24px !important;
    border-bottom: 1px solid #e5ebf1 !important;
}


.ic33-cart-item__remove {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}


.ic33-cart-item__remove .remove {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 30px !important;
    height: 30px !important;
    margin: 0 !important;
    border: 1px solid #d5e0ea !important;
    border-radius: 50% !important;
    background: #ffffff !important;
    color: #173552 !important;
    font-size: 19px !important;
    line-height: 1 !important;
    text-decoration: none !important;
    opacity: 1 !important;
}


.ic33-cart-item__remove .remove:hover {
    border-color: #f58220 !important;
    color: #f58220 !important;
}


.ic33-cart-item__identity {
    display: flex !important;
    align-items: center !important;
    gap: 18px !important;
    min-width: 0 !important;
}


.ic33-cart-item__image {
    flex: 0 0 86px !important;
    width: 86px !important;
    height: 86px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: #f8fafc !important;
    border: 1px solid #e3eaf1 !important;
    border-radius: 10px !important;
    overflow: hidden !important;
}


.ic33-cart-item__image img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    margin: 0 !important;
}


.ic33-cart-item__details {
    min-width: 0 !important;
}


.ic33-cart-item__details > a,
.ic33-cart-item__details > strong {
    display: block !important;
    margin: 0 0 6px !important;
    color: #0a2743 !important;
    font-size: 18px !important;
    font-weight: 800 !important;
    line-height: 1.25 !important;
    text-decoration: none !important;
}


.ic33-cart-item__details > a:hover {
    color: #0057a4 !important;
}


.ic33-cart-item__details .variation {
    margin: 5px 0 0 !important;
    color: #5c7188 !important;
    font-size: 13px !important;
}


.ic33-cart-item__details .variation dt,
.ic33-cart-item__details .variation dd {
    display: inline !important;
    float: none !important;
    margin: 0 4px 0 0 !important;
}


.ic33-cart-item__stock {
    display: flex !important;
    align-items: center !important;
    gap: 7px !important;
    margin-top: 10px !important;
    color: #18864b !important;
    font-size: 13px !important;
    font-weight: 600 !important;
}


.ic33-cart-item__stock-dot {
    width: 8px !important;
    height: 8px !important;
    flex: 0 0 8px !important;
    border-radius: 50% !important;
    background: #16a34a !important;
}


.ic33-cart-item__price,
.ic33-cart-item__total {
    color: #0a2743 !important;
    font-size: 17px !important;
    font-weight: 800 !important;
    text-align: center !important;
}


.ic33-cart-item__quantity {
    display: flex !important;
    justify-content: center !important;
}


.ic33-cart-item__quantity .quantity {
    display: flex !important;
    align-items: stretch !important;
    width: auto !important;
    margin: 0 !important;
}


.ic33-cart-item__quantity .qty {
    width: 54px !important;
    min-width: 54px !important;
    height: 44px !important;
    margin: 0 !important;
    padding: 0 5px !important;
    border: 1px solid #d8e2eb !important;
    border-radius: 0 !important;
    background: #ffffff !important;
    color: #0a2743 !important;
    text-align: center !important;
    font-weight: 700 !important;
}


/* ==========================================================================
   ACTIONS
   ========================================================================== */

.ic33-cart-table__actions {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 16px !important;
    padding: 24px !important;
    background: #ffffff !important;
}


.ic33-cart-action {
    min-height: 46px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 9px !important;
    padding: 0 20px !important;
    border-radius: 8px !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    text-decoration: none !important;
    box-sizing: border-box !important;
}


.ic33-cart-action--continue {
    border: 1px solid #0a3152 !important;
    background: #ffffff !important;
    color: #0a3152 !important;
}


.ic33-cart-action--continue:hover {
    background: #0a3152 !important;
    color: #ffffff !important;
}


.ic33-cart-action--empty {
    border: 1px solid #f58220 !important;
    background: #ffffff !important;
    color: #f58220 !important;
    cursor: pointer !important;
}


.ic33-cart-action--empty:hover {
    background: #f58220 !important;
    color: #ffffff !important;
}


.ic33-cart-update {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
    padding: 0 !important;
}


/* ==========================================================================
   COUPON
   ========================================================================== */

.ic33-cart-coupon {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    margin-left: auto !important;
}


.ic33-cart-coupon .input-text {
    height: 44px !important;
    min-width: 170px !important;
    margin: 0 !important;
    border: 1px solid #d8e2eb !important;
    border-radius: 8px !important;
    background: #ffffff !important;
}


.ic33-cart-coupon button {
    height: 44px !important;
    padding: 0 15px !important;
    border: 1px solid #0057a4 !important;
    border-radius: 8px !important;
    background: #0057a4 !important;
    color: #ffffff !important;
    font-weight: 700 !important;
}


/* ==========================================================================
   RÉCAPITULATIF
   ========================================================================== */

.ic33-cart-summary {
    background: #ffffff !important;
    border: 1px solid #dce6ef !important;
    border-radius: 16px !important;
    box-shadow: 0 8px 28px rgba(8, 33, 59, 0.07) !important;
    overflow: hidden !important;
}


.ic33-cart-summary__content .cart-collaterals,
.ic33-cart-summary__content .cart_totals {
    width: 100% !important;
    max-width: none !important;
    float: none !important;
    margin: 0 !important;
}


.ic33-cart-summary__content .cart_totals {
    padding: 26px !important;
}


.ic33-cart-summary__content .cart_totals h2 {
    margin: 0 0 18px !important;
    padding: 0 0 15px !important;
    border-bottom: 1px solid #dfe7ef !important;
    color: #0a2743 !important;
    font-size: 21px !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    letter-spacing: .02em !important;
}


.ic33-cart-summary__content .cart_totals h2::after {
    content: "" !important;
    display: block !important;
    width: 42px !important;
    height: 3px !important;
    margin-top: 10px !important;
    background: #f58220 !important;
    border-radius: 99px !important;
}


.ic33-cart-summary__content .cart_totals table {
    width: 100% !important;
    margin: 0 !important;
    border: 0 !important;
    border-collapse: collapse !important;
}


.ic33-cart-summary__content .cart_totals tr {
    border: 0 !important;
}


.ic33-cart-summary__content .cart_totals th,
.ic33-cart-summary__content .cart_totals td {
    padding: 12px 0 !important;
    border: 0 !important;
    background: transparent !important;
    color: #314861 !important;
    font-size: 14px !important;
}


.ic33-cart-summary__content .cart_totals th {
    font-weight: 600 !important;
    text-align: left !important;
}


.ic33-cart-summary__content .cart_totals td {
    font-weight: 700 !important;
    text-align: right !important;
}


.ic33-cart-summary__content .cart_totals .order-total {
    border-top: 1px solid #dfe7ef !important;
}


.ic33-cart-summary__content .cart_totals .order-total th {
    padding-top: 20px !important;
    color: #0a2743 !important;
    font-size: 16px !important;
    text-transform: uppercase !important;
}


.ic33-cart-summary__content .cart_totals .order-total td {
    padding-top: 20px !important;
    color: #f58220 !important;
    font-size: 27px !important;
    font-weight: 900 !important;
}


.ic33-cart-summary__content .cart_totals .wc-proceed-to-checkout {
    padding: 18px 0 0 !important;
}


.ic33-cart-summary__content .cart_totals .checkout-button {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    min-height: 52px !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 8px !important;
    background: #082f4f !important;
    color: #ffffff !important;
    font-size: 15px !important;
    font-weight: 800 !important;
    text-align: center !important;
    box-sizing: border-box !important;
}


.ic33-cart-summary__content .cart_totals .checkout-button:hover {
    background: #0057a4 !important;
}


/* ==========================================================================
   PAIEMENTS EXPRESS
   ========================================================================== */

.ic33-cart-summary__content .wc-stripe-express-checkout-wrapper,
.ic33-cart-summary__content .wc-stripe-express-checkout,
.ic33-cart-summary__content #wc-stripe-express-checkout-element,
.ic33-cart-summary__content .wc-stripe-payment-request-wrapper,
.ic33-cart-summary__content .wc-stripe-payment-request-button,
.ic33-cart-summary__content .wc-stripe-cart-checkout-container {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}


.ic33-cart-summary__content .wc-stripe-express-checkout-wrapper {
    margin: 18px 0 0 !important;
}


.ic33-cart-summary__content .wc-stripe-express-checkout-wrapper > *,
.ic33-cart-summary__content .wc-stripe-express-checkout > *,
.ic33-cart-summary__content .wc-stripe-payment-request-wrapper > * {
    max-width: 100% !important;
}



/* ==========================================================================
   ANCIENS ÉLÉMENTS STOREFRONT DU PANIER
   ========================================================================== */

body.woocommerce-cart .entry-header,
body.woocommerce-cart .entry-title {
    display: none !important;
}


body.woocommerce-cart .woocommerce-notices-wrapper {
    width: 100% !important;
    max-width: none !important;
    margin: 20px 0 0 !important;
    padding-left: clamp(20px, 4vw, 64px) !important;
    padding-right: clamp(20px, 4vw, 64px) !important;
    box-sizing: border-box !important;
}


body.woocommerce-cart .woocommerce-message,
body.woocommerce-cart .woocommerce-error,
body.woocommerce-cart .woocommerce-info {
    border-radius: 10px !important;
}


/* ==========================================================================
   RESPONSIVE — TABLETTE
   ========================================================================== */

@media (max-width: 1100px) {

    .ic33-cart-page__main {
        grid-template-columns: 1fr !important;
    }


    .ic33-cart-page__summary {
        max-width: 620px !important;
        width: 100% !important;
        margin: 0 auto !important;
    }

}


/* ==========================================================================
   RESPONSIVE — 800px
   ========================================================================== */

@media (max-width: 800px) {

    .ic33-cart-page {
        width: 100% !important;
        padding: 25px 16px 40px !important;
    }


    .ic33-cart-table__head {
        display: none !important;
    }


    .ic33-cart-item {
        grid-template-columns: 34px minmax(0, 1fr) !important;
        gap: 12px !important;
        padding: 20px !important;
    }


    .ic33-cart-item__identity {
        grid-column: 2 !important;
    }


    .ic33-cart-item__price,
    .ic33-cart-item__quantity,
    .ic33-cart-item__total {
        grid-column: 2 !important;
        justify-content: flex-start !important;
        text-align: left !important;
    }


    .ic33-cart-item__price::before,
    .ic33-cart-item__quantity::before,
    .ic33-cart-item__total::before {
        display: inline-block !important;
        min-width: 110px !important;
        color: #66788a !important;
        font-size: 12px !important;
        font-weight: 700 !important;
        text-transform: uppercase !important;
    }


    .ic33-cart-item__price::before {
        content: "Prix unitaire" !important;
    }


    .ic33-cart-item__quantity::before {
        content: "Quantité" !important;
    }


    .ic33-cart-item__total::before {
        content: "Total" !important;
    }


    .ic33-cart-table__actions {
        flex-wrap: wrap !important;
    }


    .ic33-cart-coupon {
        width: 100% !important;
        margin-left: 0 !important;
    }


    /*
     * Réassurance : 2 cases par ligne sur tablette.
     */

    .ic33-product-reassurance {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }


    .ic33-product-reassurance__item {
        min-height: 120px !important;
    }


    .ic33-cart-reassurance__item:nth-child(2) {
        border-right: 0 !important;
    }


    .ic33-cart-reassurance__item:nth-child(-n+2) {
        border-bottom: 1px solid #DCE5EE !important;
    }

}


/* ==========================================================================
   RESPONSIVE — MOBILE
   ========================================================================== */

@media (max-width: 640px) {

    /*
     * Réassurance : 1 case par ligne sur mobile.
     */

    .ic33-product-reassurance {
        grid-template-columns: 1fr !important;
    }


    .ic33-product-reassurance__item {
        min-height: 68px !important;
        border-right: 0 !important;
        border-bottom: 1px solid #DCE5EE !important;
    }


    .ic33-cart-reassurance__item:last-child {
        border-bottom: 0 !important;
    }


    .ic33-product-reassurance__icon {
        flex: 0 0 30px !important;
        width: 30px !important;
        height: 30px !important;
    }

}


/* ==========================================================================
   MOBILE — 520px
   ========================================================================== */

@media (max-width: 520px) {

    .ic33-cart-page {
        width: 100% !important;
        padding-left: 12px !important;
        padding-right: 12px !important;
    }


    .ic33-cart-item__identity {
        align-items: flex-start !important;
        flex-direction: column !important;
    }


    .ic33-cart-item__image {
        width: 72px !important;
        height: 72px !important;
        flex-basis: 72px !important;
    }


    .ic33-cart-table__actions {
        align-items: stretch !important;
        flex-direction: column !important;
    }


    .ic33-cart-action,
    .ic33-cart-coupon {
        width: 100% !important;
        margin-left: 0 !important;
    }


    .ic33-cart-coupon {
        flex-direction: column !important;
    }


    .ic33-cart-coupon .input-text,
    .ic33-cart-coupon button {
        width: 100% !important;
    }


    /*
     * Fiche produit : une case par ligne sur mobile.
     */

    .ic33-product-reassurance {
        grid-template-columns: 1fr !important;
    }


    .ic33-product-reassurance__item {
        min-height: 68px !important;
        border-right: 0 !important;
        border-bottom: 1px solid #DCE5EE !important;
    }


    .ic33-cart-reassurance__item:last-child {
        border-bottom: 0 !important;
    }

}


/* ==========================================================================
   IC33 — CORRECTION FINALE LARGEUR PANIER + RÉASSURANCE
   --------------------------------------------------------------------------
   Cette couche est volontairement placée EN DERNIER.
   Elle neutralise les largeurs Storefront sans toucher à la maquette.
   ========================================================================== */

html body.woocommerce-cart {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    overflow-x: hidden !important;
}

/* 1. Le conteneur Storefront qui enfermait le panier */
html body.woocommerce-cart #content > .col-full,
html body.woocommerce-cart .site-content > .col-full,
html body.woocommerce-cart .site-content .col-full {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    box-sizing: border-box !important;
}

/* 2. Chaîne interne : aucune largeur Storefront ne doit réduire le panier */
html body.woocommerce-cart #primary,
html body.woocommerce-cart #main,
html body.woocommerce-cart .site-main,
html body.woocommerce-cart .content-area,
html body.woocommerce-cart .woocommerce {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    float: none !important;
    box-sizing: border-box !important;
}

/* 3. Page IC33 : même marge à gauche et à droite */
html body.woocommerce-cart .ic33-cart-page {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding-left: clamp(28px, 4vw, 72px) !important;
    padding-right: clamp(28px, 4vw, 72px) !important;
    box-sizing: border-box !important;
}

/* 4. Grille panier : elle prend réellement toute la largeur disponible */
html body.woocommerce-cart .ic33-cart-page__main {
    display: grid !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    grid-template-columns: minmax(0, 1fr) 380px !important;
    gap: 32px !important;
    margin: 0 !important;
    box-sizing: border-box !important;
}

html body.woocommerce-cart .ic33-cart-page__products,
html body.woocommerce-cart .ic33-cart-table {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}

html body.woocommerce-cart .ic33-cart-page__summary {
    width: 100% !important;
    max-width: 380px !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}

/* 5. Réassurance : EXACTEMENT la même largeur que le bloc panier */
html body.woocommerce-cart .ic33-product-reassurance-wrap {
    display: block !important;
    position: static !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
}

html body.woocommerce-cart .ic33-product-reassurance {
    display: grid !important;
    position: static !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 0 !important;
    transform: none !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
}

/* 6. Chaque case : contenu centré */
html body.woocommerce-cart .ic33-product-reassurance__item {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    min-height: 126px !important;
    margin: 0 !important;
    padding: 20px 24px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    box-sizing: border-box !important;
}

/* séparateurs */
html body.woocommerce-cart .ic33-product-reassurance__item {
    border-right: 1px solid #dce5ee !important;
}

html body.woocommerce-cart .ic33-product-reassurance__item:last-child {
    border-right: 0 !important;
}

/* 7. Icônes agrandies et centrées */
html body.woocommerce-cart .ic33-product-reassurance__icon {
    display: grid !important;
    place-items: center !important;
    flex: 0 0 56px !important;
    width: 56px !important;
    height: 56px !important;
    margin: 0 0 10px !important;
    padding: 0 !important;
    border-radius: 50% !important;
    background: #eaf4fd !important;
    color: #0057a4 !important;
    box-sizing: border-box !important;
}

html body.woocommerce-cart .ic33-product-reassurance__icon svg {
    display: block !important;
    width: 32px !important;
    height: 32px !important;
    max-width: 32px !important;
    max-height: 32px !important;
    margin: 0 !important;
}

/* 8. Texte : centré dans chaque case */
html body.woocommerce-cart .ic33-product-reassurance__item strong,
html body.woocommerce-cart .ic33-product-reassurance__item small {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    text-align: center !important;
    box-sizing: border-box !important;
}

html body.woocommerce-cart .ic33-product-reassurance__item strong {
    margin-top: 0 !important;
    margin-bottom: 5px !important;
    font-size: 14px !important;
    line-height: 1.3 !important;
}

html body.woocommerce-cart .ic33-product-reassurance__item small {
    margin-top: 0 !important;
    font-size: 11px !important;
    line-height: 1.4 !important;
}

/* 9. Footer : pleine largeur réelle */
html body.woocommerce-cart .site-footer,
html body.woocommerce-cart .site-footer > .col-full,
html body.woocommerce-cart .site-footer .col-full {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box !important;
}

/* 10. Le titre Storefront natif ne doit jamais revenir */
html body.woocommerce-cart .entry-header,
html body.woocommerce-cart .entry-title {
    display: none !important;
}

/* 11. Panier WooCommerce natif : un seul panier IC33 */
html body.woocommerce-cart .woocommerce > form.woocommerce-cart-form,
html body.woocommerce-cart .woocommerce > .woocommerce-cart-form,
html body.woocommerce-cart .woocommerce > .cart-collaterals {
    display: none !important;
}

/* --------------------------------------------------------------------------
   RESPONSIVE
   -------------------------------------------------------------------------- */

@media (max-width: 1100px) {
    html body.woocommerce-cart .ic33-cart-page__main {
        grid-template-columns: 1fr !important;
    }

    html body.woocommerce-cart .ic33-cart-page__summary {
        width: 100% !important;
        max-width: 620px !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }
}

@media (max-width: 800px) {
    html body.woocommerce-cart .ic33-cart-page {
        padding-left: 16px !important;
        padding-right: 16px !important;
    }

    html body.woocommerce-cart .ic33-product-reassurance {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    html body.woocommerce-cart .ic33-product-reassurance__item {
        min-height: 120px !important;
        padding: 18px 14px !important;
    }

    html body.woocommerce-cart .ic33-product-reassurance__item:nth-child(2n) {
        border-right: 0 !important;
    }

    html body.woocommerce-cart .ic33-product-reassurance__icon {
        width: 52px !important;
        height: 52px !important;
        flex-basis: 52px !important;
    }

    html body.woocommerce-cart .ic33-product-reassurance__icon svg {
        width: 30px !important;
        height: 30px !important;
        max-width: 30px !important;
        max-height: 30px !important;
    }
}

@media (max-width: 640px) {
    html body.woocommerce-cart .ic33-product-reassurance {
        grid-template-columns: 1fr !important;
    }

    html body.woocommerce-cart .ic33-product-reassurance__item {
        min-height: 110px !important;
        border-right: 0 !important;
        border-bottom: 1px solid #dce5ee !important;
    }

    html body.woocommerce-cart .ic33-product-reassurance__item:last-child {
        border-bottom: 0 !important;
    }
}

@media (max-width: 520px) {
    html body.woocommerce-cart .ic33-cart-page {
        padding-left: 12px !important;
        padding-right: 12px !important;
    }
}


/* ==========================================================================
   IC33 — RÉASSURANCE V11
   --------------------------------------------------------------------------
   Objectif :
   - sortir visuellement la réassurance du bloc panier ;
   - lui donner son propre cadre ;
   - largeur strictement maîtrisée, sans débordement horizontal ;
   - fond bleu IC33 ;
   - 4 cases séparées ;
   - contenu et SVG parfaitement centrés.
   ========================================================================== */

html body.woocommerce-cart .ic33-product-reassurance-wrap {
    display: block !important;
    position: relative !important;

    /* On annule toute logique de breakout précédente */
    left: auto !important;
    right: auto !important;
    transform: none !important;

    /* Même largeur que la zone utile de la page, sans 100% */
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;

    margin-top: 34px !important;
    margin-left: 0 !important;
    margin-right: 0 !important;

    padding: 0 !important;

    box-sizing: border-box !important;
    overflow: hidden !important;

    /* Cadre */
    background: #082f4f !important;
    border: 1px solid #0b4168 !important;
    border-radius: 16px !important;
    box-shadow: 0 8px 28px rgba(8, 33, 59, 0.10) !important;
}

/* La grille remplit UNIQUEMENT le nouveau cadre */
html body.woocommerce-cart .ic33-product-reassurance-wrap .ic33-product-reassurance {
    display: grid !important;

    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;

    margin: 0 !important;
    padding: 0 !important;

    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 0 !important;

    background: transparent !important;
    border: 0 !important;

    box-sizing: border-box !important;
    overflow: hidden !important;
}

/* Cases */
html body.woocommerce-cart .ic33-product-reassurance-wrap .ic33-product-reassurance__item {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;

    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    min-height: 150px !important;

    margin: 0 !important;
    padding: 24px 20px !important;

    background: #082f4f !important;
    color: #ffffff !important;

    text-align: center !important;
    box-sizing: border-box !important;

    /* Séparation verticale */
    border: 0 !important;
    border-right: 1px solid rgba(255,255,255,0.22) !important;
}

/* Pas de séparation après la dernière case */
html body.woocommerce-cart .ic33-product-reassurance-wrap .ic33-product-reassurance__item:last-child {
    border-right: 0 !important;
}

/* Icône */
html body.woocommerce-cart .ic33-product-reassurance-wrap .ic33-product-reassurance__icon {
    display: grid !important;
    place-items: center !important;

    flex: 0 0 64px !important;
    width: 64px !important;
    height: 64px !important;

    margin: 0 0 13px !important;
    padding: 0 !important;

    background: #eaf4fd !important;
    color: #0057a4 !important;

    border-radius: 50% !important;
    box-sizing: border-box !important;
}

/* SVG ×3 environ par rapport à l'origine */
html body.woocommerce-cart .ic33-product-reassurance-wrap .ic33-product-reassurance__icon svg {
    display: block !important;

    width: 36px !important;
    height: 36px !important;

    max-width: 36px !important;
    max-height: 36px !important;

    margin: 0 !important;
}

/* Texte */
html body.woocommerce-cart .ic33-product-reassurance-wrap .ic33-product-reassurance__item strong {
    display: block !important;

    width: 100% !important;
    max-width: 100% !important;

    margin: 0 0 6px !important;
    padding: 0 !important;

    color: #ffffff !important;
    font-size: 15px !important;
    line-height: 1.3 !important;
    font-weight: 800 !important;

    text-align: center !important;
}

html body.woocommerce-cart .ic33-product-reassurance-wrap .ic33-product-reassurance__item small {
    display: block !important;

    width: 100% !important;
    max-width: 100% !important;

    margin: 0 !important;
    padding: 0 !important;

    color: rgba(255,255,255,0.72) !important;
    font-size: 11px !important;
    line-height: 1.4 !important;

    text-align: center !important;
}

/* --------------------------------------------------------------------------
   RESPONSIVE
   -------------------------------------------------------------------------- */

@media (max-width: 800px) {

    html body.woocommerce-cart .ic33-product-reassurance-wrap {
        margin-top: 28px !important;
        border-radius: 14px !important;
    }

    html body.woocommerce-cart .ic33-product-reassurance-wrap .ic33-product-reassurance {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    html body.woocommerce-cart .ic33-product-reassurance-wrap .ic33-product-reassurance__item {
        min-height: 140px !important;
        padding: 20px 14px !important;
        border-right: 1px solid rgba(255,255,255,0.22) !important;
        border-bottom: 1px solid rgba(255,255,255,0.22) !important;
    }

    html body.woocommerce-cart .ic33-product-reassurance-wrap .ic33-product-reassurance__item:nth-child(2n) {
        border-right: 0 !important;
    }

    html body.woocommerce-cart .ic33-product-reassurance-wrap .ic33-product-reassurance__item:nth-child(n+3) {
        border-bottom: 0 !important;
    }
}

@media (max-width: 640px) {

    html body.woocommerce-cart .ic33-product-reassurance-wrap .ic33-product-reassurance {
        grid-template-columns: 1fr !important;
    }

    html body.woocommerce-cart .ic33-product-reassurance-wrap .ic33-product-reassurance__item {
        min-height: 120px !important;
        border-right: 0 !important;
        border-bottom: 1px solid rgba(255,255,255,0.22) !important;
    }

    html body.woocommerce-cart .ic33-product-reassurance-wrap .ic33-product-reassurance__item:last-child {
        border-bottom: 0 !important;
    }
}

/* ==========================================================================
   IC33 — V12 FINAL
   PANIER + RÉASSURANCE
   Règle absolue : aucune largeur 100% et aucun débordement horizontal.
   ========================================================================== */

/* 1 — Annulation des anciens breakouts Storefront */
html body.woocommerce-cart,
html body.woocommerce-cart #content,
html body.woocommerce-cart #content > .col-full,
html body.woocommerce-cart .site-content,
html body.woocommerce-cart .site-content > .col-full,
html body.woocommerce-cart .site-content .col-full,
html body.woocommerce-cart #primary,
html body.woocommerce-cart #main,
html body.woocommerce-cart .site-main,
html body.woocommerce-cart .content-area,
html body.woocommerce-cart .woocommerce {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    left: auto !important;
    right: auto !important;
    transform: none !important;
    float: none !important;
    box-sizing: border-box !important;
}

html body.woocommerce-cart {
    overflow-x: hidden !important;
}

/* 2 — Zone panier : pleine largeur avec 20px de marge de chaque côté */
html body.woocommerce-cart .ic33-cart-page {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
    box-sizing: border-box !important;
}

/* 3 — Bloc panier : toute la largeur disponible */
html body.woocommerce-cart .ic33-cart-page__main {
    display: grid !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    grid-template-columns: minmax(0, 1fr) 380px !important;
    gap: 32px !important;
    box-sizing: border-box !important;
}

html body.woocommerce-cart .ic33-cart-page__products,
html body.woocommerce-cart .ic33-cart-table {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    box-sizing: border-box !important;
}

html body.woocommerce-cart .ic33-cart-page__summary {
    width: 100% !important;
    max-width: 380px !important;
    min-width: 0 !important;
    margin: 0 !important;
    box-sizing: border-box !important;
}

/* 4 — Réassurance indépendante : cadre blanc pleine largeur */
html body.woocommerce-cart .ic33-product-reassurance-wrap {
    display: block !important;
    position: relative !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 34px 0 0 !important;
    padding: 0 !important;
    left: auto !important;
    right: auto !important;
    transform: none !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
    background: #ffffff !important;
    border: 1px solid #dce6ef !important;
    border-radius: 16px !important;
    box-shadow: none !important;
}

html body.woocommerce-cart .ic33-product-reassurance-wrap .ic33-product-reassurance {
    display: grid !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 0 !important;
    background: #ffffff !important;
    border: 0 !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
}

/* 5 — Quatre cases, contenu centré */
html body.woocommerce-cart .ic33-product-reassurance-wrap .ic33-product-reassurance__item {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    min-height: 126px !important;
    margin: 0 !important;
    padding: 18px 20px !important;
    background: #ffffff !important;
    color: #0a2743 !important;
    text-align: center !important;
    box-sizing: border-box !important;
    border: 0 !important;
    border-right: 1px solid #dce5ee !important;
}

html body.woocommerce-cart .ic33-product-reassurance-wrap .ic33-product-reassurance__item:last-child {
    border-right: 0 !important;
}

/* 6 — Icônes : cercle bleu clair + SVG bleu IC33 */
html body.woocommerce-cart .ic33-product-reassurance-wrap .ic33-product-reassurance__icon {
    display: grid !important;
    place-items: center !important;
    flex: 0 0 48px !important;
    width: 48px !important;
    height: 48px !important;
    margin: 0 0 9px !important;
    padding: 0 !important;
    background: #eaf4fd !important;
    color: #0057a4 !important;
    border-radius: 50% !important;
    box-sizing: border-box !important;
}

html body.woocommerce-cart .ic33-product-reassurance-wrap .ic33-product-reassurance__icon svg {
    display: block !important;
    width: 24px !important;
    height: 24px !important;
    max-width: 24px !important;
    max-height: 24px !important;
    margin: 0 !important;
    color: #0057a4 !important;
    fill: none !important;
    stroke: #0057a4 !important;
    transform: none !important;
}

html body.woocommerce-cart .ic33-product-reassurance-wrap .ic33-product-reassurance__icon svg path {
    stroke: #0057a4 !important;
}

/* 7 — Textes centrés */
html body.woocommerce-cart .ic33-product-reassurance-wrap .ic33-product-reassurance__item strong,
html body.woocommerce-cart .ic33-product-reassurance-wrap .ic33-product-reassurance__item small {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    text-align: center !important;
    box-sizing: border-box !important;
}

html body.woocommerce-cart .ic33-product-reassurance-wrap .ic33-product-reassurance__item strong {
    margin-top: 0 !important;
    margin-bottom: 4px !important;
    color: #0a2743 !important;
    font-size: 14px !important;
    line-height: 1.3 !important;
    font-weight: 800 !important;
}

html body.woocommerce-cart .ic33-product-reassurance-wrap .ic33-product-reassurance__item small {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    color: #718096 !important;
    font-size: 10px !important;
    line-height: 1.4 !important;
}

/* 8 — Footer : même logique, sans 100% */
html body.woocommerce-cart .site-footer,
html body.woocommerce-cart .site-footer > .col-full,
html body.woocommerce-cart .site-footer .col-full {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    left: auto !important;
    right: auto !important;
    transform: none !important;
    box-sizing: border-box !important;
}

/* 9 — Responsive */
@media (max-width: 1100px) {
    html body.woocommerce-cart .ic33-cart-page__main {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    html body.woocommerce-cart .ic33-cart-page__summary {
        width: 100% !important;
        max-width: 620px !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }
}

@media (max-width: 800px) {
    html body.woocommerce-cart .ic33-cart-page {
        padding-left: 20px !important;
        padding-right: 20px !important;
    }

    html body.woocommerce-cart .ic33-product-reassurance-wrap .ic33-product-reassurance {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    html body.woocommerce-cart .ic33-product-reassurance-wrap .ic33-product-reassurance__item {
        min-height: 120px !important;
    }

    html body.woocommerce-cart .ic33-product-reassurance-wrap .ic33-product-reassurance__item:nth-child(2n) {
        border-right: 0 !important;
    }

    html body.woocommerce-cart .ic33-product-reassurance-wrap .ic33-product-reassurance__item:nth-child(-n+2) {
        border-bottom: 1px solid #dce5ee !important;
    }
}

@media (max-width: 640px) {
    html body.woocommerce-cart .ic33-product-reassurance-wrap .ic33-product-reassurance {
        grid-template-columns: 1fr !important;
    }

    html body.woocommerce-cart .ic33-product-reassurance-wrap .ic33-product-reassurance__item {
        min-height: 110px !important;
        border-right: 0 !important;
        border-bottom: 1px solid #dce5ee !important;
    }

    html body.woocommerce-cart .ic33-product-reassurance-wrap .ic33-product-reassurance__item:last-child {
        border-bottom: 0 !important;
    }
}

/* ============================================================================
   IC33 — V13 / CORRECTION STRUCTURELLE RÉASSURANCE + PANIER
   IMPORTANT : le panier utilise .ic33-cart-reassurance.
   Les anciennes versions ciblaient par erreur .ic33-product-reassurance-wrap.
   ============================================================================ */

html body.woocommerce-cart {
    overflow-x: hidden !important;
}

/* Le panier occupe toute la largeur disponible, avec 20px de marge visuelle. */
html body.woocommerce-cart .ic33-cart-page {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
    box-sizing: border-box !important;
}

html body.woocommerce-cart .ic33-cart-page__main {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 380px !important;
    gap: 32px !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
}

html body.woocommerce-cart .ic33-cart-page__products,
html body.woocommerce-cart .ic33-cart-table,
html body.woocommerce-cart .ic33-cart-page__summary {
    min-width: 0 !important;
    box-sizing: border-box !important;
}

html body.woocommerce-cart .ic33-cart-page__products,
html body.woocommerce-cart .ic33-cart-table {
    width: 100% !important;
    max-width: none !important;
}

html body.woocommerce-cart .ic33-cart-page__summary {
    width: 100% !important;
    max-width: 380px !important;
}

/* Supprime le titre WooCommerce/Storefront qui doublonne le H1 IC33. */
html body.woocommerce-cart .entry-title,
html body.woocommerce-cart .page-title {
    display: none !important;
}

/* ============================================================================
   RÉASSURANCE — EXACTEMENT LA BONNE CLASSE DU CART.PHP
   Le bloc est maintenant hors de .ic33-cart-page.
   Il peut donc prendre toute la largeur de la page sans breakout.
   ============================================================================ */

html body.woocommerce-cart .ic33-cart-reassurance {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 0 !important;

    width: calc(100% - 40px) !important;
    max-width: none !important;
    min-width: 0 !important;

    margin: 34px 20px 0 !important;
    padding: 0 !important;

    box-sizing: border-box !important;
    overflow: hidden !important;

    border: 1px solid #DCE5EE !important;
    border-radius: 15px !important;
    background: #FFFFFF !important;
}

html body.woocommerce-cart .ic33-cart-reassurance__item {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;

    width: 100% !important;
    min-width: 0 !important;
    min-height: 126px !important;

    margin: 0 !important;
    padding: 18px 16px !important;

    box-sizing: border-box !important;
    background: #FFFFFF !important;
    color: #132A40 !important;
    text-align: center !important;

    border: 0 !important;
    border-right: 1px solid #DCE5EE !important;
}

html body.woocommerce-cart .ic33-cart-reassurance__item:last-child {
    border-right: 0 !important;
}

/* Même famille visuelle que la fiche produit, avec icônes SVG réellement présentes. */
html body.woocommerce-cart .ic33-cart-reassurance__icon {
    display: grid !important;
    place-items: center !important;

    flex: 0 0 48px !important;
    width: 48px !important;
    height: 48px !important;

    margin: 0 0 9px !important;
    padding: 0 !important;

    border-radius: 50% !important;
    background: #EAF4FD !important;
    color: #0067B1 !important;

    box-sizing: border-box !important;
}

html body.woocommerce-cart .ic33-cart-reassurance__icon svg {
    display: block !important;
    width: 24px !important;
    height: 24px !important;
    max-width: 24px !important;
    max-height: 24px !important;
    margin: 0 !important;
    padding: 0 !important;

    fill: none !important;
    stroke: currentColor !important;
    stroke-width: 1.7 !important;
    stroke-linecap: round !important;
    stroke-linejoin: round !important;
}

html body.woocommerce-cart .ic33-cart-reassurance__item > span:last-child {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    text-align: center !important;
}

html body.woocommerce-cart .ic33-cart-reassurance__item strong {
    display: block !important;
    width: 100% !important;
    margin: 0 0 4px !important;
    padding: 0 !important;

    color: #132A40 !important;
    font-size: 14px !important;
    line-height: 1.25 !important;
    font-weight: 850 !important;
    text-align: center !important;
}

html body.woocommerce-cart .ic33-cart-reassurance__item small {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;

    color: #7B8794 !important;
    font-size: 10px !important;
    line-height: 1.35 !important;
    text-align: center !important;
}

@media (max-width: 1100px) {
    html body.woocommerce-cart .ic33-cart-page__main {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    html body.woocommerce-cart .ic33-cart-page__summary {
        width: 100% !important;
        max-width: 620px !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }
}

@media (max-width: 800px) {
    html body.woocommerce-cart .ic33-cart-page {
        padding-left: 20px !important;
        padding-right: 20px !important;
    }

    html body.woocommerce-cart .ic33-cart-reassurance {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        width: calc(100% - 40px) !important;
        margin-left: 20px !important;
        margin-right: 20px !important;
    }

    html body.woocommerce-cart .ic33-cart-reassurance__item {
        min-height: 120px !important;
    }

    html body.woocommerce-cart .ic33-cart-reassurance__item:nth-child(2n) {
        border-right: 0 !important;
    }

    html body.woocommerce-cart .ic33-cart-reassurance__item:nth-child(-n+2) {
        border-bottom: 1px solid #DCE5EE !important;
    }
}

@media (max-width: 640px) {
    html body.woocommerce-cart .ic33-cart-reassurance {
        grid-template-columns: 1fr !important;
    }

    html body.woocommerce-cart .ic33-cart-reassurance__item {
        min-height: 110px !important;
        border-right: 0 !important;
        border-bottom: 1px solid #DCE5EE !important;
    }

    html body.woocommerce-cart .ic33-cart-reassurance__item:last-child {
        border-bottom: 0 !important;
    }
}


/* ==========================================================================
   IC33 — MASTER LARGEUR PANIER
   Référence directe : système de largeur validé de la fiche produit.

   Principe :
   1. On libère les wrappers Storefront/WooCommerce.
   2. Le bloc .ic33-cart-page devient la référence avec exactement 20px
      de marge extérieure.
   3. Le panier et la réassurance occupent 100% de cette largeur utile.
   4. Aucun 100vw, aucun margin négatif, aucun calc basé sur le viewport.
   ========================================================================== */

/* 1 — Libération des conteneurs Storefront, exactement comme la fiche produit. */
html body.woocommerce-cart #content .col-full,
html body.woocommerce-cart #content .site-main,
html body.woocommerce-cart #content #primary,
html body.woocommerce-cart #content .content-area,
html body.woocommerce-cart .woocommerce{
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    box-sizing:border-box !important;
}

html body.woocommerce-cart #content .col-full{
    margin-left:0 !important;
    margin-right:0 !important;
    padding-left:0 !important;
    padding-right:0 !important;
}

/* 2 — Le conteneur IC33 reprend exactement la logique de la fiche produit :
      20px à gauche + 20px à droite. */
html body.woocommerce-cart .ic33-cart-page{
    width:calc(100% - 40px) !important;
    max-width:none !important;
    margin-left:20px !important;
    margin-right:20px !important;
    padding-left:0 !important;
    padding-right:0 !important;
    box-sizing:border-box !important;
}

/* 3 — Le bloc principal occupe toute la largeur utile. */
html body.woocommerce-cart .ic33-cart-page__main{
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    box-sizing:border-box !important;
}

html body.woocommerce-cart .ic33-cart-page__products,
html body.woocommerce-cart .ic33-cart-page__summary{
    min-width:0 !important;
    box-sizing:border-box !important;
}

/* 4 — Le bloc panier ne doit jamais être limité par WooCommerce. */
html body.woocommerce-cart .ic33-cart-page__products,
html body.woocommerce-cart .woocommerce-cart-form,
html body.woocommerce-cart .ic33-cart-table{
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    box-sizing:border-box !important;
}

/* 5 — Réassurance : même largeur que le panier et que toute la zone IC33.
      On neutralise explicitement les anciennes règles calc(100% - 40px)
      présentes dans les media queries précédentes. */
html body.woocommerce-cart .ic33-cart-reassurance{
    display:grid !important;
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    margin-left:0 !important;
    margin-right:0 !important;
    box-sizing:border-box !important;
}

/* 6 — Chaque case reste dans la grille sans imposer de largeur propre. */
html body.woocommerce-cart .ic33-cart-reassurance__item{
    min-width:0 !important;
    box-sizing:border-box !important;
}

/* 7 — Même logique responsive : le conteneur garde 20px de marge,
      la réassurance reste à 100% de la largeur utile. */
@media (max-width:800px){
    html body.woocommerce-cart .ic33-cart-page{
        width:calc(100% - 40px) !important;
        margin-left:20px !important;
        margin-right:20px !important;
        padding-left:0 !important;
        padding-right:0 !important;
    }

    html body.woocommerce-cart .ic33-cart-reassurance{
        width:100% !important;
        margin-left:0 !important;
        margin-right:0 !important;
    }
}

@media (max-width:640px){
    html body.woocommerce-cart .ic33-cart-page{
        width:calc(100% - 32px) !important;
        margin-left:16px !important;
        margin-right:16px !important;
    }

    html body.woocommerce-cart .ic33-cart-reassurance{
        width:100% !important;
        margin-left:0 !important;
        margin-right:0 !important;
    }
}

/* ==========================================================================
   IC33 — V14 SAFE PATCH
   OBJECTIF : pleine largeur réelle du panier + réassurance
   Base : fichier V14 fourni par l'utilisateur
   ========================================================================== */

html body.woocommerce-cart #content,
html body.woocommerce-cart #content > .col-full,
html body.woocommerce-cart .site-content,
html body.woocommerce-cart .site-content > .col-full,
html body.woocommerce-cart #primary,
html body.woocommerce-cart #main,
html body.woocommerce-cart .site-main,
html body.woocommerce-cart .content-area,
html body.woocommerce-cart .woocommerce {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    float: none !important;
    box-sizing: border-box !important;
}

/* Zone panier : 20px exactement à gauche et à droite */
html body.woocommerce-cart .ic33-cart-page {
    width: calc(100% - 40px) !important;
    max-width: none !important;
    min-width: 0 !important;
    margin-left: 20px !important;
    margin-right: 20px !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    box-sizing: border-box !important;
}

/* Bloc panier */
html body.woocommerce-cart .ic33-cart-page__main {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box !important;
}

/* Colonnes */
html body.woocommerce-cart .ic33-cart-page__products {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}

html body.woocommerce-cart .ic33-cart-page__summary {
    width: 100% !important;
    max-width: 380px !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}

/* Réassurance : elle est hors du conteneur panier.
   Même largeur utile : 100% - 40px, 20px de chaque côté. */
html body.woocommerce-cart .ic33-cart-reassurance {
    width: calc(100% - 40px) !important;
    max-width: none !important;
    min-width: 0 !important;
    margin-left: 20px !important;
    margin-right: 20px !important;
    box-sizing: border-box !important;

    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 0 !important;

    overflow: hidden !important;
}

/* Empêche une cellule ou son contenu de créer une largeur supérieure */
html body.woocommerce-cart .ic33-cart-reassurance__item {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
}

/* SVG et textes restent réellement centrés */
html body.woocommerce-cart .ic33-cart-reassurance__item,
html body.woocommerce-cart .ic33-cart-reassurance__icon,
html body.woocommerce-cart .ic33-cart-reassurance__item strong,
html body.woocommerce-cart .ic33-cart-reassurance__item small {
    text-align: center !important;
}

html body.woocommerce-cart .ic33-cart-reassurance__icon {
    margin-left: auto !important;
    margin-right: auto !important;
}

html body.woocommerce-cart .ic33-cart-reassurance__icon svg {
    display: block !important;
    margin-left: auto !important;
    margin-right: auto !important;
    flex: 0 0 auto !important;
}

/* Aucun enfant ne peut imposer une largeur minimale au bloc */
html body.woocommerce-cart .ic33-cart-page *,
html body.woocommerce-cart .ic33-cart-reassurance * {
    min-width: 0 !important;
    box-sizing: border-box !important;
}

/* Responsive : on conserve les marges et on adapte uniquement le nombre de cases */
@media (max-width: 800px) {
    html body.woocommerce-cart .ic33-cart-page {
        width: calc(100% - 32px) !important;
        margin-left: 16px !important;
        margin-right: 16px !important;
    }

    html body.woocommerce-cart .ic33-cart-reassurance {
        width: calc(100% - 32px) !important;
        margin-left: 16px !important;
        margin-right: 16px !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 640px) {
    html body.woocommerce-cart .ic33-cart-page {
        width: calc(100% - 24px) !important;
        margin-left: 12px !important;
        margin-right: 12px !important;
    }

    html body.woocommerce-cart .ic33-cart-reassurance {
        width: calc(100% - 24px) !important;
        margin-left: 12px !important;
        margin-right: 12px !important;
        grid-template-columns: 1fr !important;
    }
}


/* ==========================================================================
   IC33 — V15 FINAL / LARGEUR RÉELLE + RÉASSURANCE IDENTIQUE FICHE PRODUIT
   --------------------------------------------------------------------------
   Cette section est volontairement placée EN DERNIER.
   Elle neutralise les anciennes tentatives V12/V13/V14 qui se contredisaient.

   Règles :
   - aucun 100vw
   - aucun margin négatif
   - 20px de marge extérieure sur la zone IC33
   - le panier = 100% de cette zone
   - la réassurance = 100% de cette zone
   - réassurance = même HTML/classes/SVG/visuel que single-product.php
   ========================================================================== */

/* 01 — On libère toute la chaîne Storefront/WooCommerce qui peut enfermer
        le contenu dans une colonne. */
html body.woocommerce-cart #page,
html body.woocommerce-cart .site,
html body.woocommerce-cart #content,
html body.woocommerce-cart #content > .col-full,
html body.woocommerce-cart .site-content,
html body.woocommerce-cart .site-content > .col-full,
html body.woocommerce-cart .site-content .col-full,
html body.woocommerce-cart #primary,
html body.woocommerce-cart #main,
html body.woocommerce-cart .site-main,
html body.woocommerce-cart .content-area,
html body.woocommerce-cart .woocommerce,
html body.woocommerce-cart .site-main > article,
html body.woocommerce-cart .site-main article,
html body.woocommerce-cart article.hentry,
html body.woocommerce-cart article.page,
html body.woocommerce-cart .entry-content {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    float: none !important;
    box-sizing: border-box !important;
}

/* Les wrappers qui peuvent apporter leur propre padding latéral. */
html body.woocommerce-cart #content > .col-full,
html body.woocommerce-cart .site-content > .col-full,
html body.woocommerce-cart .site-content .col-full,
html body.woocommerce-cart .site-main,
html body.woocommerce-cart .content-area,
html body.woocommerce-cart .entry-content {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* 02 — CONTENEUR IC33
        Exactement la même logique que la fiche produit :
        width = 100% - 40px + 20px de chaque côté. */
html body.woocommerce-cart .ic33-cart-page {
    display: block !important;
    width: calc(100% - 40px) !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 20px !important;
    padding: 38px 0 54px !important;
    box-sizing: border-box !important;
}

/* 03 — GRILLE PRINCIPALE DU PANIER
        Elle remplit intégralement la zone de 20px à 20px. */
html body.woocommerce-cart .ic33-cart-page__main {
    display: grid !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    grid-template-columns: minmax(0, 1fr) 380px !important;
    gap: 32px !important;
    box-sizing: border-box !important;
}

html body.woocommerce-cart .ic33-cart-page__products,
html body.woocommerce-cart .woocommerce-cart-form,
html body.woocommerce-cart .ic33-cart-table {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}

html body.woocommerce-cart .ic33-cart-page__summary {
    width: 100% !important;
    max-width: 380px !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}

/* 04 — RÉASSURANCE
        Même classe, même structure, même SVG et même design que la fiche produit.
        Elle est DANS .ic33-cart-page, donc elle doit simplement faire 100%,
        sans lui appliquer une seconde marge de 20px. */
html body.woocommerce-cart .ic33-product-reassurance {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 0 !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 42px 0 0 !important;
    padding: 0 !important;
    border: 1px solid #DCE5EE !important;
    border-radius: 15px !important;
    background: #fff !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
}

html body.woocommerce-cart .ic33-product-reassurance__item {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 10px !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    min-height: 112px !important;
    margin: 0 !important;
    padding: 22px 24px !important;
    border: 0 !important;
    border-right: 1px solid #DCE5EE !important;
    background: #fff !important;
    text-align: center !important;
    box-sizing: border-box !important;
}

html body.woocommerce-cart .ic33-product-reassurance__item:last-child {
    border-right: 0 !important;
}

html body.woocommerce-cart .ic33-product-reassurance__icon {
    display: grid !important;
    place-items: center !important;
    flex: 0 0 46px !important;
    width: 46px !important;
    height: 46px !important;
    margin: 0 !important;
    padding: 0 !important;
    border-radius: 50% !important;
    background: #EAF4FD !important;
    color: #0057A4 !important;
    box-sizing: border-box !important;
}

html body.woocommerce-cart .ic33-product-reassurance__icon svg {
    display: block !important;
    width: 25px !important;
    height: 25px !important;
    max-width: 25px !important;
    max-height: 25px !important;
    margin: 0 !important;
    fill: none !important;
    stroke: currentColor !important;
    stroke-width: 1.8 !important;
    stroke-linecap: round !important;
    stroke-linejoin: round !important;
}

html body.woocommerce-cart .ic33-product-reassurance__item > span:last-child {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    text-align: center !important;
}

html body.woocommerce-cart .ic33-product-reassurance__item strong {
    display: block !important;
    width: 100% !important;
    margin: 0 0 4px !important;
    color: #132A40 !important;
    font-size: 14px !important;
    line-height: 1.25 !important;
    font-weight: 850 !important;
    text-align: center !important;
}

html body.woocommerce-cart .ic33-product-reassurance__item small {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    color: #7B8794 !important;
    font-size: 11px !important;
    line-height: 1.4 !important;
    text-align: center !important;
}

/* 05 — AUCUN enfant du panier ne peut recréer une largeur minimale. */
html body.woocommerce-cart .ic33-cart-page *,
html body.woocommerce-cart .ic33-product-reassurance * {
    min-width: 0 !important;
    box-sizing: border-box !important;
}

/* 06 — RESPONSIVE : on conserve 20px de marge extérieure. */
@media (max-width: 1100px) {
    html body.woocommerce-cart .ic33-cart-page__main {
        grid-template-columns: 1fr !important;
    }

    html body.woocommerce-cart .ic33-cart-page__summary {
        width: 100% !important;
        max-width: 620px !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }
}

@media (max-width: 800px) {
    html body.woocommerce-cart .ic33-cart-page {
        width: calc(100% - 40px) !important;
        margin-left: 20px !important;
        margin-right: 20px !important;
    }

    html body.woocommerce-cart .ic33-product-reassurance {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    html body.woocommerce-cart .ic33-product-reassurance__item {
        min-height: 120px !important;
    }

    html body.woocommerce-cart .ic33-product-reassurance__item:nth-child(2n) {
        border-right: 0 !important;
    }

    html body.woocommerce-cart .ic33-product-reassurance__item:nth-child(-n+2) {
        border-bottom: 1px solid #DCE5EE !important;
    }
}

@media (max-width: 640px) {
    html body.woocommerce-cart .ic33-cart-page {
        width: calc(100% - 40px) !important;
        margin-left: 20px !important;
        margin-right: 20px !important;
    }

    html body.woocommerce-cart .ic33-product-reassurance {
        grid-template-columns: 1fr !important;
    }

    html body.woocommerce-cart .ic33-product-reassurance__item {
        min-height: 125px !important;
        border-right: 0 !important;
        border-bottom: 1px solid #DCE5EE !important;
    }

    html body.woocommerce-cart .ic33-product-reassurance__item:last-child {
        border-bottom: 0 !important;
    }
}

/* ==========================================================================
   IC33 — PANIER : MÊME SYSTÈME DE LARGEUR QUE SINGLE PRODUCT
   UNIQUEMENT LA LARGEUR — AUCUNE MODIFICATION VISUELLE
   ========================================================================== */

/* 1 — On libère UNIQUEMENT le conteneur WordPress de la page panier */
html body.woocommerce-cart
.ic33-page:has(.ic33-cart-page) > .ic33-container {

    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;

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

    box-sizing: border-box !important;
}


/* 2 — Le bloc panier devient alors l'équivalent du
      .ic33-single-product__container */

html body.woocommerce-cart .ic33-cart-page {

    width: calc(100% - 40px) !important;
    max-width: none !important;
    min-width: 0 !important;

    margin-left: 20px !important;
    margin-right: 20px !important;

    box-sizing: border-box !important;
}


/* 3 — La grille panier utilise toute la largeur du nouveau conteneur */

html body.woocommerce-cart .ic33-cart-page__main {

    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;

    box-sizing: border-box !important;
}


/* 4 — La réassurance utilise exactement la largeur du panier */

html body.woocommerce-cart .ic33-cart-reassurance {

    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;

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

    box-sizing: border-box !important;
}
/* ============================================================================
   CROSS-SELLS PANIER — STYLE PRODUCT CARD
============================================================================ */
body.woocommerce-cart .ic33-cross-sells-wrap {
    margin: 40px 0 0 !important;
}
body.woocommerce-cart .ic33-cross-sells-wrap .cross-sells > h2 {
    margin: 0 0 18px !important;
    font-family: var(--ic33-font-heading, "Inter", "Segoe UI", sans-serif) !important;
    font-size: 21px !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    color: var(--ic33-primary-dark, #0b2b45) !important;
    padding-bottom: 10px !important;
    border-bottom: 2px solid var(--ic33-secondary, #f58220) !important;
    display: inline-block !important;
}
body.woocommerce-cart .ic33-cross-sells-wrap ul.products {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)) !important;
    gap: 16px !important;
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}
body.woocommerce-cart .ic33-cross-sells-wrap ul.products li.product {
    border: 1px solid var(--ic33-border, #e2e8f0) !important;
    border-radius: 12px !important;
    background: #fff !important;
    padding: 14px !important;
    text-align: center !important;
    box-shadow: 0 4px 14px rgba(16,24,40,.04) !important;
}
body.woocommerce-cart .ic33-cross-sells-wrap ul.products li.product img {
    border-radius: 8px !important;
    margin-bottom: 10px !important;
}
body.woocommerce-cart .ic33-cross-sells-wrap ul.products li.product .woocommerce-loop-product__title {
    font-size: 13px !important;
    font-weight: 700 !important;
    color: var(--ic33-primary-dark, #0b2b45) !important;
}
body.woocommerce-cart .ic33-cross-sells-wrap ul.products li.product .price {
    color: var(--ic33-secondary, #f58220) !important;
    font-weight: 800 !important;
}
body.woocommerce-cart .ic33-cross-sells-wrap ul.products li.product .button {
    display: block !important;
    margin-top: 8px !important;
    padding: 8px !important;
    border-radius: 8px !important;
    background: var(--ic33-secondary, #f58220) !important;
    color: #fff !important;
    font-size: 12px !important;
    font-weight: 700 !important;
}

body.woocommerce-cart .ic33-cart-summary .cross-sells {
    display: none !important;
}

/* Cross-sell = vraie card produit, sans dépendre du wrapper PHP */
body.woocommerce-cart .cross-sells,
body.woocommerce-cart .ic33-cross-sells-wrap .cross-sells {
    display: block !important;
    margin: 40px 0 0 !important;
}
body.woocommerce-cart .cross-sells > h2 {
    margin: 0 0 18px !important;
    font-family: var(--ic33-font-heading, "Inter", "Segoe UI", sans-serif) !important;
    font-size: 21px !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    color: var(--ic33-primary-dark, #0b2b45) !important;
    padding-bottom: 10px !important;
    border-bottom: 2px solid var(--ic33-secondary, #f58220) !important;
    display: inline-block !important;
}
body.woocommerce-cart .cross-sells ul.products {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)) !important;
    gap: 20px !important;
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}
body.woocommerce-cart .cross-sells ul.products li.product {
    border: 1px solid var(--ic33-border, #e2e8f0) !important;
    border-radius: 14px !important;
    background: #fff !important;
    padding: 0 0 16px !important;
    text-align: left !important;
    overflow: hidden !important;
    box-shadow: 0 6px 20px rgba(16,24,40,.05) !important;
}
body.woocommerce-cart .cross-sells ul.products li.product a {
    text-decoration: none !important;
}
body.woocommerce-cart .cross-sells ul.products li.product img {
    display: block !important;
    width: 100% !important;
    aspect-ratio: 1 / 1 !important;
    object-fit: cover !important;
    border-radius: 0 !important;
    margin: 0 0 12px !important;
}
body.woocommerce-cart .cross-sells ul.products li.product .woocommerce-loop-product__title,
body.woocommerce-cart .cross-sells ul.products li.product mark.count { display: none !important; }
body.woocommerce-cart .cross-sells ul.products li.product h2 {
    padding: 0 14px !important;
    margin: 0 0 6px !important;
    font-size: 13px !important;
    font-weight: 800 !important;
    color: var(--ic33-primary-dark, #0b2b45) !important;
    text-transform: uppercase !important;
}
body.woocommerce-cart .cross-sells ul.products li.product .price {
    display: block !important;
    padding: 0 14px !important;
    margin: 0 0 12px !important;
    color: var(--ic33-secondary, #f58220) !important;
    font-weight: 800 !important;
    font-size: 15px !important;
}
body.woocommerce-cart .cross-sells ul.products li.product .button {
    display: block !important;
    margin: 0 14px !important;
    padding: 10px !important;
    border-radius: 8px !important;
    background: var(--ic33-secondary, #f58220) !important;
    color: #fff !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    text-align: center !important;
}
body.woocommerce-cart .cross-sells ul.products li.product .button:hover {
    background: #df6f13 !important;
}

/* ============================================================================
   IC33 — CROSS-SELLS PANIER / CARROUSEL
   - reste strictement dans la colonne produits
   - nombre de cartes non limité
   - navigation horizontale par flèches
   ============================================================================ */

html body.woocommerce-cart .ic33-cross-sells-wrap {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 38px 0 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
}

html body.woocommerce-cart .ic33-cross-sells-carousel {
    position: relative !important;
    display: grid !important;
    grid-template-columns: 40px minmax(0, 1fr) 40px !important;
    align-items: center !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    gap: 10px !important;
    box-sizing: border-box !important;
}

html body.woocommerce-cart .ic33-cross-sells-carousel__viewport {
    min-width: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
}

html body.woocommerce-cart .ic33-cross-sells-carousel__viewport .cross-sells {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
}

html body.woocommerce-cart .ic33-cross-sells-carousel__viewport .cross-sells > h2 {
    display: block !important;
    width: fit-content !important;
    max-width: 100% !important;
    margin: 0 0 18px !important;
}

html body.woocommerce-cart .ic33-cross-sells-carousel__viewport .cross-sells ul.products {
    display: flex !important;
    flex-wrap: nowrap !important;
    justify-content: flex-start !important;
    align-items: stretch !important;
    gap: 16px !important;
    width: max-content !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
    transform: translate3d(0, 0, 0);
    transition: transform .28s ease !important;
}

html body.woocommerce-cart .ic33-cross-sells-carousel__viewport .cross-sells ul.products li.product {
    flex: 0 0 190px !important;
    width: 190px !important;
    max-width: 190px !important;
    min-width: 190px !important;
    margin: 0 !important;
    box-sizing: border-box !important;
}

html body.woocommerce-cart .ic33-cross-sells-carousel__arrow {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 40px !important;
    height: 40px !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 1px solid #d7e0e9 !important;
    border-radius: 50% !important;
    background: #fff !important;
    color: #0b2b45 !important;
    font-size: 30px !important;
    line-height: 1 !important;
    cursor: pointer !important;
    box-shadow: 0 4px 12px rgba(16,24,40,.08) !important;
    transition: opacity .2s ease, background .2s ease, color .2s ease !important;
    z-index: 3 !important;
}

html body.woocommerce-cart .ic33-cross-sells-carousel__arrow:hover {
    background: #0b2b45 !important;
    color: #fff !important;
}

html body.woocommerce-cart .ic33-cross-sells-carousel__arrow:disabled {
    opacity: .32 !important;
    cursor: default !important;
    background: #fff !important;
    color: #0b2b45 !important;
}

@media (max-width: 800px) {
    html body.woocommerce-cart .ic33-cross-sells-carousel {
        grid-template-columns: 34px minmax(0, 1fr) 34px !important;
        gap: 7px !important;
    }

    html body.woocommerce-cart .ic33-cross-sells-carousel__arrow {
        width: 34px !important;
        height: 34px !important;
        font-size: 26px !important;
    }

    html body.woocommerce-cart .ic33-cross-sells-carousel__viewport .cross-sells ul.products li.product {
        flex-basis: 170px !important;
        width: 170px !important;
        max-width: 170px !important;
        min-width: 170px !important;
    }
}

@media (max-width: 640px) {
    html body.woocommerce-cart .ic33-cross-sells-carousel {
        grid-template-columns: 30px minmax(0, 1fr) 30px !important;
        gap: 5px !important;
    }

    html body.woocommerce-cart .ic33-cross-sells-carousel__arrow {
        width: 30px !important;
        height: 30px !important;
        font-size: 23px !important;
    }

    html body.woocommerce-cart .ic33-cross-sells-carousel__viewport .cross-sells ul.products li.product {
        flex-basis: 155px !important;
        width: 155px !important;
        max-width: 155px !important;
        min-width: 155px !important;
    }
}

/* ============================================================================
   CROSS-SELLS — ALIGNEMENT DES CARTES PRODUITS
   ---------------------------------------------------------------------------
   Les cartes gardent leur hauteur actuelle. On réserve simplement la même
   zone pour les catégories, même lorsqu'un produit n'en affiche aucune.
   ============================================================================ */

html body.woocommerce-cart .ic33-cross-sells-carousel__viewport .cross-sells ul.products {
    align-items: stretch !important;
}

html body.woocommerce-cart .ic33-cross-sells-carousel__viewport .cross-sells ul.products > li.product {
    display: flex !important;
    align-items: stretch !important;
    height: auto !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

html body.woocommerce-cart .ic33-cross-sells-carousel__viewport .cross-sells ul.products > li.product > .ic33-product-card {
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    box-sizing: border-box !important;
}

/* Zone catégories fixe : 28px de badge + 18px d'espace = 46px */
html body.woocommerce-cart .ic33-cross-sells-carousel__viewport .ic33-product-card__category {
    height: 46px !important;
    min-height: 46px !important;
    margin-bottom: 0 !important;
    overflow: hidden !important;
    flex: 0 0 46px !important;
}

/* Produit sans catégorie : on recrée exactement la même zone vide. */
html body.woocommerce-cart .ic33-cross-sells-carousel__viewport .ic33-product-card__content:not(:has(.ic33-product-card__category)) .ic33-product-card__title {
    margin-top: 46px !important;
}

/* Même hauteur de bloc titre = prix toujours sur la même ligne */
html body.woocommerce-cart .ic33-cross-sells-carousel__viewport .ic33-product-card__title {
    height: 58px !important;
    min-height: 58px !important;
    max-height: 58px !important;
    margin-bottom: 0 !important;
    overflow: hidden !important;
    display: -webkit-box !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 2 !important;
}

/* Le prix commence donc exactement au même niveau sur toutes les cartes. */
html body.woocommerce-cart .ic33-cross-sells-carousel__viewport .ic33-product-card__price {
    flex-shrink: 0 !important;
}


/* ============================================================================
   CROSS-SELLS — TITRE FIXE PENDANT LE DÉFILEMENT HORIZONTAL
   Le titre reste ancré à gauche du viewport pendant que les cards défilent.
   ============================================================================ */
html body.woocommerce-cart .ic33-cross-sells-carousel__viewport .cross-sells > h2 {
    position: sticky !important;
    left: 0 !important;
    z-index: 5 !important;
    width: fit-content !important;
    max-width: 100% !important;
    background: #f8fafc !important;
}

/* ============================================================================
   PANIER VIDE — DESIGN INSTALL COMMUNICATION 33
   ---------------------------------------------------------------------------
   Uniquement pour l'état panier vide.
   Le fonctionnement WooCommerce et les messages existants sont conservés.
   ============================================================================ */

/*
 * Le message WooCommerce « Votre panier est actuellement vide » est remplacé
 * visuellement par le bloc IC33 ci-dessous.
 *
 * Le message de confirmation « Votre panier a été vidé » reste affiché
 * lorsqu'il vient d'être généré par WooCommerce.
 */
html body.woocommerce-cart:has(.ic33-cart-empty) .woocommerce-notices-wrapper {
    width: calc(100% - 40px) !important;
    max-width: none !important;
    margin: 20px auto 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
}

html body.woocommerce-cart:has(.ic33-cart-empty) .woocommerce-notices-wrapper .woocommerce-info {
    display: none !important;
}

html body.woocommerce-cart:has(.ic33-cart-empty) .woocommerce-notices-wrapper .woocommerce-message {
    width: 100% !important;
    max-width: none !important;
    margin: 0 0 20px !important;
    box-sizing: border-box !important;
    border-radius: var(--ic33-radius-sm, 8px) !important;
}


/* Bloc principal */
html body.woocommerce-cart .ic33-cart-empty {
    width: calc(100% - 40px) !important;
    max-width: none !important;
    margin: 20px auto !important;
    padding: 64px 20px 68px !important;
    box-sizing: border-box !important;
    text-align: center !important;
    background: #ffffff !important;
    border: 1px solid var(--ic33-border, #e5e7eb) !important;
    border-radius: var(--ic33-radius-md, 12px) !important;
    box-shadow: var(--ic33-shadow-sm, 0 8px 18px rgba(0,0,0,.06)) !important;
}


/* Petit repère graphique IC33 */
html body.woocommerce-cart .ic33-cart-empty__icon {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 64px !important;
    height: 64px !important;
    margin: 0 auto 24px !important;
    border-radius: 50% !important;
    background: #fef3e8 !important;
    color: var(--ic33-secondary, #f58220) !important;
}

html body.woocommerce-cart .ic33-cart-empty__icon svg {
    width: 30px !important;
    height: 30px !important;
    fill: none !important;
    stroke: currentColor !important;
    stroke-width: 1.8 !important;
    stroke-linecap: round !important;
    stroke-linejoin: round !important;
}


/* Titre IC33 */
html body.woocommerce-cart .ic33-cart-empty__title {
    margin: 0 !important;
    color: var(--ic33-primary-dark, #003a70) !important;
    font-family: var(--ic33-font-heading, "Inter", "Segoe UI", sans-serif) !important;
    font-size: clamp(28px, 3vw, 42px) !important;
    line-height: 1.15 !important;
    font-weight: 800 !important;
    letter-spacing: -0.02em !important;
}


/* Accent orange */
html body.woocommerce-cart .ic33-cart-empty__accent {
    display: block !important;
    width: 48px !important;
    height: 3px !important;
    margin: 14px auto 22px !important;
    background: var(--ic33-secondary, #f58220) !important;
    border-radius: 2px !important;
}


/* Phrase */
html body.woocommerce-cart .ic33-cart-empty__text {
    max-width: 720px !important;
    margin: 0 auto 30px !important;
    color: var(--ic33-text, #374151) !important;
    font-family: var(--ic33-font-family, "Inter", "Segoe UI", Roboto, Arial, sans-serif) !important;
    font-size: 16px !important;
    line-height: 1.7 !important;
}


/* Bouton retour boutique */
html body.woocommerce-cart .ic33-cart-empty__button {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 10px !important;
    min-height: 48px !important;
    padding: 13px 26px !important;
    border: 1px solid var(--ic33-secondary, #f58220) !important;
    border-radius: var(--ic33-radius-sm, 8px) !important;
    background: var(--ic33-secondary, #f58220) !important;
    color: #ffffff !important;
    font-family: var(--ic33-font-family, "Inter", "Segoe UI", Roboto, Arial, sans-serif) !important;
    font-size: 14px !important;
    line-height: 1 !important;
    font-weight: 700 !important;
    text-decoration: none !important;
    box-shadow: none !important;
    transition:
        background-color var(--ic33-transition-fast, .2s ease),
        border-color var(--ic33-transition-fast, .2s ease),
        transform var(--ic33-transition-fast, .2s ease) !important;
}

html body.woocommerce-cart .ic33-cart-empty__button:hover,
html body.woocommerce-cart .ic33-cart-empty__button:focus {
    background: var(--ic33-primary-dark, #003a70) !important;
    border-color: var(--ic33-primary-dark, #003a70) !important;
    color: #ffffff !important;
    text-decoration: none !important;
}

html body.woocommerce-cart .ic33-cart-empty__button:hover {
    transform: translateY(-1px) !important;
}


/* Footer : 20px minimum après le bloc panier vide */
html body.woocommerce-cart:has(.ic33-cart-empty) .site-footer {
    margin-top: 20px !important;
}


/* ============================================================================
   PANIER VIDE — MOBILE
============================================================================= */

@media (max-width: 640px) {

    html body.woocommerce-cart:has(.ic33-cart-empty) .woocommerce-notices-wrapper,
    html body.woocommerce-cart .ic33-cart-empty {
        width: calc(100% - 32px) !important;
    }

    html body.woocommerce-cart .ic33-cart-empty {
        padding: 44px 16px 48px !important;
    }

    html body.woocommerce-cart .ic33-cart-empty__title {
        font-size: 30px !important;
    }

    html body.woocommerce-cart .ic33-cart-empty__text {
        font-size: 15px !important;
    }

    html body.woocommerce-cart .ic33-cart-empty__button {
        width: 100% !important;
        max-width: 320px !important;
    }
}
