/* doc-project | public/assets/css/cart.css | structure un panier clair, éditable au pouce et un récapitulatif rassurant */
.cart-layout { display: grid; gap: 1.5rem; padding-bottom: 5rem; }
.cart-lines { display: grid; align-content: start; gap: .9rem; }
.cart-line { display: grid; grid-template-columns: 5.4rem minmax(0, 1fr); gap: .9rem; border: 1px solid var(--line); border-radius: var(--radius); background: white; padding: .75rem; box-shadow: var(--shadow-sm); }
.cart-line__image { overflow: hidden; min-height: 7rem; border-radius: .85rem; background: var(--blush); }
.cart-line__image img { width: 100%; height: 100%; object-fit: cover; }
.cart-line__image .product-placeholder { min-height: 100%; }
.cart-line__content { min-width: 0; }
.cart-line__content h2 { margin: .2rem 0 .25rem; font-family: var(--font-body); font-size: 1rem; font-weight: 850; }
.cart-line__content > p { margin-bottom: .55rem; color: var(--ink-soft); font-size: .78rem; }
.cart-line__actions { display: flex; flex-wrap: wrap; gap: .6rem 1rem; align-items: end; }
.cart-line__actions form:first-child { flex: 1 1 12rem; }
.cart-line__actions label { grid-template-columns: minmax(4.5rem, 6rem) auto; align-items: end; font-size: .72rem; }
.cart-line__actions label input { grid-row: 2; min-height: 2.35rem; }
.cart-line__actions label .button { grid-row: 2; }
.cart-line__total { grid-column: 2; justify-self: end; color: var(--wine); }
.order-summary { align-self: start; border: 1px solid var(--line); border-radius: var(--radius-lg); background: white; padding: 1.2rem; box-shadow: var(--shadow-md); }
.order-summary h2 { margin-bottom: 1.1rem; font-family: var(--font-body); font-size: 1.1rem; font-weight: 900; }
.order-summary dl { display: grid; gap: .65rem; margin-bottom: 1rem; }
.order-summary dl > div { display: flex; justify-content: space-between; gap: 1rem; color: var(--ink-soft); font-size: .85rem; }
.order-summary dd { margin: 0; text-align: right; }
.order-summary .summary-discount { color: var(--sage); }
.order-summary .summary-total { margin-top: .4rem; border-top: 1px solid var(--line); padding-top: .9rem; color: var(--ink); font-weight: 900; }
.order-summary .summary-total dd { color: var(--wine); font-size: 1.15rem; }
.coupon-form { display: grid; gap: .5rem; margin-block: 1rem; border-block: 1px solid var(--line); padding-block: 1rem; }
.coupon-form > div { display: grid; grid-template-columns: 1fr auto; gap: .5rem; }
.coupon-form input { text-transform: uppercase; }
.field-error { color: var(--danger); font-size: .8rem; }
.summary-safe { display: flex; gap: .45rem; align-items: flex-start; margin: .9rem 0 0; color: var(--ink-soft); font-size: .72rem; }
.summary-safe .icon { width: 1rem; color: var(--sage); }
@media (min-width: 680px) { .cart-line { grid-template-columns: 7rem minmax(0, 1fr) auto; padding: 1rem; } .cart-line__total { grid-column: 3; align-self: center; } }
@media (min-width: 960px) { .cart-layout { grid-template-columns: minmax(0, 1fr) 22rem; gap: 2.2rem; } .order-summary { position: sticky; top: 8.5rem; } }