
.cart-page,
.cart-bar {
  --cart-thumb-w: 4.5rem;      
  --cart-thumb-h: 5.625rem;
  --cart-thumb-lg-w: 5rem;     
  --cart-thumb-lg-h: 6.25rem;
  --cart-total-w: 7rem;        
  --cart-rosette: 7.5rem;      
  --cart-rosette-dim: .5;
  --cart-gone-dim: .55;        
}

.cart-page { padding-bottom: var(--section-y); }

.cart-page:is(.is-empty, .is-gone-only) { padding-bottom: var(--space-4); }

html.js .cart-page:not(.is-empty):not(.is-gone-only) { min-height: calc(100vh - var(--header-h)); }

.cart-layout { display: grid; gap: var(--space-7); }

.cart-layout__lines { display: grid; gap: var(--space-6); min-width: 0; }

.cart-layout__summary { min-width: 0; }

@media (min-width: 1024px) {
  .cart-layout {
    grid-template-columns: repeat(12, minmax(0, 1fr));
    align-items: start;
    column-gap: var(--grid-gap);
  }

  .cart-layout__lines { grid-column: 1 / span 7; }

  .cart-layout__summary { grid-column: 9 / span 4; }
}

@media (min-width: 1024px) and (min-height: 700px) {
  .cart-layout__summary { position: sticky; top: calc(var(--header-h) + var(--space-5)); }
}

.cart-lines--page { border-bottom: var(--border-w) solid var(--rule); }

.cart-lines--page .cart-line {
  grid-template-columns: var(--cart-thumb-w) minmax(0, 1fr) auto;
  grid-template-areas: "thumb info info" "thumb remove remove" "qty qty price";
  grid-template-rows: auto 1fr auto;
  align-items: center;
  gap: var(--space-4);
  padding-block: var(--space-5);
  border-top: var(--border-w) solid var(--rule);
  border-bottom: 0;
}

.cart-lines--page .cart-line__thumb { display: block; }

.cart-lines--page .cart-line__thumb img { width: var(--cart-thumb-w); height: var(--cart-thumb-h); }

.cart-lines--page .cart-line__info { align-self: start; justify-items: start; }

.cart-lines--page .cart-line__name { font-family: var(--font-display); font-variation-settings: "opsz" var(--opsz-text); overflow-wrap: anywhere; }

.cart-lines--page .cart-line__meta { font-size: var(--text-label); line-height: var(--leading-snug); }

.cart-line__qty { display: grid; grid-area: qty; justify-items: start; gap: var(--space-1); }

.cart-line__limit { font-size: var(--text-label); line-height: var(--leading-snug); color: var(--color-muted); }

.cart-lines--page .cart-line__price { justify-self: end; text-align: right; }

.cart-lines--page .cart-line__remove {
  display: inline-flex;
  align-items: center;
  min-height: var(--tap);
  font-size: var(--text-label);
}

.cart-lines--page .cart-line > .cart-line__remove {
  grid-area: remove;
  align-self: start;
  justify-self: start;
  margin-top: calc(var(--space-1) - var(--space-4));
}

.cart-lines--page .cart-line--gone { grid-template-areas: "thumb info info"; grid-template-rows: auto; }

.cart-line--gone .cart-line__thumb img { opacity: var(--cart-gone-dim); }

.cart-gone { display: grid; gap: var(--space-3); }

.cart-gone__text { max-width: var(--measure); font-size: var(--text-small); color: var(--color-muted); }

.cart-page.is-gone-only .cart-layout__summary { display: none; }

.cart-gone__next { display: grid; justify-items: start; gap: var(--space-4); padding-top: var(--space-3); }

.cart-gone__lead { max-width: var(--measure); }

@media (min-width: 768px) {
  .cart-lines--page .cart-line {
    grid-template-columns: var(--cart-thumb-lg-w) minmax(0, 1fr) auto auto;
    grid-template-areas: "thumb info qty price" "thumb remove qty price";
    grid-template-rows: auto 1fr;
    align-items: start;
  }

  .cart-line__qty { width: min-content; }

  .cart-lines--page .cart-line__thumb img { width: var(--cart-thumb-lg-w); height: var(--cart-thumb-lg-h); }

  .cart-lines--page .cart-line__price {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    min-width: var(--cart-total-w);
    min-height: var(--tap);
  }

  .cart-lines--page .cart-line--gone { grid-template-areas: "thumb info info info"; grid-template-rows: auto; }
}

.cart-summary__pending { font-size: var(--text-small); color: var(--color-muted); }

.cart-discount { border-block: var(--border-w) solid var(--rule); }

.cart-discount__summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  min-height: var(--control-sm);
  font-size: var(--text-small);
  font-weight: var(--weight-medium);
  line-height: var(--leading-snug);
  list-style: none;
  cursor: pointer;
}

.cart-discount__summary::-webkit-details-marker { display: none; }

.cart-discount__icon { flex: none; color: var(--ink-accent); }

.cart-discount[open] .cart-discount__icon { transform: rotate(180deg); }

.cart-discount__form { display: grid; gap: var(--space-3); padding-block: var(--space-2) var(--space-4); }

.cart-discount__form .field { display: grid; gap: var(--space-2); }

.cart-discount__status { display: grid; }

.cart-discount__status:empty { display: none; }

.cart-discount__checking { font-size: var(--text-label); color: var(--color-muted); }

.cart-discount__status .notice { font-size: var(--text-small); }

.cart-assurance {
  display: grid;
  gap: var(--space-3);
  padding-top: var(--space-4);
  border-top: var(--border-w) solid var(--rule);
  font-size: var(--text-label);
  line-height: var(--leading-notes);
  color: var(--color-muted);
}

.cart-assurance__item { display: flex; align-items: flex-start; gap: var(--space-3); text-wrap: pretty; }

.cart-assurance__item > span { flex: 1 1 auto; min-width: 0; max-width: none; }

.cart-assurance__item .icon { flex: none; width: var(--icon-sm); height: var(--icon-sm); margin-top: var(--space-1); color: var(--ink-accent); }

@media (hover: hover) and (pointer: fine) {
  .cart-discount__summary:hover { color: var(--ink-accent); }
}

@media (prefers-reduced-motion: no-preference) {
  .cart-discount__icon { transition: transform var(--dur-base) var(--ease-out); }
}

.cart-empty__mark { width: var(--cart-rosette); height: var(--cart-rosette); opacity: var(--cart-rosette-dim); }

.cart-suggest { display: grid; gap: var(--space-6); padding-bottom: var(--section-y); }

@media (min-width: 768px) {
  .cart-suggest .product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 1024px) {
  .cart-suggest .product-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

.cart-bar {
  position: fixed;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: var(--z-sticky);
  padding-bottom: env(safe-area-inset-bottom);
  background: var(--color-surface);
  box-shadow: var(--shadow-bar-top);
  color: var(--color-text);
}

.cart-bar__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  min-height: var(--sticky-bar-h);
}

.cart-bar__total { display: grid; gap: 0; min-width: 0; line-height: var(--leading-snug); }

.cart-bar__label { font-size: var(--text-label); color: var(--color-muted); }

.cart-bar__value { font-size: var(--text-price); font-weight: var(--weight-semibold); font-variant-numeric: tabular-nums; white-space: nowrap; }

.cart-bar__action { flex: none; }

@media (min-width: 1024px) {
  .cart-bar { display: none; }
}

html.js .cart-page:has(> [data-cartpage-filled][hidden]):has(> [data-cartpage-empty][hidden]) > .boot-pending {
  display: block;
  visibility: hidden;
  animation: boot-fallback-show 0s 8s forwards !important;
}
