/*
 * Catalog is intentionally isolated from components.css.
 * One surface, one coordinate system, one responsive contract.
 */

body:is(.post-type-archive-product, .tax-product_cat) {
  background: var(--mv-paper);
}

body:is(.post-type-archive-product, .tax-product_cat) .wp-site-blocks > * {
  margin-block-start: 0;
}

body:is(.post-type-archive-product, .tax-product_cat) .mv-commerce-main {
  box-sizing: border-box;
  min-block-size: 70vh;
  padding: 24px 0 104px;
  background: var(--mv-paper);
}

body:is(.post-type-archive-product, .tax-product_cat) .mv-commerce-main > :not(.sea-editorial-copy) {
  margin-block-start: 0 !important;
}

body:is(.post-type-archive-product, .tax-product_cat) .mv-commerce-main > .alignwide {
  inline-size: min(calc(100% - 2 * var(--mv-page-gutter)), 1312px) !important;
  max-inline-size: 1312px !important;
  margin-inline: auto !important;
  padding-inline: 0 !important;
}

.mv-archive-intro {
  display: grid;
  min-block-size: 0;
  gap: 4px;
  align-items: start;
  margin-block-end: 28px !important;
  text-align: start;
}

.mv-archive-intro > * {
  margin-inline: 0 !important;
}

.mv-archive-intro .wp-block-woocommerce-breadcrumbs,
.mv-archive-intro .woocommerce-breadcrumb {
  margin: 0 0 2px;
  color: var(--mv-ink-500);
  font-size: 12px;
  line-height: 18px;
}

.mv-archive-intro h1 {
  max-inline-size: none;
  margin: 0 !important;
  font-size: clamp(38px, 3.4vw, 48px);
  font-weight: 730;
  letter-spacing: -1.8px;
  line-height: 1.05;
  text-align: start;
}

.mv-archive-intro p,
.mv-archive-intro .term-description {
  max-inline-size: 660px;
  margin: 3px 0 0;
  color: var(--mv-ink-500);
  font-size: 14px;
  line-height: 20px;
}

.mv-archive-intro .term-description:empty {
  display: none;
}

.mv-archive-intro .term-description:not(:empty) + .mv-catalog-lead {
  display: none;
}

.mv-catalog-workspace {
  display: grid !important;
  grid-template-columns: 224px minmax(0, 1fr);
  gap: 32px;
  align-items: start;
}

.mv-catalog-sidebar {
  position: sticky;
  inset-block-start: 126px;
  inline-size: 224px;
  min-inline-size: 0;
  flex-basis: auto !important;
  align-self: start;
  padding: 0 !important;
  background: transparent !important;
  border-radius: 0 !important;
}

.mv-catalog-filters {
  padding: 0;
  background: transparent;
  border: 0;
}

.mv-catalog-filters__heading {
  display: flex;
  min-block-size: 48px;
  align-items: center;
  justify-content: space-between;
  border-block-end: 1px solid var(--mv-line);
}

.mv-catalog-filters__heading h2 {
  margin: 0;
  font-size: 20px;
  line-height: 26px;
}

.mv-catalog-filters__heading button {
  display: none;
}

.mv-catalog-filter {
  padding: 10px 0 12px;
  margin: 0;
  border-block-end: 1px solid var(--mv-line);
}

.mv-catalog-filter h3 {
  margin: 0 0 6px;
  padding: 0;
  color: var(--mv-ink-950);
  font-size: 12px;
  font-weight: 720;
  line-height: 18px;
}

.mv-catalog-filter ul {
  padding: 0;
  margin: 0;
  list-style: none;
}

.mv-catalog-filter a {
  display: grid;
  min-block-size: 38px;
  grid-template-columns: 16px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding-inline: 0 4px;
  color: var(--mv-ink-700);
  font-size: 14px;
  line-height: 18px;
  text-decoration: none;
  border-radius: 7px;
}

.mv-catalog-filter a:hover,
.mv-catalog-filter a.is-active {
  color: var(--mv-ink-950);
}

.mv-catalog-categories a {
  grid-template-columns: minmax(0, 1fr) auto;
  padding-inline: 10px 8px;
  border-inline-start: 2px solid transparent;
}

.mv-catalog-categories a:hover {
  background: color-mix(in srgb, var(--mv-shell) 76%, transparent);
}

.mv-catalog-categories a.is-active {
  background: var(--mv-shell);
  border-inline-start-color: var(--mv-brand-700);
  font-weight: 680;
}

.mv-filter-box {
  display: grid;
  inline-size: 16px;
  block-size: 16px;
  place-items: center;
  color: var(--mv-paper);
  background: var(--mv-paper);
  border: 1px solid var(--mv-ink-500);
  border-radius: 4px;
  font-size: 11px;
  font-weight: 800;
}

.is-active .mv-filter-box {
  background: var(--mv-brand-700);
  border-color: var(--mv-brand-700);
}

.mv-filter-switch {
  position: relative;
  inline-size: 28px;
  block-size: 17px;
  background: var(--mv-line);
  border-radius: 999px;
}

.mv-filter-switch span {
  position: absolute;
  inset: 3px auto auto 3px;
  inline-size: 11px;
  block-size: 11px;
  background: var(--mv-paper);
  border-radius: 50%;
  transition: transform 160ms ease;
}

.mv-catalog-switches a {
  grid-template-columns: 28px minmax(0, 1fr);
}

.mv-catalog-switches a.is-active .mv-filter-switch {
  background: var(--mv-brand-700);
}

.mv-catalog-switches a.is-active .mv-filter-switch span {
  transform: translateX(11px);
}

.mv-filter-count {
  color: var(--mv-ink-500);
  font-size: 12px;
  font-variant-numeric: tabular-nums;
}

.mv-filter-reset {
  display: inline-flex;
  min-block-size: 44px;
  align-items: center;
  margin-block-start: 8px;
  color: var(--mv-brand-700);
  font-size: 13px;
  font-weight: 680;
  text-underline-offset: 4px;
}

.mv-catalog-results {
  min-inline-size: 0;
  flex-basis: auto !important;
}

.mv-catalog-toolbar {
  display: flex;
  min-block-size: 48px;
  align-items: center;
  justify-content: space-between;
  padding: 0;
  margin: 0 0 14px !important;
  border-block-end: 1px solid var(--mv-line);
}

.mv-catalog-toolbar p,
.mv-catalog-count,
.mv-catalog-toolbar .woocommerce-result-count,
.mv-catalog-toolbar .woocommerce-ordering {
  margin: 0;
}

.mv-catalog-toolbar .woocommerce-result-count {
  color: var(--mv-ink-500);
  font-size: 13px;
  font-weight: 620;
  line-height: 18px;
}

.mv-catalog-count {
  color: var(--mv-ink-500);
  font-size: 13px;
  font-weight: 620;
  line-height: 18px;
}

.mv-catalog-toolbar__filter {
  display: none;
}

.mv-catalog-toolbar__sorting {
  display: flex;
  gap: 8px;
  align-items: center;
}

.mv-catalog-toolbar__sorting > p {
  color: var(--mv-ink-500);
  font-size: 12px;
}

.mv-catalog-toolbar .woocommerce-ordering select {
  min-block-size: 44px;
  padding: 0 28px 0 8px;
  color: var(--mv-ink-950);
  background-color: transparent;
  border: 0;
  font-size: 13px;
  font-weight: 680;
  cursor: pointer;
}

.mv-live-product-grid ul.wc-block-product-template {
  display: grid !important;
  box-sizing: border-box;
  padding: 0 !important;
  margin: 0 !important;
  list-style: none;
  inline-size: 100% !important;
  max-inline-size: none !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 36px 24px !important;
}

.mv-live-product-grid li.wc-block-product {
  display: block !important;
  min-block-size: 0 !important;
  min-inline-size: 0;
  padding: 0;
  border: 0;
}

.mv-catalog-card {
  display: flex;
  block-size: 100%;
  min-inline-size: 0;
  flex-direction: column;
}

.mv-catalog-card__media {
  display: block;
  overflow: hidden;
  aspect-ratio: 1;
  margin-block-end: 13px;
  background: var(--mv-shell);
  border-radius: 14px;
}

.mv-catalog-card__media img {
  display: block;
  inline-size: 100%;
  block-size: 100%;
  object-fit: cover;
}

.mv-catalog-card__body {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-inline-size: 0;
}

.mv-catalog-card-basis {
  min-block-size: 17px;
  margin: 0 0 3px;
  color: var(--mv-ink-500);
  font-size: 11px;
  font-weight: 580;
  line-height: 16px;
}

.mv-catalog-card__title {
  display: -webkit-box;
  min-block-size: 0;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  margin: 0 0 12px;
  font-size: 18px;
  font-weight: 690;
  letter-spacing: -.22px;
  line-height: 23px;
}

.mv-catalog-card__title a {
  color: var(--mv-ink-950);
  text-decoration: none;
}

.mv-catalog-card__price {
  margin-block-start: auto;
  min-block-size: 29px;
  color: var(--mv-ink-950);
  font-size: 23px;
  font-weight: 740;
  font-variant-numeric: tabular-nums;
  letter-spacing: -.3px;
  line-height: 29px;
}

.mv-catalog-card__price :where(del, ins) {
  color: inherit;
  text-decoration-thickness: 1px;
}

.mv-catalog-card__price ins {
  text-decoration: none;
}

.mv-catalog-card-stock {
  display: flex;
  min-block-size: 18px;
  gap: 7px;
  align-items: center;
  margin: 5px 0 0;
  color: var(--mv-ink-500);
  font-size: 11px;
  font-weight: 620;
  line-height: 16px;
}

.mv-catalog-card-stock span {
  inline-size: 7px;
  block-size: 7px;
  flex: 0 0 auto;
  background: var(--mv-ink-500);
  border-radius: 50%;
}

.mv-catalog-card-stock.is-in-stock {
  color: var(--mv-success);
}

.mv-catalog-card-stock.is-in-stock span {
  background: var(--mv-success);
}

.mv-catalog-card-actions {
  display: grid;
  grid-template-columns: minmax(0, 1fr) max-content;
  gap: 12px;
  align-items: center;
  margin-block-start: 12px;
}

.mv-catalog-card-actions :where(a, button) {
  display: inline-flex;
  min-block-size: 44px;
  align-items: center;
  justify-content: center;
  padding: 8px 14px;
  color: var(--mv-ink-950);
  border-radius: 9px;
  font: inherit;
  font-size: 12px;
  font-weight: 720;
  line-height: 16px;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
}

.mv-catalog-card-actions__cart {
  inline-size: auto !important;
  min-inline-size: 0;
  background: var(--mv-brand-300) !important;
  border: 1px solid var(--mv-brand-300) !important;
}

.mv-catalog-card-actions__quick {
  padding-inline: 2px !important;
  color: var(--mv-brand-700) !important;
  background: transparent !important;
  border: 0 !important;
  text-decoration: underline !important;
  text-decoration-thickness: 1px !important;
  text-underline-offset: 4px;
}

.mv-catalog-card-actions .added_to_cart {
  display: none !important;
}

.mv-catalog-card-actions__cart.added::after {
  margin-inline-start: 6px;
  content: "✓";
}

.mv-live-product-grid .wp-block-query-pagination {
  display: flex !important;
  gap: 8px;
  flex-wrap: wrap;
  margin-block-start: 64px;
}

.mv-live-product-grid .wp-block-query-pagination-numbers {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.mv-live-product-grid .wp-block-query-pagination :where(a, span) {
  display: grid;
  min-inline-size: 44px;
  block-size: 44px;
  place-items: center;
  margin: 0;
  color: var(--mv-ink-950);
  border: 1px solid var(--mv-line);
  border-radius: 9px;
  text-decoration: none;
}

.mv-live-product-grid .wp-block-query-pagination .current {
  background: var(--mv-brand-300);
  border-color: var(--mv-brand-300);
}

.mv-live-product-grid .wp-block-query-pagination.is-load-more {
  display: grid !important;
  justify-items: center;
  margin-block-start: 56px;
}

.mv-catalog-load-more {
  display: inline-flex;
  min-inline-size: 220px;
  min-block-size: 48px;
  align-items: center;
  justify-content: center;
  padding: 10px 24px;
  color: var(--mv-ink-950);
  background: transparent;
  border: 1px solid var(--mv-brand-300);
  border-radius: 10px;
  font: inherit;
  font-size: 14px;
  font-weight: 720;
  cursor: pointer;
}

.mv-catalog-load-more:hover {
  background: var(--mv-shell);
  border-color: var(--mv-brand-700);
}

.mv-catalog-load-more:disabled {
  cursor: wait;
  opacity: .68;
}

.mv-catalog-load-more__status {
  min-block-size: 18px;
  margin: 8px 0 0;
  color: var(--mv-ink-500);
  font-size: 12px;
  line-height: 18px;
}

.mv-catalog-load-more__status:empty {
  min-block-size: 0;
  margin: 0;
}

.mv-catalog-load-more__status.is-error {
  color: var(--mv-danger);
}

@media (hover: hover) and (pointer: fine) {
  .mv-catalog-card__media img {
    transition: transform 260ms cubic-bezier(.23, 1, .32, 1);
  }

  .mv-catalog-card:hover .mv-catalog-card__media img {
    transform: scale(1.025);
  }

  .mv-catalog-card__title a:hover,
  .mv-catalog-card-actions__quick:hover {
    color: var(--mv-brand-700) !important;
  }

  .mv-catalog-card-actions__cart:hover {
    background: color-mix(in srgb, var(--mv-brand-300) 82%, var(--mv-paper)) !important;
  }
}

@media (max-width: 70rem) {
  body.mv-catalog-filter-open {
    overflow: hidden;
  }

  body.mv-catalog-filter-open::before {
    position: fixed;
    inset: 0;
    z-index: 76;
    background: rgba(7, 31, 45, .62);
    content: "";
  }

  body:is(.post-type-archive-product, .tax-product_cat) .mv-commerce-main > .alignwide {
    inline-size: min(calc(100% - 2 * var(--mv-page-gutter)), 1312px) !important;
  }

  .mv-catalog-workspace {
    display: block !important;
  }

  .mv-catalog-sidebar {
    position: fixed;
    inset: 0 0 0 auto;
    z-index: 80;
    display: block;
    box-sizing: border-box;
    inline-size: min(100%, 460px);
    block-size: 100dvh;
    min-block-size: 0;
    padding: 18px 24px max(28px, env(safe-area-inset-bottom)) !important;
    overflow-y: auto;
    background: var(--mv-paper) !important;
    overscroll-behavior: contain;
    box-shadow: -18px 0 48px rgb(7 31 45 / .16);
    transform: translateX(104%);
    visibility: hidden;
    transition: transform 220ms cubic-bezier(.23, 1, .32, 1), visibility 220ms;
  }

  .mv-catalog-sidebar.is-mobile-open {
    transform: translateX(0);
    visibility: visible;
  }

  .mv-catalog-filters__heading {
    position: sticky;
    inset-block-start: -18px;
    z-index: 2;
    min-block-size: 68px;
    padding-block-start: 4px;
    background: var(--mv-paper);
  }

  .mv-catalog-filters__heading h2 {
    font-size: 25px;
    line-height: 32px;
  }

  .mv-catalog-filters__heading button {
    position: relative;
    display: block;
    inline-size: 44px;
    block-size: 44px;
    padding: 0;
    color: var(--mv-ink-950);
    background: transparent;
    border: 0;
  }

  .mv-catalog-filters__heading button::before,
  .mv-catalog-filters__heading button::after {
    position: absolute;
    inset: 50% auto auto 50%;
    inline-size: 18px;
    block-size: 1px;
    background: currentColor;
    content: "";
    transform: translate(-50%, -50%) rotate(45deg);
  }

  .mv-catalog-filters__heading button::after {
    transform: translate(-50%, -50%) rotate(-45deg);
  }

  .mv-catalog-sidebar .mv-catalog-filters {
    inline-size: 100%;
  }

  .mv-catalog-sidebar .mv-catalog-filter {
    padding-block: 18px 20px;
  }

  .mv-catalog-sidebar .mv-catalog-filter h3 {
    margin-block-end: 10px;
    font-size: 13px;
    line-height: 18px;
  }

  .mv-catalog-sidebar .mv-catalog-filter ul {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 4px;
  }

  .mv-catalog-sidebar .mv-catalog-filter li {
    min-inline-size: 0;
  }

  .mv-catalog-sidebar .mv-catalog-filter a {
    min-block-size: 44px;
    padding-inline: 10px;
  }

  .mv-catalog-sidebar .mv-catalog-categories a {
    padding-inline: 12px 10px;
  }

  .mv-catalog-sidebar .mv-catalog-switches a {
    grid-template-columns: 32px minmax(0, 1fr);
  }

  .mv-catalog-toolbar__filter {
    display: inline-flex;
    min-block-size: 44px;
    align-items: center;
    padding: 8px 14px;
    color: var(--mv-ink-950);
    background: var(--mv-shell);
    border: 1px solid var(--mv-line);
    border-radius: 9px;
    font: inherit;
    font-size: 13px;
    font-weight: 700;
  }

  .mv-catalog-toolbar__sorting,
  .mv-catalog-toolbar__sorting .woocommerce-ordering {
    display: flex !important;
  }

  .mv-live-product-grid ul.wc-block-product-template {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 42px 22px !important;
  }
}

@media (max-width: 48rem) {
  body:is(.post-type-archive-product, .tax-product_cat) .mv-commerce-main {
    padding: 20px var(--mv-page-gutter) 64px !important;
  }

  body:is(.post-type-archive-product, .tax-product_cat) .mv-commerce-main > .alignwide {
    inline-size: 100% !important;
  }

  .mv-catalog-sidebar {
    inline-size: min(100%, 400px);
    padding-inline: 18px !important;
  }

  .mv-archive-intro {
    gap: 2px;
    margin-block-end: 20px !important;
  }

  .mv-archive-intro h1 {
    font-size: 34px;
    letter-spacing: -1.1px;
    line-height: 38px;
  }

  .mv-archive-intro p,
  .mv-archive-intro .term-description {
    font-size: 13px;
    line-height: 18px;
  }

  .mv-catalog-toolbar {
    display: grid !important;
    grid-template-columns: auto 1fr;
    gap: 8px 10px;
    margin-block-end: 12px !important;
    padding-block-end: 12px;
  }

  .mv-catalog-toolbar__filter {
    grid-column: 1;
    grid-row: 1;
  }

  .mv-catalog-toolbar__sorting {
    display: flex !important;
    grid-column: 2;
    grid-row: 1;
    justify-self: end;
  }

  .mv-catalog-toolbar__sorting .woocommerce-ordering {
    display: block !important;
  }

  .mv-catalog-toolbar__sorting > p {
    display: none;
  }

  .mv-catalog-toolbar .woocommerce-ordering select {
    max-inline-size: 176px;
    padding-inline-start: 4px;
    font-size: 12px;
  }

  .mv-catalog-toolbar .woocommerce-result-count,
  .mv-catalog-toolbar .mv-catalog-count {
    grid-column: 1 / -1;
    grid-row: 2;
    padding-inline-start: 1px;
    font-size: 12px;
  }

  .mv-live-product-grid ul.wc-block-product-template {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 34px 12px !important;
  }

  .mv-catalog-card__media {
    margin-block-end: 9px;
    border-radius: 10px;
  }

  .mv-catalog-card-basis {
    min-block-size: 15px;
    margin-block-end: 2px;
    font-size: 10px;
    line-height: 14px;
  }

  .mv-catalog-card__title {
    min-block-size: 0;
    margin-block-end: 12px;
    font-size: 15px;
    letter-spacing: -.15px;
    line-height: 19px;
  }

  .mv-catalog-card__price {
    min-block-size: 25px;
    font-size: 19px;
    line-height: 25px;
  }

  .mv-catalog-card-stock {
    margin-block-start: 4px;
    font-size: 10px;
    line-height: 15px;
  }

  .mv-catalog-card-actions {
    grid-template-columns: 1fr;
    gap: 0;
    margin-block-start: 9px;
  }

  .mv-catalog-card-actions__cart {
    inline-size: 100%;
    min-block-size: 44px !important;
    padding-inline: 5px !important;
  }

  .mv-catalog-card-actions__quick {
    inline-size: 100%;
    min-block-size: 44px !important;
    padding: 7px 0 !important;
    font-size: 11px !important;
  }
}

@media (max-width: 22rem) {
  body:is(.post-type-archive-product, .tax-product_cat) .mv-commerce-main {
    padding-inline: 12px !important;
  }

  .mv-live-product-grid ul.wc-block-product-template {
    gap-inline: 10px !important;
  }

  .mv-catalog-card__title {
    font-size: 14px;
  }

  .mv-catalog-card__price {
    font-size: 18px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .mv-catalog-sidebar,
  .mv-catalog-card__media img,
  .mv-filter-switch span {
    transition: none;
  }
}
