.shipping-progress { background: var(--color-sage-tint); border-radius: var(--radius-md); padding: var(--space-4) var(--space-5); margin: var(--space-5) 0; }
.shipping-progress p { margin: 0 0 8px; font-size: 0.9rem; }
.shipping-bar { height: 6px; background: var(--color-beige); border-radius: 999px; overflow: hidden; }
.shipping-bar-fill { height: 100%; background: var(--color-gold-deep); transition: width var(--transition-base); }

.cart-layout { display: grid; grid-template-columns: 1fr 320px; gap: var(--space-7); align-items: start; margin-top: var(--space-6); }
@media (max-width: 860px) { .cart-layout { grid-template-columns: 1fr; } }

.cart-items-list { display: flex; flex-direction: column; gap: var(--space-4); }
.cart-line {
    display: grid; grid-template-columns: 72px 1fr 90px 100px; align-items: center; gap: var(--space-4);
    background: var(--color-ivory); border: 1px solid var(--color-beige); border-radius: var(--radius-md);
    padding: var(--space-3) var(--space-4);
}
@media (max-width: 560px) {
    .cart-line { grid-template-columns: 56px 1fr auto; grid-template-rows: auto auto; row-gap: 6px; }
    .cart-line-media { grid-column: 1; grid-row: 1 / 3; width: 56px; height: 56px; }
    .cart-line-info { grid-column: 2 / 4; grid-row: 1; }
    .qty-input { grid-column: 2; grid-row: 2; }
    .cart-line-total { grid-column: 3; grid-row: 2; }
}
.cart-line-media { width: 72px; height: 72px; border-radius: var(--radius-sm); background: var(--color-sage-tint); display: flex; align-items: center; justify-content: center; overflow: hidden; }
.cart-line-media img { width: 100%; height: 100%; object-fit: contain; }
.cart-line-info a { font-weight: 600; }
.remove-link { background: none; border: none; padding: 0; margin-top: 4px; font-size: 0.78rem; color: var(--color-error); text-decoration: underline; cursor: pointer; }
.qty-input { width: 64px; padding: 8px; border-radius: var(--radius-sm); border: 1px solid var(--color-beige); text-align: center; }
.cart-line-total { font-weight: 600; text-align: right; }

.cart-summary {
    background: var(--color-ivory); border: 1px solid var(--color-beige); border-radius: var(--radius-md);
    padding: var(--space-5); position: sticky; top: 90px;
}
@media (max-width: 860px) { .cart-summary { position: static; } }
.summary-row { display: flex; justify-content: space-between; font-size: 0.92rem; padding: 6px 0; }
.summary-total { border-top: 1px solid var(--color-beige); margin-top: 8px; padding-top: 12px; font-weight: 700; font-size: 1.05rem; }
