/* =====================================================================================================
   SHOPPING CART (CHG-015) - design: Cart.dc.html. CSS only; scoped to body.checkout-cart-index.
   Items are a <table> in Magento: it is re-laid-out as cards with grid (no markup change).
   ===================================================================================================== */
body.checkout-cart-index, body.checkout-cart-index .page-wrapper { background: var(--bs-cream); color: var(--bs-ink); font-family: var(--bs-font-text); }
body.checkout-cart-index .page-main { max-width: 1488px; width: 100%; box-sizing: border-box; margin: 0 auto; padding: 28px 24px 96px; display: flex; flex-direction: column; gap: 24px; }
body.checkout-cart-index .page-main > .columns { padding: 0; margin: 0; width: 100%; max-width: none; float: none; }
body.checkout-cart-index .columns > .column.main { padding: 0; margin: 0; width: 100%; max-width: none; float: none; }
body.checkout-cart-index .page-main > a#contentarea { display: none; }

/* title row: H1 + "best price" pill (generated text) */
body.checkout-cart-index .page-title-wrapper { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 16px; margin: 0; padding: 0; width: 100%; }
body.checkout-cart-index .page-title-wrapper .page-title { margin: 0; padding: 0; font-family: var(--bs-font-display); font-weight: 500; font-size: clamp(34px, 3.2vw, 48px); letter-spacing: -0.02em; line-height: 1.15; color: var(--bs-ink); text-transform: none; }
body.checkout-cart-index .page-title-wrapper::after { content: "You're getting our best price. Online prices are lower than the showroom."; background: #FDF0E6; border: 1px solid #F3D2B8; border-radius: 999px; padding: 8px 14px; font-size: 14px; line-height: normal; color: #6E3410; }

/* messages */
body.checkout-cart-index .page.messages { margin: 0; }

/* two columns: items | summary */
body.checkout-cart-index .cart-container { display: flex; flex-wrap: wrap; gap: 28px; align-items: flex-start; width: 100%; margin: 0; padding: 0; float: none; }
body.checkout-cart-index .cart-container::before, body.checkout-cart-index .cart-container::after { content: none; display: none; }
body.checkout-cart-index .cart-container > form.form-cart { order: 1; flex: 999 1 560px; min-width: 0; width: auto; float: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 16px; background: #FFFFFF; border-radius: 28px; padding: 8px clamp(16px, 2vw, 28px); box-sizing: border-box; }
body.checkout-cart-index .cart-container > .cart-summary { order: 2; flex: 1 1 340px; max-width: 440px; width: auto; float: none; margin: 0; background: #FFFFFF; border-radius: 28px; padding: 28px; box-sizing: border-box; display: flex; flex-direction: column; gap: 14px; position: static; top: auto; }
body.checkout-cart-index .cart-container > .cart-summary > * { margin: 0; }

/* ---- items table -> cards ---- */
body.checkout-cart-index .cart.table-wrapper { margin: 0; padding: 0; overflow: visible; border: 0; }
body.checkout-cart-index table.cart.items { display: block; width: 100%; border: 0; margin: 0; background: none; }
body.checkout-cart-index table.cart.items caption { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
body.checkout-cart-index table.cart.items thead { display: none; }
body.checkout-cart-index table.cart.items > tbody.cart.item { display: block; margin: 0; padding: 24px 0; border: 0; border-bottom: 1px solid #ECE6DC; background: none; }
body.checkout-cart-index table.cart.items > tbody.cart.item:last-of-type { border-bottom: 0; }
body.checkout-cart-index table.cart.items tr.item-info { display: grid; grid-template-columns: minmax(0, 1fr) 96px 120px 120px; column-gap: 24px; align-items: start; border: 0; background: none; padding: 0; }
body.checkout-cart-index table.cart.items tr.item-info > td { display: block; padding: 0; border: 0; background: none; width: auto; }
body.checkout-cart-index table.cart.items td.col.item { grid-column: 1; grid-row: 1; display: flex; gap: 18px; align-items: flex-start; min-width: 0; }
body.checkout-cart-index table.cart.items td.col.item .product-item-photo { flex: none; width: 120px; height: 120px; border-radius: 16px; overflow: hidden; background: #ECE6DC; display: block; }
body.checkout-cart-index table.cart.items td.col.item .product-image-container { width: 120px !important; height: 120px; display: block; }
body.checkout-cart-index table.cart.items td.col.item .product-image-wrapper { padding: 0 !important; height: 120px; display: block; }
body.checkout-cart-index table.cart.items td.col.item img.product-image-photo { position: static; width: 120px; height: 120px; max-width: none; object-fit: cover; display: block; border-radius: 16px; }
body.checkout-cart-index table.cart.items .product-item-details { display: flex; flex-direction: column; gap: 8px; min-width: 0; padding: 0; width: auto; }
body.checkout-cart-index table.cart.items .product-item-name { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; font-size: 17px; font-weight: 700; line-height: 1.35; color: var(--bs-ink); margin: 0; }
body.checkout-cart-index table.cart.items .product-item-name a, body.checkout-cart-index table.cart.items .product-item-name .product-item-link { color: var(--bs-ink); text-decoration: none; font-size: 17px; font-weight: 700; }
body.checkout-cart-index table.cart.items .product-item-name > .price { font-size: 15px; font-weight: 600; color: var(--bs-rust); }
body.checkout-cart-index table.cart.items dl.item-options { margin: 0; display: flex; flex-direction: column; gap: 6px; font-size: 14px; }
body.checkout-cart-index table.cart.items dl.item-options dt { margin: 0; font-weight: 700; color: var(--bs-ink); float: none; }
body.checkout-cart-index table.cart.items dl.item-options dd { margin: 0; color: var(--bs-ink-2); float: none; }

/* price / qty / subtotal columns with small captions */
body.checkout-cart-index table.cart.items td.col.price, body.checkout-cart-index table.cart.items td.col.qty, body.checkout-cart-index table.cart.items td.col.subtotal { display: flex; flex-direction: column; gap: 4px; }
body.checkout-cart-index table.cart.items td.col.price { grid-column: 2; grid-row: 1; }
body.checkout-cart-index table.cart.items td.col.qty { grid-column: 3; grid-row: 1; align-items: center; }
body.checkout-cart-index table.cart.items td.col.subtotal { grid-column: 4; grid-row: 1; align-items: flex-end; text-align: right; }
body.checkout-cart-index table.cart.items td.col.price::before { content: "PRICE"; }
body.checkout-cart-index table.cart.items td.col.qty::before { content: "QTY"; }
body.checkout-cart-index table.cart.items td.col.subtotal::before { content: "SUBTOTAL"; }
body.checkout-cart-index table.cart.items td.col.price::before, body.checkout-cart-index table.cart.items td.col.qty::before, body.checkout-cart-index table.cart.items td.col.subtotal::before { font-size: 12px; font-weight: 700; letter-spacing: 0.1em; line-height: normal; color: var(--bs-muted); display: block; position: static; width: auto; padding: 0; }
body.checkout-cart-index table.cart.items td.col.price .price { font-size: 16px; font-weight: 400; color: var(--bs-ink); }
body.checkout-cart-index table.cart.items td.col.subtotal .price { font-family: var(--bs-font-display); font-size: 22px; font-weight: 600; color: var(--bs-rust); }
body.checkout-cart-index table.cart.items td.col.qty .field.qty, body.checkout-cart-index table.cart.items td.col.qty .control.qty { margin: 0; padding: 0; width: auto; display: block; }
body.checkout-cart-index table.cart.items td.col.qty label { display: block; margin: 0; }
body.checkout-cart-index table.cart.items td.col.qty .label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
body.checkout-cart-index table.cart.items .cdz-qty-box { display: flex; align-items: center; height: 44px; border: 1px solid #CFC7BA; border-radius: 999px; overflow: hidden; background: #FFFFFF; width: auto; margin: 0; }
body.checkout-cart-index table.cart.items .cdz-qty-box .m-btn { position: relative; flex: none; width: 40px; height: 42px; margin: 0; padding: 0; border: 0; background: #FFFFFF; cursor: pointer; }
body.checkout-cart-index table.cart.items .cdz-qty-box .m-btn:hover { background: var(--bs-sky); }
body.checkout-cart-index table.cart.items .cdz-qty-box .m-btn::before, body.checkout-cart-index table.cart.items .cdz-qty-box .m-btn::after { content: none; }
body.checkout-cart-index table.cart.items .cdz-qty-box .m-minus::after { content: "−"; position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-size: 20px; color: var(--bs-ink); }
body.checkout-cart-index table.cart.items .cdz-qty-box .m-plus::after { content: "+"; position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-size: 20px; color: var(--bs-ink); }
body.checkout-cart-index table.cart.items .cdz-qty-box input.qty { width: 40px; height: 42px; margin: 0; padding: 0; border: 0; text-align: center; font-family: var(--bs-font-text); font-size: 16px; font-weight: 700; color: var(--bs-ink); background: #FFFFFF; box-shadow: none; -moz-appearance: textfield; }

/* edit / remove links under the item */
body.checkout-cart-index table.cart.items tr.item-actions { display: block; border: 0; background: none; padding: 0; margin: -8px 0 0; }
body.checkout-cart-index table.cart.items tr.item-actions > td { display: block; padding: 0 0 0 138px; border: 0; }
body.checkout-cart-index table.cart.items .actions-toolbar { display: flex; flex-wrap: wrap; gap: 16px; padding: 0; margin: 0; position: static; width: auto; }
body.checkout-cart-index table.cart.items .actions-toolbar > .action { display: inline-flex; align-items: center; width: auto; height: auto; margin: 0; padding: 0; border: 0; background: none; font-size: 14px; font-weight: 700; text-decoration: none; color: var(--bs-navy); }
body.checkout-cart-index table.cart.items .actions-toolbar > .action::before, body.checkout-cart-index table.cart.items .actions-toolbar > .action::after { content: none; }
body.checkout-cart-index table.cart.items .actions-toolbar > .action > span { position: static; width: auto; height: auto; clip: auto; overflow: visible; margin: 0; font-size: 14px; font-weight: 700; color: inherit; }
body.checkout-cart-index table.cart.items .actions-toolbar > .action-delete { color: #9A3B10; }

/* main actions under the list */
body.checkout-cart-index .cart.main.actions { display: flex; flex-wrap: wrap; gap: 10px; padding: 18px 0; margin: 0; border: 0; background: none; float: none; width: auto; }
body.checkout-cart-index .cart.main.actions .action { display: inline-flex; align-items: center; justify-content: center; height: auto; margin: 0; padding: 11px 17px; border: 1px solid #CFC7BA; border-radius: 999px; background: #FFFFFF; color: var(--bs-ink); font-family: var(--bs-font-text); font-size: 14px; font-weight: 700; text-transform: none; letter-spacing: normal; text-decoration: none; cursor: pointer; box-shadow: none; line-height: normal; }
body.checkout-cart-index .cart.main.actions .action::before, body.checkout-cart-index .cart.main.actions .action::after { content: none; }
body.checkout-cart-index .cart.main.actions .action > span { font: inherit; color: inherit; margin: 0; }
body.checkout-cart-index .cart.main.actions .action.continue { order: -1; background: var(--bs-navy); border-color: var(--bs-navy); color: #FFFFFF; }
body.checkout-cart-index .cart.main.actions .action.continue::before { content: "← "; white-space: pre; margin-right: 4px; }
body.checkout-cart-index .cart.main.actions .action.towishlist::before { content: "♡ "; white-space: pre; margin-right: 4px; }
body.checkout-cart-index .cart.main.actions .action.update::before { content: "↻ "; white-space: pre; margin-right: 4px; }
body.checkout-cart-index .cart.main.actions .action:hover:not(.continue) { background: var(--bs-sky); }

/* ---- summary ---- */
body.checkout-cart-index .cart-summary .summary.title { display: block; font-family: var(--bs-font-display); font-size: 28px; font-weight: 500; line-height: 1.2; color: var(--bs-ink); padding: 0; margin: 0; border: 0; }
body.checkout-cart-index .cart-summary .block.shipping, body.checkout-cart-index .cart-summary .block.discount { border: 0; border-top: 1px solid #ECE6DC; padding: 14px 0; margin: 0; background: none; }
body.checkout-cart-index .cart-summary .block.discount { border-bottom: 1px solid #ECE6DC; }
body.checkout-cart-index .cart-summary .block > .title { display: flex; justify-content: space-between; align-items: center; margin: 0; padding: 0; border: 0; background: none; cursor: pointer; }
body.checkout-cart-index .cart-summary .block > .title > strong { font-size: 16px; font-weight: 700; color: var(--bs-ink); text-transform: none; }
body.checkout-cart-index .cart-summary .block > .title::after { content: "+"; font-size: 20px; font-weight: 700; color: var(--bs-navy); line-height: 1; position: static; width: auto; height: auto; margin: 0; border: 0; }
body.checkout-cart-index .cart-summary .block.active > .title::after { content: "−"; }
body.checkout-cart-index .cart-summary .block > .title::before { content: none; }
body.checkout-cart-index .cart-summary .block > .content { padding: 12px 0 0; margin: 0; }
body.checkout-cart-index .cart-summary .block .field { margin: 0 0 10px; }
body.checkout-cart-index .cart-summary .block .field > .label { display: block; margin: 0 0 6px; padding: 0; font-size: 14px; font-weight: 600; color: var(--bs-ink); }
body.checkout-cart-index .cart-summary .block input.input-text, body.checkout-cart-index .cart-summary .block select.select { width: 100%; height: 44px; box-sizing: border-box; border: 1px solid #CFC7BA; border-radius: 12px; padding: 0 12px; background: #FFFFFF; font-family: var(--bs-font-text); font-size: 15px; color: var(--bs-ink); box-shadow: none; }
body.checkout-cart-index .cart-summary .block .note, body.checkout-cart-index .cart-summary .block p.field.note { font-size: 13px; line-height: 1.5; color: var(--bs-muted); margin: 0 0 10px; }
body.checkout-cart-index .cart-summary .block fieldset { border: 0; padding: 0; margin: 0; }
body.checkout-cart-index .cart-summary .block legend { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
body.checkout-cart-index .cart-summary .block .actions-toolbar .action.apply { height: 44px; border: 0; border-radius: 999px; padding: 0 20px; background: var(--bs-navy); color: #FFFFFF; font-family: var(--bs-font-text); font-size: 14px; font-weight: 700; cursor: pointer; box-shadow: none; }
body.checkout-cart-index .cart-summary .items.methods { margin: 0; }
body.checkout-cart-index .cart-summary .item-title { font-size: 14px; font-weight: 700; margin: 8px 0 4px; }
body.checkout-cart-index .cart-summary .item-options .field.choice { display: flex; gap: 8px; align-items: baseline; font-size: 14px; margin: 0 0 6px; }

/* totals */
body.checkout-cart-index .cart-summary .cart-totals { margin: 0; padding: 0; border: 0; }
body.checkout-cart-index .cart-summary .cart-totals .table-wrapper { margin: 0; overflow: visible; }
body.checkout-cart-index .cart-summary table.totals { display: block; width: 100%; margin: 0; border: 0; background: none; }
body.checkout-cart-index .cart-summary table.totals caption { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
body.checkout-cart-index .cart-summary table.totals tbody { display: grid; grid-template-columns: 1fr auto; gap: 12px; }
body.checkout-cart-index .cart-summary table.totals tr { display: contents; }
body.checkout-cart-index .cart-summary table.totals th.mark, body.checkout-cart-index .cart-summary table.totals td.amount { display: block; padding: 0; border: 0; background: none; font-size: 16px; line-height: normal; }
body.checkout-cart-index .cart-summary table.totals th.mark { text-align: left; font-weight: 400; color: var(--bs-ink-2); }
body.checkout-cart-index .cart-summary table.totals td.amount { text-align: right; color: var(--bs-ink); }
body.checkout-cart-index .cart-summary table.totals .grand th.mark, body.checkout-cart-index .cart-summary table.totals .grand td.amount { padding-top: 12px; border-top: 1px solid #ECE6DC; }
body.checkout-cart-index .cart-summary table.totals .grand th.mark strong { font-weight: 700; color: var(--bs-ink); }
body.checkout-cart-index .cart-summary table.totals .grand td.amount .price { font-family: var(--bs-font-display); font-size: 30px; font-weight: 600; color: var(--bs-rust); line-height: 1.1; }

/* checkout buttons */
body.checkout-cart-index .cart-summary .checkout-methods-items { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
body.checkout-cart-index .cart-summary .checkout-methods-items > .item { margin: 0; padding: 0; text-align: center; }
body.checkout-cart-index .cart-summary .checkout-methods-items button.action.primary.checkout { width: 100%; height: 58px; border: 0; border-radius: 999px; background: var(--bs-rust); color: #FFFFFF; font-family: var(--bs-font-text); font-size: 18px; font-weight: 700; text-transform: none; letter-spacing: normal; cursor: pointer; box-shadow: none; padding: 0; }
body.checkout-cart-index .cart-summary .checkout-methods-items button.action.primary.checkout:hover { background: #9A4515; }
body.checkout-cart-index .cart-summary .checkout-methods-items button.action.primary.checkout span { font: inherit; color: inherit; }
body.checkout-cart-index .cart-summary a.action.multicheckout, body.checkout-cart-index .cart-summary a.action.multicheckout:hover { font-size: 14px; font-weight: 600; color: var(--bs-navy); text-decoration: none; }
body.checkout-cart-index .cart-summary::after { content: "✓  Free design proof before production\A ⚿  Secure checkout"; white-space: pre-line; order: 99; font-size: 14px; line-height: 2; color: var(--bs-ink-2); }

/* empty cart */
body.checkout-cart-index .cart-empty { background: #FFFFFF; border-radius: 28px; padding: 48px; display: flex; flex-direction: column; gap: 14px; align-items: flex-start; }
body.checkout-cart-index .cart-empty p { margin: 0; font-size: 18px; line-height: 1.5; color: var(--bs-ink); }
body.checkout-cart-index .cart-empty p a { display: inline-block; margin-top: 4px; background: var(--bs-navy); color: #FFFFFF; font-weight: 700; padding: 14px 22px; border-radius: 999px; text-decoration: none; }

/* narrow screens: items stack */
@media (max-width: 760px) {
  body.checkout-cart-index table.cart.items tr.item-info { grid-template-columns: 1fr 1fr 1fr; row-gap: 16px; }
  body.checkout-cart-index table.cart.items td.col.item { grid-column: 1 / -1; }
  body.checkout-cart-index table.cart.items td.col.price { grid-column: 1; grid-row: 2; }
  body.checkout-cart-index table.cart.items td.col.qty { grid-column: 2; grid-row: 2; }
  body.checkout-cart-index table.cart.items td.col.subtotal { grid-column: 3; grid-row: 2; }
  body.checkout-cart-index table.cart.items tr.item-actions > td { padding-left: 0; }
  body.checkout-cart-index .cart-empty { padding: 28px; }
}

/* ---- pass 2: theme overrides ---- */
body.checkout-cart-index .cart-container, body.checkout-cart-index .columns .column.main > .cart-container { background: none; }
body.checkout-cart-index .page-main > .page-title-wrapper, body.checkout-cart-index .columns .page-title-wrapper { padding: 0; margin: 0; width: 100%; box-sizing: border-box; }
body.checkout-cart-index .cart-container .cart-summary strong.summary.title { font-family: var(--bs-font-display); font-size: 28px; font-weight: 500; line-height: 1.2; text-transform: none; color: var(--bs-ink); }
body.checkout-cart-index table.cart.items tr.item-actions { position: static; inset: auto; width: auto; height: auto; float: none; display: block; }
body.checkout-cart-index table.cart.items tr.item-actions td { position: static; }
body.checkout-cart-index .cart.main.actions .action::before { font-family: var(--bs-font-text); font-size: 14px; line-height: normal; width: auto; height: auto; margin: 0 4px 0 0; position: static; color: inherit; }
body.checkout-cart-index .cart.main.actions .action.continue::before { content: "←"; }
body.checkout-cart-index .cart.main.actions .action.towishlist::before { content: "♡"; }
body.checkout-cart-index .cart.main.actions .action.update::before { content: "↻"; }
body.checkout-cart-index .cart.main.actions .action.towishlist, body.checkout-cart-index .cart.main.actions .action.update { padding: 11px 17px; }

/* ---- pass 3 ---- */
body.checkout-cart-index .cart-summary strong.summary.title { font-family: var(--bs-font-display) !important; font-size: 28px !important; font-weight: 500 !important; line-height: 1.2 !important; letter-spacing: normal; text-transform: none; }
body.checkout-cart-index table.cart.items .actions-toolbar > .action { font-size: 14px !important; line-height: normal; text-indent: 0 !important; overflow: visible !important; height: auto !important; width: auto !important; min-width: 0; display: inline-flex; }
body.checkout-cart-index table.cart.items .actions-toolbar > .action-delete > span { display: inline !important; position: static !important; clip: auto !important; width: auto !important; height: auto !important; font-size: 14px !important; text-indent: 0 !important; overflow: visible !important; }
body.checkout-cart-index table.cart.items .actions-toolbar > .action-delete > span::before { content: none; }
body.checkout-cart-index table.cart.items .actions-toolbar > .action-delete { font-size: 0 !important; }
body.checkout-cart-index table.cart.items .actions-toolbar > .action-delete > span { font-size: 14px !important; }
body.checkout-cart-index table.cart.items tr.item-actions { margin: -4px 0 0; }

/* ---- pass 4: theme mobile rules (td:before captions, absolute photo) ---- */
body.checkout-cart-index table.cart.items td.col.price::before { content: "PRICE" !important; }
body.checkout-cart-index table.cart.items td.col.qty::before { content: "QTY" !important; }
body.checkout-cart-index table.cart.items td.col.subtotal::before { content: "SUBTOTAL" !important; }
body.checkout-cart-index table.cart.items td.col.price::before, body.checkout-cart-index table.cart.items td.col.qty::before, body.checkout-cart-index table.cart.items td.col.subtotal::before { position: static !important; display: block !important; width: auto !important; padding: 0 !important; text-align: inherit; font-size: 12px; letter-spacing: 0.1em; font-weight: 700; color: var(--bs-muted); }
body.checkout-cart-index table.cart.items td.col.item .product-item-photo { position: static !important; flex: none !important; width: 120px !important; min-width: 120px; height: 120px !important; margin: 0 !important; float: none !important; }
body.checkout-cart-index table.cart.items td.col.item .product-item-details { padding-left: 0 !important; margin: 0 !important; min-height: 0 !important; width: auto !important; flex: 1 1 auto; }
body.checkout-cart-index table.cart.items td.col.price, body.checkout-cart-index table.cart.items td.col.qty, body.checkout-cart-index table.cart.items td.col.subtotal { text-align: left; padding: 0 !important; }
body.checkout-cart-index table.cart.items td.col.subtotal { text-align: right; }
body.checkout-cart-index table.cart.items td.col.price .price, body.checkout-cart-index table.cart.items td.col.price .cart-price { position: static; text-align: left; }
body.checkout-cart-index table.cart.items td.col.item { padding: 0 !important; margin: 0 !important; min-height: 0 !important; width: auto !important; position: static !important; }
body.checkout-cart-index table.cart.items td.col.item .product-item-details { padding: 0 !important; }
body.checkout-cart-index table.cart.items tr.item-info { padding: 0 !important; margin: 0 !important; position: static !important; }
body.checkout-cart-index table.cart.items tbody.cart.item { position: static !important; padding-left: 0; padding-right: 0; }
@media (max-width: 760px) { body.checkout-cart-index table.cart.items tr.item-actions > td { padding-left: 0 !important; } body.checkout-cart-index table.cart.items tr.item-actions { margin-top: 4px; } }
@media (max-width: 760px) { body.checkout-cart-index .cart-container > .cart-summary { flex: 1 1 100%; max-width: none; width: 100%; } }
body.checkout-cart-index .cart-empty p { font-family: var(--bs-font-text); }
body.checkout-cart-index .cart-empty p a { display: inline; margin: 0; padding: 0; background: none; color: var(--bs-navy); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; border-radius: 0; }
body.checkout-cart-index .cart-empty p a:hover { color: var(--bs-rust); }

/* ---- pass 5: tighter page, readable option lists, photo not cropped ---- */
body.checkout-cart-index .page-main > .page.messages:not(:has(.message)) { display: none; }
body.checkout-cart-index .page-main { gap: 24px; }
body.checkout-cart-index table.cart.items td.col.item img.product-image-photo { object-fit: contain; background: #ECE6DC; }
body.checkout-cart-index table.cart.items td.col.item .product-item-photo { background: #ECE6DC; }
/* option list = "label | value" rows (was one tall column of stacked lines) */
body.checkout-cart-index table.cart.items dl.item-options { display: grid !important; grid-template-columns: minmax(160px, 34%) minmax(0, 1fr); column-gap: 20px; row-gap: 8px; margin: 6px 0 0; padding: 12px 0 0; border-top: 1px solid #ECE6DC; font-size: 14px; line-height: 1.45; width: 100%; }
body.checkout-cart-index table.cart.items dl.item-options dt { grid-column: 1; margin: 0; padding: 0; font-weight: 700; color: var(--bs-ink); word-break: normal; overflow-wrap: break-word; text-transform: none; font-size: 14px; }
body.checkout-cart-index table.cart.items dl.item-options dd { grid-column: 2; margin: 0; padding: 0; color: var(--bs-ink-2); word-break: normal !important; overflow-wrap: break-word; min-width: 0; font-size: 14px; }
body.checkout-cart-index table.cart.items dl.item-options dd:not(:has(*)):not(:where(:not(:empty))) { display: none; }
body.checkout-cart-index table.cart.items dl.item-options dt:has(+ dd:empty) { grid-column: 1 / -1; padding-top: 4px; }
body.checkout-cart-index table.cart.items dl.item-options dd img { width: 40px; height: 40px; object-fit: cover; border-radius: 8px; vertical-align: middle; margin-right: 8px; }
body.checkout-cart-index table.cart.items dl.item-options .price, body.checkout-cart-index table.cart.items dl.item-options .price-container, body.checkout-cart-index table.cart.items dl.item-options .price-wrapper { color: var(--bs-rust) !important; font-weight: 600; font-size: 14px; white-space: nowrap; }
body.checkout-cart-index table.cart.items .product-item-name .price { color: var(--bs-rust); }
@media (max-width: 760px) { body.checkout-cart-index table.cart.items dl.item-options { grid-template-columns: 1fr; row-gap: 2px; } body.checkout-cart-index table.cart.items dl.item-options dt, body.checkout-cart-index table.cart.items dl.item-options dd { grid-column: 1; } body.checkout-cart-index table.cart.items dl.item-options dd { margin-bottom: 8px; } }

/* ---- pass 6 (desktop): options list spans the full width under the name + price/qty/subtotal ---- */
@media (min-width: 761px) {
  body.checkout-cart-index table.cart.items tr.item-info { grid-template-columns: 120px minmax(0, 1fr) 96px 120px 120px; column-gap: 24px; row-gap: 0; }
  body.checkout-cart-index table.cart.items td.col.item { display: contents !important; }
  body.checkout-cart-index table.cart.items td.col.item .product-item-details { display: contents !important; }
  body.checkout-cart-index table.cart.items td.col.item .product-item-photo { grid-column: 1; grid-row: 1 / span 3; align-self: start; }
  body.checkout-cart-index table.cart.items td.col.item .product-item-name { grid-column: 2; grid-row: 1; align-self: start; min-height: 62px; }
  body.checkout-cart-index table.cart.items td.col.item dl.item-options { grid-column: 2 / -1; grid-row: 2; margin-top: 0; }
  body.checkout-cart-index table.cart.items td.col.item .product-item-details > :not(.product-item-name):not(dl) { grid-column: 2 / -1; grid-row: 3; }
  body.checkout-cart-index table.cart.items td.col.price { grid-column: 3; grid-row: 1; }
  body.checkout-cart-index table.cart.items td.col.qty { grid-column: 4; grid-row: 1; }
  body.checkout-cart-index table.cart.items td.col.subtotal { grid-column: 5; grid-row: 1; }
  body.checkout-cart-index table.cart.items tr.item-actions { margin-top: 8px; }
}
body.checkout-cart-index .cart-summary table.totals tbody { column-gap: 0; row-gap: 12px; }
body.checkout-cart-index .cart-summary table.totals td.amount { padding-left: 12px; }
body.checkout-cart-index .cart-summary table.totals .grand th.mark, body.checkout-cart-index .cart-summary table.totals .grand td.amount { padding-top: 14px; margin-top: 2px; }

/* ---- pass 7 (phones): photo + name on top, option list full width underneath ---- */
@media (max-width: 760px) {
  body.checkout-cart-index table.cart.items td.col.item { display: grid !important; grid-template-columns: 120px minmax(0, 1fr); column-gap: 16px; row-gap: 0; align-items: start; }
  body.checkout-cart-index table.cart.items td.col.item .product-item-details { display: contents !important; }
  body.checkout-cart-index table.cart.items td.col.item .product-item-photo { grid-column: 1; grid-row: 1; }
  body.checkout-cart-index table.cart.items td.col.item .product-item-name { grid-column: 2; grid-row: 1; align-self: start; }
  body.checkout-cart-index table.cart.items td.col.item dl.item-options { grid-column: 1 / -1; grid-row: 2; margin-top: 14px; }
  body.checkout-cart-index table.cart.items td.col.item .product-item-details > :not(.product-item-name):not(dl) { grid-column: 1 / -1; grid-row: 3; }
}

/* CHG-016: ✕ before "Remove item" on the cart page (owner request). */
body.checkout-cart-index table.cart.items .actions-toolbar > .action-delete { gap: 6px; flex: 0 0 auto; width: fit-content !important; }
body.checkout-cart-index table.cart.items .actions-toolbar > .action-delete::before { content: "\2715"; display: inline-block; font-size: 13px; line-height: 1; font-weight: 700; color: #9A3B10; }

/* CHG-017: summary column order + sizes exactly as the design (Cart.dc.html): title, shipping, discount, totals, checkout. */
body.checkout-cart-index .cart-container > .cart-summary > strong.summary.title { order: 0; }
body.checkout-cart-index .cart-container > .cart-summary > .block.shipping { order: 1; }
body.checkout-cart-index .cart-container > .cart-summary > .block.discount { order: 2; }
body.checkout-cart-index .cart-container > .cart-summary > .cart-totals { order: 3; }
body.checkout-cart-index .cart-container > .cart-summary > .checkout-methods-items { order: 4; }
body.checkout-cart-index .cart-summary .block > .title > strong { margin: 0; line-height: normal; }
body.checkout-cart-index .cart-summary .block > .title::after,
body.checkout-cart-index .cart-summary .block.active > .title::after { content: "+"; font-size: 16px; font-weight: 700; line-height: normal; height: auto; }
body.checkout-cart-index .cart-summary .block > .title { line-height: normal; }

/* CHG-017: desktop item row laid out exactly like the design (Cart.dc.html): [photo 120 | name, options, links] on the left, price / qty / subtotal block (400px) on the right, top aligned. */
@media (min-width: 761px) {
  body.checkout-cart-index table.cart.items > tbody.cart.item { display: grid; grid-template-columns: 138px minmax(0, 1fr) 131px 110px 159px; grid-template-rows: auto auto auto 1fr auto; column-gap: 0; row-gap: 0; align-items: start; padding: 24px 0; }
  body.checkout-cart-index table.cart.items tr.item-info,
  body.checkout-cart-index table.cart.items td.col.item,
  body.checkout-cart-index table.cart.items td.col.item .product-item-details,
  body.checkout-cart-index table.cart.items tr.item-actions,
  body.checkout-cart-index table.cart.items tr.item-actions > td { display: contents !important; }
  body.checkout-cart-index table.cart.items td.col.item .product-item-photo { grid-column: 1; grid-row: 1 / 5; align-self: start; margin: 0 !important; }
  body.checkout-cart-index table.cart.items td.col.item .product-item-name { grid-column: 2; grid-row: 1; align-self: start; min-height: 0; margin: 0 0 8px; padding-right: 32px; }
  body.checkout-cart-index table.cart.items td.col.item dl.item-options { display: grid !important; grid-template-columns: minmax(0, 1fr); column-gap: 0; row-gap: 1px; grid-column: 2; grid-row: 2; width: auto; margin: 0 0 8px; padding: 0 32px 0 0; border-top: 0; font-size: 14px; line-height: normal; }
  body.checkout-cart-index table.cart.items td.col.item dl.item-options dt { grid-column: 1; margin: 0; padding: 0; font-size: 14px; font-weight: 700; line-height: normal; color: var(--bs-ink); }
  body.checkout-cart-index table.cart.items td.col.item dl.item-options dd { grid-column: 1; display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 5px; padding: 0; font-size: 14px; line-height: normal; color: var(--bs-ink-2); }
  body.checkout-cart-index table.cart.items td.col.item dl.item-options dd:last-child { margin-bottom: 0; }
  body.checkout-cart-index table.cart.items td.col.item dl.item-options dt:has(+ dd:empty) { padding-top: 0; }
  body.checkout-cart-index table.cart.items td.col.item .product-item-details > :not(.product-item-name):not(dl) { grid-column: 2; grid-row: 2; }
  body.checkout-cart-index table.cart.items .actions-toolbar { grid-column: 2; grid-row: 3; align-self: start; margin: 8px 0 0; padding: 4px 32px 0 0; }
  body.checkout-cart-index table.cart.items > tbody.cart.item:has(dl.item-options) .actions-toolbar { margin-top: 0; }
  body.checkout-cart-index table.cart.items td.col.price { grid-column: 3; grid-row: 1 / 5; align-self: start; }
  body.checkout-cart-index table.cart.items td.col.qty { grid-column: 4; grid-row: 1 / 5; align-self: start; }
  body.checkout-cart-index table.cart.items td.col.subtotal { grid-column: 5; grid-row: 1 / 5; align-self: start; }
  body.checkout-cart-index table.cart.items td.col.qty { align-items: center; }
}
/* the design's right block drops under the left block when the row is narrower than 752px */
@media (min-width: 761px) and (max-width: 855px), (min-width: 976px) and (max-width: 1224px) {
  body.checkout-cart-index table.cart.items > tbody.cart.item { grid-template-columns: 138px 110px 152px minmax(0, 1fr); }
  body.checkout-cart-index table.cart.items td.col.item .product-item-name,
  body.checkout-cart-index table.cart.items td.col.item dl.item-options,
  body.checkout-cart-index table.cart.items .actions-toolbar { grid-column: 2 / -1; padding-right: 0; }
  body.checkout-cart-index table.cart.items td.col.item .product-item-details > :not(.product-item-name):not(dl) { grid-column: 2 / -1; }
  body.checkout-cart-index table.cart.items td.col.price { grid-column: 1; grid-row: 5; margin-top: 18px; }
  body.checkout-cart-index table.cart.items td.col.qty { grid-column: 2; grid-row: 5; margin-top: 18px; }
  body.checkout-cart-index table.cart.items td.col.subtotal { grid-column: 3; grid-row: 5; margin-top: 18px; }
}
body.checkout-cart-index table.cart.items .actions-toolbar::before, body.checkout-cart-index table.cart.items .actions-toolbar::after { display: none; content: none; }
@media (min-width: 761px) {
  body.checkout-cart-index table.cart.items > tbody.cart.item { grid-template-rows: auto auto auto 0 auto; box-sizing: border-box; min-height: 169px; }
  body.checkout-cart-index table.cart.items > tbody.cart.item:last-of-type { border-bottom: 1px solid #ECE6DC; }
}
/* row model: 1 name, 2 options, 3 links (takes the leftover height beside the photo), 4 price/qty/subtotal when they wrap under the left block */
@media (min-width: 761px) {
  body.checkout-cart-index table.cart.items > tbody.cart.item { grid-template-rows: auto auto minmax(0, 1fr) auto; min-height: 0; }
  body.checkout-cart-index table.cart.items td.col.item .product-item-photo { grid-row: 1 / 4; }
  body.checkout-cart-index table.cart.items td.col.price, body.checkout-cart-index table.cart.items td.col.qty, body.checkout-cart-index table.cart.items td.col.subtotal { grid-row: 1 / 4; }
}
@media (min-width: 761px) and (max-width: 855px), (min-width: 976px) and (max-width: 1224px) {
  body.checkout-cart-index table.cart.items td.col.price, body.checkout-cart-index table.cart.items td.col.qty, body.checkout-cart-index table.cart.items td.col.subtotal { grid-row: 4; }
}

/* CHG-017: the two reassurance lines use the design's 16px navy check / lock icons (list items of 14px text, 8px apart). */
body.checkout-cart-index .cart-summary::before, body.checkout-cart-index .cart-summary::after { display: block; white-space: normal; font-size: 14px; line-height: 16px; min-height: 16px; color: var(--bs-ink-2); padding-left: 24px; background-repeat: no-repeat; background-position: left center; background-size: 16px 16px; }
body.checkout-cart-index .cart-summary::before { content: "Free design proof before production"; order: 98; background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%231E3A5F' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><path d='M20 6L9 17l-5-5'/></svg>"); margin-bottom: -6px; }
body.checkout-cart-index .cart-summary::after { content: "Secure checkout"; order: 99; background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%231E3A5F' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><rect x='4' y='11' width='16' height='10' rx='2'/><path d='M8 11V7a4 4 0 0 1 8 0v4'/></svg>"); }
/* empty gift-options placeholder was adding a 40px row + gap above the cart (design has none); it reappears if gift options render content */
body.checkout-cart-index #gift-options-cart:not(:has(:not(script))) { display: none; }
body.checkout-cart-index .cart-summary .block > .title > strong { line-height: normal !important; }
body.checkout-cart-index .cart-summary .block > .title > strong, body.checkout-cart-index .cart-summary .block > .title::after { font-family: var(--bs-font-text) !important; }
body.checkout-cart-index .cart-summary table.totals .grand th.mark, body.checkout-cart-index .cart-summary table.totals .grand td.amount { padding-top: 12px; margin-top: 0; }
body.checkout-cart-index .cart-summary table.totals td.amount { padding-left: 0; }
body.checkout-cart-index .cart-summary table.totals .grand td.amount .price { line-height: normal; }
body.checkout-cart-index table.cart.items dl.item-options dt, body.checkout-cart-index table.cart.items dl.item-options dd { font-family: var(--bs-font-text); }
/* the x before "Remove item" must not use the theme icon font (glyph was missing until hover) */
body.checkout-cart-index table.cart.items .actions-toolbar > .action-delete::before { content: "\2715" !important; display: inline-block !important; font-family: var(--bs-font-text) !important; font-size: 13px !important; font-weight: 700; line-height: 1 !important; color: #9A3B10 !important; width: auto !important; height: auto !important; margin: 0 !important; position: static !important; opacity: 1 !important; visibility: visible !important; text-indent: 0 !important; }

/* CHG-020: design summary is content-box (340px content + 28px padding each side = 396px column) */
body.checkout-cart-index .cart-container > .cart-summary { box-sizing: content-box; }
body.checkout-cart-index .page-main { padding-top: 28px !important; }
body.checkout-cart-index .page-title-wrapper .page-title { line-height: normal !important; }

/* ---- CHG-021 "More affordable markers" strip (design: Cart.dc.html .crosssell) ---- */
body.checkout-cart-index .bs-more { display: flex; flex-direction: column; gap: 20px; margin: 24px 0 0; padding: 24px 0 0; width: 100%; }
body.checkout-cart-index .bs-more__title { margin: 0; font-family: var(--bs-font-display); font-weight: 500; font-size: clamp(28px, 2.6vw, 36px); letter-spacing: normal; line-height: normal; text-transform: none; text-align: left; color: var(--bs-ink); }
body.checkout-cart-index .bs-more__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(240px, 46%), 1fr)); gap: 16px; }
body.checkout-cart-index .bs-more__item { margin: 0; padding: 0; background: #FFFFFF; border-radius: 22px; overflow: hidden; display: flex; flex-direction: column; }
body.checkout-cart-index .bs-more__photo { display: block; aspect-ratio: 1 / 1; background: #ECE6DC; }
body.checkout-cart-index .bs-more__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
body.checkout-cart-index .bs-more__body { padding: 16px 18px 18px; display: flex; flex-direction: column; gap: 6px; flex-grow: 1; }
body.checkout-cart-index .bs-more__name { font-size: 15px; font-weight: 600; line-height: 1.4; color: var(--bs-ink); text-decoration: none; }
body.checkout-cart-index .bs-more__name:hover { color: var(--bs-rust); }
body.checkout-cart-index .bs-more__body .price-box { margin: auto 0 0; padding: 0; }
body.checkout-cart-index .bs-more__body .price-box .price, body.checkout-cart-index .bs-more__body .price-box .price-wrapper { font-family: var(--bs-font-display); font-size: 24px; font-weight: 600; line-height: normal; color: var(--bs-rust); }
body.checkout-cart-index .bs-more__body .price-box .old-price, body.checkout-cart-index .bs-more__body .price-box .price-label { display: none; }
body.checkout-cart-index .cart-summary table.totals tr.bs-at-checkout td.amount, body.checkout-cart-index .cart-summary table.totals tr.bs-at-checkout td.amount .price { color: var(--bs-muted); font-weight: 400; }
body.checkout-cart-index .cart-summary table.totals tr.shipping th.mark .label { display: inline; }
body.checkout-cart-index .cart-summary table.totals tr.shipping th.mark .value { display: block; font-size: 13px; color: var(--bs-muted); }

/* QA: phones - the item row (price | qty | subtotal) could not shrink below ~350px and pushed the whole cart (rows + summary) 32px past the right edge at 320-400px (clipped by the page, so no scrollbar but cut-off text) */
@media (max-width: 760px) {
  body.checkout-cart-index .cart-container { min-width: 0; }
  body.checkout-cart-index .cart-container > form.form-cart, body.checkout-cart-index .cart-container > .cart-summary { min-width: 0; max-width: 100%; box-sizing: border-box; }
  body.checkout-cart-index table.cart.items tr.item-info { grid-template-columns: auto minmax(0, 1fr) auto; column-gap: 12px; }
  body.checkout-cart-index table.cart.items td.col.qty { justify-self: center; }
}
@media (max-width: 380px) {
  body.checkout-cart-index table.cart.items tr.item-info { grid-template-columns: minmax(0, 1fr) auto; }
  body.checkout-cart-index table.cart.items td.col.price { grid-column: 1; grid-row: 2; }
  body.checkout-cart-index table.cart.items td.col.subtotal { grid-column: 2; grid-row: 2; }
  body.checkout-cart-index table.cart.items td.col.qty { grid-column: 1 / -1; grid-row: 3; justify-self: start; align-items: flex-start; }
}

/* ---- QA 2026-10-22: items that carry a design template have a SECOND option list (dl.mps-template-detail: "Selected Templates / front: ..."). Both lists were placed in grid row 2, so the template text was printed over "Installation / Shipping". The second list goes into the next row and the links move down one row. ---- */
@media (min-width: 761px) {
  body.checkout-cart-index table.cart.items td.col.item dl.item-options ~ dl.item-options { grid-column: 2; grid-row: 3; margin-top: 0; }
  body.checkout-cart-index table.cart.items > tbody.cart.item:has(dl.item-options ~ dl.item-options) .actions-toolbar { grid-row: 4; }
}
@media (min-width: 761px) and (max-width: 855px), (min-width: 976px) and (max-width: 1224px) {
  body.checkout-cart-index table.cart.items td.col.item dl.item-options ~ dl.item-options { grid-column: 2 / -1; }
}
@media (max-width: 760px) {
  body.checkout-cart-index table.cart.items td.col.item dl.item-options ~ dl.item-options { grid-column: 1 / -1; grid-row: 3; margin-top: 0; }
  body.checkout-cart-index table.cart.items td.col.item .product-item-details:has(dl ~ dl) > :not(.product-item-name):not(dl) { grid-row: 4; }
}
