/* ---------- Overlay (reload) ---------- */
.cart-refresh-overlay{
  position: fixed;
  inset: 0;
  background: rgba(255,255,255,.85);
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  backdrop-filter: blur(2px);
}
.cart-refresh-overlay.d-none{ display:none !important; }
.cart-refresh-content{
  padding: 20px 30px;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 10px 30px rgba(0,0,0,.10);
}

/* ---------- Shared UI ---------- */
.cart-thumb{
  width: 80px;
  height: 80px;
  object-fit: cover;
  border-radius: 12px;
  border: 1px solid #eee;
}

/* ---------- Mobile cards ---------- */
.cart-item-card{
  background:#fff;
  border:1px solid #eee;
  border-radius:16px;
  padding:14px;
  box-shadow:0 10px 26px rgba(0,0,0,.05);
}
.cart-item-img img{ width:86px; height:86px; }
.cart-item-title{
  display:block;
  color:#111;
  text-decoration:none;
  font-weight:800;
  line-height:1.35;
}
.cart-item-title:hover{ text-decoration:underline; }
.cart-item-meta{
  background:#f8f9fa;
  border:1px solid #eee;
  border-radius:12px;
  padding:10px 12px;
}
.cart-remove-btn{ border-radius:10px; }

/* ---------- Desktop table ---------- */
.cart-table-wrap{ border-radius:16px; }
.table.cart-table thead th{
  font-weight:800;
  color:#333;
  white-space:nowrap;
}

/* ---------- qty controls (existing idea, refined) ---------- */
.pro-qty-wrapper{
  display:inline-flex;
  align-items:center;
  border-radius:10px;
  overflow:hidden;
  border: 1px solid #e6e6e6;
  background:#fff;
  width:fit-content;
}
.qty-btn{
  background:#fff;
  border:none;
  padding:8px 12px;
  font-size:16px;
  color:#333;
  cursor:pointer;
  transition:.2s;
  text-align:center;
}
.qty-btn:hover{ background:#e9e9e9; }
.quantity-input{
  width:42px;
  text-align:center;
  border:none;
  padding:8px;
  font-size:15px;
  outline:none;
}

/* ---------- action buttons responsive ---------- */
.cart-actions{ gap: 10px; }
@media (max-width: 576px){
  .cart-actions > *{ width:100%; }
}

/* ---------- boxes ---------- */
.cart-calculate-discount-wrap,
.grand-total-wrap{
}
.cart-thumb{
  width:80px; height:80px; object-fit:cover; border-radius:12px;
  border:1px solid #eee;
}

.cart-item-card{
  background:#fff;
  border:1px solid #eee;
  border-radius:16px;
  padding:14px;
  box-shadow:0 10px 26px rgba(0,0,0,.05);
}

.cart-item-img img{ width:86px; height:86px; }

.cart-item-title{
  display:block;
  color:#111;
  text-decoration:none;
  font-weight:800;
  line-height:1.35;
}

.cart-item-title:hover{ text-decoration:underline; }

.cart-item-meta{
  background:#f8f9fa;
  border:1px solid #eee;
  border-radius:12px;
  padding:10px 12px;
}

.cart-remove-btn{
  border-radius:10px;
}

.table.cart-table thead th{
  font-weight:800;
  color:#333;
  white-space:nowrap;
}

.cart-table-wrap{
  border-radius:16px;
}

.cart-calculate-discount-wrap,
.grand-total-wrap{
  border-radius:16px;
}



.checkout-stepper{
  display:flex; align-items:center; justify-content:center; gap:10px;
  padding:14px; background:#fff; border:1px solid #eee; border-radius:14px;
  box-shadow:0 8px 22px rgba(0,0,0,.04);
}
.checkout-stepper .step{
  display:flex; align-items:center; gap:10px; text-decoration:none;
  color:#6c757d; font-weight:700; padding:8px 10px; border-radius:12px;
}
.checkout-stepper .step .dot{
  width:32px; height:32px; border-radius:10px;
  display:flex; align-items:center; justify-content:center;
  border:1px solid #e9ecef; background:#f8f9fa; color:#6c757d;
}
.checkout-stepper .step.active{ color:#0d6efd; background:rgba(13,110,253,.06); }
.checkout-stepper .step.active .dot{ border-color:rgba(13,110,253,.25); background:rgba(13,110,253,.12); color:#0d6efd; }
.checkout-stepper .step.done{ color:#198754; }
.checkout-stepper .step.done .dot{ background:rgba(25,135,84,.12); border-color:rgba(25,135,84,.25); color:#198754; }
.checkout-stepper .line{
  flex:1; height:2px; background:#e9ecef; max-width:90px; border-radius:10px;
}
.checkout-stepper .line.done{ background:rgba(25,135,84,.35); }

@media (max-width:576px){
  .checkout-stepper{ justify-content:space-between; gap:6px; }
  .checkout-stepper .step .txt{ font-size: 12px; }
  .checkout-stepper .line{ max-width:50px; }
}
