/* The retained cart/quote/checkout controller uses the current site palette. */
.cart-open { overflow: hidden; }
.cart-overlay { position: fixed; inset: 0; z-index: 40; background: rgb(48 48 46 / 20%); }
.cart-drawer { position: fixed; inset: 0 0 0 auto; z-index: 41; display: flex; flex-direction: column; width: min(100%, 520px); height: 100dvh; padding: 24px; overflow-y: auto; overscroll-behavior: contain; background: #f4f4f1; color: #30302e; border-left: 1px solid #cecec6; transform: translateX(100%); visibility: hidden; font-size: 15px; line-height: 1.5; }
.cart-drawer.is-open { transform: none; visibility: visible; }
.cart-drawer-header { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin-bottom: 24px; flex-shrink: 0; }
.cart-drawer h2 { font-size: 21px; margin: 0; }
.cart-close-button { min-height: 44px; min-width: 44px; }
.cart-items { min-height: 0; flex: 0 0 auto; }
.cart-empty { margin: 0 0 28px; }
.cart-item { display: grid; grid-template-columns: 90px minmax(0,1fr); gap: 18px; padding: 0 0 24px; margin-bottom: 24px; border-bottom: 1px solid #cecec6; }
.cart-item-image img { display: block; width: 100%; height: auto; }
.cart-item-title { display: block; margin-bottom: 8px; overflow-wrap: anywhere; }
.cart-item-title sub { font-size: .75em; line-height: 0; }
.cart-item-frame { margin: 0 0 8px; font-size: 13px; }
.cart-item-price, .cart-item-line-total { font-size: 13px; line-height: 1.5; }
.cart-item-controls { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 10px; }
.cart-quantity-button { min-width: 44px; min-height: 44px; border: 1px solid #b5b5ac; }
.cart-remove-button { min-height: 44px; padding: 0 4px; font-size: 13px; }
.cart-item-quantity { min-width: 20px; text-align: center; font-variant-numeric: tabular-nums; }
.cart-drawer :is(button, a, select):focus-visible { outline: 1px solid #77776d; outline-offset: 3px; }
.cart-drawer :is(button, a):focus:not(:focus-visible) { outline: none; box-shadow: none; }
.cart-drawer button:disabled { opacity: .45; cursor: default; }
.cart-drawer-footer { flex-shrink: 0; padding-top: 12px; }
.cart-subtotal, .cart-shipping, .cart-total { display: flex; justify-content: space-between; align-items: baseline; gap: 18px; margin-bottom: 12px; }
.cart-subtotal strong, .cart-shipping strong, .cart-total strong { font-weight: 400; white-space: nowrap; }
.cart-total { padding-top: 12px; border-top: 1px solid #cecec6; }
.cart-checkout-button, .cart-quote-retry { min-height: 44px; padding: 9px 14px; border: 1px solid #b5b5ac; }
.cart-checkout-button { width: 100%; }
.cart-status { font-size: 14px; line-height: 1.5; margin: 12px 0 0; }
.cart-quote-retry { margin-top: 10px; }
.cart-delivery { display: grid; gap: 8px; margin-bottom: 20px; }
.cart-country-label { font-size: 14px; }
.cart-shipping-country { width: 100%; min-height: 44px; padding: 8px 10px; border: 1px solid #b5b5ac; border-radius: 0; background: #f4f4f1; color: #30302e; font: inherit; }
.cart-delivery-note, .cart-delivery-enquiry { margin: 0; font-size: 13px; line-height: 1.5; }
.cart-delivery-enquiry { min-height: 44px; display: inline-flex; align-items: center; }
.cart-drawer [hidden] { display: none; }
@media(max-width: 479px) { .cart-drawer { padding: 16px; } .cart-item { grid-template-columns: 72px minmax(0,1fr); gap: 12px; } }
