/* =========================================================
   ROOMSTYLE — page-cart.css
   Panier custom (remplace le restylage du bloc/shortcode natif).
   Adapté du template fourni par le client : on garde 100% du design,
   mais SANS le regroupement visuel Bundle/World/Space (voir discussion —
   trop fragile en pratique, remis à plat comme des .cart-item normales).
   Chaque item garde juste un petit tag texte "part of: X" quand il vient
   d'un pack, purement décoratif (voir woocommerce/cart/cart.php).
   ========================================================= */

:root{
  --rc-radius: 12px;
  --rc-shadow: 0 4px 28px rgba(0,0,0,0.07);
  --rc-ease: cubic-bezier(0.22,1,0.36,1);
  --rc-green: #22aa55;
}

/* ─────────────────────────────────────
   PAGE HEADER
───────────────────────────────────── */
.rc-page-header{
  padding:40px 40px 32px;
  display:flex; align-items:flex-end; justify-content:space-between;
  flex-wrap:wrap; gap:16px;
  border-bottom:.5px solid var(--border);
  max-width:1400px; margin:0 auto;
}
.rc-page-header-left{display:flex; flex-direction:column; gap:4px;}
.rc-page-header-label{font-size:11px; letter-spacing:4px; color:var(--mid); text-transform:uppercase;}
.rc-page-header-title{font-size:42px; font-weight:700; color:var(--black); font-family:'Playfair Display',serif;}
.rc-item-total{
  background:var(--gray); border:.5px solid var(--border);
  border-radius:20px; padding:8px 18px;
  font-size:13px; color:var(--mid);
  display:flex; align-items:center; gap:6px;
}
.rc-item-total strong{color:var(--black);}

/* ─────────────────────────────────────
   MESSAGES (coupon appliqué/erreur, etc.)
───────────────────────────────────── */
.rc-notices{max-width:1400px; margin:0 auto; padding:20px 40px 0;}

/* ─────────────────────────────────────
   MAIN LAYOUT
───────────────────────────────────── */
.rc-layout{
  display:grid;
  grid-template-columns:1fr 380px;
  gap:0;
  align-items:start;
  max-width:1400px; margin:0 auto;
}

/* ── LEFT — CART ITEMS ── */
.rc-items-col{
  padding:32px 40px;
  border-right:.5px solid var(--border);
}

.rc-section-label{
  font-size:11px; letter-spacing:3px; color:var(--mid);
  text-transform:uppercase; margin-bottom:16px;
  display:flex; align-items:center; justify-content:space-between;
}
.rc-clear-cart{
  font-size:11px; color:#ccc; background:none; border:none;
  letter-spacing:.5px; transition:color .2s; cursor:pointer;
}
.rc-clear-cart:hover{color:#ff4444;}

/* ── INDIVIDUAL CART ITEM (flat — plus de bloc "bundle-section") ── */
.rc-item{
  display:grid;
  grid-template-columns:100px 1fr auto;
  gap:18px;
  align-items:start;
  padding:20px 0;
  border-bottom:.5px solid var(--border);
  transition:opacity .25s, transform .25s;
}
.rc-item:last-child{border-bottom:none;}
.rc-item.is-updating{opacity:.45; pointer-events:none;}

.rc-item-img{
  width:100px; height:100px;
  border-radius:10px; overflow:hidden;
  background:var(--gray); flex-shrink:0;
  position:relative;
}
.rc-item-img img{width:100%; height:100%; object-fit:cover; transition:transform .4s;}
.rc-item-img a:hover img{transform:scale(1.06);}

.rc-item-details{display:flex; flex-direction:column; gap:6px;}
.rc-item-name{font-size:15px; font-weight:500; color:var(--black); line-height:1.35; text-decoration:none;}
.rc-item-name:hover{color:#555;}

/* Petit tag "part of: X" — décoratif seulement, pas de logique dessus */
.rc-item-pack-tag{
  display:inline-flex; align-items:center; gap:5px;
  background:var(--gray); border:.5px solid var(--border);
  border-radius:6px; padding:3px 10px; width:fit-content;
  font-size:11px; color:var(--mid); letter-spacing:.2px;
}

/* Variations produit (taille/couleur) — sortie native WooCommerce (dl.variation) */
.rc-item-details .variation{display:flex; gap:8px; flex-wrap:wrap; margin:2px 0 0; list-style:none;}
.rc-item-details .variation dt,
.rc-item-details .variation dd{
  display:inline-block; margin:0;
  background:var(--gray); border:.5px solid var(--border);
  border-radius:6px; padding:3px 10px;
  font-size:11px; color:var(--mid); letter-spacing:.3px;
}
.rc-item-details .variation dt{padding-right:4px; background:none; border:none;}
.rc-item-details .variation p{margin:0; display:inline;}

.rc-item-unit-price{font-size:12px; color:var(--mid); margin-top:2px;}
.rc-item-unit-price ins{text-decoration:none; font-weight:600; color:var(--black);}
.rc-item-unit-price del{color:#bbb; margin-left:6px; font-weight:400;}

.rc-item-backorder{font-size:11px; color:#c99; margin-top:2px;}

/* Right side: quantity + subtotal + remove */
.rc-item-right{display:flex; flex-direction:column; align-items:flex-end; gap:12px;}

.rc-qty-ctrl{
  display:flex; align-items:center; gap:0;
  border:.5px solid var(--border); border-radius:8px; overflow:hidden;
}
/* woocommerce_quantity_input() enveloppe l'input natif dans <div class="quantity"> —
   on neutralise ce wrapper pour garder notre flex à 3 éléments (- / input / +). */
.rc-qty-ctrl .quantity{display:contents;}
.rc-qty-btn{
  width:34px; height:34px;
  background:var(--gray); border:none;
  font-size:16px; color:#555;
  display:flex; align-items:center; justify-content:center;
  transition:background .2s, color .2s;
}
.rc-qty-btn:hover{background:#eee; color:var(--black);}
.rc-qty-btn:active{background:#ddd; transform:scale(.92);}
.rc-qty-btn:disabled{opacity:.35; cursor:not-allowed;}
.rc-qty-input{
  width:44px; height:34px;
  text-align:center;
  font-size:14px; font-weight:500; color:var(--black);
  border:none; border-left:.5px solid var(--border); border-right:.5px solid var(--border);
  font-family:'DM Sans',sans-serif;
  -moz-appearance:textfield;
}
.rc-qty-input::-webkit-outer-spin-button,
.rc-qty-input::-webkit-inner-spin-button{-webkit-appearance:none; margin:0;}
.rc-qty-input:focus{outline:none; background:var(--gray);}

.rc-item-subtotal{font-size:16px; font-weight:500; color:var(--black); white-space:nowrap;}
.rc-item-subtotal del{font-size:11px; color:#bbb; margin-left:6px; font-weight:400;}

.rc-item-remove{
  background:none; border:none; color:#ccc; font-size:12px;
  display:flex; align-items:center; gap:4px; letter-spacing:.5px;
  transition:color .2s; padding:0; text-decoration:none; cursor:pointer;
}
.rc-item-remove:hover{color:#ff4444;}
.rc-item-remove svg{width:13px; height:13px;}

/* Actions row (update cart + coupon) — juste sous la liste d'articles */
.rc-actions-row{
  display:flex; align-items:center; justify-content:space-between;
  flex-wrap:wrap; gap:16px;
  margin-top:24px; padding-top:24px;
  border-top:.5px solid var(--border);
}
.rc-update-btn{
  background:transparent; border:.5px solid var(--border);
  color:var(--mid); padding:10px 20px; border-radius:8px;
  font-size:12px; letter-spacing:.5px; transition:all .2s; cursor:pointer;
}
.rc-update-btn:hover{border-color:var(--black); color:var(--black);}

.rc-promo-row{display:flex; gap:10px; flex:1; min-width:240px; max-width:360px;}
.rc-promo-input{
  flex:1; background:var(--gray); border:.5px solid var(--border);
  border-radius:8px; padding:11px 16px;
  font-size:13px; font-family:'DM Sans',sans-serif;
  color:var(--black); outline:none; transition:border-color .2s;
}
.rc-promo-input:focus{border-color:var(--black); background:#fff;}
.rc-promo-input::placeholder{color:#bbb;}
.rc-promo-btn{
  background:var(--black); color:#fff; border:none;
  padding:11px 22px; border-radius:8px; font-size:13px;
  font-weight:500; letter-spacing:.5px; transition:background .2s; cursor:pointer;
}
.rc-promo-btn:hover{background:#333;}

/* ─────────────────────────────────────
   RIGHT — ORDER SUMMARY
───────────────────────────────────── */
.rc-summary-col{
  padding:32px 32px;
  position:sticky; top:64px;
}
.rc-summary-box{
  background:var(--gray);
  border:.5px solid var(--border);
  border-radius:16px;
  overflow:hidden;
}
.rc-summary-header{
  background:var(--black);
  padding:20px 24px;
  display:flex; align-items:center; justify-content:space-between;
}
.rc-summary-title{font-family:'Playfair Display',serif; font-size:18px; font-weight:700; color:#fff;}
.rc-summary-item-count{font-size:12px; color:#999;}

.rc-summary-body{padding:20px 24px; display:flex; flex-direction:column; gap:0;}
.rc-summary-row{
  display:flex; align-items:flex-start; justify-content:space-between; gap:10px;
  padding:11px 0; border-bottom:.5px solid var(--border);
}
.rc-summary-row:last-child{border-bottom:none;}
.rc-summary-row-label{font-size:13px; color:var(--mid);}
.rc-summary-row-val{font-size:13px; font-weight:500; color:var(--black); text-align:right;}
.rc-summary-row-val.rc-green{color:var(--rc-green);}
.rc-summary-row-val.rc-free{color:var(--rc-green); font-weight:500; letter-spacing:.5px;}

/* Remise / coupon */
.rc-discount-row{background:rgba(34,170,85,.06); margin:0 -24px; padding:11px 24px; display:flex; align-items:center; justify-content:space-between; border-bottom:.5px solid var(--border); gap:10px;}
.rc-discount-label{display:flex; align-items:center; gap:8px; font-size:13px; color:var(--rc-green); flex-wrap:wrap;}
.rc-discount-badge{background:rgba(34,170,85,.12); border:.5px solid rgba(34,170,85,.25); color:var(--rc-green); font-size:10px; font-weight:600; padding:2px 8px; border-radius:8px; letter-spacing:1px;}
.rc-discount-remove{background:none; border:none; color:#ccc; font-size:12px; transition:color .2s; cursor:pointer;}
.rc-discount-remove:hover{color:#ff4444;}
.rc-discount-val{font-size:13px; font-weight:500; color:var(--rc-green); white-space:nowrap;}

/* Shipping calculator (natif WooCommerce, restylé sobrement) */
.rc-shipping-calc{padding:4px 0;}
.rc-shipping-calc p{font-size:12px; color:var(--mid); margin-bottom:8px;}
.rc-shipping-calc .form-row{margin-bottom:8px;}
.rc-shipping-calc select,
.rc-shipping-calc input.input-text{
  width:100%; padding:9px 12px; border:.5px solid var(--border); border-radius:6px;
  font-family:'DM Sans',sans-serif; font-size:12px; background:#fff; color:var(--black);
}
.rc-shipping-calc button{
  background:#fff; border:.5px solid var(--black); color:var(--black);
  padding:8px 16px; border-radius:6px; font-size:11px; letter-spacing:.5px; cursor:pointer;
}
.rc-shipping-calc button:hover{background:var(--black); color:#fff;}

/* Total */
.rc-summary-total{
  padding:18px 24px;
  background:#fff;
  border-top:.5px solid var(--border);
  display:flex; align-items:center; justify-content:space-between;
}
.rc-total-label{font-size:14px; font-weight:500; color:var(--black);}
.rc-total-val{font-family:'Playfair Display',serif; font-size:28px; font-weight:700; color:var(--black);}

/* Trust rows */
.rc-summary-trust{padding:16px 24px 0; display:flex; flex-direction:column; gap:8px;}
.rc-trust-row{display:flex; align-items:center; gap:8px; font-size:12px; color:var(--mid);}
.rc-trust-icon{font-size:14px; width:18px; text-align:center;}

/* CTAs */
.rc-summary-ctas{padding:20px 24px 24px; display:flex; flex-direction:column; gap:10px;}
.rc-summary-ctas .checkout-button,
.rc-btn-checkout{
  background:var(--black)!important; color:#fff!important; border:none;
  padding:17px 28px!important; border-radius:10px!important;
  font-size:14px!important; font-weight:500; letter-spacing:.5px;
  display:flex!important; align-items:center; justify-content:center;
  transition:background .2s, transform .2s;
  width:100%; text-align:center; text-decoration:none;
}
.rc-summary-ctas .checkout-button:hover,
.rc-btn-checkout:hover{background:#222!important; transform:translateY(-1px);}
.rc-btn-whatsapp{
  background:rgba(37,211,102,.1); border:.5px solid rgba(37,211,102,.3);
  color:#25d366; padding:13px 28px; border-radius:10px;
  font-size:13px; display:flex; align-items:center; justify-content:center; gap:8px;
  transition:all .2s; width:100%; text-decoration:none;
}
.rc-btn-whatsapp:hover{background:rgba(37,211,102,.2);}
.rc-btn-continue{
  background:transparent; border:.5px solid var(--border);
  color:var(--mid); padding:12px; border-radius:10px;
  font-size:13px; width:100%; transition:all .2s; text-align:center; text-decoration:none; display:block;
}
.rc-btn-continue:hover{border-color:var(--black); color:var(--black);}

/* Payment icons */
.rc-payment-row{padding:0 24px 20px; display:flex; gap:6px; flex-wrap:wrap;}
.rc-pay-chip{background:#fff; border:.5px solid var(--border); border-radius:6px; padding:4px 10px; font-size:10px; color:#888; letter-spacing:.5px;}

/* ─────────────────────────────────────
   EMPTY CART
───────────────────────────────────── */
.rc-empty{
  display:flex; flex-direction:column;
  align-items:center; justify-content:center;
  padding:100px 40px; text-align:center;
  min-height:50vh;
  max-width:1400px; margin:0 auto;
}
.rc-empty-illustration{
  width:130px; height:130px; background:var(--gray);
  border-radius:50%; border:.5px solid var(--border);
  display:flex; align-items:center; justify-content:center;
  font-size:54px; margin-bottom:28px;
}
.rc-empty-title{font-family:'Playfair Display',serif; font-size:30px; font-weight:700; margin-bottom:10px; color:var(--black);}
.rc-empty-sub{font-size:14px; color:var(--mid); line-height:1.75; max-width:340px; margin-bottom:32px;}
.rc-empty-cta{
  background:var(--black); color:#fff;
  padding:15px 40px; border-radius:6px;
  font-size:13px; font-weight:500; letter-spacing:.5px;
  text-decoration:none; transition:background .2s, transform .2s;
  display:inline-block;
}
.rc-empty-cta:hover{background:#333; transform:translateY(-2px);}
.rc-empty-links{display:flex; gap:20px; margin-top:20px; flex-wrap:wrap; justify-content:center;}
.rc-empty-link{font-size:12px; color:var(--mid); border-bottom:1px solid var(--border); padding-bottom:2px; text-decoration:none; transition:color .2s;}
.rc-empty-link:hover{color:var(--black); border-color:var(--black);}

/* ─────────────────────────────────────
   STICKY MOBILE CHECKOUT
───────────────────────────────────── */
.rc-mobile-checkout{
  display:none; position:fixed; bottom:0; left:0; right:0;
  background:#fff; border-top:.5px solid var(--border);
  padding:14px 20px; z-index:90;
  box-shadow:0 -4px 24px rgba(0,0,0,.08);
}
.rc-mobile-inner{display:flex; gap:10px; align-items:center;}
.rc-mobile-total{flex:0; white-space:nowrap;}
.rc-mobile-total-label{font-size:10px; color:var(--mid); letter-spacing:1px;}
.rc-mobile-total-val{font-size:18px; font-weight:600; color:var(--black);}
.rc-mobile-checkout-btn{
  flex:1; background:var(--black)!important; color:#fff!important; border:none;
  padding:14px!important; border-radius:8px!important; font-size:14px!important; font-weight:500;
  transition:background .2s; text-align:center; text-decoration:none; display:block;
}
.rc-mobile-checkout-btn:hover{background:#333!important;}

/* ─────────────────────────────────────
   TOAST
───────────────────────────────────── */
.rc-toast{
  position:fixed; bottom:28px; left:50%;
  transform:translateX(-50%) translateY(20px);
  background:var(--black); color:#fff;
  padding:12px 26px; border-radius:26px; font-size:13px;
  opacity:0; transition:all .32s var(--rc-ease);
  pointer-events:none; z-index:500;
  white-space:nowrap; border:.5px solid #333;
}
.rc-toast.show{opacity:1; transform:translateX(-50%) translateY(0);}

/* ─────────────────────────────────────
   YOU MAY ALSO LIKE (hook woocommerce_after_cart, déjà existant
   dans functions.php) — mêmes cartes .card que la page Products,
   copiées à l'identique (voir assets/css/page-products.css) pour un
   rendu strictement identique.
───────────────────────────────────── */
.rc-recs-section{padding:56px 40px 0; margin-top:56px; border-top:.5px solid var(--border); max-width:1400px; margin-left:auto; margin-right:auto;}
.rc-recs-header{margin-bottom:28px;}
.rc-recs-label{font-size:11px; letter-spacing:3px; color:var(--mid); margin-bottom:6px; text-transform:uppercase;}
.rc-recs-title{font-family:'Playfair Display',serif; font-size:28px; font-weight:700; color:var(--black);}

.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;padding-bottom:56px;}

.card{background:#fff;border:0.5px solid rgba(0,0,0,0.08);border-radius:12px;overflow:hidden;transition:transform 0.2s,border-color 0.2s;cursor:pointer;display:flex;flex-direction:column;}
.card:hover{transform:translateY(-3px);border-color:#aaa;}
.card-img-fixed{position:relative;display:block;overflow:hidden;height:198px;background-size:cover;background-position:center;background-color:#f0f0f0;}
.card-img-fixed img{width:100%;height:100%;object-fit:cover;transition:transform 0.4s;}
.card:hover .card-img-fixed img{transform:scale(1.05);}
.card-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,0.75) 0%,transparent 55%);opacity:0;transition:opacity 0.3s;}
.card:hover .card-overlay{opacity:1;}
.card-hover-btn{position:absolute;bottom:14px;left:14px;right:14px;display:flex;align-items:center;justify-content:space-between;opacity:0;transition:opacity 0.3s;}
.card:hover .card-hover-btn{opacity:1;}
.card-hover-title{font-size:13px;font-weight:500;color:#fff;}
.card-shop-btn{background:#fff;color:#000;border:none;padding:7px 16px;border-radius:20px;font-size:11px;font-family:'DM Sans',sans-serif;cursor:pointer;font-weight:500;white-space:nowrap;}
.card-body{padding:14px 16px;display:flex;flex-direction:column;flex:1;}
.card-tag{font-size:10px;letter-spacing:2px;color:#888;margin-bottom:4px;text-transform:uppercase;}
.card-name{font-size:14px;font-weight:500;color:#0a0a0a;margin-bottom:8px;}
.card-footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-top:auto;}
.card-footer > div{min-width:0;}
.card-price{font-size:15px;font-weight:500;color:#0a0a0a;display:flex;align-items:baseline;gap:6px;}
.card-price del{font-size:0.85em;color:#999;text-decoration:line-through;font-weight:400;}
.card-price ins{text-decoration:none;font-weight:500;color:#0a0a0a;}
.card-old{font-size:12px;color:#aaa;text-decoration:line-through;margin-left:6px;}
.card-btn{flex-shrink:0;margin-left:auto;background:#0a0a0a;color:#fff;border:none;padding:7px 16px;border-radius:6px;font-size:11px;font-family:'DM Sans',sans-serif;cursor:pointer;letter-spacing:0.5px;text-decoration:none;display:inline-block;}

.badge{position:absolute;top:12px;left:12px;font-size:10px;font-weight:500;padding:4px 10px;border-radius:10px;letter-spacing:1px;z-index:2;text-transform:uppercase;}
.badge-new{background:#111;color:#fff;}
.badge-trending{background:#000;color:#fff;}
.badge-hot{background:#000;color:#fff;}
.badge-sale{background:#333;color:#fff;}

.wish{position:absolute;top:12px;right:12px;width:30px;height:30px;border-radius:50%;background:#fff;border:0.5px solid rgba(0,0,0,0.1);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:14px;z-index:2;}
.wish.active{color:#ff4444;}

@media(max-width:1024px){
  .grid-4{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:640px){
  .rc-recs-section{padding:40px 18px 0;}
  .grid-4{gap:12px;}
}

/* ─────────────────────────────────────
   RESPONSIVE
───────────────────────────────────── */
@media(max-width:1100px){
  .rc-layout{grid-template-columns:1fr 340px;}
}
@media(max-width:900px){
  .rc-layout{grid-template-columns:1fr;}
  .rc-items-col{border-right:none; border-bottom:.5px solid var(--border);}
  .rc-summary-col{position:static; padding:24px 24px 100px;}
  .rc-mobile-checkout{display:block;}
  .rc-summary-ctas .checkout-button,
  .rc-btn-checkout{display:none!important;}
}
@media(max-width:640px){
  .rc-page-header{padding:28px 18px 22px; flex-direction:column; align-items:flex-start; gap:12px;}
  .rc-page-header-title{font-size:30px;}
  .rc-items-col{padding:22px 18px;}
  .rc-summary-col{padding:22px 18px 100px;}
  .rc-notices{padding:20px 18px 0;}
  .rc-item{grid-template-columns:80px 1fr auto; gap:12px;}
  .rc-item-img{width:80px; height:80px;}
  .rc-actions-row{flex-direction:column; align-items:stretch;}
  .rc-promo-row{max-width:none;}
}
.card-footer > :first-child{flex-basis:100%;}
