/* ── Icône panier (en-tête) ── */
.cart-link {
    position: relative;
    display: inline-flex; align-items: center; justify-content: center;
    width: 40px; height: 40px; border-radius: 50%;
    border: 1px solid rgba(197,160,89,.4);
    color: #c5a059; text-decoration: none;
    transition: background .25s, border-color .25s;
}
.cart-link:hover { background: rgba(197,160,89,.12); border-color: #c5a059; }
.cart-link i { font-size: .95rem; }
.cart-count {
    position: absolute; top: -5px; right: -5px;
    min-width: 19px; height: 19px; padding: 0 5px;
    border-radius: 10px; background: #c5a059; color: #0f0d0b;
    font-family: 'Montserrat', sans-serif; font-size: .62rem; font-weight: 700;
    display: flex; align-items: center; justify-content: center;
}
.cart-count[hidden] { display: none; }
.cart-link.bump { animation: cartBump .45s ease; }
@keyframes cartBump { 30% { transform: scale(1.18); } 60% { transform: scale(.95); } }

/* ── Pop-up « ajouté au panier » ── */
.cart-modal {
    position: fixed; inset: 0; z-index: 300;
    display: flex; align-items: center; justify-content: center;
    padding: 16px;
    background: rgba(0,0,0,.7); backdrop-filter: blur(4px);
    opacity: 0; visibility: hidden;
    transition: opacity .25s, visibility .25s;
}
.cart-modal.open { opacity: 1; visibility: visible; }
body.cart-modal-lock { overflow: hidden; }

.cart-modal-box {
    position: relative;
    width: min(440px, 100%);
    background: #15120f; color: #f5efe5;
    border: 1px solid rgba(197,160,89,.35); border-radius: 18px;
    box-shadow: 0 24px 70px rgba(0,0,0,.6);
    padding: 36px 30px 28px;
    text-align: center;
    font-family: 'Montserrat', sans-serif;
    transform: translateY(14px) scale(.97);
    transition: transform .25s ease;
}
.cart-modal.open .cart-modal-box { transform: none; }

.cart-modal-close {
    position: absolute; top: 12px; right: 14px;
    background: transparent; border: 0;
    color: rgba(245,239,229,.5); font-size: 1.6rem; line-height: 1; cursor: pointer;
}
.cart-modal-close:hover { color: #c5a059; }

.cart-modal-icon {
    width: 56px; height: 56px; margin: 0 auto 16px;
    border-radius: 50%; display: grid; place-items: center;
    background: rgba(111,207,151,.12); border: 1px solid rgba(111,207,151,.35);
    color: #6fcf97; font-size: 1.3rem;
}
.cart-modal h3 {
    font-family: 'Playfair Display', serif;
    font-size: 1.4rem; margin-bottom: 18px;
}

.cart-modal-item {
    display: flex; align-items: center; gap: 14px;
    text-align: left;
    background: rgba(255,255,255,.03);
    border: 1px solid rgba(197,160,89,.15); border-radius: 12px;
    padding: 10px; margin-bottom: 12px;
}
.cart-modal-item img {
    width: 56px; height: 70px; object-fit: cover; object-position: center top;
    border-radius: 8px; flex-shrink: 0;
}
.cart-modal-item img[hidden] { display: none; }
.cart-modal-msg { font-size: .85rem; font-weight: 600; line-height: 1.5; }
.cart-modal-summary { font-size: .78rem; color: #c5a059; margin-bottom: 20px; }
.cart-modal-question { font-size: .8rem; color: rgba(245,239,229,.65); margin-bottom: 14px; }

.cart-modal-actions, .cart-modal-error-actions { display: flex; gap: 10px; }
.cart-btn-gold, .cart-btn-ghost {
    flex: 1;
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    padding: 14px 12px; border-radius: 10px;
    font-family: inherit; font-size: .66rem; font-weight: 700;
    letter-spacing: 1px; text-transform: uppercase; white-space: nowrap;
    text-decoration: none; cursor: pointer;
    transition: background .25s, border-color .25s;
}
.cart-btn-gold { background: #c5a059; color: #0f0d0b; border: 1px solid #c5a059; }
.cart-btn-gold:hover { background: #d4b06a; }
.cart-btn-ghost { background: transparent; color: #c5a059; border: 1px solid rgba(197,160,89,.4); }
.cart-btn-ghost:hover { background: rgba(197,160,89,.1); border-color: #c5a059; }
.cart-btn-gold:focus-visible, .cart-btn-ghost:focus-visible, .cart-modal-close:focus-visible {
    outline: 2px solid #c5a059; outline-offset: 2px;
}

/* Variante erreur */
.cart-modal-error-actions { display: none; }
.cart-modal.is-error .cart-modal-icon { background: rgba(235,87,87,.12); border-color: rgba(235,87,87,.4); color: #f2a3a3; }
.cart-modal.is-error .cart-modal-item { border-color: rgba(235,87,87,.25); }
.cart-modal.is-error .cart-modal-summary,
.cart-modal.is-error .cart-modal-question,
.cart-modal.is-error .cart-modal-actions { display: none; }
.cart-modal.is-error .cart-modal-error-actions { display: flex; margin-top: 8px; }

@media (max-width: 420px) {
    .cart-modal-box { padding: 32px 18px 20px; }
    .cart-modal-actions { flex-direction: column-reverse; }
}

