.cbic-cart,
.cbic-cart *,
.cbic-cart *::before,
.cbic-cart *::after,
.cbic-mini-cart,
.cbic-mini-cart *,
.cbic-mini-cart *::before,
.cbic-mini-cart *::after {
    box-sizing: border-box !important;
}

.cbic-cart {
    --cbic-text: #28211f;
    --cbic-muted: #8f817b;
    --cbic-border: #D0E4EE;
    --cbic-soft: #F4F8FB;
    --cbic-pink: #6EAAC8;
    --cbic-coral: #FFF0B2;
    --cbic-radius: 16px;
    width: 100% !important;
    max-width: 1240px !important;
    margin: 0 auto !important;
    padding: 10px 0 34px !important;
    color: var(--cbic-text) !important;
    font-family: "DM Sans", Arial, sans-serif !important;
}

.cbic-cart svg,
.cbic-mini-cart svg {
    width: 16px !important;
    height: 16px !important;
    fill: none !important;
    stroke: currentColor !important;
    stroke-width: 1.8 !important;
    stroke-linecap: round !important;
    stroke-linejoin: round !important;
}

.cbic-cart__head {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    gap: 18px !important;
    margin: 0 0 32px !important;
}

.cbic-cart__head h1 {
    margin: 0 !important;
    color: var(--cbic-text) !important;
    font-family: "Playfair Display", Georgia, serif !important;
    font-size: 31px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    letter-spacing: 0 !important;
}

.cbic-clear {
    margin: 0 !important;
}

.cbic-clear button {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    color: #8f817b !important;
    font: 500 12px/1.2 "DM Sans", Arial, sans-serif !important;
    box-shadow: none !important;
    cursor: pointer !important;
}

.cbic-shipping {
    margin: 0 0 32px !important;
    padding: 18px 16px 16px !important;
    background: var(--cbic-soft) !important;
    border-radius: 14px !important;
}

.cbic-shipping__label,
.cbic-mini-shipping__label {
    display: flex !important;
    align-items: center !important;
    gap: 7px !important;
    margin: 0 0 8px !important;
    color: var(--cbic-text) !important;
    font: 600 14px/1.2 "DM Sans", Arial, sans-serif !important;
}

.cbic-shipping__label svg,
.cbic-mini-shipping__label svg {
    color: var(--cbic-pink) !important;
}

.cbic-shipping__track,
.cbic-mini-shipping__track {
    height: 9px !important;
    width: 100% !important;
    overflow: hidden !important;
    background: #D0E4EE !important;
    border-radius: 999px !important;
}

.cbic-shipping__track span,
.cbic-mini-shipping__track span {
    display: block !important;
    height: 100% !important;
    min-width: 8px !important;
    border-radius: inherit !important;
    background: linear-gradient(90deg, var(--cbic-pink), var(--cbic-coral)) !important;
}

.cbic-cart__grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 390px !important;
    gap: 32px !important;
    align-items: start !important;
}

.cbic-cart__items {
    display: flex !important;
    flex-direction: column !important;
    gap: 18px !important;
}

.cbic-item {
    min-height: 146px !important;
    display: grid !important;
    grid-template-columns: 112px minmax(0, 1fr) 110px !important;
    gap: 16px !important;
    align-items: center !important;
    padding: 16px !important;
    background: #fff !important;
    border: 1px solid var(--cbic-border) !important;
    border-radius: var(--cbic-radius) !important;
}

.cbic-item__image {
    display: block !important;
    width: 112px !important;
    height: 112px !important;
    overflow: hidden !important;
    border-radius: 10px !important;
    background: #f7f2ef !important;
}

.cbic-item__image img,
.cbic-mini-item__image img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block !important;
}

.cbic-item__title,
.cbic-item__title:visited {
    display: block !important;
    margin: 0 0 5px !important;
    color: var(--cbic-text) !important;
    font: 600 15px/1.25 "DM Sans", Arial, sans-serif !important;
    text-decoration: none !important;
}

.cbic-item__meta {
    display: flex !important;
    flex-direction: column !important;
    gap: 3px !important;
    min-height: 38px !important;
    margin: 0 0 10px !important;
    color: var(--cbic-muted) !important;
    font: 400 12px/1.25 "DM Sans", Arial, sans-serif !important;
}

.cbic-item__meta span:nth-child(n+3) {
    color: var(--cbic-pink) !important;
}

.cbic-qty,
.cbic-mini-qty {
    display: inline-grid !important;
    grid-template-columns: 32px 40px 32px !important;
    align-items: center !important;
    gap: 4px !important;
    margin: 0 !important;
}

.cbic-qty button,
.cbic-mini-qty button {
    width: 32px !important;
    height: 32px !important;
    min-height: 32px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 1px solid #D0E4EE !important;
    border-radius: 50% !important;
    background: #fff !important;
    color: #8b7c75 !important;
    box-shadow: none !important;
    font: 500 18px/30px "DM Sans", Arial, sans-serif !important;
    text-align: center !important;
    cursor: pointer !important;
}

.cbic-qty input,
.cbic-mini-qty input {
    width: 40px !important;
    height: 32px !important;
    min-height: 32px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: var(--cbic-text) !important;
    font: 600 14px/32px "DM Sans", Arial, sans-serif !important;
    text-align: center !important;
    appearance: textfield !important;
}

.cbic-qty input::-webkit-outer-spin-button,
.cbic-qty input::-webkit-inner-spin-button,
.cbic-mini-qty input::-webkit-outer-spin-button,
.cbic-mini-qty input::-webkit-inner-spin-button {
    appearance: none !important;
    margin: 0 !important;
}

.cbic-item__side {
    min-height: 112px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-end !important;
    justify-content: space-between !important;
}

.cbic-remove {
    margin: 0 !important;
}

.cbic-remove button,
.cbic-mini-remove button {
    width: 28px !important;
    height: 28px !important;
    min-height: 28px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    color: #8b7c75 !important;
    box-shadow: none !important;
    cursor: pointer !important;
}

.cbic-item__price {
    color: var(--cbic-text) !important;
    font: 700 15px/1.2 "DM Sans", Arial, sans-serif !important;
}

.cbic-gift {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    min-height: 58px !important;
    padding: 17px !important;
    border: 1px dashed #BED3E2 !important;
    border-radius: 14px !important;
    background: #EAF3FA !important;
    color: var(--cbic-text) !important;
    font: 500 15px/1.2 "DM Sans", Arial, sans-serif !important;
}

.cbic-gift svg {
    color: var(--cbic-pink) !important;
}

.cbic-summary {
    padding: 26px 24px !important;
    background: #fff !important;
    border: 1px solid var(--cbic-border) !important;
    border-radius: var(--cbic-radius) !important;
}

.cbic-summary h2 {
    margin: 0 0 18px !important;
    color: var(--cbic-text) !important;
    font-family: "Playfair Display", Georgia, serif !important;
    font-size: 22px !important;
    font-weight: 700 !important;
    line-height: 1.1 !important;
    letter-spacing: 0 !important;
}

.cbic-coupon {
    display: grid !important;
    grid-template-columns: 1fr 102px !important;
    gap: 8px !important;
    margin: 0 0 18px !important;
}

.cbic-coupon input {
    height: 44px !important;
    min-height: 44px !important;
    margin: 0 !important;
    padding: 0 16px !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: #EAF3FA !important;
    color: var(--cbic-text) !important;
    box-shadow: none !important;
    font: 500 13px/44px "DM Sans", Arial, sans-serif !important;
}

.cbic-coupon button {
    height: 44px !important;
    min-height: 44px !important;
    margin: 0 !important;
    padding: 0 18px !important;
    border: 2px solid #ded8d4 !important;
    border-radius: 999px !important;
    background: #fff !important;
    color: var(--cbic-text) !important;
    box-shadow: none !important;
    font: 600 13px/40px "DM Sans", Arial, sans-serif !important;
    cursor: pointer !important;
}

.cbic-summary__rows {
    padding: 0 0 10px !important;
    border-bottom: 1px solid var(--cbic-border) !important;
}

.cbic-summary__row,
.cbic-summary__total,
.cbic-mini-cart__subtotal {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    gap: 14px !important;
    color: var(--cbic-muted) !important;
    font: 500 14px/1.3 "DM Sans", Arial, sans-serif !important;
}

.cbic-summary__row + .cbic-summary__row {
    margin-top: 11px !important;
}

.cbic-summary__row strong {
    color: var(--cbic-text) !important;
    font-weight: 600 !important;
}

.cbic-summary__free {
    color: var(--cbic-pink) !important;
}

.cbic-summary__total {
    margin: 15px 0 20px !important;
    color: var(--cbic-text) !important;
    font-weight: 700 !important;
}

.cbic-summary__total strong {
    font-size: 16px !important;
}

.cbic-checkout,
.cbic-checkout:visited,
.cbic-mini-cart__checkout,
.cbic-mini-cart__checkout:visited {
    width: 100% !important;
    height: 52px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 12px !important;
    border-radius: 999px !important;
    background: var(--cbic-pink) !important;
    color: #fff !important;
    font: 700 16px/52px "DM Sans", Arial, sans-serif !important;
    text-decoration: none !important;
}

.cbic-installment {
    margin: 16px 0 18px !important;
    color: var(--cbic-muted) !important;
    font: 400 10px/1.35 "DM Sans", Arial, sans-serif !important;
    text-align: center !important;
}

.cbic-benefits {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 8px !important;
    padding-top: 12px !important;
    border-top: 1px solid var(--cbic-border) !important;
    color: var(--cbic-muted) !important;
    font: 500 11px/1.2 "DM Sans", Arial, sans-serif !important;
}

.cbic-benefits span {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 5px !important;
    white-space: nowrap !important;
}

.cbic-benefits svg {
    width: 14px !important;
    height: 14px !important;
}

.cbic-empty {
    padding: 48px 24px !important;
    text-align: center !important;
    background: #fff !important;
    border: 1px solid var(--cbic-border) !important;
    border-radius: var(--cbic-radius) !important;
}

.cbic-empty h2 {
    margin: 0 0 8px !important;
    font-family: "Playfair Display", Georgia, serif !important;
}

.cbic-empty a {
    color: var(--cbic-pink) !important;
    font-weight: 700 !important;
}

.cbic-mini-cart {
    --cbic-text: #28211f;
    --cbic-muted: #8f817b;
    --cbic-border: #D0E4EE;
    --cbic-pink: #6EAAC8;
    width: 100% !important;
    display: flex !important;
    flex-direction: column !important;
    /* Occupe toute la hauteur disponible du panneau : les articles
       s'étirent, le pied de panier reste collé en bas. La hauteur exacte
       est affinée en JS (cart-script.js) quand le panneau est un
       off-canvas / popup, car la chaîne de parents Elementor n'a pas
       toujours de hauteur définie. */
    height: 100% !important;
    max-height: 100dvh !important;
    min-height: 0 !important;
    overflow: hidden !important;
    color: var(--cbic-text) !important;
    font-family: "DM Sans", Arial, sans-serif !important;
}

.cbic-mini-shipping {
    flex: 0 0 auto !important;
    margin: 0 0 22px !important;
    padding: 12px 20px 0 !important;
}

.cbic-mini-shipping__label {
    color: #60aa82 !important;
    font-size: 12px !important;
}

.cbic-mini-shipping__track {
    height: 5px !important;
}

.cbic-mini-cart__items {
    /* Prend TOUTE la place restante entre la barre de livraison et le
       pied de panier ; ne défile que si les articles débordent réellement
       (plus de hauteur maximale devinée à l'avance). */
    flex: 1 1 auto !important;
    min-height: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 24px !important;
    padding: 0 20px 20px !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: thin !important;
    scrollbar-color: #d9d2ce transparent !important;
}

.cbic-mini-cart__items::-webkit-scrollbar { width: 6px !important; }
.cbic-mini-cart__items::-webkit-scrollbar-track { background: transparent !important; }
.cbic-mini-cart__items::-webkit-scrollbar-thumb {
    background: #d9d2ce !important;
    border-radius: 999px !important;
}

.cbic-mini-item {
    display: grid !important;
    grid-template-columns: 92px minmax(0, 1fr) 70px !important;
    gap: 16px !important;
    align-items: center !important;
}

.cbic-mini-item__image {
    width: 92px !important;
    height: 82px !important;
    overflow: hidden !important;
    display: block !important;
    border-radius: 10px !important;
    background: #f7f2ef !important;
}

.cbic-mini-item__title,
.cbic-mini-item__title:visited {
    color: var(--cbic-text) !important;
    display: block !important;
    margin: 0 0 2px !important;
    font: 600 14px/1.2 "DM Sans", Arial, sans-serif !important;
    text-decoration: none !important;
}

.cbic-mini-item__meta {
    display: flex !important;
    flex-direction: column !important;
    margin: 0 0 8px !important;
    color: var(--cbic-muted) !important;
    font: 400 12px/1.25 "DM Sans", Arial, sans-serif !important;
}

.cbic-mini-item__meta span:nth-child(n+2) {
    color: var(--cbic-pink) !important;
}

.cbic-mini-item__side {
    min-height: 82px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-end !important;
    justify-content: space-between !important;
}

.cbic-mini-item__price {
    color: var(--cbic-text) !important;
    font: 700 14px/1.2 "DM Sans", Arial, sans-serif !important;
}

.cbic-mini-cart__footer {
    /* Toujours en bas : ne se comprime jamais et absorbe l'espace restant
       au-dessus de lui quand il y a peu d'articles. */
    flex: 0 0 auto !important;
    margin-top: auto !important;
    position: sticky !important;
    bottom: 0 !important;
    z-index: 2 !important;
    padding: 18px 20px !important;
    border-top: 1px solid var(--cbic-border) !important;
    background: #fff !important;
    box-shadow: 0 -6px 20px rgba(40, 33, 31, .07) !important;
}

.cbic-mini-cart__subtotal {
    margin: 0 0 14px !important;
}

.cbic-mini-cart__subtotal strong {
    color: var(--cbic-text) !important;
}

.cbic-mini-cart__continue,
.cbic-mini-cart__continue:visited {
    width: 100% !important;
    height: 48px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin-top: 12px !important;
    border: 2px solid #ded8d4 !important;
    border-radius: 999px !important;
    color: var(--cbic-text) !important;
    font: 600 15px/44px "DM Sans", Arial, sans-serif !important;
    text-decoration: none !important;
}

.cbic-mini-cart__empty {
    padding: 24px 20px !important;
    color: var(--cbic-muted) !important;
}

/* Supprimer tout padding/margin Elementor qui ferait dépasser le mini cart de l'écran */
.elementor-section:has(.cbic-mini-cart),
.elementor-container:has(.cbic-mini-cart),
.e-con:has(.cbic-mini-cart),
.e-con-inner:has(.cbic-mini-cart),
.elementor-column:has(.cbic-mini-cart) > .elementor-column-wrap,
.elementor-column:has(.cbic-mini-cart) > .elementor-column-wrap > .elementor-widget-wrap,
.elementor-widget-shortcode:has(.cbic-mini-cart),
.elementor-widget-shortcode:has(.cbic-mini-cart) > .elementor-widget-container {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    min-height: 0 !important;
    overflow: hidden !important;
    /* Relaie la hauteur jusqu'au mini panier pour qu'il puisse remplir le
       panneau (sans effet si un parent reste en hauteur automatique :
       le JS prend alors le relais). */
    height: 100% !important;
}

.cbic-cart-count {
    position: absolute !important;
    top: -8px !important;
    right: -8px !important;
    z-index: 5 !important;
    min-width: 18px !important;
    height: 18px !important;
    padding: 0 5px !important;
    border-radius: 999px !important;
    background: #6EAAC8 !important;
    color: #fff !important;
    box-shadow: 0 2px 8px rgba(110, 170, 200, .28) !important;
    font: 700 11px/18px "DM Sans", Arial, sans-serif !important;
    text-align: center !important;
    pointer-events: none !important;
}

.cbic-cart-count[data-cbic-cart-count="0"] {
    display: none !important;
}

@media (max-width: 980px) {
    .cbic-cart {
        padding: 18px 16px 30px !important;
    }

    .cbic-cart__grid {
        grid-template-columns: 1fr !important;
    }
}

@media (max-width: 640px) {
    .cbic-cart__head {
        margin-bottom: 24px !important;
    }

    .cbic-cart__head h1 {
        font-size: 29px !important;
    }

    .cbic-clear button {
        font-size: 0 !important;
    }

    .cbic-clear svg {
        width: 20px !important;
        height: 20px !important;
    }

    .cbic-shipping {
        margin-bottom: 22px !important;
    }

    .cbic-item {
        grid-template-columns: 86px minmax(0, 1fr) 58px !important;
        gap: 12px !important;
        min-height: 112px !important;
        padding: 12px !important;
    }

    .cbic-item__image {
        width: 86px !important;
        height: 86px !important;
    }

    .cbic-item__side {
        min-height: 86px !important;
    }

    .cbic-item__meta {
        min-height: 0 !important;
    }

    .cbic-qty {
        grid-template-columns: 30px 32px 30px !important;
    }

    .cbic-qty button {
        width: 30px !important;
        height: 30px !important;
        min-height: 30px !important;
    }

    .cbic-qty input {
        width: 32px !important;
    }

    .cbic-summary {
        padding: 22px 18px !important;
    }

    .cbic-coupon {
        grid-template-columns: 1fr !important;
    }

    .cbic-benefits {
        grid-template-columns: 1fr !important;
    }
}

@media (max-width: 430px) {
    .cbic-mini-item {
        grid-template-columns: 78px minmax(0, 1fr) 58px !important;
        gap: 12px !important;
    }

    .cbic-mini-item__image {
        width: 78px !important;
        height: 78px !important;
    }

    .cbic-mini-qty {
        grid-template-columns: 28px 30px 28px !important;
    }

    .cbic-mini-qty button {
        width: 28px !important;
        height: 28px !important;
        min-height: 28px !important;
    }

    .cbic-mini-qty input {
        width: 30px !important;
    }
}

/* ══════════════════════════════════════════════════════════════
   PANNEAU MINI PANIER AUTONOME (tiroir latéral)

   Conteneur en position fixed sur toute la hauteur de l'écran :
   la hauteur est donc toujours définie, sans dépendre d'Elementor.
   → en-tête figé, liste d'articles extensible et seule à défiler,
     boutons collés en bas.
   ══════════════════════════════════════════════════════════════ */
.cbic-drawer {
    --cbic-text: #28211f;
    --cbic-muted: #8f817b;
    --cbic-border: #D0E4EE;
    --cbic-pink: #6EAAC8;
    --cbic-pink-dark: #4D96B8;

    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    /* Hauteur réelle de la fenêtre, injectée en JS (--cbic-vh) : sur iOS,
       un élément fixed en `bottom: 0` peut passer SOUS la barre du
       navigateur. 100dvh sert de repli avant l'exécution du script. */
    height: var(--cbic-vh, 100dvh) !important;
    z-index: 999999 !important;
    visibility: hidden !important;
    font-family: "DM Sans", Arial, sans-serif !important;
}

/* Fermé = hors rendu (l'attribut `hidden` protège aussi tant que cette
   feuille de style n'est pas chargée) */
.cbic-drawer[hidden] { display: none !important; }

.cbic-drawer.is-open { visibility: visible !important; }

.cbic-drawer__overlay {
    position: absolute !important;
    inset: 0 !important;
    background: rgba(28, 22, 20, .45) !important;
    opacity: 0 !important;
    transition: opacity .3s ease !important;
    cursor: pointer !important;
}
.cbic-drawer.is-open .cbic-drawer__overlay { opacity: 1 !important; }

.cbic-drawer__panel {
    position: absolute !important;
    top: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: min(430px, 100%) !important;
    max-width: 100% !important;
    height: 100% !important;
    max-height: 100% !important;
    overflow: hidden !important;
    display: flex !important;
    flex-direction: column !important;
    background: #fff !important;
    box-shadow: -8px 0 40px rgba(0, 0, 0, .16) !important;
    transform: translateX(100%) !important;
    transition: transform .32s cubic-bezier(.4, 0, .2, 1) !important;
}
.cbic-drawer.is-open .cbic-drawer__panel { transform: translateX(0) !important; }

@media (prefers-reduced-motion: reduce) {
    .cbic-drawer__panel,
    .cbic-drawer__overlay { transition: none !important; }
}

/* En-tête figé */
.cbic-drawer__head {
    flex: 0 0 auto !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;
    padding: 18px 20px !important;
    border-bottom: 1px solid var(--cbic-border) !important;
}

.cbic-drawer__title {
    margin: 0 !important;
    padding: 0 !important;
    color: var(--cbic-text) !important;
    font: 700 20px/1.2 "Playfair Display", Georgia, serif !important;
}

.cbic-drawer__close {
    flex: 0 0 auto !important;
    width: 38px !important;
    height: 38px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    border: none !important;
    border-radius: 50% !important;
    background: transparent !important;
    color: var(--cbic-text) !important;
    cursor: pointer !important;
    transition: background .15s ease !important;
}
.cbic-drawer__close:hover { background: #f4efec !important; }
.cbic-drawer__close svg { width: 20px !important; height: 20px !important; }

/* Corps : hauteur réelle transmise au mini panier */
.cbic-drawer__body {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    display: flex !important;
    flex-direction: column !important;
}
.cbic-drawer__body .cbic-mini-cart {
    flex: 1 1 auto !important;
    height: 100% !important;
    min-height: 0 !important;
}
/* Dans notre tiroir, la barre de livraison a besoin d'un peu d'air en haut */
.cbic-drawer__body .cbic-mini-shipping { padding-top: 16px !important; }

/* Verrouillage du défilement de la page pendant l'ouverture */
html.cbic-drawer-open,
body.cbic-drawer-open {
    overflow: hidden !important;
    touch-action: none !important;
}

/* ── Bouton déclencheur [camibijoux_mini_cart] ───────────────── */
.cbic-cart-trigger {
    position: relative !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 8px !important;
    border: none !important;
    background: transparent !important;
    color: inherit !important;
    font-family: inherit !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    line-height: 1 !important;
    cursor: pointer !important;
}
.cbic-cart-trigger__icon {
    display: inline-flex !important;
    width: 24px !important;
    height: 24px !important;
}
.cbic-cart-trigger__icon svg { width: 100% !important; height: 100% !important; }
.cbic-cart-trigger .cbic-cart-count {
    position: absolute !important;
    top: 0 !important;
    left: 22px !important;
    min-width: 18px !important;
    height: 18px !important;
    padding: 0 5px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 999px !important;
    background: var(--cbic-pink, #6EAAC8) !important;
    color: #fff !important;
    font-size: 11px !important;
    font-weight: 700 !important;
}

/* ── Responsive ──────────────────────────────────────────────── */
@media (max-width: 520px) {
    .cbic-drawer__panel { width: 100% !important; }
    .cbic-drawer__head { padding: 16px !important; }
    .cbic-drawer__title { font-size: 18px !important; }
    .cbic-drawer__body .cbic-mini-cart__items { padding-left: 16px !important; padding-right: 16px !important; gap: 18px !important; }
    .cbic-drawer__body .cbic-mini-cart__footer { padding: 14px 16px calc(14px + env(safe-area-inset-bottom)) !important; }
    .cbic-drawer__body .cbic-mini-shipping { padding-left: 16px !important; padding-right: 16px !important; }
}

/* ══════════════════════════════════════════════════════════════
   GARANTIE « BOUTONS TOUJOURS VISIBLES »

   Sur une fenêtre très basse (mobile en paysage, petit portable),
   l'en-tête + la barre de livraison + le pied de panier peuvent à eux
   seuls dépasser la hauteur disponible : la liste d'articles a beau se
   réduire à zéro, le dernier bouton passerait sous la ligne de flottaison.

   Le script mesure donc réellement la position du pied de panier et
   applique, si besoin, un ou deux niveaux de compactage. Ce n'est pas
   une estimation : la mesure est refaite à chaque ouverture, chaque
   changement de quantité et chaque redimensionnement.
   ══════════════════════════════════════════════════════════════ */

/* ── Niveau 1 : on récupère la place des éléments secondaires ── */
.cbic-mini-cart.is-compact .cbic-mini-shipping { display: none !important; }

.cbic-drawer:has(.cbic-mini-cart.is-compact) .cbic-drawer__head {
    padding-top: 11px !important;
    padding-bottom: 11px !important;
}
.cbic-drawer:has(.cbic-mini-cart.is-compact) .cbic-drawer__title { font-size: 17px !important; }

.cbic-mini-cart.is-compact .cbic-mini-cart__items {
    gap: 14px !important;
    padding-bottom: 12px !important;
}
.cbic-mini-cart.is-compact .cbic-mini-item { grid-template-columns: 64px minmax(0, 1fr) 64px !important; }
.cbic-mini-cart.is-compact .cbic-mini-item__image { width: 64px !important; height: 60px !important; }
.cbic-mini-cart.is-compact .cbic-mini-item__side { min-height: 60px !important; }
.cbic-mini-cart.is-compact .cbic-mini-item__meta { margin-bottom: 5px !important; }

.cbic-mini-cart.is-compact .cbic-mini-cart__footer { padding: 12px 20px !important; }
.cbic-mini-cart.is-compact .cbic-mini-cart__subtotal { margin-bottom: 10px !important; }
.cbic-mini-cart.is-compact .cbic-mini-cart__checkout { height: 46px !important; line-height: 46px !important; }
.cbic-mini-cart.is-compact .cbic-mini-cart__continue {
    height: 42px !important;
    margin-top: 8px !important;
    font-size: 14px !important;
    line-height: 38px !important;
}

/* ── Niveau 2 : le strict nécessaire reste visible ───────────── */
.cbic-mini-cart.is-tight .cbic-mini-cart__footer { padding: 10px 20px !important; }
.cbic-mini-cart.is-tight .cbic-mini-cart__subtotal {
    margin-bottom: 8px !important;
    font-size: 14px !important;
}
.cbic-mini-cart.is-tight .cbic-mini-cart__checkout { height: 44px !important; line-height: 44px !important; }
/* Le bouton secondaire devient un simple lien : on gagne ~50 px */
.cbic-mini-cart.is-tight .cbic-mini-cart__continue {
    height: auto !important;
    min-height: 0 !important;
    margin-top: 7px !important;
    padding: 0 !important;
    border: 0 !important;
    font: 500 13px/1.2 "DM Sans", Arial, sans-serif !important;
    text-decoration: underline !important;
    color: var(--cbic-muted, #8f817b) !important;
}

.cbic-drawer:has(.cbic-mini-cart.is-tight) .cbic-drawer__head {
    padding-top: 8px !important;
    padding-bottom: 8px !important;
}
.cbic-drawer:has(.cbic-mini-cart.is-tight) .cbic-drawer__title { font-size: 16px !important; }
.cbic-drawer:has(.cbic-mini-cart.is-tight) .cbic-drawer__close { width: 32px !important; height: 32px !important; }

/* La liste doit pouvoir se réduire jusqu'à disparaître : c'est elle qui
   cède la place, jamais les boutons. */
.cbic-mini-cart__items { flex-shrink: 1 !important; }

/* ══════════════════════════════════════════════════════════════
   NOTIFICATION « AJOUTÉ AU PANIER »
   Remplace le bandeau natif de WooCommerce (supprimé côté PHP).
   ══════════════════════════════════════════════════════════════ */
.cbic-toasts {
    position: fixed !important;
    top: 20px !important;
    right: 20px !important;
    z-index: 1000001 !important;   /* au-dessus du tiroir panier */
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
    width: min(360px, calc(100vw - 40px)) !important;
    pointer-events: none !important; /* les clics passent à travers le vide */
    font-family: "DM Sans", Arial, sans-serif !important;
}

.cbic-toast {
    --cbic-text: #28211f;
    --cbic-muted: #8f817b;
    --cbic-pink: #6EAAC8;
    --cbic-green: #3f9d6d;

    position: relative !important;
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    padding: 14px !important;
    border-radius: 14px !important;
    background: #fff !important;
    box-shadow: 0 10px 34px rgba(40, 33, 31, .16) !important;
    overflow: hidden !important;
    pointer-events: auto !important;
    opacity: 0 !important;
    transform: translateX(24px) !important;
    transition: opacity .28s ease, transform .28s cubic-bezier(.4, 0, .2, 1) !important;
}
.cbic-toast.is-visible { opacity: 1 !important; transform: translateX(0) !important; }

@media (prefers-reduced-motion: reduce) {
    .cbic-toast { transition: opacity .2s ease !important; transform: none !important; }
}

/* Pastille de validation */
.cbic-toast__check {
    flex: 0 0 auto !important;
    width: 26px !important;
    height: 26px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 50% !important;
    background: var(--cbic-green) !important;
    color: #fff !important;
}
.cbic-toast__check svg { width: 14px !important; height: 14px !important; }

/* Vignette produit */
.cbic-toast__thumb {
    flex: 0 0 auto !important;
    width: 46px !important;
    height: 46px !important;
    border-radius: 9px !important;
    overflow: hidden !important;
    background: #f7f2ef !important;
}
.cbic-toast__thumb img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block !important;
}

.cbic-toast__body {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 2px !important;
}
.cbic-toast__title {
    color: var(--cbic-text) !important;
    font: 700 14px/1.25 "DM Sans", Arial, sans-serif !important;
}
.cbic-toast__text {
    color: var(--cbic-muted) !important;
    font: 400 13px/1.3 "DM Sans", Arial, sans-serif !important;
    /* Nom de produit long : 2 lignes maxi, sans casser la mise en page */
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
}
.cbic-toast__action {
    align-self: flex-start !important;
    margin: 5px 0 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: none !important;
    color: var(--cbic-pink) !important;
    font: 600 13px/1.2 "DM Sans", Arial, sans-serif !important;
    text-decoration: underline !important;
    text-underline-offset: 2px !important;
    cursor: pointer !important;
}
.cbic-toast__action:hover { color: #4D96B8 !important; }

.cbic-toast__close {
    flex: 0 0 auto !important;
    align-self: flex-start !important;
    width: 24px !important;
    height: 24px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    border: 0 !important;
    background: none !important;
    color: #b6aca7 !important;
    cursor: pointer !important;
}
.cbic-toast__close:hover { color: var(--cbic-text) !important; }
.cbic-toast__close svg { width: 14px !important; height: 14px !important; }

/* Minuterie visuelle avant fermeture automatique */
.cbic-toast__timer {
    position: absolute !important;
    left: 0 !important;
    bottom: 0 !important;
    height: 3px !important;
    width: 100% !important;
    transform-origin: left center !important;
    background: var(--cbic-pink) !important;
    opacity: .5 !important;
    animation: cbic-toast-timer 5s linear forwards !important;
}
.cbic-toast:hover .cbic-toast__timer { animation-play-state: paused !important; }

@keyframes cbic-toast-timer {
    from { transform: scaleX(1); }
    to   { transform: scaleX(0); }
}

/* Mobile : bandeau en haut, pleine largeur */
@media (max-width: 520px) {
    .cbic-toasts {
        top: 12px !important;
        left: 12px !important;
        right: 12px !important;
        width: auto !important;
    }
    .cbic-toast { transform: translateY(-16px) !important; }
    .cbic-toast.is-visible { transform: translateY(0) !important; }
}

/* Le message natif est vidé côté PHP : on s'assure qu'aucun bandeau
   vide ne subsiste (WooCommerce n'écarte pas les notices sans texte). */
.woocommerce-message:empty,
.woocommerce-info:empty,
.woocommerce-error:empty { display: none !important; }
