@charset "UTF-8";

/* WooCommerce presentation layer for the Em Junoqui theme. */

.woocommerce,
.woocommerce-page {
  --wc-card-gap: 1px;
  --wc-control-height: 3.25rem;
  color: var(--emj-color-text);
}

.woocommerce main,
.woocommerce-page main {
  min-width: 0;
}

.woocommerce a {
  color: inherit;
}

.woocommerce .woocommerce-notices-wrapper:empty {
  display: none;
}

.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.wc-block-components-notice-banner {
  position: relative;
  display: flex;
  width: min(calc(100% - (2 * var(--emj-gutter))), var(--emj-site-max));
  min-height: 3.5rem;
  align-items: center;
  gap: 0.75rem;
  margin: 1rem auto !important;
  padding: 1rem 1.25rem !important;
  border: 1px solid var(--emj-color-border) !important;
  border-left: 3px solid var(--emj-color-accent) !important;
  border-radius: var(--emj-radius-sm) !important;
  background: var(--emj-color-surface-soft) !important;
  color: var(--emj-color-text) !important;
  font-size: var(--emj-step-0);
  list-style: none outside !important;
}

.woocommerce-error {
  border-left-color: #a52b35 !important;
}

.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before {
  display: none;
}

.woocommerce-message .button,
.woocommerce-info .button,
.wc-block-components-notice-banner__content .button {
  min-height: auto;
  margin-left: auto;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--emj-color-ink);
  text-decoration: underline;
}

/* Archive heading and toolbar */
.woocommerce-products-header,
.shop-archive-header,
.catalog-header {
  display: grid;
  min-height: clamp(10rem, 18vw, 15rem);
  place-items: center;
  padding: var(--emj-space-7) var(--emj-gutter);
  background: var(--emj-color-surface);
  text-align: center;
}

.woocommerce-products-header__title,
.woocommerce .page-title,
.shop-archive-header__title {
  margin: 0;
  color: var(--emj-color-ink);
  font-size: clamp(2.5rem, 5.7vw, 4.5rem);
  font-weight: 400;
  letter-spacing: -0.025em;
  line-height: 1;
  text-wrap: balance;
}

.term-description,
.woocommerce-products-header__description {
  max-width: 48rem;
  margin: 1.25rem auto 0;
  color: var(--emj-color-muted);
  font-size: var(--emj-step-1);
}

.catalog-toolbar,
.shop-toolbar,
.woocommerce .woocommerce-toolbar {
  display: flex;
  width: min(100%, var(--emj-site-max));
  min-height: 4.25rem;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-inline: auto;
  padding: 0.75rem var(--emj-gutter);
  border-block: 1px solid var(--emj-color-border);
  background: var(--emj-color-surface);
}

.catalog-toolbar__filters,
.catalog-toolbar__actions,
.shop-toolbar__filters,
.shop-toolbar__actions {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 0.5rem 1rem;
}

.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering {
  float: none;
  margin: 0;
  color: var(--emj-color-muted);
  font-size: var(--emj-step--1);
}

.woocommerce .woocommerce-ordering select,
.catalog-toolbar select {
  min-height: 2.75rem;
  padding: 0.5rem 2.25rem 0.5rem 0.75rem;
  border: 1px solid var(--emj-color-border);
  border-radius: var(--emj-radius-pill);
  background-color: var(--emj-color-surface);
  color: var(--emj-color-ink);
}

.catalog-filter-toggle,
.catalog-sort-toggle,
.catalog-grid-toggle {
  display: inline-flex;
  min-height: 2.75rem;
  align-items: center;
  gap: 0.4rem;
  padding: 0.5rem 0.8rem;
  border: 1px solid var(--emj-color-border);
  border-radius: var(--emj-radius-pill);
  background: var(--emj-color-surface);
  color: var(--emj-color-ink);
  cursor: pointer;
}

.catalog-grid-toggle[aria-pressed="true"] {
  border-color: var(--emj-color-ink);
  background: var(--emj-color-ink);
  color: #fff;
}

.wc-block-product-filter,
.wc-block-components-price-slider,
.wp-block-woocommerce-product-filter {
  font-family: var(--emj-font-sans);
}

.catalog-filter-drawer {
  position: fixed;
  z-index: 1100;
  inset: 0 0 0 auto;
  width: min(100%, 27rem);
  padding: var(--emj-space-6) var(--emj-gutter);
  overflow-y: auto;
  background: var(--emj-color-surface);
  box-shadow: -1rem 0 2.5rem rgb(23 19 19 / 12%);
  opacity: 0;
  visibility: hidden;
  translate: 100% 0;
  transition:
    opacity var(--emj-duration-normal) var(--emj-ease),
    translate var(--emj-duration-normal) var(--emj-ease),
    visibility 0s linear var(--emj-duration-normal);
}

.catalog-filter-drawer.is-open {
  opacity: 1;
  visibility: visible;
  translate: 0;
  transition-delay: 0s;
}

/* Product archive grid */
.woocommerce ul.products,
.woocommerce-page ul.products,
.wc-block-product-template,
.wp-block-woocommerce-product-collection ul.wc-block-product-template {
  display: grid !important;
  width: 100%;
  max-width: var(--emj-site-max);
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--wc-card-gap) !important;
  margin: 0 auto !important;
  padding: 0 !important;
  list-style: none !important;
}

.woocommerce ul.products::before,
.woocommerce ul.products::after,
.woocommerce-page ul.products::before,
.woocommerce-page ul.products::after {
  display: none !important;
  content: none !important;
}

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product,
.wc-block-product-template .wc-block-product,
.wp-block-woocommerce-product-template .wp-block-post {
  position: relative;
  display: flex;
  width: auto !important;
  min-width: 0;
  flex-direction: column;
  float: none !important;
  clear: none !important;
  margin: 0 !important;
  padding: 0 !important;
  background: var(--emj-color-surface);
  color: var(--emj-color-text);
}

.woocommerce ul.products li.product a.woocommerce-LoopProduct-link,
.wc-block-product .wc-block-components-product-image > a,
.wp-block-woocommerce-product-image a {
  display: block;
  color: inherit;
  text-decoration: none;
}

.woocommerce ul.products li.product a img,
.woocommerce ul.products li.product .woocommerce-loop-product__link img,
.wc-block-components-product-image img,
.wp-block-woocommerce-product-image img {
  width: 100% !important;
  height: auto;
  aspect-ratio: 4 / 5;
  margin: 0 !important;
  background: #f1edeb;
  object-fit: cover;
  transition: scale 650ms var(--emj-ease);
}

.woocommerce ul.products li.product .woocommerce-loop-product__title,
.wc-block-components-product-title,
.wp-block-post-title.wc-block-components-product-title {
  margin: 0 !important;
  padding: 0.65rem 0.75rem 0 !important;
  color: var(--emj-color-ink);
  font-size: var(--emj-step--1) !important;
  font-weight: 400;
  line-height: 1.3;
}

.woocommerce ul.products li.product .price,
.wc-block-components-product-price,
.wp-block-woocommerce-product-price {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem;
  margin: 0 !important;
  padding: 0.1rem 0.75rem 0.8rem;
  color: var(--emj-color-text) !important;
  font-size: var(--emj-step--1) !important;
  font-weight: 400 !important;
}

.woocommerce ul.products li.product .price del,
.wc-block-components-product-price del {
  color: var(--emj-color-muted);
  opacity: 0.72;
}

.woocommerce ul.products li.product .price ins,
.wc-block-components-product-price ins {
  color: var(--emj-color-accent);
  font-weight: 500;
  text-decoration: none;
}

.woocommerce span.onsale,
.wc-block-components-product-sale-badge {
  z-index: 3;
  top: 0.75rem !important;
  right: auto !important;
  left: 0.75rem !important;
  min-width: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0.4rem 0.65rem !important;
  border: 0 !important;
  border-radius: var(--emj-radius-pill) !important;
  background: var(--emj-color-surface) !important;
  color: var(--emj-color-ink) !important;
  font-size: 0.6875rem !important;
  font-weight: 500 !important;
  line-height: 1 !important;
}

.woocommerce ul.products li.product .button,
.wc-block-components-product-button .wp-block-button__link {
  min-height: 2.75rem;
  margin: auto 0.75rem 0.9rem !important;
  padding: 0.75rem 1rem !important;
  font-size: var(--emj-step--1) !important;
}

.woocommerce ul.products li.product .added_to_cart {
  margin: 0 0.75rem 0.9rem;
  color: var(--emj-color-accent);
  font-size: var(--emj-step--1);
}

@media (hover: hover) {
  .woocommerce ul.products li.product:hover a img,
  .wc-block-product:hover .wc-block-components-product-image img {
    scale: 1.015;
  }
}

@media (min-width: 46.875rem) {
  .woocommerce ul.products,
  .woocommerce-page ul.products,
  .wc-block-product-template,
  .wp-block-woocommerce-product-collection ul.wc-block-product-template {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (min-width: 61.875rem) {
  .woocommerce ul.products,
  .woocommerce-page ul.products,
  .wc-block-product-template,
  .wp-block-woocommerce-product-collection ul.wc-block-product-template {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

/* Home product rail: reveal the next card and keep touch/keyboard scrolling. */
.product-rail .wp-block-woocommerce-product-collection ul.wc-block-product-template {
  display: grid !important;
  width: max-content;
  max-width: none;
  grid-template-columns: none !important;
  grid-auto-columns: calc((100vw - 3rem) / 2);
  grid-auto-flow: column;
  gap: 0.5rem !important;
  padding-inline: var(--emj-gutter) !important;
}

.product-rail .wc-block-product {
  min-width: 0;
  scroll-snap-align: start;
}

@media (min-width: 46.875rem) {
  .product-rail .wp-block-woocommerce-product-collection ul.wc-block-product-template {
    grid-auto-columns: minmax(13rem, 30vw);
  }
}

@media (min-width: 61.875rem) {
  .product-rail .wp-block-woocommerce-product-collection ul.wc-block-product-template {
    grid-auto-columns: minmax(16rem, 17.5rem);
  }
}

.woocommerce nav.woocommerce-pagination,
.wc-block-pagination {
  width: min(100%, var(--emj-site-max));
  margin: var(--emj-space-8) auto;
  padding-inline: var(--emj-gutter);
}

.woocommerce nav.woocommerce-pagination ul {
  display: flex;
  justify-content: center;
  gap: 0.4rem;
  margin: 0;
  border: 0;
}

.woocommerce nav.woocommerce-pagination ul li {
  overflow: visible;
  border: 0;
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
  display: grid;
  width: 2.75rem;
  height: 2.75rem;
  place-items: center;
  padding: 0;
  border: 1px solid var(--emj-color-border);
  border-radius: 50%;
  background: var(--emj-color-surface);
  color: var(--emj-color-ink);
}

.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce nav.woocommerce-pagination ul li a:hover {
  border-color: var(--emj-color-ink);
  background: var(--emj-color-ink);
  color: #fff;
}

/* Single product */
.single-product-layout__gallery {
  min-width: 0;
  background: #f1edeb;
}

.single-product-layout__details {
  min-width: 0;
  padding: var(--emj-space-6) var(--emj-gutter) var(--emj-space-8);
}

.single-product-layout__gallery .wp-block-woocommerce-product-image-gallery,
.single-product-layout__gallery .woocommerce-product-gallery {
  width: 100%;
  margin: 0;
}

.single-product div.product {
  position: relative;
  display: grid;
  width: 100%;
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
}

.single-product div.product::before,
.single-product div.product::after {
  display: none !important;
}

.single-product div.product .woocommerce-product-gallery,
.single-product div.product div.images {
  width: 100% !important;
  min-width: 0;
  float: none !important;
  margin: 0 !important;
  background: #f1edeb;
}

.single-product .woocommerce-product-gallery__wrapper {
  margin: 0;
}

.single-product .woocommerce-product-gallery__image a {
  display: block;
}

.single-product .woocommerce-product-gallery__image img {
  width: 100% !important;
  aspect-ratio: 4 / 5;
  object-fit: cover;
}

.single-product .woocommerce-product-gallery .flex-control-thumbs {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.5rem;
  margin: 0.75rem !important;
  padding: 0 !important;
}

.single-product .woocommerce-product-gallery .flex-control-thumbs li {
  width: auto !important;
  float: none !important;
}

.single-product .woocommerce-product-gallery .flex-control-thumbs img {
  aspect-ratio: 1;
  border: 1px solid transparent;
  object-fit: cover;
  opacity: 0.62;
}

.single-product .woocommerce-product-gallery .flex-control-thumbs img.flex-active {
  border-color: var(--emj-color-ink);
  opacity: 1;
}

.single-product div.product .summary,
.single-product div.product div.summary {
  width: 100% !important;
  max-width: 42rem;
  float: none !important;
  margin: 0 auto !important;
  padding: var(--emj-space-6) var(--emj-gutter) var(--emj-space-8);
}

.single-product .product_title {
  margin: 0;
  color: var(--emj-color-ink);
  font-size: clamp(2rem, 3vw, 2.5rem);
  font-weight: 400;
  letter-spacing: -0.02em;
  line-height: 1.05;
}

.single-product div.product p.price,
.single-product div.product span.price {
  margin: 1rem 0;
  color: var(--emj-color-ink);
  font-size: 1.25rem;
  font-weight: 400;
}

.single-product .woocommerce-product-details__short-description {
  margin-block: var(--emj-space-5);
  color: var(--emj-color-text);
  font-size: var(--emj-step-1);
  line-height: 1.55;
}

.single-product .stock {
  color: var(--emj-color-muted);
  font-size: var(--emj-step--1);
}

.single-product .stock.out-of-stock {
  color: #982c35;
}

.single-product form.cart {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin: var(--emj-space-5) 0 !important;
}

.single-product form.cart .variations {
  width: 100%;
  margin: 0 0 1rem;
  border: 0;
}

.single-product form.cart .variations tr,
.single-product form.cart .variations tbody {
  display: grid;
  gap: 0.5rem;
}

.single-product form.cart .variations tr + tr {
  margin-top: 1rem;
}

.single-product form.cart .variations th,
.single-product form.cart .variations td {
  display: block;
  padding: 0;
  border: 0;
  text-align: left;
}

.single-product form.cart .variations label {
  color: var(--emj-color-ink);
  font-size: var(--emj-step--1);
  font-weight: 500;
}

.single-product form.cart .variations select {
  width: 100%;
  min-height: var(--wc-control-height);
  padding: 0.75rem 2.5rem 0.75rem 1rem;
  border: 1px solid var(--emj-color-border);
  border-radius: var(--emj-radius-pill);
  background: var(--emj-color-surface);
  color: var(--emj-color-ink);
}

.single-product .variation-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.5rem;
}

.single-product .variation-pill {
  display: inline-grid;
  min-width: 2.875rem;
  min-height: 2.875rem;
  place-items: center;
  padding: 0.5rem 0.8rem;
  border: 1px solid var(--emj-color-border);
  border-radius: var(--emj-radius-pill);
  background: var(--emj-color-surface);
  color: var(--emj-color-ink);
  cursor: pointer;
}

.single-product .variation-pill:hover,
.single-product .variation-pill[aria-pressed="true"],
.single-product .variation-pill.is-selected {
  border-color: var(--emj-color-ink);
  background: var(--emj-color-ink);
  color: #fff;
}

.single-product .variation-pill:disabled,
.single-product .variation-pill.is-disabled {
  cursor: not-allowed;
  opacity: 0.35;
  text-decoration: line-through;
}

.single-product .reset_variations {
  display: inline-block;
  margin-top: 0.6rem;
  color: var(--emj-color-muted);
  font-size: var(--emj-step--1);
}

.woocommerce .quantity {
  display: inline-flex;
  min-height: var(--wc-control-height);
  align-items: center;
  border: 1px solid var(--emj-color-border);
  border-radius: var(--emj-radius-pill);
  background: var(--emj-color-surface);
}

.woocommerce .quantity .qty {
  width: 4.75rem;
  min-height: calc(var(--wc-control-height) - 2px);
  padding: 0.5rem;
  border: 0;
  background: transparent;
  color: var(--emj-color-ink);
  text-align: center;
  appearance: textfield;
}

.woocommerce .quantity .qty::-webkit-outer-spin-button,
.woocommerce .quantity .qty::-webkit-inner-spin-button {
  margin: 0;
  appearance: none;
}

.single-product .single_add_to_cart_button,
.single-product .woocommerce-variation-add-to-cart .button {
  min-height: var(--wc-control-height);
  flex: 1 1 14rem;
  margin: 0 !important;
  border-radius: var(--emj-radius-pill) !important;
  background: var(--emj-color-ink) !important;
  color: #fff !important;
  font-weight: 500 !important;
}

.single-product .single_add_to_cart_button:hover,
.single-product .woocommerce-variation-add-to-cart .button:hover {
  background: var(--emj-color-accent) !important;
}

.single-product .single_add_to_cart_button.disabled,
.single-product .single_add_to_cart_button:disabled {
  cursor: not-allowed;
  opacity: 0.45;
}

.single-product .woocommerce-variation-add-to-cart,
.single-product .woocommerce-variation-price,
.single-product .woocommerce-variation-availability {
  width: 100%;
}

.single-product .shopify-payment-button,
.single-product .wc-stripe-product-checkout-container,
.single-product .express-payment-methods {
  width: 100%;
}

.single-product .woocommerce-product-details__accordion,
.single-product .product-accordions,
.single-product details.product-detail {
  border-bottom: 1px solid var(--emj-color-border);
}

.single-product details.product-detail summary,
.single-product .product-accordion__trigger {
  display: flex;
  min-height: 3.5rem;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  color: var(--emj-color-ink);
  font-size: var(--emj-step-0);
  cursor: pointer;
  list-style: none;
}

.single-product details.product-detail summary::-webkit-details-marker {
  display: none;
}

.single-product details.product-detail summary::after {
  content: "+";
  font-size: 1.1rem;
}

.single-product details.product-detail[open] summary::after {
  content: "−";
}

.single-product details.product-detail > div {
  padding-bottom: 1.25rem;
}

.single-product .product_meta {
  display: grid;
  gap: 0.25rem;
  margin-top: var(--emj-space-5);
  color: var(--emj-color-muted);
  font-size: var(--emj-step--1);
}

.single-product .woocommerce-tabs,
.single-product .related,
.single-product .upsells,
.single-product .cross-sells,
.single-product .complete-the-look,
.single-product div.product > section {
  width: 100%;
  grid-column: 1 / -1;
}

.single-product .woocommerce-tabs {
  width: min(calc(100% - (2 * var(--emj-gutter))), var(--emj-content-narrow));
  margin: var(--emj-space-8) auto;
}

.single-product .woocommerce-tabs ul.tabs {
  display: flex;
  gap: 1.5rem;
  margin: 0 0 1.5rem !important;
  padding: 0 !important;
  overflow-x: auto;
  border-bottom: 1px solid var(--emj-color-border);
}

.single-product .woocommerce-tabs ul.tabs::before,
.single-product .woocommerce-tabs ul.tabs li::before,
.single-product .woocommerce-tabs ul.tabs li::after {
  display: none !important;
}

.single-product .woocommerce-tabs ul.tabs li {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
}

.single-product .woocommerce-tabs ul.tabs li a {
  display: block;
  padding: 0.85rem 0 !important;
  color: var(--emj-color-muted) !important;
  font-weight: 500 !important;
  white-space: nowrap;
}

.single-product .woocommerce-tabs ul.tabs li.active a {
  border-bottom: 2px solid var(--emj-color-accent);
  color: var(--emj-color-ink) !important;
}

.single-product .related,
.single-product .upsells,
.single-product .complete-the-look {
  padding-top: var(--emj-space-8);
}

.single-product .related > h2,
.single-product .upsells > h2,
.single-product .complete-the-look > h2 {
  margin: 0 0 var(--emj-space-6);
  padding-inline: var(--emj-gutter);
  color: var(--emj-color-ink);
  font-size: var(--emj-step-2);
  font-weight: 500;
  text-align: center;
  text-transform: uppercase;
}

.sticky-add-to-cart {
  position: fixed;
  z-index: 850;
  right: 0;
  bottom: 0;
  left: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 1rem;
  padding: 0.7rem max(1rem, env(safe-area-inset-right)) max(0.7rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));
  border-top: 1px solid var(--emj-color-border);
  background: rgb(255 255 255 / 96%);
  box-shadow: 0 -0.5rem 1.5rem rgb(23 19 19 / 8%);
  translate: 0 110%;
  transition: translate var(--emj-duration-normal) var(--emj-ease);
  backdrop-filter: blur(12px);
}

.sticky-add-to-cart.is-visible {
  translate: 0;
}

.sticky-add-to-cart__product {
  min-width: 0;
}

.sticky-add-to-cart__title,
.sticky-add-to-cart__price {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.sticky-add-to-cart__title {
  color: var(--emj-color-ink);
  font-size: var(--emj-step--1);
}

.sticky-add-to-cart__price {
  color: var(--emj-color-muted);
  font-size: 0.75rem;
}

.sticky-add-to-cart .button {
  min-height: 2.75rem;
  padding: 0.75rem 1rem;
}

@media (min-width: 61.875rem) {
  .single-product-layout__details {
    position: sticky;
    top: calc(var(--emj-sticky-offset) + 1.5rem);
    align-self: start;
    padding: var(--emj-space-7) var(--emj-gutter) var(--emj-space-8);
  }

  .single-product div.product {
    grid-template-columns: minmax(0, 1.05fr) minmax(24rem, 0.95fr);
    align-items: start;
  }

  .single-product div.product .woocommerce-product-gallery,
  .single-product div.product div.images {
    grid-column: 1;
  }

  .single-product div.product .summary,
  .single-product div.product div.summary {
    position: sticky;
    top: calc(var(--emj-sticky-offset) + 1.5rem);
    grid-column: 2;
    grid-row: 1;
    padding: var(--emj-space-7) var(--emj-gutter) var(--emj-space-8);
  }

  .single-product .sticky-add-to-cart {
    right: var(--emj-gutter);
    bottom: 1rem;
    left: auto;
    width: min(36rem, calc(100vw - (2 * var(--emj-gutter))));
    border: 1px solid var(--emj-color-border);
    border-radius: var(--emj-radius-pill);
  }
}

/* Cart */
.woocommerce-cart .woocommerce,
.woocommerce-checkout .woocommerce,
.woocommerce-account .woocommerce {
  width: min(calc(100% - (2 * var(--emj-gutter))), var(--emj-site-max));
  margin-inline: auto;
  padding-block: var(--emj-space-8);
}

.woocommerce-cart table.shop_table,
.woocommerce-checkout-review-order-table,
.woocommerce-account table.shop_table {
  width: 100%;
  margin: 0 0 2rem !important;
  border: 1px solid var(--emj-color-border) !important;
  border-collapse: collapse !important;
  border-radius: 0 !important;
  background: var(--emj-color-surface);
}

.woocommerce table.shop_table th,
.woocommerce table.shop_table td {
  padding: 1rem !important;
  border-color: var(--emj-color-border) !important;
}

.woocommerce-cart .product-thumbnail img {
  width: 5.5rem !important;
  aspect-ratio: 4 / 5;
  object-fit: cover;
}

.woocommerce-cart .cart-collaterals {
  display: grid;
  justify-content: end;
}

.woocommerce-cart .cart-collaterals .cart_totals {
  width: min(100%, 34rem) !important;
  float: none !important;
  padding: 1.5rem;
  border: 1px solid var(--emj-color-border);
  background: var(--emj-color-surface-soft);
}

.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button {
  width: 100%;
  min-height: var(--wc-control-height);
  border-radius: var(--emj-radius-pill) !important;
  background: var(--emj-color-ink) !important;
  color: #fff !important;
  font-size: var(--emj-step-0) !important;
  text-decoration: none;
}

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

.woocommerce-cart .coupon .input-text {
  min-width: min(100%, 13rem);
}

.wc-block-cart,
.wc-block-checkout {
  gap: clamp(1.5rem, 4vw, 3.5rem) !important;
  font-family: var(--emj-font-sans);
}

.wc-block-components-sidebar-layout .wc-block-components-main {
  min-width: 0;
}

.wc-block-cart-items,
.wc-block-components-totals-wrapper,
.wc-block-checkout__order-notes,
.wc-block-checkout__terms {
  border-color: var(--emj-color-border) !important;
}

.wc-block-components-product-name {
  color: var(--emj-color-ink);
  font-weight: 500;
}

.wc-block-cart-item__image img {
  aspect-ratio: 4 / 5;
  object-fit: cover;
}

/* Checkout */
.woocommerce-checkout form.checkout,
.woocommerce-checkout .wc-block-checkout {
  display: grid;
  gap: var(--emj-space-7);
}

.woocommerce-checkout #customer_details,
.woocommerce-checkout #order_review,
.woocommerce-checkout #order_review_heading {
  width: 100%;
  float: none;
}

.woocommerce form .form-row {
  margin: 0 0 1rem;
  padding: 0;
}

.woocommerce form .form-row label,
.wc-block-components-text-input label,
.wc-block-components-combobox-control label {
  color: var(--emj-color-ink);
  font-size: var(--emj-step--1);
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce .select2-container .select2-selection,
.wc-block-components-text-input input,
.wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input {
  min-height: var(--wc-control-height);
  padding: 0.75rem 1rem;
  border: 1px solid var(--emj-color-border) !important;
  border-radius: var(--emj-radius-sm) !important;
  background: var(--emj-color-surface) !important;
  color: var(--emj-color-ink) !important;
}

.woocommerce form .form-row textarea {
  min-height: 7rem;
  resize: vertical;
}

.woocommerce form .form-row.woocommerce-invalid input.input-text {
  border-color: #a52b35 !important;
}

.woocommerce-checkout #payment,
.wc-block-checkout__payment-method {
  border: 1px solid var(--emj-color-border) !important;
  border-radius: var(--emj-radius-sm) !important;
  background: var(--emj-color-surface-soft) !important;
}

.woocommerce-checkout #payment ul.payment_methods {
  padding: 1rem;
  border-bottom-color: var(--emj-color-border);
}

.woocommerce-checkout #payment div.payment_box {
  background: var(--emj-color-surface) !important;
  color: var(--emj-color-text) !important;
}

.woocommerce-checkout #payment div.payment_box::before {
  border-bottom-color: var(--emj-color-surface) !important;
}

/* Account */
.woocommerce-account .woocommerce-MyAccount-navigation ul {
  display: grid;
  margin: 0;
  padding: 0;
  border: 1px solid var(--emj-color-border);
  list-style: none;
}

.woocommerce-account .woocommerce-MyAccount-navigation li + li {
  border-top: 1px solid var(--emj-color-border);
}

.woocommerce-account .woocommerce-MyAccount-navigation a {
  display: block;
  padding: 0.85rem 1rem;
  text-decoration: none;
}

.woocommerce-account .woocommerce-MyAccount-navigation .is-active a {
  background: var(--emj-color-ink);
  color: #fff;
}

.woocommerce-account .woocommerce-MyAccount-content {
  min-width: 0;
}

.woocommerce form.login,
.woocommerce form.register,
.woocommerce form.checkout_coupon {
  margin: 1rem 0;
  padding: 1.5rem;
  border: 1px solid var(--emj-color-border);
  border-radius: var(--emj-radius-sm);
}

/* Mini cart */
.woocommerce-mini-cart {
  display: grid;
  gap: 1rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.woocommerce-mini-cart-item {
  display: grid;
  grid-template-columns: 4rem minmax(0, 1fr) auto;
  gap: 0.75rem;
  align-items: start;
}

.woocommerce-mini-cart-item img {
  width: 4rem !important;
  aspect-ratio: 4 / 5;
  object-fit: cover;
}

.woocommerce-mini-cart__buttons {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.5rem;
}

.woocommerce-mini-cart__buttons .button {
  min-height: 2.75rem;
  padding: 0.75rem 1rem;
}

@media (max-width: 46.8125rem) {
  .catalog-toolbar,
  .shop-toolbar,
  .woocommerce .woocommerce-toolbar {
    align-items: stretch;
  }

  .woocommerce .woocommerce-result-count,
  .woocommerce .woocommerce-ordering {
    display: none;
  }

  .woocommerce-cart table.shop_table_responsive tr,
  .woocommerce-page table.shop_table_responsive tr {
    display: grid;
    padding: 1rem;
    border-bottom: 1px solid var(--emj-color-border);
  }

  .woocommerce-cart table.shop_table_responsive tr td,
  .woocommerce-page table.shop_table_responsive tr td {
    padding: 0.5rem 0 !important;
    border: 0 !important;
  }

  .woocommerce-cart table.shop_table_responsive tr td.product-thumbnail {
    display: block;
    text-align: left !important;
  }

  .woocommerce-cart table.shop_table_responsive tr td.product-thumbnail::before {
    display: none;
  }
}

@media (min-width: 61.875rem) {
  .woocommerce-checkout form.checkout {
    grid-template-columns: minmax(0, 1.2fr) minmax(22rem, 0.8fr);
    align-items: start;
  }

  .woocommerce-checkout #customer_details {
    grid-column: 1;
    grid-row: 1 / span 2;
  }

  .woocommerce-checkout #order_review_heading,
  .woocommerce-checkout #order_review {
    grid-column: 2;
  }

  .woocommerce-checkout #order_review {
    position: sticky;
    top: calc(var(--emj-sticky-offset) + 1.5rem);
  }

  .woocommerce-account .woocommerce {
    display: grid;
    grid-template-columns: minmax(13rem, 17rem) minmax(0, 1fr);
    gap: var(--emj-space-7);
    align-items: start;
  }
}

@media (prefers-reduced-motion: reduce) {
  .catalog-filter-drawer,
  .sticky-add-to-cart,
  .woocommerce ul.products li.product a img,
  .wc-block-product .wc-block-components-product-image img {
    transition: none !important;
  }
}

@media print {
  .catalog-toolbar,
  .shop-toolbar,
  .catalog-filter-drawer,
  .sticky-add-to-cart,
  .woocommerce ul.products li.product .button,
  .wc-block-components-product-button {
    display: none !important;
  }
}
