/* ==========================================================================
   Cart page
   ========================================================================== */

.cart-layout {
  padding-top: calc(var(--nav-height) + var(--space-7));
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: var(--space-8);
  align-items: start;
}
@media (max-width: 900px) {
  .cart-layout { grid-template-columns: 1fr; }
}

.cart-items { display: flex; flex-direction: column; gap: var(--space-4); }

.cart-item {
  display: grid;
  grid-template-columns: 96px 1fr auto;
  gap: var(--space-4);
  padding: var(--space-4);
  border: 1px solid var(--line-on-paper);
  border-radius: var(--radius-md);
  align-items: center;
}
.cart-item__media {
  width: 96px; height: 96px;
  border-radius: var(--radius-sm);
  overflow: hidden;
  background: var(--paper-2);
}
.cart-item__media img { width: 100%; height: 100%; object-fit: cover; }

.cart-item__name { font-weight: 600; }
.cart-item__sku { font-family: var(--font-mono); font-size: var(--fs-xs); color: var(--text-on-paper-mute); margin-top: 2px; }
.cart-item__unit-price { font-family: var(--font-mono); font-size: var(--fs-sm); margin-top: var(--space-2); color: var(--text-on-paper-mute); }

.cart-item__controls {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: var(--space-3);
}
.cart-item__line-total { font-family: var(--font-mono); font-weight: 700; }
.cart-item__remove {
  background: transparent;
  border: none;
  color: var(--danger);
  font-size: var(--fs-xs);
  text-decoration: underline;
}

.cart-qty-stepper {
  display: flex;
  align-items: center;
  border: 1px solid var(--line-on-paper);
  border-radius: var(--radius-sm);
}
.cart-qty-stepper button {
  width: 30px; height: 30px;
  background: transparent;
  border: none;
}
.cart-qty-stepper input {
  width: 34px;
  text-align: center;
  border: none;
  border-left: 1px solid var(--line-on-paper);
  border-right: 1px solid var(--line-on-paper);
  height: 30px;
  font-family: var(--font-mono);
  font-size: var(--fs-xs);
}

.cart-empty {
  text-align: center;
  padding: var(--space-9) var(--space-5);
  border: 1px dashed var(--line-on-paper);
  border-radius: var(--radius-md);
}
.cart-empty svg { width: 48px; height: 48px; margin: 0 auto var(--space-4); color: var(--text-on-paper-mute); }

.cart-summary {
  border: 1px solid var(--line-on-paper);
  border-radius: var(--radius-md);
  padding: var(--space-6);
  position: sticky;
  top: calc(var(--nav-height) + var(--space-5));
}
.cart-summary__title { font-family: var(--font-mono); font-size: var(--fs-xs); letter-spacing: 0.1em; text-transform: uppercase; color: var(--text-on-paper-mute); margin-bottom: var(--space-5); }
.cart-summary__row { display: flex; justify-content: space-between; padding-block: var(--space-2); font-size: var(--fs-sm); }
.cart-summary__row.total { font-weight: 700; font-size: var(--fs-md); border-top: 1px solid var(--line-on-paper); margin-top: var(--space-3); padding-top: var(--space-4); }
.cart-summary__row .val { font-family: var(--font-mono); }

.coupon-row { display: flex; gap: var(--space-2); margin-top: var(--space-4); }
.coupon-row input {
  flex: 1;
  padding: 10px 12px;
  border: 1px solid var(--line-on-paper);
  border-radius: var(--radius-sm);
  font-size: var(--fs-sm);
}
.coupon-note { font-size: 11px; color: var(--text-on-paper-mute); margin-top: var(--space-2); }

.cart-summary .btn { width: 100%; margin-top: var(--space-5); }

/* ---- Checkout modal (demo mode — no live payment in V1) ---- */
.modal-overlay {
  position: fixed; inset: 0;
  background: rgba(16, 32, 47, 0.55);
  z-index: var(--z-modal);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-5);
  visibility: hidden;
  opacity: 0;
  transition: opacity var(--dur-med) var(--ease);
}
.modal-overlay[data-open="true"] { visibility: visible; opacity: 1; }
.modal {
  background: var(--paper);
  border-radius: var(--radius-lg);
  max-width: 460px;
  width: 100%;
  padding: var(--space-7);
  transform: translateY(12px);
  transition: transform var(--dur-med) var(--ease);
}
.modal-overlay[data-open="true"] .modal { transform: translateY(0); }
.modal__icon {
  width: 48px; height: 48px;
  border-radius: 50%;
  background: var(--paper-3);
  display: flex; align-items: center; justify-content: center;
  margin-bottom: var(--space-5);
}
.modal__icon svg { width: 24px; height: 24px; color: var(--amber); }
.modal h3 { font-size: var(--fs-lg); margin-bottom: var(--space-3); }
.modal p { color: var(--text-on-paper-mute); font-size: var(--fs-sm); }
.modal__actions { display: flex; gap: var(--space-3); margin-top: var(--space-6); }
