/* ==========================================================================
   Cart page
   ========================================================================== */
.cart-page__layout { display: grid; gap: var(--s-6); }
@media (min-width: 1024px) { .cart-page__layout { grid-template-columns: 7fr 5fr; gap: var(--s-8); align-items: start; } .cart-page__aside { position: sticky; top: calc(var(--header-h) + var(--s-5)); } }
.cart-list { border-block-start: var(--hair); }
.cart-item { display: grid; grid-template-columns: 96px 1fr; gap: var(--s-4); padding-block: var(--s-4); border-block-end: var(--hair); }
@media (min-width: 640px) { .cart-item { grid-template-columns: 120px 1fr; } }
.cart-item__media { aspect-ratio: var(--card-ratio); }
.cart-item__body { display: grid; gap: var(--s-2); align-content: start; min-width: 0; }
.cart-item__title { margin: 0; font-size: var(--fs-base); font-weight: var(--fw-regular); }
.cart-item__meta .variation { margin: 0; display: grid; gap: 2px; font-size: var(--fs-xs); color: var(--c-ink-2); }
.cart-item__meta .variation dt, .cart-item__meta .variation dd { display: inline; margin: 0; font-weight: var(--fw-regular); }
.cart-item__meta .variation dt::after { content: " "; }
.cart-item__meta .variation dd p { display: inline; margin: 0; }
.cart-item__row { display: flex; justify-content: space-between; align-items: center; gap: var(--s-3); flex-wrap: wrap; }
.cart-item__qty .quantity { display: inline-flex; border: 1px solid var(--c-line); border-radius: var(--r-1); background: var(--c-surface); }
.cart-item__qty .qty { width: 64px; min-height: 44px; border: 0; text-align: center; background: transparent; }
.cart-item__prices { display: grid; text-align: end; }
.cart-item__subtotal { font-weight: var(--fw-medium); }
.cart-item__unit { font-size: var(--fs-xs); }
.cart-item__remove { justify-self: start; font-size: var(--fs-xs); color: var(--c-ink-2); border-block-end: 1px solid currentColor; }
.cart-item__remove:hover { color: var(--c-error); text-decoration: none; }
.cart-page__actions { display: flex; gap: var(--s-3); flex-wrap: wrap; align-items: center; padding-block: var(--s-4); }
.cart-coupon { display: flex; gap: var(--s-2); flex: 1; min-width: 240px; }
.cart-coupon .input { flex: 1; min-height: 48px; }
.totals { border: var(--hair); padding: var(--s-5); background: var(--c-surface); display: grid; gap: var(--s-3); }
.totals__title { font-size: var(--fs-md); margin: 0; }
.totals__rows { margin: 0; display: grid; gap: var(--s-2); font-size: var(--fs-sm); }
.totals__row { display: flex; justify-content: space-between; gap: var(--s-3); }
.totals__row dt { color: var(--c-ink-2); }
.totals__row dd { margin: 0; text-align: end; }
.totals__row--total { border-block-start: var(--hair); padding-block-start: var(--s-3); font-size: var(--fs-md); font-weight: var(--fw-medium); }
.totals__row--total dt { color: var(--c-ink); }
.totals__row--coupon dd a { font-size: var(--fs-xs); margin-inline-start: var(--s-2); color: var(--c-ink-2); }
.totals__rate { margin: 0; line-height: var(--lh-loose); }
.wc-proceed-to-checkout .btn { width: 100%; }
.cart-empty-state { padding-block: var(--s-8); display: grid; gap: var(--s-5); justify-items: start; }
.cart-page .woocommerce-notices-wrapper { margin-block-end: var(--s-4); }
