/* ==========================================================================
   ICRUSH — cart drawer, added-to-cart card, cart page
   ========================================================================== */

.ic-cart-drawer {
  --ic-drawer-max: min(92vw, 25rem);
  grid-template-rows: auto minmax(0, 1fr) auto;
}

.ic-cart-drawer__title {
  margin: 0;
  font-family: var(--ic-font-heading);
  font-weight: 700;
  font-size: var(--ic-text-h5);
  letter-spacing: var(--ic-heading-letter-spacing);
}

.ic-cart-empty {
  display: grid;
  justify-items: center;
  text-align: center;
  gap: 1rem;
  padding-block: 3rem;
}

.ic-cart-empty .h5 {
  margin: 0;
  font-family: var(--ic-font-heading);
  font-weight: 700;
  font-size: var(--ic-text-h4);
  letter-spacing: var(--ic-heading-letter-spacing);
}

.ic-cart-empty .button {
  margin-block-start: .5rem;
}

.ic-cart-items {
  display: grid;
  gap: 1.25rem;
}

.ic-cart-item {
  display: grid;
  grid-template-columns: 80px minmax(0, 1fr);
  gap: .75rem 1rem;
  align-items: start;
  padding-block-end: 1.25rem;
  border-block-end: 1px solid rgb(var(--ic-border));
}

.ic-cart-item:last-child {
  border-block-end: 0;
}

.ic-cart-item__media {
  display: block;
  background: #f4f3f1;
}

.ic-cart-item__media img {
  width: 80px;
  height: 107px;
  object-fit: cover;
  display: block;
}

.ic-cart-item__info {
  display: grid;
  gap: .25rem;
  min-width: 0;
}

.ic-cart-item__title {
  font-size: var(--ic-text-base);
  line-height: 1.4;
  color: rgb(var(--ic-text));
}

.ic-cart-item__subtitle {
  margin: 0;
  font-size: var(--ic-text-sm);
  color: rgb(var(--ic-text) / .55);
}

.ic-cart-item .price-list {
  font-size: var(--ic-text-base);
  column-gap: .4rem;
}

.ic-cart-item .price-list s {
  font-size: var(--ic-text-sm);
  color: rgb(var(--ic-text) / .55);
}

.ic-cart-item__actions {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
}

.ic-cart-item__remove {
  display: grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  min-height: 0;
  padding: 0;
  border: 0;
  background: none;
  color: rgb(var(--ic-text) / .55);
  cursor: pointer;
}

.ic-cart-item__remove:hover {
  color: rgb(var(--ic-text));
}

.ic-qty {
  display: inline-grid;
  grid-template-columns: 2.25rem 2.5rem 2.25rem;
  align-items: center;
  border: 1px solid rgb(var(--ic-border));
  height: 2.75rem;
}

.ic-qty__btn {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  min-height: 0;
  padding: 0;
  border: 0;
  background: none;
  cursor: pointer;
}

.ic-qty__btn svg {
  width: 12px;
}

.ic-qty__input {
  width: 100%;
  height: 100%;
  min-height: 0;
  padding: 0;
  border: 0;
  text-align: center;
  font-size: var(--ic-text-base);
  appearance: textfield;
  -moz-appearance: textfield;
}

.ic-qty__input::-webkit-outer-spin-button,
.ic-qty__input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.ic-cart-drawer__footer {
  display: grid;
  gap: .6rem;
}

.ic-cart__shipping {
  display: grid;
  gap: .4rem;
  font-size: var(--ic-text-sm);
}

.ic-cart__shipping p {
  margin: 0;
}

.ic-cart__shipping-bar {
  height: 4px;
  background: rgb(var(--ic-border));
}

.ic-cart__shipping-bar span {
  display: block;
  height: 100%;
  background: rgb(var(--ic-success-text));
}

.ic-cart__subtotal {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  padding-block-start: .5rem;
  font-family: var(--ic-font-heading);
  font-weight: 700;
  font-size: 1rem;
  letter-spacing: .02em;
}

.ic-cart__note {
  margin: 0;
  font-size: 12px;
  line-height: 1.5;
  color: rgb(var(--ic-text) / .55);
}

.ic-cart__continue {
  justify-self: center;
  font-size: var(--ic-text-sm);
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* ---------------- added to cart card ---------------- */

.ic-added-card {
  position: fixed;
  inset-block-end: 1.5rem;
  inset-inline-end: 1.5rem;
  z-index: 940;
  width: 360px;
  max-width: calc(100vw - 2rem);
  background: rgb(var(--ic-bg));
  color: rgb(var(--ic-text));
  box-shadow: 0 10px 40px rgb(0 0 0 / .18);
  border: 1px solid rgb(var(--ic-border));
  padding: 1.25rem;
  display: grid;
  gap: 1rem;
  opacity: 0;
  transform: translateY(10px);
  transition: opacity .25s ease, transform .25s ease;
}

.ic-added-card.is-open {
  opacity: 1;
  transform: translateY(0);
}

.ic-added-card__close {
  position: absolute;
  inset-block-start: .5rem;
  inset-inline-end: .5rem;
  width: 1.75rem;
  height: 1.75rem;
  display: grid;
  place-items: center;
  border: 0;
  background: none;
  color: rgb(var(--ic-text) / .6);
  cursor: pointer;
}

.ic-added-card__heading {
  margin: 0;
  font-family: var(--ic-font-heading);
  font-weight: 700;
  font-size: var(--ic-text-sm);
  letter-spacing: var(--ic-button-letter-spacing);
  text-transform: uppercase;
}

.ic-added-card__product {
  display: grid;
  grid-template-columns: 80px minmax(0, 1fr);
  gap: 1rem;
  align-items: start;
}

.ic-added-card__media {
  display: block;
  background: #f4f3f1;
}

.ic-added-card__media img {
  width: 80px;
  height: 107px;
  object-fit: cover;
  display: block;
}

.ic-added-card__info {
  display: grid;
  gap: .3rem;
}

.ic-added-card__title {
  font-size: var(--ic-text-base);
  line-height: 1.4;
}

.ic-added-card__subtitle {
  margin: 0;
  font-size: var(--ic-text-sm);
  color: rgb(var(--ic-text) / .55);
}

.ic-added-card__price {
  margin: 0;
  font-family: var(--ic-font-heading);
  font-weight: 700;
  font-size: var(--ic-text-base);
}

.ic-added-card__footer .button {
  width: 100%;
  min-height: 44px;
}

@media screen and (max-width: 699px) {
  .ic-added-card {
    inset-inline: 1rem;
    inset-block-end: 1rem;
    width: auto;
  }
}

/* ---------------- cart page ---------------- */

.ic-cart-page {
  padding-block: 2rem 4rem;
}

.ic-cart-page__title {
  margin: 0 0 2rem;
  font-family: var(--ic-font-heading);
  font-weight: 700;
  font-size: 40px;
  line-height: 1.1;
}

.ic-cart-page__grid {
  display: grid;
  gap: 2.5rem;
}

@media screen and (min-width: 1000px) {
  .ic-cart-page__grid {
    grid-template-columns: minmax(0, 1fr) 400px;
    gap: 4rem;
    align-items: start;
  }
}

/* WooCommerce cart table */
.woocommerce-cart .shop_table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--ic-text-base);
}

.woocommerce-cart .shop_table th,
.woocommerce-cart .shop_table td {
  padding: .9rem .5rem;
  border-block-end: 1px solid rgb(var(--ic-border));
  text-align: start;
  vertical-align: middle;
}

.woocommerce-cart .shop_table thead th {
  font-family: var(--ic-font-heading);
  font-weight: 700;
  font-size: 12px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgb(var(--ic-text) / .6);
  border-block-end: 1px solid rgb(var(--ic-text));
}

.woocommerce-cart .shop_table .product-thumbnail img {
  width: 80px;
  height: auto;
  display: block;
}

.woocommerce-cart .shop_table .product-name a {
  color: rgb(var(--ic-text));
}

.woocommerce-cart .shop_table .product-remove a {
  display: grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  background: rgb(0 0 0 / .05);
  text-decoration: none;
}

.woocommerce-cart .quantity .qty {
  width: 4.5rem;
  min-height: 2.75rem;
}

.woocommerce-cart .actions {
  padding-block: 1.5rem;
}

.woocommerce-cart .coupon {
  display: flex;
  gap: .5rem;
  flex-wrap: wrap;
}

.woocommerce-cart .cart_totals {
  background: #f7f7f7;
  padding: 1.75rem;
  position: sticky;
  top: calc(var(--ic-sticky-height) + 1rem);
}

.woocommerce-cart .cart_totals h2 {
  margin: 0 0 1rem;
  font-family: var(--ic-font-heading);
  font-weight: 700;
  font-size: 18px;
  letter-spacing: .06em;
}

.woocommerce-cart .cart_totals table {
  width: 100%;
  border-collapse: collapse;
}

.woocommerce-cart .cart_totals th,
.woocommerce-cart .cart_totals td {
  padding-block: .6rem;
  text-align: start;
  font-weight: 400;
}

.woocommerce-cart .cart_totals .order-total th,
.woocommerce-cart .cart_totals .order-total td {
  font-family: var(--ic-font-heading);
  font-weight: 700;
  font-size: 18px;
  border-block-start: 1px solid rgb(var(--ic-border));
}

.woocommerce-cart .wc-proceed-to-checkout a {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: var(--ic-button-h-lg);
  background: rgb(var(--ic-accent));
  color: #fff;
  font-family: var(--ic-font-heading);
  font-weight: 700;
  font-size: var(--ic-text-sm);
  letter-spacing: var(--ic-button-letter-spacing);
  text-transform: uppercase;
}

.woocommerce-cart .cart-empty,
.woocommerce-cart .return-to-shop {
  text-align: center;
}

.woocommerce-cart .return-to-shop .button {
  margin-block-start: 1rem;
}


/* cart page refinements */
.woocommerce-cart .shop_table thead .product-thumbnail {
  width: 100px;
}

.woocommerce-cart .coupon {
  align-items: center;
}

.woocommerce-cart .coupon .input-text {
  flex: 1 1 12rem;
  width: auto;
  min-height: 44px;
}

.woocommerce-cart .coupon .button {
  flex: 0 0 auto;
  min-height: 44px;
}

.woocommerce-cart .actions .button[name="update_cart"] {
  margin-block-start: .75rem;
}

.ic-cart-thumb {
  width: 80px;
  height: 107px;
  object-fit: cover;
  display: block;
  background: #f4f3f1;
}

.woocommerce-cart .cart_totals h2 {
  font-size: 20px;
}

/* clean checkout header row (woocommerce notices) */
.ic-checkout .woocommerce-info,
.ic-checkout .woocommerce-message {
  background: #f4f4f4;
  border: 1px solid rgb(var(--ic-border));
  color: rgb(var(--ic-text));
  padding: .85rem 1rem;
  margin-block-end: .75rem;
  font-size: var(--ic-text-sm);
}

.ic-checkout .woocommerce-info a,
.ic-checkout .woocommerce-message a {
  text-decoration: underline;
}

/* Tiered pricing (surprise discount / regular-price tier) */
.ic-cart__discount,
.ic-cart__total {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  font-size: var(--ic-text-base);
  padding-top: .35rem;
}

.ic-cart__discount {
  color: rgb(var(--ic-sale));
}

.ic-cart__total {
  font-weight: 700;
  border-top: 1px solid var(--ic-border);
  margin-top: .35rem;
}

.ic-cart__notice.ic-price-notice,
.ic-price-notice {
  margin: .5rem 0 0;
  font-size: var(--ic-text-sm);
  color: rgb(var(--ic-sale));
}

.ic-price-notice-row > td {
  padding: .35rem 0 0;
  border: 0;
}
