 .ct-page { padding: 28px 0 64px; }
 .ct-hero {
  background: linear-gradient(135deg, rgba(74,124,47,.10), rgba(139,90,60,.10));
  border: 1px solid rgba(0,0,0,.06);
  border-radius: 16px;
  padding: 18px;
  margin-bottom: 18px;
 }
 .ct-hero h1 { font-size: 1.4rem; margin: 0; display:flex; gap:10px; align-items:center; }
 .ct-hero .meta { color: rgba(0,0,0,.6); margin-top: 6px; display:flex; gap:14px; flex-wrap:wrap; align-items:center; }
 .ct-pill {
  display:inline-flex; align-items:center; gap:6px;
  padding: 6px 10px; border-radius: 999px; font-size: .85rem;
  border: 1px solid rgba(0,0,0,.08); background: rgba(255,255,255,.75);
 }

 .ct-card {
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 16px;
  background:#fff;
  box-shadow: 0 6px 20px rgba(0,0,0,.06);
  overflow:hidden;
 }
 .ct-card .head {
  padding: 14px 16px;
  border-bottom: 1px solid rgba(0,0,0,.06);
  display:flex; align-items:center; justify-content:space-between; gap:12px;
 }
 .ct-card .head h3 { margin:0; font-size: 1.05rem; display:flex; gap:8px; align-items:center; }
 .ct-card .body { padding: 8px 0; }

 .ct-row {
  display:flex;
  gap: 12px;
  padding: 14px 16px;
  border-bottom: 1px solid rgba(0,0,0,.06);
  align-items:flex-start;
 }
 .ct-row:last-child { border-bottom: 0; }

 .ct-img {
  width: 86px; height: 86px; border-radius: 14px; overflow:hidden;
  background: linear-gradient(135deg, rgba(0,0,0,.04), rgba(0,0,0,.02));
  flex: 0 0 auto;
 }
 .ct-img img { width:100%; height:100%; object-fit:cover; display:block; }

 .ct-main { flex: 1 1 auto; min-width: 0; }
 .ct-name { font-weight: 800; margin: 0 0 6px; font-size: 1.02rem; line-height: 1.25; }
 .ct-name a { color: inherit; text-decoration:none; }
 .ct-name a:hover { text-decoration:underline; }

 .ct-submeta { color: rgba(0,0,0,.62); font-size: .9rem; display:flex; gap:12px; flex-wrap:wrap; }
 .ct-stock { display:inline-flex; align-items:center; gap:6px; }
 .ct-stock.bad { color: #c94545; }
 .ct-stock.good { color: #2f7a3d; }

 .ct-right { flex: 0 0 260px; width: 260px; display:flex; flex-direction:column; gap:10px; align-items:flex-end; }
 @media (max-width: 991px) {
  .ct-right { flex: 1 1 100%; width: 100%; align-items:flex-start; }
  .ct-row { flex-wrap: wrap; }
 }

 .ct-price { display:flex; align-items:baseline; gap:10px; flex-wrap:wrap; }
 .ct-price .cur { font-size: 1.06rem; font-weight: 900; }
 .ct-price .old { color: rgba(0,0,0,.5); text-decoration: line-through; }

 .ct-qty {
  display:flex;
  align-items:center;
  gap: 8px;
 }
 .ct-qty .btn {
  border-radius: 12px;
  padding: 8px 10px;
 }
 .ct-qty input {
  width: 72px;
  text-align:center;
  border-radius: 12px;
  border: 1px solid rgba(0,0,0,.12);
  padding: 8px 10px;
 }

 .ct-actions { display:flex; gap: 10px; flex-wrap:wrap; }
 /*.ct-actions .btn { border-radius: 12px; padding: 10px 12px; font-weight: 700; }*/
/*
 .btn-primary { background:#4a7c2f; border-color:#4a7c2f; }
 .btn-outline-danger { border-color: rgba(201,69,69,.6); color:#c94545; }
 .btn-outline-danger:hover { background:#c94545; color:#fff; }
 .btn-outline-secondary { border-color: rgba(0,0,0,.18); color: rgba(0,0,0,.72); }
 .btn-outline-secondary:hover { background: rgba(0,0,0,.06); }
*/
 .ct-line { font-weight: 900; }

 .ct-side { position: sticky; top: 18px; }
 .ct-summary { padding: 16px; }
 .ct-srow { display:flex; justify-content:space-between; align-items:center; padding: 10px 0; border-bottom: 1px dashed rgba(0,0,0,.12); }
 .ct-srow:last-child { border-bottom: 0; }
 .ct-srow .k { color: rgba(0,0,0,.62); }
 .ct-total { font-weight: 900; font-size: 1.06rem; }

 .ct-empty {
  border: 1px dashed rgba(0,0,0,.18);
  border-radius: 16px;
  padding: 34px 18px;
  background: rgba(255,255,255,.85);
  text-align:center;
 }
 .ct-empty i { font-size: 2.2rem; color: rgba(0,0,0,.35); }
 .ct-empty h3 { margin: 10px 0 6px; }
 .ct-empty p { color: rgba(0,0,0,.62); margin-bottom: 16px; }

 .cart-img-wrap {
/* consistent width */
width: 90px;
/* consistent height */
height: 90px;
background: #fff;
}

.cart-tbl_product-img {
 max-width: 100%;
 max-height: 100%;
/* KEY: no stretch, no crop */
object-fit: contain;
}
.cart-img-wrap:hover {
 border: 1px solid #dee2e6;
 border-radius: 4px;
}

.cart-img-wrap {
  width: 90px;
  height: 90px;
  background: #fff;
}

.cart-tbl_product-img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}
