.product-detail-cart-btn {
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  color: #fff;
  border-radius: 12px;
  font-size: 16px;
  font-weight: 700;
  height: 56px;
  text-align: center;
  min-width: 200px;
  border: none;
  box-shadow: 0 8px 20px rgba(102, 126, 234, 0.4);
  transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  position: relative;
  overflow: hidden;
  cursor: pointer;
  letter-spacing: 0.5px;
}

.product-detail-cart-btn::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0;
  height: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.3);
  transform: translate(-50%, -50%);
  transition: width 0.6s, height 0.6s;
}

.product-detail-cart-btn:hover::before {
  width: 300px;
  height: 300px;
}

.product-detail-cart-btn:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 30px rgba(102, 126, 234, 0.5);
}

.product-detail-cart-btn:active {
  transform: translateY(-1px);
  box-shadow: 0 6px 15px rgba(102, 126, 234, 0.4);
}

.product-detail-cart-btn i {
  margin-left: 8px;
  transition: transform 0.3s ease;
}

.product-detail-cart-btn:hover i {
  transform: translateX(4px);
}

/* ---------- 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; }
}
