
/* TML Astra Cart Theme — cart page only */
body.tml-cart-page .woocommerce {
  margin: 0 !important;
}
body.tml-cart-page .site-main > .ast-container,
body.tml-cart-page .site-main .ast-container {
  max-width: none !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
body.tml-cart-page .site-main {
  overflow: hidden;
}
.tml-cart-page-wrap,
.tml-cart-page-wrap * {
  box-sizing: border-box;
}
.tml-cart-page-wrap {
  --tml-blue:#0757bd;
  --tml-blue-2:#0d66d4;
  --tml-dark:#0b2e63;
  --tml-text:#141414;
  --tml-muted:#687486;
  --tml-border:#e2e8f0;
  --tml-soft:#f5f9ff;
  --tml-radius:12px;
  width:100%;
  color:var(--tml-text);
  font-family:inherit;
  background:#fff;
}
.tml-cart-hero {
  width:min(980px,calc(100% - 48px));
  min-height:198px;
  margin:28px auto 0;
  position:relative;
  overflow:hidden;
  border:1px solid #dce7f4;
  border-radius:14px;
  background:
    radial-gradient(ellipse at 68% 54%, rgba(255,255,255,.96) 0 19%, transparent 20%),
    linear-gradient(135deg,#f4f9ff 0%,#edf5ff 54%,#e8f2fd 100%);
  box-shadow:0 3px 12px rgba(15,43,78,.06);
}
.tml-cart-hero:before,
.tml-cart-hero:after {
  content:"";
  position:absolute;
  pointer-events:none;
  border-radius:50%;
  border:1px solid rgba(55,112,177,.10);
}
.tml-cart-hero:before {
  width:900px;height:300px;left:-220px;top:-165px;transform:rotate(8deg);
}
.tml-cart-hero:after {
  width:720px;height:245px;left:40px;top:-105px;transform:rotate(10deg);
}
.tml-cart-hero-inner {
  width:100%;
  height:100%;
  min-height:198px;
  margin:0;
  padding:43px 430px 32px 38px;
  position:relative;
  z-index:3;
}
.tml-cart-hero h1 {
  margin:0 0 0;
  font-size:29px;
  line-height:1.15;
  font-weight:800;
  letter-spacing:-.5px;
  color:var(--tml-dark);
}
.tml-breadcrumbs {
  display:flex;
  align-items:center;
  gap:12px;
  font-size:13px;
  color:#20252d;
  margin-bottom:17px;
}
.tml-breadcrumbs strong {
  color:var(--tml-blue);
  font-weight:700;
}
.tml-chevron {
  color:#8b98a8;
  font-size:18px;
  line-height:12px;
}
.tml-hero-art {
  position:absolute;
  z-index:2;
  width:440px;
  height:190px;
  right:8px;
  bottom:0;
  background:url("hero-appliances.svg") right bottom/contain no-repeat;
  opacity:1;
  pointer-events:none;
}
.tml-cart-container {
  width:min(980px,calc(100% - 48px));
  margin:34px auto 0;
}
.tml-cart-grid {
  display:grid;
  grid-template-columns:minmax(0,2.35fr) minmax(285px,.98fr);
  gap:18px;
  align-items:start;
}
.tml-cart-card,
.tml-summary-card {
  border:1px solid var(--tml-border);
  border-radius:11px;
  background:#fff;
  box-shadow:0 2px 8px rgba(15,43,78,.06);
}
.tml-cart-card {
  overflow:hidden;
}
.tml-cart-table-head {
  min-height:42px;
  padding:0 18px;
  display:grid;
  grid-template-columns:minmax(250px,2.1fr) .9fr .92fr 1fr;
  align-items:center;
  gap:12px;
  background:#fbfcfe;
  border-bottom:1px solid var(--tml-border);
  font-size:12px;
  font-weight:700;
}
.tml-cart-table-head > div:not(:first-child) {
  text-align:center;
}
.tml-cart-items {
  width:100%;
}
.tml-cart-row {
  min-height:132px;
  padding:18px;
  display:grid;
  grid-template-columns:minmax(250px,2.1fr) .9fr .92fr 1fr;
  gap:12px;
  align-items:center;
  border-bottom:1px solid #edf0f4;
}
.tml-product-cell {
  min-width:0;
  display:flex;
  align-items:center;
  gap:15px;
}
.tml-product-thumb {
  flex:0 0 72px;
  width:72px;
  height:82px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.tml-product-thumb img {
  width:72px !important;
  height:82px !important;
  object-fit:contain;
  margin:0 !important;
}
.tml-product-info {
  min-width:0;
}
.tml-product-name {
  display:block;
  color:#16191e;
  font-size:13px;
  line-height:1.38;
  font-weight:700;
  text-decoration:none;
  margin-bottom:6px;
}
.tml-product-name:hover {
  color:var(--tml-blue);
}
.tml-product-sku {
  color:#7b8490;
  font-size:10px;
  margin-top:6px;
}
.tml-price-cell,
.tml-subtotal-price {
  font-size:12px;
  font-weight:600;
  white-space:nowrap;
  text-align:center;
}
.tml-subtotal-cell {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  min-width:0;
}
.tml-qty-cell {
  display:flex;
  justify-content:center;
}
.tml-qty-control {
  height:36px;
  display:flex;
  align-items:center;
  border:1px solid #dbe3ec;
  border-radius:8px;
  overflow:hidden;
  background:#fff;
}
.tml-qty-btn {
  width:34px;
  height:34px;
  border:0 !important;
  background:#fff !important;
  color:#64748b !important;
  box-shadow:none !important;
  padding:0 !important;
  font-size:18px;
  line-height:34px;
  cursor:pointer;
}
.tml-qty-btn:hover {
  color:var(--tml-blue) !important;
  background:#f6faff !important;
}
.tml-qty-input {
  width:40px !important;
  height:34px !important;
  padding:0 !important;
  margin:0 !important;
  border:0 !important;
  border-left:1px solid #edf0f4 !important;
  border-right:1px solid #edf0f4 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  text-align:center;
  font-size:12px !important;
  color:#27303a !important;
  -moz-appearance:textfield;
}
.tml-qty-input::-webkit-outer-spin-button,
.tml-qty-input::-webkit-inner-spin-button { -webkit-appearance:none; margin:0; }
.tml-remove {
  display:inline-flex;
  width:24px;
  height:28px;
  align-items:center;
  justify-content:center;
  color:#a3adba !important;
  text-decoration:none !important;
  font-size:18px;
}
.tml-remove:hover { color:#d43c3c !important; }
.tml-cart-actions {
  min-height:84px;
  padding:18px;
  display:flex;
  justify-content:space-between;
  align-items:center;
}
.tml-btn {
  min-height:40px;
  border-radius:8px;
  padding:0 16px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  text-decoration:none !important;
  font-size:12px;
  font-weight:700;
  cursor:pointer;
  transition:.2s ease;
}
.tml-btn-light {
  color:#252c35 !important;
  background:#fff;
  border:1px solid #dce4ec;
}
.tml-btn-light:hover { background:#f8fafc; }
.tml-btn-update {
  color:var(--tml-blue) !important;
  background:#f4f8ff !important;
  border:0 !important;
  box-shadow:none !important;
}
.tml-btn-update:hover { background:#eaf2ff !important; }
.tml-summary-card {
  padding:20px 18px 18px;
}
.tml-summary-card h2 {
  margin:0 0 28px;
  font-size:16px;
  line-height:1.2;
  font-weight:800;
  color:#171b21;
}
.tml-summary-line,
.tml-shipping-line {
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
  font-size:12px;
}
.tml-summary-line strong {
  font-weight:600;
  white-space:nowrap;
}
.tml-shipping-line {
  margin-top:25px;
}
.tml-shipping-trigger {
  border:0;
  background:transparent !important;
  padding:0;
  color:var(--tml-blue) !important;
  font:inherit;
  cursor:pointer;
  white-space:nowrap;
}
.tml-shipping-box {
  margin-top:12px;
  padding:11px 12px;
  background:#f5f9ff;
  border-radius:7px;
  font-size:11px;
  line-height:1.5;
}
.tml-shipping-box p { margin:0 0 7px; color:#64748b; }
.tml-shipping-box a { color:var(--tml-blue); font-weight:700; text-decoration:none; }
.tml-summary-divider {
  height:1px;
  background:#e8edf3;
  margin:28px 0 25px;
}
.tml-total-line {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
}
.tml-total-line span {
  font-size:14px;
  font-weight:800;
}
.tml-total-line strong {
  color:var(--tml-blue);
  font-size:18px;
  font-weight:800;
  white-space:nowrap;
}
.tml-tax-note {
  color:#7b8490;
  font-size:9px;
  margin:7px 0 20px;
}
.tml-checkout-btn,
.tml-wa-btn {
  width:100%;
  min-height:46px;
  border-radius:7px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  text-decoration:none !important;
  font-size:13px;
  font-weight:800;
}
.tml-checkout-btn {
  color:#fff !important;
  background:linear-gradient(180deg,#075fca,#0754b2);
  box-shadow:0 2px 4px rgba(0,76,174,.18);
}
.tml-checkout-btn:hover { color:#fff !important; filter:brightness(.97); }
.tml-wa-btn {
  margin-top:10px;
  color:#0b8f57 !important;
  background:#fff;
  border:1px solid #0b8f57;
}
.tml-wa-btn:hover { background:#f3fffa; }
.tml-wa-icon { font-size:18px; }
.tml-trust-list {
  margin-top:19px;
  display:grid;
  gap:12px;
}
.tml-trust-list > div {
  display:flex;
  align-items:center;
  gap:10px;
  color:#64748b;
}
.tml-trust-list > div > span {
  color:var(--tml-blue);
  width:16px;
  text-align:center;
  font-size:16px;
}
.tml-trust-list p { margin:0; }
.tml-trust-list strong {
  font-size:10px;
  font-weight:500;
}
.tml-benefits {
  margin-top:45px;
  padding:28px 28px;
  min-height:110px;
  border-radius:11px;
  background:#f4f8ff;
  display:grid;
  grid-template-columns:repeat(4,1fr);
}
.tml-benefit {
  display:flex;
  gap:14px;
  align-items:center;
  padding:0 24px;
  border-right:1px solid #dce6f2;
}
.tml-benefit:first-child { padding-left:0; }
.tml-benefit:last-child { border-right:0; padding-right:0; }
.tml-benefit-icon {
  flex:0 0 28px;
  color:var(--tml-blue);
  font-size:27px;
  line-height:1;
  text-align:center;
}
.tml-benefit strong {
  display:block;
  color:var(--tml-blue);
  font-size:11px;
  font-weight:800;
  margin-bottom:8px;
}
.tml-benefit p {
  margin:0;
  color:#7b8796;
  font-size:9px;
  line-height:1.45;
}
.tml-help {
  margin:40px 0 30px;
  min-height:78px;
  border:1px solid #dfe8f2;
  border-radius:11px;
  background:#fbfdff;
  padding:15px 20px;
  display:flex;
  align-items:center;
  gap:15px;
}
.tml-help-icon {
  flex:0 0 32px;
  width:32px;
  height:32px;
  border:2px solid var(--tml-blue);
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--tml-blue);
  font-size:18px;
  font-weight:800;
}
.tml-help-copy { flex:1; }
.tml-help-copy strong {
  display:block;
  color:var(--tml-dark);
  font-size:12px;
  margin-bottom:7px;
}
.tml-help-copy p {
  margin:0;
  color:#7a8490;
  font-size:10px;
}
.tml-help-btn {
  min-height:42px;
  padding:0 18px;
  border-radius:7px;
  background:#e9f1fb;
  color:#0754b2 !important;
  text-decoration:none !important;
  font-size:11px;
  font-weight:800;
  display:flex;
  align-items:center;
  gap:9px;
}
.tml-empty-cart {
  width:min(980px,calc(100% - 48px));
  margin:34px auto 80px;
  padding:70px 25px;
  text-align:center;
  border:1px solid var(--tml-border);
  border-radius:12px;
}
.tml-empty-icon { font-size:42px; margin-bottom:12px; }
.tml-empty-cart h2 { margin:0 0 8px; color:var(--tml-dark); }
.tml-empty-cart p { color:var(--tml-muted); margin:0 0 22px; }
body.tml-cart-page .screen-reader-text {
  border:0;
  clip:rect(1px,1px,1px,1px);
  clip-path:inset(50%);
  height:1px;
  margin:-1px;
  overflow:hidden;
  padding:0;
  position:absolute!important;
  width:1px;
  word-wrap:normal!important;
}
body.tml-cart-page .woocommerce-notices-wrapper {
  width:min(980px,calc(100% - 48px));
  margin:22px auto 0;
}
body.tml-cart-page .woocommerce-message,
body.tml-cart-page .woocommerce-error,
body.tml-cart-page .woocommerce-info {
  margin:0 0 18px !important;
}

/* Tablet */
@media (max-width: 900px) {
  .tml-cart-grid { grid-template-columns:1fr; }
  .tml-summary-card { order:2; }
  .tml-benefits { grid-template-columns:repeat(2,1fr); row-gap:25px; }
  .tml-benefit:nth-child(2) { border-right:0; }
  .tml-benefit:nth-child(3) { padding-left:0; }
}

/* Mobile */
@media (max-width: 680px) {
  .tml-cart-hero { width:calc(100% - 32px); min-height:170px; margin-top:22px; }
  .tml-cart-hero-inner { min-height:170px; padding:32px 24px 24px; }
  .tml-cart-hero h1 { font-size:25px; max-width:70%; }
  .tml-hero-art { width:235px; height:125px; right:-22px; opacity:.24; }
  .tml-breadcrumbs { font-size:11px; margin-bottom:13px; }
  .tml-cart-container { width:calc(100% - 32px); margin-top:20px; }
  .tml-cart-table-head { display:none; }
  .tml-cart-row {
    grid-template-columns:1fr;
    gap:12px;
    padding:17px 15px;
    position:relative;
  }
  .tml-product-cell { padding-right:25px; }
  .tml-price-cell,
  .tml-qty-cell,
  .tml-subtotal-cell {
    justify-content:flex-start;
    text-align:left;
  }
  .tml-price-cell:before { content:"Harga: "; color:#7b8490; font-weight:400; }
  .tml-subtotal-cell:before { content:"Subtotal: "; color:#7b8490; font-size:11px; }
  .tml-subtotal-cell { justify-content:flex-start; }
  .tml-remove { position:absolute; right:13px; top:18px; }
  .tml-cart-actions { padding:14px 12px; gap:10px; }
  .tml-btn { padding:0 11px; font-size:10px; }
  .tml-benefits { grid-template-columns:1fr; padding:20px; }
  .tml-benefit,
  .tml-benefit:nth-child(3) { border-right:0; border-bottom:1px solid #dce6f2; padding:0 0 18px; }
  .tml-benefit:last-child { border-bottom:0; padding-bottom:0; }
  .tml-help { align-items:flex-start; flex-wrap:wrap; }
  .tml-help-btn { margin-left:47px; width:calc(100% - 47px); justify-content:center; }
  .tml-summary-card { padding:18px 15px; }
  body.tml-cart-page .woocommerce-notices-wrapper { width:calc(100% - 32px); }
}

.tml-trash-icon{display:inline-flex;align-items:center;justify-content:center;line-height:1;}

/* v1.0.5: consistent inline SVG icon system */
.tml-cart-page-wrap svg { display:block; }
.tml-btn-icon, .tml-inline-icon, .tml-wa-icon, .tml-help-wa-icon, .tml-trust-icon { display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto; }
.tml-chevron svg { width:14px; height:14px; }
.tml-empty-icon svg { width:34px; height:34px; }
.tml-qty-btn svg { width:14px; height:14px; margin:auto; }
.tml-benefit-icon svg { width:27px; height:27px; }
.tml-help-icon svg { width:26px; height:26px; }
.tml-trust-list .tml-trust-icon { color:var(--tml-blue); width:18px; min-width:18px; }
.tml-trust-list .tml-trust-icon svg { width:18px; height:18px; }
.tml-trust-list > div { align-items:center; }
.tml-shipping-trigger { display:inline-flex; align-items:center; gap:5px; }

/* v1.0.6: AJAX quantity update feedback */
.tml-cart-ajax-status {
  min-height: 0;
  margin: 0 18px;
  font-size: 12px;
  line-height: 1.4;
  color: #64748b;
}
.tml-cart-ajax-status.is-loading {
  min-height: 20px;
  padding: 7px 10px;
  background: #f5f9ff;
  border-radius: 7px;
}
.tml-cart-ajax-status.is-error {
  min-height: 20px;
  margin-top: 10px;
  margin-bottom: 2px;
  padding: 8px 10px;
  color: #b42318;
  background: #fff4f2;
  border-radius: 7px;
}
.tml-cart-updating .tml-qty-btn,
.tml-cart-updating .tml-qty-input {
  cursor: wait;
}
.tml-row-updating .tml-subtotal-price {
  opacity: .55;
  transition: opacity .15s ease;
}

/* v1.0.7: production AJAX cart UX */
.tml-cart-card.tml-cart-bulk-updating { opacity:.98; }
.tml-row-updating .tml-qty-control { opacity:.72; }
.tml-qty-btn:disabled, .tml-qty-input:disabled { cursor:wait; }
.tml-price-pending { opacity:.55; transition:opacity .15s ease; }
.tml-cart-ajax-status.is-loading { position:relative; }
.tml-cart-ajax-status.is-loading:before {
  content:"";
  display:inline-block;
  width:12px;
  height:12px;
  margin-right:7px;
  vertical-align:-2px;
  border:2px solid currentColor;
  border-right-color:transparent;
  border-radius:50%;
  animation:tml-cart-spin .65s linear infinite;
}
@keyframes tml-cart-spin { to { transform:rotate(360deg); } }
@media (prefers-reduced-motion:reduce) {
  .tml-cart-ajax-status.is-loading:before { animation:none; }
}


/* =========================================================
   v1.0.23 — CLEAN ALIGNMENT / V1.0.8 BASELINE
   Navbar + Footer logic and assets are intentionally untouched.
   ========================================================= */

@media (min-width: 681px) {
  body.tml-cart-page .tml-cart-table-head,
  body.tml-cart-page .tml-cart-row {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 132px 142px 150px 44px !important;
    column-gap: 10px !important;
    align-items: center !important;
  }
  body.tml-cart-page .tml-cart-table-head { min-height: 46px !important; height: 46px !important; padding: 0 18px !important; }
  body.tml-cart-page .tml-cart-table-head > div { min-width: 0 !important; width: auto !important; margin: 0 !important; padding: 0 !important; text-align: center !important; line-height: 1.2 !important; white-space: nowrap !important; }
  body.tml-cart-page .tml-cart-table-head > div:first-child { text-align: left !important; }
  body.tml-cart-page .tml-remove-head { overflow: visible !important; white-space: nowrap !important; text-align: center !important; }
  body.tml-cart-page .tml-cart-row { min-height: 136px !important; padding: 18px !important; }
  body.tml-cart-page .tml-product-cell,
  body.tml-cart-page .tml-price-cell,
  body.tml-cart-page .tml-qty-cell,
  body.tml-cart-page .tml-subtotal-cell,
  body.tml-cart-page .tml-remove-cell { min-width: 0 !important; width: auto !important; margin: 0 !important; padding: 0 !important; align-self: center !important; }
  body.tml-cart-page .tml-product-cell { display: flex !important; align-items: center !important; gap: 15px !important; }
  body.tml-cart-page .tml-price-cell,
  body.tml-cart-page .tml-qty-cell,
  body.tml-cart-page .tml-subtotal-cell,
  body.tml-cart-page .tml-remove-cell { display: flex !important; align-items: center !important; justify-content: center !important; }
  body.tml-cart-page .tml-price-cell,
  body.tml-cart-page .tml-subtotal-cell { text-align: center !important; white-space: nowrap !important; line-height: 1.3 !important; }
  body.tml-cart-page .tml-subtotal-price { margin: 0 !important; padding: 0 !important; display: block !important; text-align: center !important; white-space: nowrap !important; line-height: 1.3 !important; }
  body.tml-cart-page .tml-remove { position: static !important; width: 32px !important; height: 36px !important; margin: 0 !important; padding: 0 !important; display: inline-flex !important; align-items: center !important; justify-content: center !important; line-height: 1 !important; }
  body.tml-cart-page .tml-remove .tml-trash-icon,
  body.tml-cart-page .tml-remove .tml-trash-icon svg { display: block !important; margin: 0 !important; }
  body.tml-cart-page .tml-qty-control { width: 102px !important; min-width: 102px !important; max-width: 102px !important; height: 36px !important; margin: 0 auto !important; padding: 0 !important; display: flex !important; align-items: center !important; justify-content: center !important; }
  body.tml-cart-page .tml-qty-btn { width: 34px !important; min-width: 34px !important; max-width: 34px !important; height: 34px !important; min-height: 34px !important; margin: 0 !important; padding: 0 !important; display: inline-flex !important; align-items: center !important; justify-content: center !important; line-height: 1 !important; }
  body.tml-cart-page .tml-qty-input { width: 34px !important; min-width: 34px !important; max-width: 34px !important; height: 34px !important; min-height: 34px !important; margin: 0 !important; padding: 0 !important; display: block !important; line-height: 34px !important; text-align: center !important; }
  body.tml-cart-page .tml-cart-actions { min-height: 82px !important; height: auto !important; padding: 18px !important; display: grid !important; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important; gap: 12px !important; align-items: center !important; }
  body.tml-cart-page .tml-cart-actions > .tml-btn { width: 100% !important; min-width: 0 !important; max-width: none !important; height: 42px !important; min-height: 42px !important; margin: 0 !important; padding: 0 16px !important; display: inline-flex !important; align-items: center !important; justify-content: center !important; gap: 8px !important; white-space: nowrap !important; line-height: 1 !important; }
  body.tml-cart-page .tml-cart-actions > .tml-btn .tml-btn-icon { width: 16px !important; height: 16px !important; min-width: 16px !important; margin: 0 !important; padding: 0 !important; display: inline-flex !important; align-items: center !important; justify-content: center !important; flex: 0 0 16px !important; }
  body.tml-cart-page .tml-cart-actions > .tml-btn .tml-btn-icon svg { display: block !important; width: 16px !important; height: 16px !important; margin: 0 !important; }
  body.tml-cart-page .tml-checkout-btn,
  body.tml-cart-page .tml-wa-btn { width: 100% !important; min-height: 46px !important; margin-left: 0 !important; margin-right: 0 !important; display: flex !important; align-items: center !important; justify-content: center !important; line-height: 1 !important; }
  body.tml-cart-page .tml-checkout-btn .tml-inline-icon,
  body.tml-cart-page .tml-wa-btn .tml-wa-icon { display: inline-flex !important; align-items: center !important; justify-content: center !important; width: 18px !important; height: 18px !important; min-width: 18px !important; margin: 0 !important; padding: 0 !important; flex: 0 0 18px !important; }
  body.tml-cart-page .tml-checkout-btn svg,
  body.tml-cart-page .tml-wa-btn svg { display: block !important; margin: 0 !important; }
  body.tml-cart-page .tml-trust-list > div { min-height: 22px !important; margin: 0 !important; padding: 0 !important; display: flex !important; align-items: center !important; gap: 10px !important; }
  body.tml-cart-page .tml-trust-list > div > .tml-trust-icon { flex: 0 0 18px !important; width: 18px !important; height: 18px !important; display: inline-flex !important; align-items: center !important; justify-content: center !important; margin: 0 !important; }
  body.tml-cart-page .tml-trust-list > div > p { margin: 0 !important; padding: 0 !important; line-height: 1.3 !important; }
}

@media (max-width: 680px) {
  body.tml-cart-page .tml-cart-row { display: grid !important; grid-template-columns: minmax(0, 1fr) !important; grid-auto-rows: auto !important; gap: 13px !important; min-height: 0 !important; height: auto !important; padding: 18px 15px 20px !important; align-items: start !important; }
  body.tml-cart-page .tml-product-cell { width: 100% !important; min-width: 0 !important; padding: 0 34px 0 0 !important; margin: 0 !important; display: flex !important; align-items: center !important; gap: 14px !important; }
  body.tml-cart-page .tml-product-thumb { flex: 0 0 72px !important; width: 72px !important; height: 82px !important; margin: 0 !important; padding: 0 !important; }
  body.tml-cart-page .tml-product-thumb img { width: 72px !important; height: 82px !important; margin: 0 !important; object-fit: contain !important; }
  body.tml-cart-page .tml-product-info { min-width: 0 !important; width: auto !important; margin: 0 !important; padding: 0 !important; }
  body.tml-cart-page .tml-product-name { margin: 0 0 5px !important; line-height: 1.35 !important; text-align: left !important; }
  body.tml-cart-page .tml-product-sku { margin: 5px 0 0 !important; line-height: 1.35 !important; text-align: left !important; }
  body.tml-cart-page .tml-price-cell,
  body.tml-cart-page .tml-qty-cell,
  body.tml-cart-page .tml-subtotal-cell { width: 100% !important; min-width: 0 !important; min-height: 36px !important; margin: 0 !important; padding: 0 !important; display: flex !important; align-items: center !important; justify-content: flex-start !important; text-align: left !important; }
  body.tml-cart-page .tml-price-cell::before,
  body.tml-cart-page .tml-qty-cell::before,
  body.tml-cart-page .tml-subtotal-cell::before { flex: 0 0 82px !important; width: 82px !important; color: #7b8490 !important; font-size: 12px !important; font-weight: 400 !important; text-align: left !important; }
  body.tml-cart-page .tml-price-cell::before { content: "Harga:" !important; }
  body.tml-cart-page .tml-qty-cell::before { content: "Jumlah:" !important; }
  body.tml-cart-page .tml-subtotal-cell::before { content: "Subtotal:" !important; }
  body.tml-cart-page .tml-qty-control { flex: 0 0 102px !important; width: 102px !important; min-width: 102px !important; height: 36px !important; margin: 0 !important; }
  body.tml-cart-page .tml-remove-cell { position: absolute !important; top: 18px !important; right: 13px !important; width: 32px !important; height: 36px !important; margin: 0 !important; padding: 0 !important; display: flex !important; align-items: center !important; justify-content: center !important; }
  body.tml-cart-page .tml-remove { position: static !important; width: 32px !important; height: 36px !important; margin: 0 !important; padding: 0 !important; display: inline-flex !important; align-items: center !important; justify-content: center !important; }
  body.tml-cart-page .tml-cart-actions { min-height: 0 !important; height: auto !important; padding: 14px 12px !important; display: grid !important; grid-template-columns: 1fr !important; gap: 10px !important; align-items: stretch !important; }
  body.tml-cart-page .tml-cart-actions > .tml-btn { width: 100% !important; height: 42px !important; min-height: 42px !important; margin: 0 !important; }
}


/* =========================================================
   v1.0.24 — TRUE CLEAN ROW ALIGNMENT
   Keep v1.0.8 navbar/footer behavior intact.
   Desktop columns are deliberately fixed so WooCommerce/Astra
   cannot redistribute the row into narrow product text columns.
   ========================================================= */
@media (min-width: 901px) {
  body.tml-cart-page .tml-cart-hero,
  body.tml-cart-page .tml-cart-container {
    width: min(1180px, calc(100% - 48px)) !important;
  }

  body.tml-cart-page .tml-cart-grid {
    grid-template-columns: minmax(0, 1fr) 320px !important;
    gap: 20px !important;
  }

  body.tml-cart-page .tml-cart-table-head,
  body.tml-cart-page .tml-cart-row {
    grid-template-columns: minmax(260px, 1fr) 120px 118px 130px 40px !important;
    column-gap: 8px !important;
  }

  body.tml-cart-page .tml-cart-table-head {
    padding-left: 18px !important;
    padding-right: 18px !important;
  }

  body.tml-cart-page .tml-cart-row {
    min-height: 136px !important;
    padding: 18px !important;
  }

  body.tml-cart-page .tml-product-cell {
    min-width: 0 !important;
    max-width: 100% !important;
  }

  body.tml-cart-page .tml-product-info {
    min-width: 0 !important;
    max-width: 100% !important;
  }

  body.tml-cart-page .tml-product-name {
    max-width: 100% !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    white-space: normal !important;
  }

  body.tml-cart-page .tml-price-cell,
  body.tml-cart-page .tml-qty-cell,
  body.tml-cart-page .tml-subtotal-cell,
  body.tml-cart-page .tml-remove-cell {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    justify-self: stretch !important;
    align-self: center !important;
  }

  body.tml-cart-page .tml-price-cell,
  body.tml-cart-page .tml-subtotal-cell {
    justify-content: center !important;
    white-space: nowrap !important;
  }

  body.tml-cart-page .tml-qty-cell {
    justify-content: center !important;
  }

  body.tml-cart-page .tml-qty-control {
    width: 102px !important;
    min-width: 102px !important;
    max-width: 102px !important;
  }

  body.tml-cart-page .tml-remove-cell {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  body.tml-cart-page .tml-remove {
    margin: 0 !important;
  }

  body.tml-cart-page .tml-cart-actions {
    grid-template-columns: 1fr 1fr !important;
  }
}

@media (min-width: 681px) and (max-width: 900px) {
  body.tml-cart-page .tml-cart-hero,
  body.tml-cart-page .tml-cart-container {
    width: calc(100% - 32px) !important;
  }

  body.tml-cart-page .tml-cart-grid {
    grid-template-columns: 1fr !important;
  }

  body.tml-cart-page .tml-cart-table-head,
  body.tml-cart-page .tml-cart-row {
    grid-template-columns: minmax(250px, 1fr) 110px 110px 120px 40px !important;
    column-gap: 7px !important;
  }
}

/* =========================================================
   v1.0.26 — ALIGNMENT LOCK
   Based on v1.0.25 / v1.0.24 baseline.
   Navbar + footer are intentionally untouched.
   Header and every cart row share ONE exact column system.
   ========================================================= */
@media (min-width: 901px) {
  body.tml-cart-page .tml-cart-table-head,
  body.tml-cart-page .tml-cart-row {
    --tml-col-price: 136px;
    --tml-col-qty: 120px;
    --tml-col-subtotal: 136px;
    --tml-col-remove: 40px;
    display: grid !important;
    grid-template-columns:
      minmax(0, 1fr)
      var(--tml-col-price)
      var(--tml-col-qty)
      var(--tml-col-subtotal)
      var(--tml-col-remove) !important;
    column-gap: 8px !important;
    align-items: center !important;
  }

  body.tml-cart-page .tml-cart-table-head {
    min-height: 46px !important;
    height: 46px !important;
    padding: 0 18px !important;
  }

  body.tml-cart-page .tml-cart-row {
    min-height: 136px !important;
    padding: 18px !important;
  }

  /* Product column: fixed image anchor + flexible title area. */
  body.tml-cart-page .tml-product-cell {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    display: grid !important;
    grid-template-columns: 72px minmax(0, 1fr) !important;
    column-gap: 15px !important;
    align-items: center !important;
    justify-content: stretch !important;
  }

  body.tml-cart-page .tml-product-thumb {
    width: 72px !important;
    min-width: 72px !important;
    max-width: 72px !important;
    height: 82px !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  body.tml-cart-page .tml-product-thumb img {
    display: block !important;
    width: 72px !important;
    height: 82px !important;
    margin: 0 !important;
    object-fit: contain !important;
  }

  body.tml-cart-page .tml-product-info {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    align-self: center !important;
  }

  body.tml-cart-page .tml-product-name {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 0 6px !important;
    padding: 0 !important;
    text-align: left !important;
    line-height: 1.35 !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
  }

  body.tml-cart-page .tml-product-sku {
    margin: 6px 0 0 !important;
    padding: 0 !important;
    line-height: 1.35 !important;
    text-align: left !important;
  }

  /* Every numeric/action column occupies the full grid track. */
  body.tml-cart-page .tml-price-cell,
  body.tml-cart-page .tml-qty-cell,
  body.tml-cart-page .tml-subtotal-cell,
  body.tml-cart-page .tml-remove-cell {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    align-self: center !important;
    justify-self: stretch !important;
  }

  body.tml-cart-page .tml-price-cell,
  body.tml-cart-page .tml-subtotal-cell {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    white-space: nowrap !important;
  }

  body.tml-cart-page .tml-subtotal-cell {
    gap: 0 !important;
  }

  body.tml-cart-page .tml-subtotal-price {
    display: block !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    text-align: center !important;
    white-space: nowrap !important;
  }

  body.tml-cart-page .tml-qty-cell {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  body.tml-cart-page .tml-qty-control {
    flex: 0 0 102px !important;
    width: 102px !important;
    min-width: 102px !important;
    max-width: 102px !important;
    height: 36px !important;
    margin: 0 !important;
  }

  body.tml-cart-page .tml-remove-cell {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  body.tml-cart-page .tml-remove {
    width: 32px !important;
    height: 36px !important;
    margin: 0 !important;
    padding: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  /* Header labels use exactly the same tracks as row content. */
  body.tml-cart-page .tml-cart-table-head > div {
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
  }

  body.tml-cart-page .tml-cart-table-head > div:first-child {
    text-align: left !important;
  }

  body.tml-cart-page .tml-cart-table-head > div:not(:first-child) {
    text-align: center !important;
  }

  /* Keep action buttons on the same left-column rhythm. */
  body.tml-cart-page .tml-cart-actions {
    min-height: 82px !important;
    padding: 18px !important;
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 12px !important;
    align-items: center !important;
  }

  body.tml-cart-page .tml-cart-actions > .tml-btn {
    width: 100% !important;
    height: 42px !important;
    min-height: 42px !important;
    margin: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
  }
}


/* =========================================================
   v1.0.27 — BUTTON ALIGNMENT LOCK
   Only button/icon alignment is adjusted. Cart columns,
   navbar, footer and WooCommerce/AJAX behavior remain intact.
   ========================================================= */
.tml-cart-page-wrap .tml-btn,
.tml-cart-page-wrap .tml-checkout-btn,
.tml-cart-page-wrap .tml-wa-btn,
.tml-cart-page-wrap .tml-help-btn {
  box-sizing: border-box !important;
  text-align: center !important;
  vertical-align: middle !important;
}

/* Action buttons: icon + label are one centered visual group. */
body.tml-cart-page .tml-cart-actions > .tml-btn {
  position: relative !important;
  display: inline-flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  line-height: 1 !important;
  text-align: center !important;
  white-space: nowrap !important;
}
body.tml-cart-page .tml-cart-actions > .tml-btn .tml-btn-icon,
body.tml-cart-page .tml-cart-actions > .tml-btn .tml-btn-label {
  position: static !important;
  align-self: center !important;
  vertical-align: middle !important;
}
body.tml-cart-page .tml-cart-actions > .tml-btn .tml-btn-icon {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 16px !important;
  height: 16px !important;
  min-width: 16px !important;
  flex: 0 0 16px !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 0 !important;
}
body.tml-cart-page .tml-cart-actions > .tml-btn .tml-btn-icon svg {
  display: block !important;
  width: 16px !important;
  height: 16px !important;
  margin: 0 !important;
  padding: 0 !important;
  transform: none !important;
}
body.tml-cart-page .tml-cart-actions > .tml-btn .tml-btn-label {
  display: inline-block !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1.15 !important;
}

/* Summary CTA buttons: lock icon and label to the same center line. */
body.tml-cart-page .tml-checkout-btn,
body.tml-cart-page .tml-wa-btn,
body.tml-cart-page .tml-help-btn {
  flex-direction: row !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 9px !important;
  line-height: 1 !important;
}
body.tml-cart-page .tml-checkout-btn .tml-inline-icon,
body.tml-cart-page .tml-wa-btn .tml-wa-icon,
body.tml-cart-page .tml-help-btn .tml-help-wa-icon {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 18px !important;
  height: 18px !important;
  min-width: 18px !important;
  flex: 0 0 18px !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 0 !important;
  vertical-align: middle !important;
}
body.tml-cart-page .tml-checkout-btn .tml-inline-icon svg,
body.tml-cart-page .tml-wa-btn .tml-wa-icon svg,
body.tml-cart-page .tml-help-btn .tml-help-wa-icon svg {
  display: block !important;
  width: 18px !important;
  height: 18px !important;
  margin: 0 !important;
  padding: 0 !important;
  transform: none !important;
}
body.tml-cart-page .tml-checkout-btn .tml-btn-label,
body.tml-cart-page .tml-wa-btn .tml-btn-label,
body.tml-cart-page .tml-help-btn .tml-btn-label {
  display: inline-block !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1.15 !important;
  align-self: center !important;
}

/* Mobile: preserve the stacked layout while keeping every button group centered. */
@media (max-width: 680px) {
  body.tml-cart-page .tml-cart-actions > .tml-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    text-align: center !important;
  }
  body.tml-cart-page .tml-cart-actions > .tml-btn .tml-btn-icon {
    width: 16px !important;
    height: 16px !important;
    min-width: 16px !important;
    flex-basis: 16px !important;
  }
  body.tml-cart-page .tml-cart-actions > .tml-btn .tml-btn-icon svg {
    width: 16px !important;
    height: 16px !important;
  }
  body.tml-cart-page .tml-checkout-btn,
  body.tml-cart-page .tml-wa-btn,
  body.tml-cart-page .tml-help-btn {
    align-items: center !important;
    justify-content: center !important;
  }
}
