.cart-grid {
  --cart-col-qty: 14rem;
  --cart-col-total: 12rem;
  --cart-col-actions: 3rem;
}

.cart-grid .page-title-section {
  font-size: var(--wh-font-size-h2, 3.2rem);
  margin-block: 0 var(--wh-space-md, 1.6rem);
}

.cart__columns-header {
  display: flex;
  align-items: center;
  gap: var(--wh-space-md, 1.6rem);
  padding-block-end: var(--wh-space-sm, 0.8rem);
  border-block-end: 1px solid var(--wh-color-border-subtle, #e4e0da);
}

.cart__columns-header-label {
  font-size: var(--wh-font-size-body, 1.4rem);
  font-weight: var(--wh-font-weight-regular, 400);
  color: var(--wh-color-text-primary, #40362e);
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

.cart__columns-header-label--product { flex: 1 1 auto; }
.cart__columns-header-label--qty     { width: var(--cart-col-qty); text-align: center; }
.cart__columns-header-label--total   { width: var(--cart-col-total); text-align: right; }
.cart__columns-header-label--actions { width: var(--cart-col-actions); }

.cart-grid .cart__item {
  padding-block: var(--wh-space-md, 1.6rem);
  border-block-end: 1px solid var(--wh-color-border-subtle, #e4e0da);
}

.cart-grid .product-line { align-items: center; gap: var(--wh-space-lg, 3.2rem); }
.cart-grid .product-line__img {
  width: 9.4rem;
  height: auto;
  border-radius: var(--wh-radius-md, 0.8rem);
}

.cart-grid .product-line__title {
  color: var(--wh-color-text-muted, #908981);
  font-size: var(--wh-font-size-body, 1.4rem);
  font-weight: var(--wh-font-weight-regular, 400);
}
.cart-grid .product-line__title:hover { color: var(--wh-color-accent, #9e8264); }

.cart-grid .product-line__item--info {
  font-size: var(--wh-font-size-small, 1.2rem);
  color: var(--wh-color-text-muted, #908981);
}

.cart-grid .product-line__item-price {
  color: var(--wh-color-text-primary, #40362e);
  font-size: var(--wh-font-size-body, 1.4rem);
  font-weight: var(--wh-font-weight-semibold, 600);
}

@layer bs-base {
  .cart-grid .product-line__item-discount.badge.bg-primary {
    background: var(--wh-color-accent, #9e8264) !important;
    border: 0 !important;
  }
}
.cart-grid .product-line__item-discount.badge {
  color: var(--wh-color-bg-base, #ffffff);
  font-size: var(--wh-font-size-small, 1.2rem);
  font-weight: var(--wh-font-weight-medium, 500);
  padding: var(--wh-space-xs, 0.4rem) var(--wh-space-sm, 0.8rem);
  border-radius: var(--wh-radius-sm, 0.4rem);
  line-height: 1.2;
}

.cart-grid .product-line__item-regular-price {
  color: var(--wh-color-text-muted, #908981);
  font-size: var(--wh-font-size-small, 1.2rem);
  font-weight: var(--wh-font-weight-regular, 400);
  text-decoration: line-through;
}

.cart-grid .product-line__price {
  color: var(--wh-color-text-primary, #40362e);
  font-size: var(--wh-font-size-body, 1.4rem);
  font-weight: var(--wh-font-weight-semibold, 600);
  text-align: right;
}

@media (min-width: 992px) {
  .cart-grid .product-line__content {
    display: flex;
    align-items: center;
    gap: var(--wh-space-md, 1.6rem);
  }

  .cart-grid .product-line__content-left {
    flex: 1 1 auto;
    min-width: 0;
    margin-block-end: 0;
  }

  .cart-grid .product-line__content-right {
    flex-direction: row;
    align-items: center;
    gap: var(--wh-space-md, 1.6rem);
    margin-block-end: 0;
  }

  .cart-grid .product-line__quantity-button {
    width: var(--cart-col-qty);
    max-width: var(--cart-col-qty);
    display: flex;
    justify-content: center;
  }

  .cart-grid .product-line__price { width: var(--cart-col-total); }

  .cart-grid .product-line__actions {
    grid-column: auto;
    width: var(--cart-col-actions);
    justify-content: flex-end;
  }
}

.cart-grid .quantity-button__group {
  width: 12.7rem;
  border: 1.5px solid var(--wh-color-border-subtle, #e4e0da);
  border-radius: var(--wh-radius-md, 0.8rem);
  overflow: hidden;
  flex-wrap: nowrap;
}

.cart-grid .quantity-button__group .btn {
  background: transparent;
  border: none;
  border-radius: 0;
  padding: 1.2rem 0.8rem;
  color: var(--wh-color-text-primary, #40362e);
  width: auto;
}
.cart-grid .quantity-button__group .btn:hover {
  background: var(--wh-color-bg-subtle, #f7f7f7);
  color: var(--wh-color-accent, #9e8264);
}
.cart-grid .quantity-button__group .btn .material-icons { font-size: 1.4rem; }

.cart-grid .quantity-button__group .form-control {
  border: none;
  box-shadow: none;
  text-align: center;
  padding: 0;
  min-width: 0;
  font-size: var(--wh-font-size-body, 1.4rem);
  font-weight: var(--wh-font-weight-medium, 500);
  color: var(--wh-color-text-primary, #40362e);
  background: transparent;
}

.cart-grid .product-line__actions .js-remove-from-cart {
  font-size: 0;
  line-height: 1;
  color: var(--wh-color-text-primary, #40362e);
  transition: color var(--wh-duration-fast, 150ms) ease;
}
.cart-grid .product-line__actions .js-remove-from-cart::before {
  content: '\2715'; 
  font-size: 1.4rem;
}
.cart-grid .product-line__actions .js-remove-from-cart:hover {
  color: var(--wh-color-accent, #9e8264);
}

.cart-grid .cart__continue-shopping { margin-block-start: var(--wh-space-lg, 3.2rem); }

.cart-grid .cart__empty {
  color: var(--wh-color-text-muted, #908981);
  font-size: var(--wh-font-size-body, 1.4rem);
  padding-block: var(--wh-space-lg, 3.2rem);
}

.cart-grid__aside > h2 {
  font-size: var(--wh-font-size-body, 1.4rem);
  font-weight: var(--wh-font-weight-medium, 500);
  color: var(--wh-color-accent, #9e8264);
  text-transform: uppercase;
  letter-spacing: 0.02em;
  padding-block-end: var(--wh-space-sm, 0.8rem);
  border-block-end: 1px solid var(--wh-color-border-subtle, #e4e0da);
  margin-block-end: var(--wh-space-sm, 0.8rem);
}

.cart-grid .cart-summary__totals { display: flex; flex-direction: column; }
.cart-grid .cart-summary__subtotals { order: 1; }
.cart-grid .cart-summary__voucher   { order: 2; }
.cart-grid .cart-summary__total     { order: 3; }
.cart-grid .cart-summary__actions   { order: 4; }

.cart-grid .cart-summary__line {
  font-size: var(--wh-font-size-body, 1.4rem);
  color: var(--wh-color-text-primary, #40362e);
}
.cart-grid .cart-summary__label { color: var(--wh-color-text-muted, #908981); }
.cart-grid .cart-summary__value {
  color: var(--wh-color-text-primary, #40362e);
  font-weight: var(--wh-font-weight-medium, 500);
}

.cart-grid .cart-summary__total {
  border-block-start: 1px solid var(--wh-color-border-subtle, #e4e0da);
  border-block-end: 0;
  padding-block: var(--wh-space-md, 1.6rem);
  margin-block-end: 0;
}
.cart-grid .cart-summary__total .cart-summary__label {
  color: var(--wh-color-text-primary, #40362e);
  font-weight: var(--wh-font-weight-regular, 400);
}
.cart-grid .cart-summary__total .cart-summary__value {
  font-size: var(--wh-font-size-h3, 2rem);
  font-weight: var(--wh-font-weight-medium, 500);
}

.cart-grid .cart-voucher__accordion {
  border-block-end: 0; 
  margin-block-end: var(--wh-space-sm, 0.8rem);
  padding-block-end: var(--wh-space-sm, 0.8rem);
}

.cart-grid .cart-voucher__accordion-button {
  background: transparent;
  box-shadow: none;
  padding: var(--wh-space-sm, 0.8rem) 0;
  font-size: var(--wh-font-size-body, 1.4rem);
  font-weight: var(--wh-font-weight-regular, 400);
  color: var(--wh-color-text-primary, #40362e);
  text-transform: uppercase;
  letter-spacing: 0.02em;
}
.cart-grid .cart-voucher__accordion-button:not(.collapsed) {
  background: transparent;
  color: var(--wh-color-text-primary, #40362e);
  box-shadow: none;
}
.cart-grid .cart-voucher__accordion-button:focus { box-shadow: none; }
.cart-grid .cart-voucher__accordion-button:focus-visible {
  outline: 2px solid var(--wh-color-accent, #9e8264);
  outline-offset: 2px;
  box-shadow: none;
}

.cart-grid .cart-voucher__accordion .accordion-body { padding: var(--wh-space-sm, 0.8rem) 0 0; }

.cart-grid .cart-voucher__form .js-voucher-input {
  flex: 1 1 auto;
  min-width: 0;
  border: 1.5px solid var(--wh-color-border-subtle, #e4e0da);
  border-radius: var(--wh-radius-md, 0.8rem);
  padding: 1.2rem var(--wh-space-md, 1.6rem);
  font-size: var(--wh-font-size-body, 1.4rem);
  color: var(--wh-color-text-primary, #40362e);
  background: var(--wh-color-bg-base, #fff);
}
.cart-grid .cart-voucher__form .js-voucher-input::placeholder {
  color: var(--wh-color-text-muted, #908981);
  opacity: 1;
}
.cart-grid .cart-voucher__form .js-voucher-input:focus {
  outline: none;
  border-color: var(--wh-color-accent, #9e8264);
  box-shadow: none;
}
.cart-grid .cart-voucher__form .btn { padding: 1.2rem var(--wh-space-md, 1.6rem); }

.cart-grid .cart-summary__actions { padding-block-start: var(--wh-space-sm, 0.8rem); }

.cart-grid .cart-summary__actions .btn {
  width: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--wh-space-sm, 0.8rem);
  background: var(--wh-color-accent, #9e8264);
  border: 2px solid var(--wh-color-accent, #9e8264);
  color: var(--wh-color-text-inverse, #fff);
  border-radius: var(--wh-radius-md, 0.8rem);
  padding: 1.7rem 2.5rem;
  font-size: var(--wh-font-size-body, 1.4rem);
  font-weight: var(--wh-font-weight-medium, 500);
}
.cart-grid .cart-summary__actions .btn:hover,
.cart-grid .cart-summary__actions .btn:focus-visible {
  background: var(--wh-color-primary, #40362e);
  border-color: var(--wh-color-primary, #40362e);
  color: var(--wh-color-text-inverse, #fff);
}

.cart-grid .cart-summary__actions .btn:not(.disabled)::after {
  content: '';
  flex-shrink: 0;
  width: 1.5rem;
  height: 1.5rem;
  background-color: currentColor;
  -webkit-mask-size: contain; mask-size: contain;
  -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
  -webkit-mask-position: center; mask-position: center;
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 15 15'><path d='M14.4525 6.17436L11.5863 3.30811L10.7025 4.19186L13.3663 6.85623L0 6.87498V8.12498L13.4037 8.10623L10.7019 10.8081L11.5856 11.6919L14.4525 8.82561C14.8029 8.47343 14.9997 7.99681 14.9997 7.49998C14.9997 7.00315 14.8029 6.52654 14.4525 6.17436Z'/></svg>");
  mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 15 15'><path d='M14.4525 6.17436L11.5863 3.30811L10.7025 4.19186L13.3663 6.85623L0 6.87498V8.12498L13.4037 8.10623L10.7019 10.8081L11.5856 11.6919L14.4525 8.82561C14.8029 8.47343 14.9997 7.99681 14.9997 7.49998C14.9997 7.00315 14.8029 6.52654 14.4525 6.17436Z'/></svg>");
}

.cart-grid hr {
  border-color: var(--wh-color-border-subtle, #e4e0da);
  opacity: 1;
}

.cart-grid__aside > hr { display: none; }

.cart-grid .cart-voucher__highlight { margin-block-start: var(--wh-space-md, 1.6rem); }
.cart-grid .cart-voucher__highlight .h5 {
  font-size: var(--wh-font-size-body, 1.4rem);
  font-weight: var(--wh-font-weight-semibold, 600);
  color: var(--wh-color-text-primary, #40362e);
  margin-block-end: var(--wh-space-sm, 0.8rem);
}
.cart-grid .cart-voucher__offers {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--wh-space-xs, 0.4rem);
  font-size: var(--wh-font-size-body, 1.4rem);
  color: var(--wh-color-text-muted, #908981);
}

.cart-grid .cart-voucher__code-value {
  background: none;
  border: 0;
  padding: 0;
  color: var(--wh-color-accent, #9e8264);
  font-size: inherit;
  font-weight: var(--wh-font-weight-medium, 500);
  cursor: pointer;
}
.cart-grid .cart-voucher__code-value:hover,
.cart-grid .cart-voucher__code-value:focus-visible {
  color: var(--wh-color-primary, #40362e);
  text-decoration: underline;
}

.cart-grid .cart-voucher__list {
  list-style: none;
  margin: 0 0 var(--wh-space-sm, 0.8rem);
  padding: 0;
}
.cart-grid .cart-summary__label--voucher { color: var(--wh-color-text-primary, #40362e); }
.cart-grid .cart-summary__label--voucher .material-icons {
  color: var(--wh-color-accent, #9e8264);
  font-size: 1.6rem;
}
.cart-grid .cart-voucher__remove {
  display: inline-flex;
  color: var(--wh-color-text-muted, #908981);
}
.cart-grid .cart-voucher__remove:hover { color: var(--wh-color-semantic-danger, #dc2626); }
.cart-grid .cart-voucher__remove .material-icons { font-size: 1.8rem; }

.cart-grid .cart-voucher__error {
  margin-block-start: var(--wh-space-sm, 0.8rem);
  display: flex;
  align-items: center;
  gap: var(--wh-space-sm, 0.8rem);
}
.cart-grid .cart-voucher__error .material-icons { color: var(--wh-color-semantic-danger, #dc2626); }

.cart-grid #cart-subtotal-discount .cart-summary__value { color: var(--wh-color-accent, #9e8264); }

.cart-grid .cart-summary__value-inner {
  font-size: var(--wh-font-size-small, 1.2rem);
  color: var(--wh-color-text-muted, #908981);
  font-weight: var(--wh-font-weight-regular, 400);
}

.cart-grid .product-line__gift,
.cart-grid .product-line__gift-quantity {
  color: var(--wh-color-accent, #9e8264);
  font-weight: var(--wh-font-weight-semibold, 600);
  font-size: var(--wh-font-size-body, 1.4rem);
}

.cart-grid .alert-warning {
  --bs-alert-bg: var(--wh-color-bg-subtle, #f7f7f7);
  --bs-alert-color: var(--wh-color-text-primary, #40362e);
  --bs-alert-border-color: var(--wh-color-border-subtle, #e4e0da);
  border-left: 3px solid var(--wh-color-semantic-warning, #f59e0b);
  margin-block-end: var(--wh-space-sm, 0.8rem);
}

.cart-grid .cart-summary__actions .btn.disabled,
.cart-grid .cart-summary__actions .btn:disabled {
  background: var(--wh-color-secondary, #908981);
  border-color: var(--wh-color-secondary, #908981);
  color: var(--wh-color-text-inverse, #fff);
  opacity: 1;
  cursor: not-allowed;
}

.cart-grid .cart-summary__actions .d-grid > * + * { margin-block-start: var(--wh-space-sm, 0.8rem); }

.cart-grid .cart-voucher__accordion-button::after {
  background-image: none;
  background-color: currentColor;
  -webkit-mask-size: contain; mask-size: contain;
  -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
  -webkit-mask-position: center; mask-position: center;
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/></svg>");
  mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/></svg>");
}

.cart-grid .form-control:focus {
  border-color: var(--wh-color-accent, #9e8264);
  box-shadow: none;
}
.cart-grid .btn:focus,
.cart-grid .btn:focus-visible {
  box-shadow: none;
}
.cart-grid .btn:focus-visible {
  outline: 2px solid var(--wh-color-accent, #9e8264);
  outline-offset: 2px;
}

.cart-grid .cart__continue-shopping {
  background: transparent;
  border-color: var(--wh-color-accent, #9e8264);
  color: var(--wh-color-accent, #9e8264);
  font-size: var(--wh-font-size-body, 1.4rem);
}
.cart-grid .cart__continue-shopping:hover,
.cart-grid .cart__continue-shopping:focus-visible,
.cart-grid .cart__continue-shopping:active {
  background: var(--wh-color-accent, #9e8264);
  border-color: var(--wh-color-accent, #9e8264);
  color: var(--wh-color-text-inverse, #fff);
}

.cart-grid .alert {
  border-radius: var(--wh-radius-md, 0.8rem);
  font-size: var(--wh-font-size-body, 1.4rem);
}
.cart-grid .alert-success,
.cart-grid .alert-info {
  --bs-alert-bg: var(--wh-color-bg-subtle, #f7f7f7);
  --bs-alert-color: var(--wh-color-text-primary, #40362e);
  --bs-alert-border-color: var(--wh-color-border-subtle, #e4e0da);
  --bs-alert-link-color: var(--wh-color-accent, #9e8264);
  border-left: 3px solid var(--wh-color-accent, #9e8264);
}
.cart-grid .alert .alert-link {
  color: var(--wh-color-accent, #9e8264);
  font-weight: var(--wh-font-weight-medium, 500);
}
.cart-grid .alert .material-icons { color: var(--wh-color-accent, #9e8264); }
.cart-grid .alert .btn-close:focus { box-shadow: none; }
.cart-grid .js-cart-update-alert .alert { margin-block-end: var(--wh-space-md, 1.6rem); }

.cart-grid a:not(.btn) { color: var(--wh-color-primary, #40362e); }
.cart-grid a:not(.btn):hover { color: var(--wh-color-accent, #9e8264); }

.cart-grid .cart-summary__voucher,
.cart-grid .cart-voucher__accordion,
.cart-grid .cart-voucher__accordion-item,
.cart-grid .cart-voucher__highlight,
.cart-grid .cart-voucher__highlight * {
  border: 0 !important;
  box-shadow: none !important;
  background-image: none !important;
}

.cart__lm-sections:not(:empty) { margin-block-start: var(--wh-space-xl, 6.4rem); }

.cart__lm-sections .container,
.cart__lm-sections .container-md {
  max-width: none;
  width: 100%;
  padding-inline: 0;
  margin-inline: 0;
}

@media (min-width: 992px) {
  .cart-grid .cart-grid__aside {
    position: sticky;
    top: calc(var(--wh-space-xl, 6.4rem) + var(--wh-space-lg, 3.2rem));
    align-self: flex-start;
    
    padding-inline-start: var(--wh-space-xl, 6.4rem);
  }
}

@media (max-width: 991.98px) {
  .cart__columns-header { display: none; }

  .cart-grid .product-line {
    position: relative; 
    align-items: flex-start;
    gap: var(--wh-space-md, 1.6rem);
  }

  .cart-grid .product-line__img { width: 7rem; }

  .cart-grid .product-line__content {
    display: flex;
    flex-direction: column;
    gap: var(--wh-space-sm, 0.8rem);
  }

  .cart-grid .product-line__content-left {
    margin-block-end: 0;
    padding-inline-end: var(--wh-space-lg, 3.2rem); 
  }

  
  .cart-grid .product-line__content-right {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: var(--wh-space-md, 1.6rem);
    margin-block-end: 0;
  }

  .cart-grid .product-line__quantity-button {
    max-width: none;
    display: flex;
  }

  .cart-grid .quantity-button__group { width: 10rem; }
  .cart-grid .quantity-button__group .btn { padding: 0.6rem; }
  .cart-grid .quantity-button__group .btn .material-icons { font-size: 1.2rem; }
  .cart-grid .quantity-button__group .form-control { font-size: var(--wh-font-size-small, 1.2rem); }

  
  .cart-grid .product-line__actions {
    position: absolute;
    top: 0;
    right: 0;
    grid-column: auto;
  }

  
  .cart-grid .cart__continue-shopping { margin-block-start: var(--wh-space-md, 1.6rem); }
  .cart-grid__aside { margin-block-start: var(--wh-space-lg, 3.2rem); }
}

