.product-purchase-actions { display: grid; justify-items: start; gap: .65rem; margin: 1rem 0; }
.product-purchase-actions .vinted-source-link { margin: 0; }
.product-purchase-actions .button-secondary { width: fit-content; }

.cart-page { display: grid; gap: 1rem; }
.cart-page-header { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 1rem; }
.cart-layout { display: grid; grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr); gap: 1.25rem; align-items: start; }
.cart-items { display: grid; gap: .85rem; }
.cart-line { display: grid; grid-template-columns: 132px minmax(0, 1fr) minmax(130px, auto); gap: 1rem; border: 1px solid color-mix(in srgb, var(--accent, #fff) 55%, #333); padding: .85rem; background: #0b0b0b; }
.cart-line-warning { border-color: #ef6464; }
.cart-line-image { display: grid; place-items: center; overflow: hidden; aspect-ratio: 1; background: #151515; }
.cart-line-image img { width: 100%; height: 100%; object-fit: cover; }
.cart-line-details h2 { margin: .15rem 0 .4rem; font-size: 1.1rem; }
.cart-line-details p { margin: .25rem 0; }
.cart-line-controls { display: grid; align-content: start; justify-items: end; gap: .65rem; }
.cart-line-controls label { display: grid; gap: .25rem; width: 88px; }
.cart-line-controls input { width: 100%; }
.cart-summary { position: sticky; top: 1rem; display: grid; gap: 1rem; border: 2px solid var(--accent, #fff); padding: 1.15rem; background: #0b0b0b; }
.cart-summary form { display: grid; gap: .8rem; }
.cart-summary textarea { width: 100%; resize: vertical; }
.cart-total { display: flex; justify-content: space-between; gap: 1rem; border-top: 1px solid #444; border-bottom: 1px solid #444; padding: .75rem 0; }
.cart-total strong { font-size: 1.2rem; }
.cart-warning { color: #ff8e8e; font-weight: 700; }
.cart-stock { color: #aaa; }
.cart-continue { text-align: center; }
.cart-empty, .cart-success { border: 1px solid color-mix(in srgb, var(--accent, #fff) 60%, #333); padding: clamp(1.25rem, 4vw, 3rem); background: #0b0b0b; }

@media (max-width: 780px) {
  .cart-layout { grid-template-columns: 1fr; }
  .cart-summary { position: static; }
  .cart-line { grid-template-columns: 92px minmax(0, 1fr); }
  .cart-line-controls { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; }
}

@media (max-width: 460px) {
  .cart-line { grid-template-columns: 72px minmax(0, 1fr); gap: .65rem; padding: .65rem; }
  .cart-line-controls { align-items: center; }
}
