/* Hallmark · pre-emit critique: P5 H5 E4 S5 R5 V4
 * macrostructure: Split Studio product / Workbench checkout · genre: atmospheric · theme: Midnight · anchor hue: coral
 * nav: N9 · footer: Ft5 · Existing Midnight tokens only · contrast: pass (46–50)
 * honest: pass (56) · chrome: pass (57) · tokens: pass (58) · mobile: pass (36, 59, 61–69)
 */

.woocommerce,
.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout {
  color: var(--color-ink);
  font-family: var(--font-body);
}

.single-product .wp-site-blocks > main,
.woocommerce-cart .wp-site-blocks > main,
.woocommerce-checkout .wp-site-blocks > main {
  width: min(100%, var(--page-max));
  margin-inline: auto;
  padding: calc(var(--banner-height) + var(--space-3xl)) var(--page-gutter) var(--space-5xl) !important;
}

.woocommerce .woocommerce-breadcrumb {
  margin-block-end: var(--space-xl);
  color: var(--color-muted);
  font-family: var(--font-outlier);
  font-size: var(--text-xs);
}

.woocommerce .woocommerce-breadcrumb a:hover,
.woocommerce .woocommerce-breadcrumb a:focus-visible {
  color: var(--color-accent);
}

.woocommerce div.product {
  display: grid;
  grid-template-columns: minmax(0, 0.88fr) minmax(0, 1.12fr);
  column-gap: clamp(var(--space-xl), 5vw, var(--space-4xl));
  row-gap: var(--space-4xl);
  align-items: start;
}

.woocommerce div.product div.images,
.woocommerce div.product div.summary {
  width: auto;
  float: none;
  margin: 0;
}

.woocommerce div.product div.images {
  position: sticky;
  top: var(--space-xl);
}

.woocommerce div.product div.images img,
.woocommerce ul.products li.product a img {
  border-radius: var(--radius-md);
  background: var(--color-paper-2);
}

.woocommerce div.product div.images .woocommerce-product-gallery__trigger {
	display: none !important;
  place-items: center;
  width: 2.75rem;
  height: 2.75rem;
  inset: var(--space-md) var(--space-md) auto auto;
  border: var(--rule-hair) solid var(--color-rule-strong);
  border-radius: 50%;
  background: var(--color-paper);
  color: var(--color-ink);
}

.woocommerce-product-gallery__image > a {
  cursor: default;
  pointer-events: none;
}

.woocommerce-product-gallery .zoomImg {
  display: none !important;
}

.woocommerce div.product div.summary {
  min-width: 0;
  padding-block: var(--space-lg);
}

.woocommerce div.product .product_title {
  max-width: 14ch;
  margin-block-end: var(--space-md);
  font-family: var(--font-display);
  font-size: clamp(var(--text-3xl), 5vw, var(--text-display-s));
  font-weight: 700;
  line-height: 0.94;
  letter-spacing: -0.055em;
}

.woocommerce div.product p.price,
.woocommerce div.product span.price {
  margin-block: 0 var(--space-lg);
  color: var(--color-ink);
  font-size: var(--text-2xl);
  font-variant-numeric: tabular-nums;
}

.woocommerce-product-details__short-description {
  max-width: 52ch;
  margin-block-end: var(--space-xl);
  color: var(--color-ink-2);
  font-size: var(--text-md);
}

.woocommerce div.product form.cart {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-sm);
  margin-block: 0 var(--space-xl);
}

.woocommerce .quantity .qty {
  min-width: 4.5rem;
  min-height: 3rem;
  border: var(--rule-hair) solid var(--color-rule-strong);
  border-radius: var(--radius-pill);
  background: var(--color-paper-2);
  color: var(--color-ink);
}

.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) #respond input#submit.alt,
.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) a.button.alt,
.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) button.button.alt,
.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) input.button.alt,
.woocommerce button.button,
.woocommerce a.button {
  min-height: 3rem;
  padding-inline: var(--space-xl);
  border: var(--rule-hair) solid var(--color-accent);
  border-radius: var(--radius-pill);
  background: var(--color-accent);
  color: var(--color-accent-ink);
  font-weight: 700;
  white-space: nowrap;
  transition: transform var(--dur-fast) var(--ease-out), background-color var(--dur-base) var(--ease-out), color var(--dur-base) var(--ease-out);
}

.woocommerce button.button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:focus-visible,
.woocommerce a.button:focus-visible {
  border-color: var(--color-ink);
  background: var(--color-ink);
  color: var(--color-paper);
}

.woocommerce button.button:active,
.woocommerce a.button:active {
  transform: translateY(1px);
}

.woocommerce div.product .product_meta {
  display: grid;
  gap: var(--space-xs);
  padding-block-start: var(--space-lg);
  border-block-start: var(--rule-hair) solid var(--color-rule);
  color: var(--color-muted);
  font-size: var(--text-sm);
}

.woocommerce div.product .product_meta > span {
  display: block;
}

.woocommerce div.product .product_meta a {
  color: var(--color-ink-2);
}

.woocommerce div.product .woocommerce-tabs {
  grid-column: 1 / -1;
  width: 100%;
  padding: var(--space-2xl);
  border: var(--rule-hair) solid var(--color-rule);
  border-radius: var(--radius-lg);
  background: var(--color-paper-2);
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
  display: flex;
  gap: var(--space-xl);
  margin: 0 0 var(--space-xl);
  padding: 0;
  border-block-end: var(--rule-hair) solid var(--color-rule);
}

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

.woocommerce div.product .woocommerce-tabs ul.tabs li {
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: var(--color-transparent);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
  display: inline-flex;
  min-height: 3rem;
  align-items: center;
  padding: 0;
  color: var(--color-muted);
  white-space: nowrap;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
  color: var(--color-ink);
  border-block-end: var(--rule-strong) solid var(--color-accent);
}

.woocommerce div.product .woocommerce-tabs h2,
.woocommerce .related.products > h2 {
  font-family: var(--font-display);
  font-size: var(--text-2xl);
  line-height: 1;
  letter-spacing: -0.035em;
}

.woocommerce div.product .woocommerce-tabs p {
  max-width: 72ch;
  color: var(--color-ink-2);
}

.woocommerce .related.products {
  grid-column: 1 / -1;
  width: 100%;
}

.woocommerce ul.products {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-xl);
  margin-block-start: var(--space-xl);
}

.woocommerce ul.products::before,
.woocommerce ul.products::after {
  display: none;
}

.woocommerce ul.products li.product {
  width: auto;
  float: none;
  margin: 0;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
  color: var(--color-ink);
  font-size: var(--text-md);
}

.woocommerce ul.products li.product .price {
  color: var(--color-ink-2);
  font-variant-numeric: tabular-nums;
}

.woocommerce-error,
.woocommerce-info,
.woocommerce-message {
  border: var(--rule-hair) solid var(--color-rule-strong);
  border-block-start: var(--rule-strong) solid var(--color-accent);
  border-radius: var(--radius-sm);
  background: var(--color-paper-2);
  color: var(--color-ink);
}

.wc-block-cart,
.wc-block-checkout {
  --wc-blocks-border-color: var(--color-rule);
  --wc-blocks-button-background-color: var(--color-accent);
  --wc-blocks-button-text-color: var(--color-accent-ink);
  padding-block: var(--space-lg);
}

.wc-block-cart__main,
.wc-block-checkout__main {
  padding-inline-end: clamp(var(--space-lg), 4vw, var(--space-3xl));
}

.wc-block-cart__sidebar,
.wc-block-checkout__sidebar {
  top: var(--space-xl);
}

.wc-block-components-sidebar-layout .wc-block-components-main,
.wc-block-components-sidebar,
.wc-block-components-order-summary,
.wc-block-components-totals-wrapper {
  min-width: 0;
}

.wc-block-components-sidebar {
  padding: var(--space-xl) !important;
  border: var(--rule-hair) solid var(--color-rule) !important;
  border-radius: var(--radius-lg);
  background: var(--color-paper-2);
}

.wc-block-components-product-name,
.wc-block-components-totals-item__label,
.wc-block-components-totals-item__value {
  color: var(--color-ink);
}

.wc-block-components-product-metadata,
.wc-block-components-product-price,
.wc-block-components-totals-item__description {
  color: var(--color-muted);
}

.wc-block-components-product-image img {
  border-radius: var(--radius-sm);
}

.wc-block-components-button:not(.is-link) {
  min-height: 3.25rem;
  border: var(--rule-hair) solid var(--color-accent);
  border-radius: var(--radius-pill);
  background: var(--color-accent);
  color: var(--color-accent-ink);
  font-weight: 700;
  white-space: nowrap;
}

.wc-block-components-button:not(.is-link):hover,
.wc-block-components-button:not(.is-link):focus-visible {
  border-color: var(--color-ink);
  background: var(--color-ink);
  color: var(--color-paper);
}

.wc-block-components-button:disabled,
.wc-block-components-button.is-disabled {
  cursor: not-allowed;
  opacity: 0.5;
}

.wc-block-components-text-input input,
.wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input,
.wc-block-components-address-form__address_2-toggle {
  border-color: var(--color-rule-strong) !important;
  border-radius: var(--radius-sm) !important;
  background: var(--color-paper-2) !important;
  color: var(--color-ink) !important;
}

.wc-block-components-text-input input:focus,
.wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input:focus {
  border-color: var(--color-focus) !important;
  outline: var(--rule-strong) solid var(--color-focus) !important;
  outline-offset: var(--space-2xs);
}

.wc-block-components-validation-error {
  color: var(--color-error);
}

.wc-block-components-checkout-step,
.wc-block-checkout__payment-method .wc-block-components-radio-control {
  padding-block: var(--space-lg);
  border-block-end: var(--rule-hair) solid var(--color-rule);
}

.wc-block-components-checkout-step__heading h2,
.wp-block-woocommerce-cart h2,
.wp-block-woocommerce-checkout h2 {
  font-family: var(--font-display);
}

/* WooCommerce's block product template wraps the whole page in .product. */
body.woocommerce-uses-block-theme .wp-site-blocks > div.product {
  display: block;
  min-width: 0;
}

body.woocommerce-uses-block-theme .wp-site-blocks > div.product > main {
  width: min(100%, var(--page-max));
  margin-inline: auto;
  padding: calc(var(--banner-height) + var(--space-3xl)) var(--page-gutter) var(--space-5xl) !important;
}

body.woocommerce-uses-block-theme .wp-site-blocks > div.product > main > .wp-block-columns {
  width: 100%;
  max-width: 100%;
  display: grid;
  grid-template-columns: minmax(0, 0.88fr) minmax(0, 1.12fr);
  gap: clamp(var(--space-xl), 5vw, var(--space-4xl));
  align-items: start;
}

body.woocommerce-uses-block-theme .wp-site-blocks > div.product > main > .wp-block-columns > .wp-block-column {
  width: auto;
  min-width: 0;
  margin: 0;
}

body.woocommerce-uses-block-theme .wp-block-woocommerce-product-image-gallery,
body.woocommerce-uses-block-theme .woocommerce-product-gallery {
  width: 100% !important;
  max-width: none;
}

body.woocommerce-uses-block-theme .woocommerce-product-gallery {
  position: sticky;
  top: var(--space-xl);
}

body.woocommerce-uses-block-theme .wp-block-post-excerpt__excerpt {
  max-width: 52ch;
  color: var(--color-ink-2);
  font-size: var(--text-md);
}

body.woocommerce-uses-block-theme .wp-block-add-to-cart-form {
  margin-block: var(--space-xl);
}

body.woocommerce-uses-block-theme .wp-block-woocommerce-product-meta {
  display: grid;
  gap: var(--space-xs);
  padding-block-start: var(--space-lg);
  border-block-start: var(--rule-hair) solid var(--color-rule);
  color: var(--color-muted);
  font-size: var(--text-sm);
}

body.woocommerce-uses-block-theme .wp-block-woocommerce-product-sku {
  padding-block-start: 0 !important;
  border-block-start: 0 !important;
}

body.woocommerce-uses-block-theme .wp-block-woocommerce-product-details {
  width: 100%;
  max-width: 100%;
  margin-block-start: var(--space-4xl);
  padding: var(--space-2xl);
  border: var(--rule-hair) solid var(--color-rule);
  border-radius: var(--radius-lg);
  background: var(--color-paper-2);
}

body.woocommerce-uses-block-theme .wp-block-woocommerce-product-details .woocommerce-tabs {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: var(--color-transparent);
}

body.woocommerce-uses-block-theme .woocommerce-Tabs-panel > h2:first-child {
  display: none;
}

.em-product-story {
  display: grid;
  gap: var(--space-lg);
}

.em-product-story .em-product-lede {
  max-width: 45ch;
  margin-block-end: var(--space-md);
  color: var(--color-ink);
  font-family: var(--font-display);
  font-size: var(--text-xl);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -0.025em;
}

.em-product-story h2 {
  max-width: 24ch;
  margin-block: var(--space-lg) 0;
  font-size: var(--text-2xl) !important;
}

.em-product-story h3 {
  margin-block: var(--space-lg) 0;
  color: var(--color-ink);
  font-family: var(--font-display);
  font-size: var(--text-md);
}

.em-product-story p,
.em-product-story li {
  max-width: 72ch;
  color: var(--color-ink-2);
}

.em-product-story ul {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-md);
  margin: 0;
  padding: 0;
  list-style: none;
}

.em-product-story li {
  padding-block-start: var(--space-sm);
  border-block-start: var(--rule-hair) solid var(--color-rule-strong);
  font-size: var(--text-sm);
}

.em-product-story .em-product-note {
  margin-block-start: var(--space-lg);
  padding: var(--space-lg);
  border-radius: var(--radius-md);
  background: var(--color-paper-3);
  color: var(--color-ink-2);
}

.wc-block-checkout__payment-method .wc-block-components-radio-control {
  padding: 0;
  border: 0 !important;
  background: var(--color-transparent);
}

@media (max-width: 60rem) {
  .woocommerce div.product {
    grid-template-columns: minmax(0, 1fr);
    row-gap: var(--space-2xl);
  }

  .woocommerce div.product div.images {
    position: static;
  }

  .woocommerce ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .wc-block-components-sidebar-layout {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .wc-block-cart__main,
  .wc-block-checkout__main {
    padding-inline-end: 0;
  }

  .wc-block-components-sidebar {
    margin-block-start: var(--space-xl);
  }

  body.woocommerce-uses-block-theme .wp-site-blocks > div.product > main > .wp-block-columns {
    grid-template-columns: minmax(0, 1fr);
  }

  body.woocommerce-uses-block-theme .woocommerce-product-gallery {
    position: static;
  }

  .em-product-story ul {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 40rem) {
  .single-product .wp-site-blocks > main,
  .woocommerce-cart .wp-site-blocks > main,
  .woocommerce-checkout .wp-site-blocks > main {
    padding-block-start: calc(var(--banner-height) + var(--space-2xl)) !important;
  }

  .woocommerce div.product .woocommerce-tabs {
    padding: var(--space-lg);
  }

  .woocommerce div.product .woocommerce-tabs ul.tabs {
    gap: var(--space-lg);
    overflow-x: auto;
  }

  .woocommerce ul.products {
    grid-template-columns: minmax(0, 1fr);
  }

  .wc-block-components-sidebar {
    padding: var(--space-lg) !important;
  }

  body.woocommerce-uses-block-theme .wp-site-blocks > div.product > main {
    padding-block-start: calc(var(--banner-height) + var(--space-2xl)) !important;
  }

  body.woocommerce-uses-block-theme .wp-block-woocommerce-product-details {
    padding: var(--space-lg);
  }
}
