.cart-page { padding-block: 30px 8px; }
.cart-page [data-cart-checkout][aria-disabled=true] { opacity: .55; cursor: not-allowed; }
.cart-page [data-cart-checkout]:disabled { opacity: .55; cursor: not-allowed; }
.cart-page [hidden], .store-cart-page [hidden] { display: none !important; }
.cart-page__heading { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin-bottom: 24px; }
.cart-page h1 { margin: 0; color: var(--store-dark); font-size: 32px; }
.cart-page__heading > a { color: var(--store-muted); }
.cart-layout { display: grid; grid-template-columns: minmax(0, 1fr) 310px; gap: 24px; align-items: start; }
.cart-items { min-width: 0; }
.cart-item { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 18px; padding: 22px 0; border-bottom: 1px solid var(--store-border); }
.cart-item:first-child { padding-top: 0; }
.cart-item__image { width: 96px; height: 96px; object-fit: contain; border: 1px solid var(--store-border); border-radius: var(--store-radius-small); background: white; }
.cart-item__info { min-width: 0; overflow-wrap: anywhere; }
.cart-item__title { margin: 0 0 8px; font-size: 18px; line-height: 1.3; color: var(--store-dark); }
.cart-item__title a { text-decoration: none; }
.cart-item__title a:hover { color: var(--store-red-action); }
.cart-item__offer { margin: 0; color: var(--store-muted); font-size: 14px; }
.cart-item__issue { margin: 9px 0 0; color: #b52b22; font-size: 14px; }
.cart-item__controls { grid-column: 1 / -1; display: flex; align-items: center; gap: 20px; min-width: 0; }
.cart-quantity { display: grid; flex: 0 0 auto; grid-template-columns: 36px 68px 36px; border: 1px solid var(--store-border); border-radius: var(--store-radius-small); overflow: hidden; }
.cart-quantity button, .cart-quantity input { width: 100%; min-width: 0; height: 40px; padding: 0; border: 0; color: var(--store-dark); background: var(--store-white); text-align: center; }
.cart-quantity button { font-size: 21px; cursor: pointer; }
@media (hover: hover) and (pointer: fine) { .cart-quantity button:hover:not(:disabled) { background: var(--store-yellow); } }
.cart-quantity button:disabled { color: #aaa; cursor: default; }
.cart-quantity input { border-inline: 1px solid var(--store-border); appearance: textfield; -moz-appearance: textfield; font-weight: 700; }
.cart-quantity button:focus-visible, .cart-quantity input:focus-visible { outline: 2px solid var(--store-dark); outline-offset: -3px; }
.cart-quantity input::-webkit-inner-spin-button, .cart-quantity input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.cart-item__costs { min-width: 0; margin-left: auto; text-align: right; }
.cart-item__unit { display: block; color: var(--store-muted); font-size: 13px; }
.cart-item__subtotal { display: block; font-size: 20px; color: var(--store-dark); overflow-wrap: anywhere; }
.cart-item__controls--dual { flex-wrap: wrap; row-gap: 14px; }
.cart-item__costs--dual { display: grid; flex: 1 1 260px; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 24px; }
.cart-item__costs--dual .cart-item__cost:first-child { text-align: left; }
.cart-item__price-label { display: block; margin-bottom: 3px; color: var(--store-muted); font-size: 12px; font-weight: 600; }
.cart-item__cost--customer .cart-item__unit,
.cart-item__cost--customer .cart-item__subtotal { color: #16813a; }
.cart-delivery-note { margin: 14px 0 0; color: var(--store-muted); font-size: 13px; line-height: 1.5; }
.cart-summary { position: sticky; top: 20px; min-width: 0; }
.cart-summary__retail-total { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin-bottom: 10px; color: var(--store-dark); font-size: 21px; }
.cart-summary__retail-total strong { white-space: nowrap; font-size: 27px; }
.cart-summary--dual .cart-summary__total strong { color: #16813a; }
.cart-summary__total { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; font-size: 21px; color: var(--store-dark); }
.cart-summary__total strong { white-space: nowrap; font-size: 27px; }
.cart-summary p { margin: 14px 0 20px; color: var(--store-muted); font-size: 13px; }
.cart-summary .cart-summary__delivery { padding: 16px; border: 1px solid var(--store-border); border-radius: var(--store-radius); background: #f8f9fa; font-size: 17px; line-height: 1.5; }
.cart-summary .cart-summary__issues { color: #b52b22; }
.cart-summary .store-button { width: 100%; }
.cart-checkout-fields label { display: block; margin-bottom: 8px; font-size: 14px; }
.cart-checkout-fields label span { color: var(--store-muted); }
.cart-checkout-fields textarea { box-sizing: border-box; width: 100%; padding: 10px; margin-bottom: 16px; border: 1px solid var(--store-border); border-radius: var(--store-radius-small); background: #fff; color: var(--store-dark); font: inherit; font-size: 16px; resize: vertical; }
.cart-success { padding: 24px; margin-bottom: 24px; border: 1px solid #b8d9bc; border-radius: var(--store-radius); background: #f2faf3; }
.cart-success h2 { margin: 0 0 12px; font-size: 24px; overflow-wrap: anywhere; }
.cart-success p { margin: 0 0 18px; }
.cart-link-button { display: inline-flex; align-items: center; min-height: 40px; padding: 5px 0; border: 0; color: var(--store-dark); background: transparent; font-size: 14px; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.cart-link-button:hover { color: var(--store-red-action); }
.cart-link-button--danger { color: #a5322a; }
.cart-remove-button { display: inline-flex; flex: 0 0 44px; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; border: 1px solid var(--store-border); border-radius: var(--store-radius-small); color: var(--store-muted); background: #f8f9fa; cursor: pointer; }
.cart-remove-button svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; pointer-events: none; }
.cart-remove-button:focus-visible { outline: 2px solid var(--store-dark); outline-offset: -3px; }
.cart-remove-button:disabled { opacity: .5; cursor: default; }
@media (hover: hover) and (pointer: fine) { .cart-remove-button:hover:not(:disabled) { color: var(--store-red-action); border-color: var(--store-red-action); background: #fff4f2; } }
.cart-message { padding: 14px 18px; margin-bottom: 22px; border: 1px solid #d9e4ee; border-radius: var(--store-radius-small); background: #f1f6fb; }
.cart-message.is-error { border-color: #edc0b9; color: #902b22; background: #fff4f2; }
.cart-loading { padding-block: 40px; color: var(--store-muted); }
.cart-empty { padding: 48px 24px; border: 1px solid var(--store-border); border-radius: var(--store-radius); text-align: center; }
.cart-empty h2 { margin-top: 0; font-size: 26px; }
.cart-empty p { color: var(--store-muted); margin-bottom: 24px; }
@media (max-width: 1000px) {
    .cart-layout { grid-template-columns: minmax(0, 1fr) 280px; gap: 20px; }
    .cart-item { grid-template-columns: 76px minmax(0, 1fr); gap: 14px; }
    .cart-item__image { width: 76px; height: 76px; }
}
@media (max-width: 760px) {
    .cart-layout { grid-template-columns: minmax(0, 1fr); }
    .cart-summary { position: static; }
    .cart-summary .cart-summary__delivery { text-align: center; }
    .cart-page__heading { align-items: flex-start; flex-direction: column; gap: 6px; }
    .cart-page h1 { font-size: 28px; }
    .cart-item__costs--dual { flex-basis: 100%; margin-left: 0; }
}
@media (max-width: 380px) {
    .cart-item { grid-template-columns: 60px minmax(0, 1fr); gap: 10px; }
    .cart-item__image { width: 60px; height: 60px; }
    .cart-item__controls { gap: 16px; }
    .cart-quantity { grid-template-columns: 32px 48px 32px; }
    .cart-item__subtotal { font-size: clamp(16px, 5vw, 18px); }
}
