.cart-grid{margin-bottom:1rem}.cart-items{margin-bottom:0}.cart-item{padding:1rem 0}.cart-item+.cart-item{border-top:1px solid var(--gray-light)}.card-block{padding:1.25rem 1.25rem 0.5rem}@media screen and (max-width: 991px){.card-block{padding:1.25rem 0 0.5rem}}.card-block.checkout{padding-top:0;padding-bottom:1.75rem}.card-block.checkout .btn-primary{width:100%}.card-block.cart-detailed-subtotals+.cart-summary-totals .cart-total{border-top:1px solid var(--border-gray)}.card-block.cart-summary-totals{padding:0 1.25rem 0.825rem}@media screen and (max-width: 991px){.card-block.cart-summary-totals{padding:0 0 0.825rem}}.card-block.cart-summary-totals .cart-summary-line{padding:0.5rem 0.2rem 0}.card-block.cart-summary-totals .cart-summary-line:last-child{margin-bottom:0}.card-block.cart-summary-totals .cart-summary-line.cart-total{padding:1rem 0}.card-block.cart-summary-totals .cart-summary-line.cart-total .label,.card-block.cart-summary-totals .cart-summary-line.cart-total .value{font-weight:700}.card-block.cart-summary-totals .cart-summary-line.cart-total .label{font-size:1rem}.card-block.cart-summary-totals .cart-summary-line.cart-total .value{font-size:1rem}.card-block.cart-summary-totals .cart-summary-line span.sub{float:none;font-size:0.88rem;text-align:left}.cart-summary-line{margin-bottom:0.315rem;clear:both}.cart-summary-line:not(:last-child){margin-bottom:1rem}.cart-summary-line .label{padding-left:0;font-weight:400;color:var(--gray-dark);white-space:inherit}.cart-summary-line .value{float:right;font-weight:700;color:var(--gray-darker)}.cart-summary-line.cart-summary-subtotals .label,.cart-summary-line.cart-summary-subtotals .value{font-weight:400}.cart-summary-line .label,.cart-summary-line .value{font-size:1rem}.cart-grid-body{margin-bottom:0.75rem}@media screen and (max-width: 425px){.cart-grid-body .cart-container{margin:0}}.cart-grid-body a.label:hover{color:var(--brand-primary)}.cart-grid-body .card-block{padding:1rem}.cart-grid-body .card-block h1{margin-bottom:0;font-size:1.5rem;font-weight:400}.cart-grid-body .cart-overview{padding:1rem}@media screen and (max-width: 991px){.cart-grid-body .cart-overview{padding:1rem 0}}.cart-grid-right .promo-discounts{padding-top:0.5rem;padding-bottom:0.5rem;margin-bottom:0;text-align:center}.cart-grid-right .promo-discounts .cart-summary-line .label{font-size:1rem;color:var(--gray)}.cart-grid-right .promo-discounts .cart-summary-line .label .code{color:var(--warning-second);cursor:pointer}.cart-grid-right .cart-summary-line.cart-subtotal-products .label,.cart-grid-right .cart-summary-line.cart-subtotal-products .value{font-weight:700}.cart-grid-right .cart-summary-line.cart-subtotal-products .value{font-size:1rem}@media screen and (max-width: 425px){.cart-grid-right .cart-summary{margin:0}}.block-promo{margin-bottom:1rem}.block-promo .promo-code{padding:1rem}.block-promo .promo-code .alert-danger{position:relative;display:none;margin-top:1.25rem;color:var(--white);background:var(--brand-danger)}.block-promo .promo-code .alert-danger::after{position:absolute;bottom:100%;left:10%;width:0;height:0;margin-left:-10px;pointer-events:none;content:" ";border:solid transparent;border-width:10px;border-bottom-color:var(--brand-danger)}.block-promo .promo-code form{text-align:center}.block-promo .promo-input{width:50%;height:2.5rem;margin-right:-0.24rem;color:var(--gray-darker);text-indent:0.625rem;border:var(--gray) 1px solid}.block-promo .promo-input+button{margin-top:-4px;margin-left:-1px;text-transform:capitalize;border:2px solid var(--brand-primary)}.block-promo .cart-summary-line .label,.block-promo .promo-name{margin-bottom:0;font-weight:700;color:var(--brand-warning)}.block-promo .cart-summary-line .label a,.block-promo .promo-name a{display:inline-block;font-weight:400;color:var(--gray-darker)}.block-promo .promo-name .cart-summary-line .label{font-weight:400;color:var(--gray-dark)}.block-promo .promo-name .cart-summary-line span{color:var(--warning-second)}.block-promo .promo-name .material-icons{margin-left:0.4rem;font-size:1.2rem}.block-promo .promo-code-button{display:block;padding:0 0 1rem;text-align:center}.block-promo .promo-code-button.with-discounts{display:none}.block-promo .promo-code-button.cancel-promo{margin-bottom:0;color:var(--brand-primary)}.block-promo .promo-code-button.cancel-promo[aria-expanded="true"]{display:block;padding:0;margin-top:1rem}.block-promo.promo-highlighted{padding:0 1rem;margin-bottom:0;text-align:center}.block-promo p{margin-bottom:0}.product-line-grid-left .product-image{display:block}.product-line-grid-left img{max-width:100%;display:block}@media screen and (max-width: 575px){.product-line-grid-left{margin-bottom:10px}.product-line-grid-left img{margin:0 auto}}.product-prices{margin-top:var(--medium-space)}.product-prices div{margin-bottom:0.625rem}.product-prices .tax-shipping-delivery-label{font-size:0.8125rem;color:var(--gray)}.product-prices .tax-shipping-delivery-label .delivery-information{padding:0 0 0 2px;font-weight:700}.product-prices .tax-shipping-delivery-label .delivery-information::before{padding:0 2px 0 0;content:"-"}.product-discount{color:var(--gray-darker)}.product-discount .regular-price{margin-right:var(--small-space);font-weight:700;text-decoration:line-through;font-size:14px}.has-discount.product-price,.has-discount p{color:var(--gray-darker)}.has-discount .discount{display:inline-block;padding:0.3125rem 0.4375rem;margin-top:var(--small-space);font-size:18px;font-weight:700;color:var(--gray-darker);text-transform:uppercase;background:var(--discount-color)}.product-unit-price{margin-bottom:0;font-size:var(--font-size-xs);color:var(--brand-primary)}.product-line-grid-body>.product-line-info>.label{padding:0;font-weight:700;line-height:inherit;text-align:left;white-space:inherit}.product-line-grid-body>.product-line-info>.out-of-stock{color:#f00}.product-line-grid-body>.product-line-info>.available{color:var(--brand-success)}.product-line-grid-body>.product-line-info>.unit-price-cart{padding-left:0.3125rem;font-size:0.875rem;color:var(--gray)}.product-line-grid-body>.product-line-info.product-line-attributs{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.product-line-grid-body>.product-line-info.product-line-attributs>div>.label{padding:0;font-weight:700;line-height:inherit;text-align:left;white-space:inherit}.product-line-grid-body>.product-line-info.product-line-attributs>div+div:before{content:'-';margin:0 5px}.product-line-grid-right .cart-line-product-actions,.product-line-grid-right .product-price{line-height:36px;color:var(--gray-darker)}.product-line-grid-right .cart-line-product-actions .remove-from-cart,.product-line-grid-right .product-price .remove-from-cart{display:inline-block;margin-top:0.3125rem;color:var(--gray-darker)}@media (max-width: 767px){.product-line-grid-body{margin-bottom:1rem}}@media (max-width: 575px){.cart-items{padding:1rem 0}.cart-item{border-bottom:1px solid var(--gray-light)}.cart-item:last-child{border-bottom:0}.cart-grid-body .cart-overview{padding:0}.cart-grid-body .no-items{display:inline-block;padding:1rem}.product-line-grid-left{padding-right:0 !important}}@media (max-width: 575px){.product-line-grid .product-line-grid-left,.product-line-grid .product-line-grid-body,.product-line-grid .product-line-grid-right{padding:0 !important}.product-line-grid .product-line-grid-right .hidden-md-up{display:none}.product-line-grid .product-line-grid-right .col-xs-2{width:50%}}@media (max-width: 360px){.product-line-grid-right .qty{width:100%}.product-line-grid-right .price{width:100%}}.product-line-grid{display: flex;}.product-line-grid .product-line-grid-right{display: flex;flex-direction: column;}.product-line-grid-right .product-delivery{font-size: 12px;text-transform: uppercase;color: var(--white);border-radius: 4px;margin-left: auto;margin-top: auto;display: block;width: fit-content;width: -moz-fit-content;padding: 2px 5px;background: var(--brand-success);}.product-line-grid-right .product-delivery.available-later{background: var(--brand-warning);}@media(max-width: 768px){.product-line-grid{display: initial;}.product-line-grid .product-line-grid-right{flex-direction: column-reverse;}.product-line-grid-right .product-delivery{margin-left: calc(33.333% + 10px);margin-bottom: 5px;}}@media (max-width: 575px){.product-line-grid-right .product-delivery{margin-left: 0;}}


/* ── Titre ── */
#cart .cart-title {
  display: flex;
  align-items: baseline;
  gap: 12px;
  flex-wrap: wrap;
  margin: 8px 0 28px;
  font-size: 1.7rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .01em;
  color: #1a1a2e;
}

#cart .cart-title .cart-count-text {
  font-size: .85rem;
  font-weight: 600;
  text-transform: none;
  letter-spacing: 0;
  color: var(--gray-500);
}
#cart .cart-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 380px;
  gap: 48px;
  align-items: start;
  margin: 0;
}

#cart .cart-layout > .cart-grid-body,
#cart .cart-layout > .cart-grid-right {
  min-width: 0;
  width: auto;
  max-width: none;
  padding: 0;
  margin: 0;
  float: none;
}

/* Panier vide : le récapitulatif reste dans le DOM (ps_checkout y cherche
   .cart-detailed-actions au chargement), seule la colonne est masquée. */
#cart .cart-layout-empty {
  grid-template-columns: minmax(0, 1fr);
}

#cart .cart-layout-empty > .cart-grid-right {
  display: none;
}

/* ── Liste des articles ── */
#cart .cart-overview {
  padding: 0;
}

#cart .cart-items {
  display: flex;
  flex-direction: column;
  padding: 0;
  margin: 0;
  list-style: none;
}

#cart .cart-item {
  padding: 24px 0;
  border-bottom: 1px solid var(--gray-200);
}

#cart .cart-item:first-child {
  padding-top: 0;
}

#cart .cart-item-inner {
  display: flex;
  gap: 20px;
  align-items: flex-start;
}

/* ── Visuel ── */
#cart .cart-item-img {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 110px;
  height: 110px;
  padding: 0;
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--gray-200);
  border-radius: var(--radius);
  transition: opacity .2s;
}

#cart .cart-item-img img {
  width: 100%;
  height: 100%;
  padding: 10px;
  object-fit: contain;
  transition: opacity .2s;
}

#cart .cart-item-img:hover img {
  opacity: .8;
}

/* ── Corps de ligne ── */
#cart .cart-item-body {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-width: 0;
  padding: 0;
}

#cart .cart-item-top {
  display: flex;
  justify-content: space-between;
  gap: 16px;
}

#cart .cart-item-heading {
  min-width: 0;
}

#cart .cart-item-brand {
  font-size: .68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--gray-500);
}

#cart .cart-item-name {
  margin: 3px 0 6px;
}

#cart .cart-item-name a.label {
  display: block;
  padding: 0;
  font-size: .95rem;
  font-weight: 700;
  line-height: 1.3;
  text-align: left;
  color: #1a1a1a;
  text-decoration: none;
  transition: color .2s;
}

#cart .cart-item-name a.label:hover {
  color: var(--accent);
}

#cart .product-line-attributs {
  display: flex;
  flex-wrap: wrap;
  gap: 0 10px;
}

#cart .cart-item-variant {
  font-size: .78rem;
  color: var(--gray-500);
}

#cart .cart-item-variant .label,
#cart .cart-item-variant .value {
  padding: 0;
  font-size: inherit;
  font-weight: 400;
  text-align: left;
  color: inherit;
}

#cart .cart-item-stock-alert {
  display: flex;
  align-items: center;
  gap: 5px;
  margin-top: 7px;
  font-size: .74rem;
  font-weight: 700;
  color: #d9750c;
}

#cart .cart-item-stock-alert svg {
  flex-shrink: 0;
  width: 13px;
  height: 13px;
}

/* ── Suppression ── */
#cart .cart-item-remove {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 30px;
  height: 30px;
  color: var(--gray-500);
  border-radius: 50%;
  transition: background .2s, color .2s;
}

#cart .cart-item-remove:hover {
  color: #b3261e;
  background: #fdecea;
}

#cart .cart-item-remove svg {
  width: 17px;
  height: 17px;
}

/* ── Bas de ligne : quantité + prix ── */
#cart .cart-item-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 16px;
}

/* Stepper de quantité : le markup vient de bootstrap-touchspin, remis à plat
   (− valeur +) comme sur la fiche produit, sans toucher aux classes du plugin. */
#cart .qty-stepper {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  width: auto;
  overflow: hidden;
  border: 1.5px solid var(--gray-200);
  border-radius: 50px;
}

#cart .qty-stepper .input-group.bootstrap-touchspin {
  display: flex;
  align-items: center;
  width: auto;
  border: none;
  background: none;
}

#cart .qty-stepper .bootstrap-touchspin-prefix,
#cart .qty-stepper .bootstrap-touchspin-postfix {
  display: none !important;
}

#cart .qty-stepper .js-cart-line-product-quantity,
#cart .qty-stepper .gift-quantity {
  display: block;
  flex: 0 0 auto;
  float: none;
  width: 44px;
  min-width: 30px;
  height: auto;
  padding: 0;
  font-size: 1rem;
  font-weight: 800;
  text-align: center;
  color: #1a1a1a;
  background: none;
  border: none;
  box-shadow: none;
  -moz-appearance: textfield;
}

#cart .qty-stepper .js-cart-line-product-quantity::-webkit-outer-spin-button,
#cart .qty-stepper .js-cart-line-product-quantity::-webkit-inner-spin-button {
  margin: 0;
  -webkit-appearance: none;
}

/* Le groupe vertical devient transparent : ses deux boutons passent en enfants
   directs du flex, l'un avant l'input, l'autre après. */
#cart .qty-stepper .input-group-btn-vertical {
  display: contents;
}

#cart .qty-stepper .btn-touchspin {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  min-width: 44px;
  height: 44px;
  padding: 0;
  margin: 0;
  color: var(--primary);
  background: transparent;
  border: none;
  border-radius: 0;
  box-shadow: none;
  transition: background .15s, color .15s;
}

#cart .qty-stepper .bootstrap-touchspin-down { order: -1; }
#cart .qty-stepper .bootstrap-touchspin-up { order: 1; }

#cart .qty-stepper .btn-touchspin:hover { background: var(--gray-100); }
#cart .qty-stepper .btn-touchspin:active { background: var(--gray-200); color: var(--accent); }

#cart .qty-stepper .btn-touchspin .material-icons {
  position: static;
  width: auto;
  height: auto;
  font-size: 0;
  line-height: 1;
}

/* Les glyphes viennent de .material-icons : on force la police du thème, sinon
   « + » / « − » ne s'affichent que via la fallback de Material Icons. */
#cart .qty-stepper .btn-touchspin .touchspin-up::after,
#cart .qty-stepper .btn-touchspin .touchspin-down::after {
  font-family: var(--font-custom);
  font-size: 1.3rem;
  font-weight: 700;
  line-height: 1;
}

#cart .qty-stepper .btn-touchspin .touchspin-up::after { content: '+'; }
#cart .qty-stepper .btn-touchspin .touchspin-down::after { content: '\2212'; }

/* Prix de ligne : unitaires, comme la maquette. Le total de ligne n'apparaît
   que lorsqu'il diffère du prix unitaire (quantité > 1). */
#cart .cart-item-price {
  display: block;
  margin: 0;
  text-align: right;
  white-space: nowrap;
}

#cart .cart-item-price .price-old {
  display: inline-block;
  margin: 0 4px 0 0;
  font-size: .74rem;
  font-weight: 400;
  color: var(--gray-500);
  text-decoration: line-through;
}

#cart .cart-item-price .discount {
  display: inline-block;
  padding: 1px 5px;
  margin: 0;
  font-size: .66rem;
  font-weight: 700;
  text-transform: none;
  color: #fff;
  background: var(--promo);
  border-radius: 3px;
  vertical-align: 1px;
}

#cart .cart-item-price .price-new {
  display: block;
  font-size: 1.02rem;
  font-weight: 800;
  color: var(--primary);
}

#cart .cart-item-price .unit-price-cart,
#cart .cart-item-price .cart-item-line-total {
  display: block;
  padding: 0;
  font-size: .74rem;
  color: var(--gray-500);
}

#cart .cart-item-price .cart-item-line-total strong {
  color: #1a1a1a;
}

#cart .cart-item-customization-link {
  display: inline-block;
  margin-top: 10px;
  font-size: .78rem;
  color: var(--gray-500);
  text-decoration: underline;
}

/* ── Continuer mes achats ── */
#cart .cart-continue {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 24px;
  font-size: .85rem;
  font-weight: 700;
  color: var(--primary);
  text-decoration: none;
}

#cart .cart-continue:hover {
  color: var(--accent);
  text-decoration: none;
}

#cart .cart-continue svg {
  width: 16px;
  height: 16px;
}

#cart .cart-extra-info [id^="static_content_wrapper"] {
  padding: 18px 20px;
  font-size: .82rem;
  line-height: 1.55;
  color: var(--text-color);
  background: var(--gray-100);
  border-radius: var(--radius);
}

#cart .cart-extra-info [id^="static_content_wrapper"] h3 {
  margin: 0 0 8px;
  font-size: .92rem;
  font-weight: 800;
  color: #1a1a2e;
}

#cart .cart-extra-info [id^="static_content_wrapper"] h3:empty {
  display: none;
}

#cart .cart-extra-info [id^="static_content_wrapper"] p:last-child {
  margin-bottom: 0;
}

#cart .cart-extra-info .alma-widget-container {
  margin-top: 16px;
}

/* ── Récapitulatif ── */
#cart .cart-layout > .cart-grid-right{
    position: sticky;
    top: 0;
}
#cart .cart-summary {
  display: block;
  padding: 26px;
  margin: 0;
  background: #fff;
  border: 1px solid var(--gray-200);
  border-radius: 12px;
  box-shadow: var(--shadow);
}

#cart .cart-summary-title {
  margin: 0 0 18px;
  font-size: 1.05rem;
  font-weight: 800;
  color: #1a1a2e;
}

#cart .cart-detailed-totals,
#cart .cart-subtotals,
#cart .cart-summary-totals {
  padding: 0;
  margin: 0;
}

/* Équivalent de .summary-row : le legacy fait flotter .value, à remettre en flex. */
#cart .cart-summary-line {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 0 12px;
  padding: 7px 0;
  margin: 0;
  clear: none;
  font-size: .86rem;
  color: #444;
}

#cart .cart-summary-line .label,
#cart .cart-summary-line .value {
  float: none;
  padding: 0;
  font-size: inherit;
  color: inherit;
}

#cart .cart-summary-line .value {
  font-weight: 600;
  text-align: right;
}

/* La ligne « Livraison » porte une phrase entière tant que l'adresse est inconnue :
   seuls les montants restent insécables. */
#cart .cart-summary-line.cart-total .value,
#cart #cart-subtotal-products .value {
  white-space: nowrap;
}

/* Livraison gratuite (maquette_cart .summary-row .text-accent) */
#cart #cart-subtotal-shipping .value.cart-shipping-offered {
  font-weight: 700;
  color: var(--success, #2a9d5c);
}

#cart .cart-summary-line .label.sub,
#cart .cart-summary-line .value.sub {
  font-size: .78rem;
  color: var(--gray-500);
}

#cart .cart-summary-totals .cart-summary-line.cart-total {
  padding-top: 16px;
  margin-top: 8px;
  font-size: 1.05rem;
  font-weight: 800;
  color: #1a1a1a;
  border-top: 1.5px solid var(--gray-200);
}

#cart .cart-summary-totals .cart-summary-line.cart-total .label,
#cart .cart-summary-totals .cart-summary-line.cart-total .value {
  font-size: inherit;
  font-weight: 800;
  color: inherit;
}

/* ── Code promo ──
   La maquette montre le champ en permanence : les déclencheurs du collapse
   (« Vous avez un code promo ? » / « Fermer ») sont masqués et #promo-code est
   forcé ouvert. Le bundle (_dev/js/cart.js) peut encore appeler .show() sur
   .display-promo, d'où le !important. */
#cart .block-promo {
  margin: 16px 0 4px;
}

/* Le rafraîchissement AJAX remplace .cart-voucher par le template entier, dont la
   racine est .block-promo : le bloc se retrouve imbriqué une fois (comportement
   PrestaShop, stable à un niveau). La marge ne doit pas se cumuler. */
#cart .block-promo .block-promo {
  margin: 0;
}

#cart .block-promo .promo-code-button {
  display: none !important;
}

#cart #promo-code.collapse {
  display: block;
  height: auto;
  visibility: visible;
}

#cart .block-promo .promo-code {
  padding: 0;
}

#cart .block-promo .promo-code form {
  display: flex;
  gap: 8px;
  text-align: left;
}

#cart .block-promo .promo-input {
  flex: 1;
  width: auto;
  min-width: 0;
  height: auto;
  padding: 10px 14px;
  margin: 0;
  font-family: inherit;
  font-size: .85rem;
  text-indent: 0;
  color: var(--text-color);
  border: 1.5px solid var(--gray-200);
  border-radius: var(--radius);
  outline: none;
  transition: border-color .2s;
}

#cart .block-promo .promo-input:focus {
  border-color: var(--accent);
}

#cart .block-promo .promo-code form button {
  flex-shrink: 0;
  padding: 0 16px;
  margin: 0;
  font-size: .78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .03em;
  color: #333;
  background: var(--gray-100);
  border: 1.5px solid var(--gray-200);
  border-radius: var(--radius);
  transition: background .2s;
}

#cart .block-promo .promo-code form button:hover {
  background: var(--gray-200);
}

#cart .block-promo .promo-code .alert-danger {
  margin-top: 10px;
  padding: 8px 12px;
  font-size: .78rem;
  color: #fff;
  background: var(--promo);
  border: none;
  border-radius: var(--radius);
}

#cart .block-promo .promo-code .alert-danger::after {
  display: none;
}

/* Bons de réduction appliqués / suggérés : des <ul> de .cart-summary-line. */
#cart .block-promo .promo-name,
#cart .block-promo .promo-discounts {
  padding: 0;
  margin: 0 0 8px;
  text-align: left;
  list-style: none;
}

#cart .block-promo .promo-name .cart-summary-line .label,
#cart .block-promo .promo-discounts .cart-summary-line .label {
  font-size: .82rem;
  font-weight: 600;
  color: var(--primary);
}

#cart .block-promo .cart-summary-line .float-xs-right {
  display: flex;
  align-items: center;
  gap: 6px;
  float: none !important;
  font-size: .82rem;
}

#cart .block-promo .cart-summary-line .float-xs-right .material-icons {
  margin: 0;
  font-size: 1.1rem;
  color: var(--gray-500);
}

#cart .block-promo .promo-discounts .cart-summary-line .label .code {
  font-weight: 700;
  cursor: pointer;
}

#cart .block-promo.promo-highlighted {
  padding: 0;
  margin: 12px 0 4px;
  font-size: .78rem;
  text-align: left;
  color: var(--gray-500);
}

/* ── Bouton de commande ── */
#cart .cart-detailed-actions {
  padding: 0;
}

#cart .cart-checkout {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  height: auto;
  margin-top: 14px;
  text-align: center;
  text-transform: none;
  border: none;
}

#cart .cart-checkout svg {
  width: 16px;
  height: 16px;
}

#cart .cart-checkout.disabled,
#cart .cart-checkout[disabled] {
  color: var(--gray-500);
  background: var(--gray-200);
  opacity: 1;
  cursor: not-allowed;
}

/* ── Réassurance paiement (maquette_cart.html) ── */
#cart .cart-detailed-actions .cart-secure {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  margin-top: 14px;
  font-size: .72rem;
  line-height: 1;
  color: var(--gray-500);
}

#cart .cart-detailed-actions .cart-secure svg {
  flex-shrink: 0;
  width: 14px;
  height: 14px;
}

#cart .cart-detailed-actions .cart-payment-icons {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: center;
  margin-top: 14px;
}

#cart .cart-detailed-actions .cart-payment-icons span {
  padding: 4px 8px;
  font-size: .65rem;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: .03em;
  color: var(--gray-500);
  border: 1px solid var(--gray-200);
  border-radius: 4px;
}

/* Express checkout ps_checkout : pastilles PayPal dans le même bloc */
#cart .cart-detailed-actions .paypal-marks {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
}

#cart .cart-detailed-actions .paypal-mark {
  padding: 4px 8px;
  margin: 0;
  background: #fff;
  border: 1px solid var(--gray-200);
  border-radius: 4px;
}

#cart .cart-detailed-actions .paypal-mark img {
  height: 16px;
  margin: 0;
}

/* ── Panier vide ── */
#cart .cart-empty {
  padding: 64px 20px;
  text-align: center;
}

#cart .cart-empty-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 72px;
  height: 72px;
  margin: 0 auto 20px;
  color: var(--gray-500);
  background: var(--gray-100);
  border-radius: 50%;
}

#cart .cart-empty-icon svg {
  width: 32px;
  height: 32px;
}

#cart .cart-empty h2 {
  margin-bottom: 8px;
  font-size: 1.2rem;
  font-weight: 800;
  color: #1a1a2e;
}

#cart .cart-empty p {
  margin-bottom: 24px;
  font-size: .88rem;
  color: var(--gray-500);
}

/* ── Responsive ── */
@media screen and (max-width: 991px) {
  #cart .cart-layout {
    grid-template-columns: minmax(0, 1fr);
  }

  #cart .cart-layout > .cart-grid-right{
    position: initial;
  }

  #cart .cart-summary {
    position: static;
  }

  #cart .cart-overview {
    padding: 0;
  }
}

@media screen and (max-width: 575px) {
  #cart .cart-items {
    padding: 0;
  }

  #cart .cart-item {
    border-bottom: 1px solid var(--gray-200);
  }

  #cart .cart-item-inner {
    gap: 14px;
  }

  #cart .cart-item-img {
    width: 84px;
    height: 84px;
  }

  #cart .cart-item-bottom {
    gap: 10px;
  }

  #cart .cart-item-price {
    margin-left: auto;
    text-align: left;
  }

  #cart .cart-summary {
    padding: 20px 18px;
  }
}

/* ── Barre fixe mobile « Passer la commande » (comme .pdp-mobile-cta de la PDP) ──
   Rendue dans .cart-detailed-actions (re-rendue à chaque updateCart, donc le
   total suit). Masquée tant que le vrai bouton est à l'écran (theme.js). */
#cart .cart-mobile-cta {
  display: none;
}

@media screen and (max-width: 991px) {
  #cart .cart-mobile-cta {
    display: flex;
    align-items: center;
    gap: 14px;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 150;
    background: #fff;
    padding: 12px 16px calc(12px + env(safe-area-inset-bottom, 0px));
    box-shadow: 0 -4px 20px rgba(0, 0, 0, .12);
    border-top: 1px solid var(--gray-200);
    transition: transform .25s ease, visibility .25s;
  }

  #cart .cart-mobile-cta.is-hidden {
    transform: translateY(100%);
    visibility: hidden;
    pointer-events: none;
  }

  #cart .cart-mobile-cta-total {
    display: flex;
    flex-direction: column;
    flex-shrink: 0;
    line-height: 1.2;
  }

  #cart .cart-mobile-cta-label {
    font-size: .72rem;
    color: var(--gray-500);
  }

  #cart .cart-mobile-cta-price {
    font-size: 1.1rem;
    font-weight: 900;
    color: var(--primary);
    white-space: nowrap;
  }

  #cart .cart-mobile-checkout {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 46px;
    text-transform: none;
    border: none;
  }

  #cart .cart-mobile-checkout svg {
    width: 16px;
    height: 16px;
  }

  /* Le lien principal est désactivé (opartlimitquantity, minimum d'achat…) */
  #cart .cart-checkout.disabled ~ .cart-mobile-cta .cart-mobile-checkout {
    color: var(--gray-500);
    background: var(--gray-200);
    cursor: not-allowed;
  }
}
