/* ============ Refonte page Panier Michelin ============ */
.rcm-cartpage{
  --mblue:#004F9F; --myellow:#FFCD00;
  --ink:#1A1F2B; --ink2:#33405B; --label:#5B6472; --muted:#9AA3B2;
  --line:#D8DEE9; --line2:#E3E7EE; --sep:#EDF0F5; --chip:#F2F4F8; --tint:#EEF2FA;
  font-family:Manrope,system-ui,sans-serif; color:var(--ink);
  /* fond #EEF1F6 pleine largeur (sort du conteneur Divi), contenu recentré à 1180 */
  width:100vw; max-width:100vw; margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw);
  background:#EEF1F6; padding:34px 0 56px; box-sizing:border-box;
}
.rcm-cartpage *{ box-sizing:border-box; }
.rcm-cartpage a{ text-decoration:none; }
.rcm-cart-bc, .rcm-cart-titlerow, .rcm-cart-sub, .rcm-cart-grid{
  max-width:1180px; margin-left:auto; margin-right:auto; padding-left:24px; padding-right:24px;
}

/* en-tête */
.rcm-cart-bc{ font-size:12px; color:var(--muted); margin-bottom:8px; }
.rcm-cart-bc a{ color:var(--mblue); font-weight:600; } .rcm-cart-bc span{ margin:0 6px; }
.rcm-cart-titlerow{ display:flex; align-items:baseline; gap:12px; margin-bottom:6px; }
.rcm-cart-title{ margin:0; font-size:26px; font-weight:800; color:var(--ink); letter-spacing:-.01em; white-space:nowrap; }
.rcm-cart-count{ font-size:14px; color:var(--label); font-weight:600; }
.rcm-cart-sub{ margin:0 auto 24px; font-size:13.5px; color:var(--label); }

/* grille */
.rcm-cart-grid{ display:grid; grid-template-columns:1fr 360px; gap:28px; align-items:start; }
@media(max-width:900px){ .rcm-cart-grid{ grid-template-columns:1fr; } }
.rcm-cart-items{ display:flex; flex-direction:column; gap:18px; }

/* carte-article */
.rcm-citem{ background:#fff; border:1px solid var(--line2); border-radius:16px; padding:20px; display:flex; gap:22px; box-shadow:0 1px 2px rgba(20,40,90,.04); }
@media(max-width:640px){ .rcm-citem{ flex-direction:column; } }
.rcm-citem-thumb{ flex:none; width:300px; max-width:100%; }
.rcm-cart-preview{ position:relative; width:300px; max-width:100%; }
/* aspect = zone de coupe (carte nette, sans repères/fonds perdus) — recadrée par cart.js */
.rcm-cart-canvas{ width:100%; height:auto; display:block; border:1px solid var(--line2); border-radius:5px; box-shadow:0 6px 18px rgba(20,40,90,.12); background:#fff; aspect-ratio:255/143; }
.rcm-cart-preview.rcm-cart-flip{ cursor:pointer; }
/* loader (spinner) le temps que pdf.js rende la miniature ; masqué quand prête */
.rcm-cart-loader{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; background:#fff; border:1px solid var(--line2); border-radius:5px; }
.rcm-cart-preview.is-ready .rcm-cart-loader{ opacity:0; visibility:hidden; transition:opacity .25s ease, visibility 0s .25s; }
.rcm-cart-spin{ width:26px; height:26px; border-radius:50%; border:3px solid var(--line2); border-top-color:var(--mblue); animation:rcm-cart-spin .7s linear infinite; }
@keyframes rcm-cart-spin{ to{ transform:rotate(360deg); } }
.rcm-citem-thumb--img img{ width:100%; height:auto; border-radius:8px; border:1px solid var(--line2); }
.rcm-citem-faces{ display:flex; gap:7px; margin-top:10px; }
.rcm-face{ flex:1; text-align:center; font:600 11px Manrope; color:var(--muted); background:#F0F2F6; border-radius:7px; padding:6px 0; }
.rcm-face.on{ font-weight:700; color:#fff; background:var(--mblue); }
.rcm-face.set{ font-weight:700; color:#fff; background:#5B6472; }

/* détails */
.rcm-citem-details{ flex:1; display:flex; flex-direction:column; min-width:0; }
.rcm-citem-head{ display:flex; align-items:center; gap:10px; margin-bottom:8px; }
.rcm-citem-badge{ font:800 11px Manrope; color:var(--mblue); background:var(--tint); border-radius:6px; padding:3px 9px; letter-spacing:.03em; }
.rcm-citem-pname{ font-size:12.5px; color:var(--muted); font-weight:600; }
.rcm-citem-titulaire{ font-size:19px; font-weight:800; color:var(--ink); line-height:1.15; }
.rcm-citem-fonction{ font-size:13px; color:var(--label); margin-bottom:14px; }
.rcm-citem-chips{ display:flex; flex-wrap:wrap; gap:8px; }
.rcm-chip{ font:600 12px Manrope; color:var(--ink2); background:var(--chip); border-radius:7px; padding:5px 11px; }
.rcm-citem-meta{ font-size:12.5px; color:var(--label); }
.rcm-citem-meta p{ margin:2px 0; }

.rcm-citem-foot{ margin-top:auto; padding-top:18px; display:flex; align-items:flex-end; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.rcm-citem-actions{ display:flex; gap:9px; flex-wrap:wrap; }
.rcm-act{ display:inline-flex; align-items:center; gap:7px; border-radius:9px; padding:9px 14px; font:700 13px Manrope; cursor:pointer; border:1.5px solid transparent; }
.rcm-act-edit{ background:var(--mblue); color:#fff; box-shadow:0 3px 10px rgba(0,79,159,.22); }
.rcm-act-edit:hover{ filter:brightness(1.06); }
.rcm-act-dup{ background:#fff; color:var(--label); border-color:var(--line); font-weight:600; }
.rcm-act-dup:hover{ background:#F7F9FC; }
.rcm-act-remove{ background:#fff; color:#C0392B; border-color:#F0CFCB; font-weight:600; }
.rcm-act-remove:hover{ background:#FCF3F2; }

.rcm-citem-pricing{ text-align:right; flex:none; }
.rcm-citem-unit{ font-size:11.5px; color:var(--muted); font-weight:600; }
.rcm-citem-qtyrow{ display:flex; align-items:center; justify-content:flex-end; gap:10px; margin-top:6px; }
.rcm-stepper{ display:inline-flex; align-items:center; border:1.5px solid var(--line); border-radius:9px; overflow:hidden; }
.rcm-step{ width:32px; height:34px; display:flex; align-items:center; justify-content:center; color:var(--label); cursor:pointer; font-size:17px; background:#fff; border:none; }
.rcm-step:hover{ background:#F2F4F8; }
.rcm-qty-num{ width:40px; text-align:center; font:700 14px Manrope; color:var(--ink); border-left:1.5px solid var(--line); border-right:1.5px solid var(--line); line-height:34px; }
.rcm-citem-subtotal{ font-size:18px; font-weight:800; color:var(--mblue); min-width:74px; text-align:right; }

/* code promo + maj */
.rcm-cart-promo{ display:flex; justify-content:space-between; align-items:center; gap:16px; background:#fff; border:1px solid var(--line2); border-radius:14px; padding:16px 18px; margin-top:18px; flex-wrap:wrap; }
.rcm-promo-form{ display:flex; gap:10px; }
.rcm-promo-input{ width:200px; max-width:46vw; padding:11px 13px; border:1.5px solid var(--line); border-radius:10px; font:500 13.5px Manrope; color:var(--ink); background:#fff; outline:none; }
.rcm-promo-input:focus{ border-color:var(--mblue); box-shadow:0 0 0 3px rgba(0,79,159,.12); }
.rcm-promo-apply{ background:var(--mblue); color:#fff; border:none; border-radius:10px; padding:11px 18px; font:700 13.5px Manrope; cursor:pointer; }
.rcm-cart-update{ display:inline-flex; align-items:center; gap:7px; background:#fff; color:var(--label); border:1.5px solid var(--line); border-radius:10px; padding:11px 16px; font:700 13.5px Manrope; cursor:pointer; }
.rcm-cart-update:hover{ background:#F7F9FC; }

/* récap (sticky) */
.rcm-summary{ position:sticky; top:20px; background:#fff; border:1px solid var(--line2); border-radius:16px; overflow:hidden; box-shadow:0 4px 16px rgba(20,40,90,.06); }
.rcm-summary-head{ padding:20px 22px; border-bottom:1px solid var(--sep); font-size:16px; font-weight:800; color:var(--ink); }
.rcm-summary-body{ padding:20px 22px; }
.rcm-sum-row{ display:flex; justify-content:space-between; font-size:14px; color:var(--label); margin-bottom:16px; }
.rcm-sum-val{ color:var(--ink); font-weight:700; }
.rcm-sum-coupon .rcm-sum-val{ color:#1E7A46; }
.rcm-sum-ship-label{ font-size:12px; font-weight:700; color:var(--muted); text-transform:uppercase; letter-spacing:.04em; margin-bottom:11px; }
.rcm-sum-ship{ display:flex; flex-direction:column; gap:9px; }
.rcm-ship{ display:flex; gap:10px; align-items:flex-start; padding:11px 12px; border:1.5px solid var(--line2); border-radius:10px; cursor:pointer; }
.rcm-ship.is-on{ border-color:var(--mblue); background:#F4F7FC; }
.rcm-ship-radio{ position:absolute; opacity:0; width:0; height:0; }
.rcm-ship-dot{ flex:none; width:16px; height:16px; border-radius:999px; border:1.5px solid #C4CDDB; margin-top:1px; }
.rcm-ship.is-on .rcm-ship-dot{ border:5px solid var(--mblue); }
.rcm-ship-txt{ font-size:12.5px; color:var(--label); line-height:1.4; display:block; }
.rcm-ship-txt b{ color:var(--ink); }
.rcm-ship-cost{ display:inline; } .rcm-ship .rcm-free{ color:#1E7A46; }
.rcm-sum-addr{ display:flex; align-items:center; gap:8px; margin-top:13px; font-size:12px; color:var(--label); background:#F7F9FC; border-radius:9px; padding:10px 12px; }
.rcm-addr-edit{ color:var(--mblue); font-weight:700; }
.rcm-sum-total{ display:flex; justify-content:space-between; align-items:baseline; margin-top:18px; padding-top:16px; border-top:1px dashed var(--line2); }
.rcm-sum-total-label{ font-size:15px; font-weight:800; color:var(--ink); }
.rcm-sum-total-right{ text-align:right; }
.rcm-sum-total-val{ font-size:24px; font-weight:800; color:var(--mblue); }
.rcm-sum-total-val .amount{ color:var(--mblue); }
.rcm-sum-tva{ font-size:11.5px; color:var(--muted); }
.rcm-checkout-btn{ width:100%; margin-top:18px; display:inline-flex; align-items:center; justify-content:center; gap:9px; background:var(--mblue); color:#fff; border:none; border-radius:12px; padding:15px 0; font:800 15px Manrope; cursor:pointer; box-shadow:0 5px 16px rgba(0,79,159,.28); }
.rcm-checkout-btn:hover{ filter:brightness(1.06); color:#fff; }
.rcm-secure{ display:flex; align-items:center; justify-content:center; gap:7px; margin-top:12px; font-size:11.5px; color:var(--muted); }

/* panier vide */
.rcm-cart-empty{ max-width:520px; margin:30px auto; background:#fff; border:1px solid var(--line2); border-radius:16px; padding:48px 32px; text-align:center; box-shadow:0 1px 2px rgba(20,40,90,.04); }
.rcm-cart-empty h1{ margin:16px 0 6px; font-size:22px; font-weight:800; color:var(--ink); }
.rcm-cart-empty p{ margin:0 0 22px; font-size:14px; color:var(--label); }
.rcm-empty-cta{ display:inline-flex; width:auto; padding:14px 26px; }

/* neutralise le markup table WC éventuel */
.rcm-cartpage .shop_table, .rcm-cartpage table.cart{ display:none; }
