.mdc-shop-site {
  background: var(--mdc-cream);
  color: var(--mdc-green);
}

.mdc-shop-site > * {
  width: auto;
  margin: 0;
}

.mdc-shop-shell {
  min-height: 60vh;
}

.mdc-shop-shell .mdc-container {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(1.5rem, 2vw, 2rem);
}

.mdc-breadcrumbs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 1rem;
  color: var(--mdc-text-muted);
  font-family: "Archivo", sans-serif;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.mdc-breadcrumbs a {
  text-decoration: none;
}

.mdc-breadcrumbs__sep {
  color: rgba(var(--mdc-green-rgb), 0.35);
}

.woocommerce-products-header,
.mdc-shop-page-header {
  display: grid;
  gap: 0.9rem;
  margin-bottom: clamp(1.5rem, 3vw, 2.5rem);
}

.woocommerce-products-header__title.page-title,
.product .product_title,
.related > h2,
.upsells > h2 {
  margin: 0;
  color: var(--mdc-green);
  font-family: "Archivo", sans-serif;
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 1;
  text-transform: uppercase;
}

.product .product_title {
  font-size: clamp(1.5rem, 2.6vw, 2.25rem);
  text-wrap: balance;
}

.related > h2,
.upsells > h2 {
  font-size: clamp(1.4rem, 2.6vw, 2rem);
}

.woocommerce-products-header__title.page-title {
  font-size: clamp(2rem, 5vw, 3.5rem);
}

/* verbose auto-generated quantity label → screen-reader only */
.woocommerce div.product form.cart .quantity > label,
.woocommerce .quantity > label {
  position: absolute !important;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

.term-description,
.woocommerce-product-details__short-description,
.woocommerce-Tabs-panel,
.woocommerce-result-count {
  color: var(--mdc-text-soft);
}

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

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
  margin: 0 0 1rem;
  padding: 1rem 1.2rem;
  border: 1px solid var(--mdc-border-soft);
  border-radius: 20px;
  background: rgba(var(--mdc-cream-rgb), 0.9);
  list-style: none;
}

.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering {
  margin: 0;
}

.woocommerce .woocommerce-ordering select,
.woocommerce .quantity .qty,
.woocommerce #review_form #respond textarea,
.woocommerce #review_form #respond input[type="text"],
.woocommerce #review_form #respond input[type="email"],
.woocommerce #review_form #respond input[type="url"] {
  border: 1px solid var(--mdc-border-soft);
  border-radius: 999px;
  background: rgba(var(--mdc-cream-rgb), 0.82);
  min-height: 3rem;
  padding: 0.75rem 1rem;
}

.woocommerce .woocommerce-ordering select {
  min-width: min(100%, 18rem);
}

.woocommerce .products {
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  gap: clamp(1rem, 2.2vw, 1.75rem);
  margin: 0;
  padding: 0;
  list-style: none;
}

.mdc-product-card {
  margin: 0;
  min-width: 0;
  border-radius: var(--mdc-radius-card);
}

.mdc-product-card__inner {
  display: flex;
  flex-direction: column;
  height: 100%;
  border: 1px solid var(--mdc-border-soft);
  border-radius: var(--mdc-radius-card);
  background: rgba(var(--mdc-cream-rgb), 0.78);
  box-shadow: var(--mdc-shadow-soft);
  overflow: hidden;
}

.mdc-product-card__link {
  display: flex;
  flex-direction: column;
  flex: 1;
  text-decoration: none;
}

.mdc-product-card__media {
  position: relative;
  flex-shrink: 0;
  aspect-ratio: 1 / 1;
  background: #fff;
  overflow: hidden;
}

.mdc-product-card__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.mdc-product-card__badge,
.woocommerce span.onsale {
  position: absolute;
  top: 1rem;
  left: 1rem;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  min-height: 2.2rem;
  padding: 0.45rem 0.85rem;
  border-radius: var(--mdc-radius-pill);
  background: var(--mdc-lime);
  color: var(--mdc-green);
  font-family: "Archivo", sans-serif;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.mdc-product-card__body {
  display: grid;
  gap: 0.9rem;
  padding: 1.25rem 1.25rem 1rem;
}

.mdc-product-card__title {
  margin: 0;
  font-size: clamp(1.35rem, 2.2vw, 1.75rem);
}

.mdc-product-card__price-row,
.mdc-product-card .price {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.75rem;
}

.mdc-product-card .price ins {
  order: -1;
  background: transparent;
  font-weight: 800;
  text-decoration: none;
}

.mdc-product-card .price ins .woocommerce-Price-amount {
  font-weight: 800;
}

.mdc-product-card .price del,
.mdc-product-card .price del .woocommerce-Price-amount {
  color: var(--mdc-text-muted);
  font-size: 0.95rem;
  font-weight: 400;
}

.mdc-product-card__discount {
  padding: 0.2rem 0.6rem;
  border-radius: var(--mdc-radius-pill);
  background: rgba(var(--mdc-green-rgb), 0.08);
  color: var(--mdc-green);
  font-family: "Archivo", sans-serif;
  font-size: 0.75rem;
  font-weight: 700;
}

.mdc-product-card .price,
.product .summary .price,
.woocommerce-Price-amount {
  color: var(--mdc-green);
  font-family: "Archivo", sans-serif;
  font-weight: 700;
}

.mdc-product-card .price,
.product .summary .price {
  margin: 0;
  font-size: 1.2rem;
}

.mdc-product-card__actions {
  margin-top: auto;
  padding: 0 1.25rem 1.25rem;
}

.mdc-product-card__actions .mdc-btn {
  width: 100%;
}

.mdc-product-card__actions .mdc-btn svg {
  width: 1.125rem;
  height: 1.125rem;
  flex-shrink: 0;
}

.mdc-product-card__actions .loading {
  opacity: 0.65;
  cursor: progress;
}

/* The header retains the cart link; avoid a second CTA and a layout jump. */
.mdc-product-card__actions .added_to_cart {
  display: none;
}

.mdc-product-card :is(a, button):focus-visible {
  outline: 2px solid var(--mdc-green);
  outline-offset: -4px;
}

.mdc-product-card .mdc-btn:focus-visible {
  outline-color: var(--mdc-lime);
}

@media (prefers-reduced-motion: no-preference) {
  html.js .mdc-product-card.mdc-reveal:not(.is-inview):not(:focus-within) {
    transform: scale(0.97);
  }
}

@media (prefers-reduced-motion: reduce) {
  .woocommerce .mdc-product-card .mdc-product-card__actions .mdc-btn {
    transition: none;
    transform: none;
  }
}

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 3.125rem;
  padding: 0.95rem 1.75rem;
  border: 1px solid transparent;
  border-radius: 999px;
  background: var(--mdc-green);
  color: var(--mdc-cream);
  font-family: "Archivo", sans-serif;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  line-height: 1;
  text-decoration: none;
  text-transform: uppercase;
  transition: background-color 180ms ease, color 180ms ease, transform 180ms ease;
}

.woocommerce a.button:hover,
.woocommerce a.button:focus-visible,
.woocommerce button.button:hover,
.woocommerce button.button:focus-visible,
.woocommerce input.button:hover,
.woocommerce input.button:focus-visible,
.woocommerce #respond input#submit:hover,
.woocommerce #respond input#submit:focus-visible {
  background: var(--mdc-green-deep);
  color: var(--mdc-cream);
  transform: translateY(-1px);
}

.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce #respond input#submit.alt {
  background: var(--mdc-lime);
  color: var(--mdc-green);
}

.woocommerce a.button.alt:hover,
.woocommerce a.button.alt:focus-visible,
.woocommerce button.button.alt:hover,
.woocommerce button.button.alt:focus-visible,
.woocommerce input.button.alt:hover,
.woocommerce input.button.alt:focus-visible,
.woocommerce #respond input#submit.alt:hover,
.woocommerce #respond input#submit.alt:focus-visible {
  background: var(--mdc-cream);
  color: var(--mdc-green);
}

.woocommerce a.added_to_cart {
  margin-left: 0.75rem;
  color: var(--mdc-green);
  font-family: "Archivo", sans-serif;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.quantity[data-quantity-control] {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  width: auto;
  min-height: 3.125rem;
  padding: 0.3rem;
  border: 1px solid var(--mdc-border-soft);
  border-radius: 999px;
  background: rgba(var(--mdc-cream-rgb), 0.82);
}

.quantity[data-quantity-control] .qty {
  width: 4rem;
  min-height: 2.5rem;
  padding: 0.5rem 0.25rem;
  border: 0;
  background: transparent;
  text-align: center;
}

.quantity[data-quantity-control] .qty::-webkit-outer-spin-button,
.quantity[data-quantity-control] .qty::-webkit-inner-spin-button {
  margin: 0;
  -webkit-appearance: none;
}

.mdc-quantity__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  min-height: 2.5rem;
  border: 0;
  border-radius: 999px;
  background: var(--mdc-green);
  color: var(--mdc-cream);
  font-family: "Archivo", sans-serif;
  font-size: 1rem;
  line-height: 1;
}

.woocommerce div.product .woocommerce-tabs,
.woocommerce .related,
.woocommerce .upsells {
  margin-top: clamp(2rem, 4vw, 3rem);
}

.woocommerce .wc-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  padding: 0;
  list-style: none;
}

.woocommerce .wc-tabs li {
  margin: 0;
}

.woocommerce .wc-tabs li a {
  display: inline-flex;
  align-items: center;
  min-height: 2.75rem;
  padding: 0.7rem 1rem;
  border: 1px solid var(--mdc-border-soft);
  border-radius: 999px;
  text-decoration: none;
}

.woocommerce .wc-tabs li.active a {
  background: var(--mdc-green);
  color: var(--mdc-cream);
}

.woocommerce .woocommerce-pagination ul.page-numbers {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  padding: 0;
  border: 0;
  list-style: none;
}

.woocommerce .woocommerce-pagination ul.page-numbers li {
  border: 0;
}

.woocommerce .woocommerce-pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.75rem;
  min-height: 2.75rem;
  padding: 0.5rem 0.85rem;
  border: 1px solid var(--mdc-border-soft);
  border-radius: 999px;
  text-decoration: none;
}

.woocommerce .woocommerce-pagination .current,
.woocommerce .woocommerce-pagination a:hover,
.woocommerce .woocommerce-pagination a:focus-visible {
  background: var(--mdc-lime);
  color: var(--mdc-green);
}

.woocommerce-mini-cart {
  display: grid;
  gap: 0.85rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.woocommerce-mini-cart-item {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.9rem;
  align-items: start;
  padding: 1rem 0;
  border-top: 1px solid rgba(var(--mdc-cream-rgb), 0.14);
}

.woocommerce-mini-cart-item:first-child {
  border-top: 0;
  padding-top: 0;
}

.woocommerce-mini-cart-item img {
  width: 4.5rem;
  height: 4.5rem;
  border-radius: 18px;
  object-fit: cover;
}

.woocommerce-mini-cart-item .remove {
  order: 3;
  justify-self: end;
  color: rgba(var(--mdc-cream-rgb), 0.8);
  text-decoration: none;
}

.woocommerce-mini-cart__details {
  display: grid;
  gap: 0.35rem;
}

.woocommerce-mini-cart__details a {
  text-decoration: none;
}

.woocommerce-mini-cart__empty-message,
.widget_shopping_cart_content {
  color: var(--mdc-cream);
}

.woocommerce-mini-cart__total,
.woocommerce-mini-cart__buttons {
  margin: 1rem 0 0;
}

.woocommerce-mini-cart__buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.mdc-store-page {
  display: grid;
  gap: clamp(1.5rem, 2vw, 2rem);
}

.mdc-store-page__title {
  margin: 0;
  color: var(--mdc-green);
  font-family: "Archivo", sans-serif;
  font-size: clamp(2.35rem, 5vw, 4.8rem);
  font-weight: 800;
  letter-spacing: -0.035em;
  line-height: 0.9;
  text-transform: uppercase;
}

.woocommerce-cart .entry-content,
.woocommerce-checkout .entry-content {
  display: grid;
  gap: clamp(1.25rem, 2vw, 2rem);
}

.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout,
.woocommerce-checkout .woocommerce,
.woocommerce-order.mdc-thankyou {
  margin: 0;
}

.wp-block-woocommerce-cart.alignwide,
.wp-block-woocommerce-checkout.alignwide {
  max-width: none;
}

.wp-block-woocommerce-filled-cart-block,
.wp-block-woocommerce-checkout.wc-block-checkout,
.wc-block-components-sidebar-layout {
  gap: clamp(1.25rem, 2vw, 2rem);
}

.wc-block-components-sidebar-layout,
.wc-block-checkout__main,
.wc-block-checkout__sidebar,
.woocommerce-order.mdc-thankyou .mdc-thankyou__panel {
  align-items: start;
}

.wc-block-components-totals-wrapper,
.wc-block-components-sidebar,
.wc-block-checkout__main,
.wc-block-cart__submit,
.wc-block-components-order-summary,
.wc-block-components-address-card,
.wc-block-checkout__actions_row,
.wc-block-checkout__payment-method,
.wc-block-checkout__contact-fields,
.wc-block-checkout__shipping-fields,
.wc-block-checkout__billing-fields,
.woocommerce-order.mdc-thankyou .mdc-thankyou__panel {
  border: 1px solid var(--mdc-border-soft);
  border-radius: 32px;
  background: rgba(var(--mdc-cream-rgb), 0.82);
  box-shadow: var(--mdc-shadow-soft);
}

.wc-block-checkout__main,
.wc-block-checkout__sidebar,
.woocommerce-order.mdc-thankyou .mdc-thankyou__panel {
  padding: clamp(1.25rem, 2vw, 2rem);
}

.wc-block-components-title,
.wc-block-components-checkout-step__heading,
.wc-block-checkout__sidebar-heading,
.woocommerce-order-overview li {
  color: var(--mdc-green);
  font-family: "Archivo", sans-serif;
  font-weight: 700;
}

.wc-block-components-product-name,
.wc-block-components-order-summary-item__description,
.wc-block-components-order-summary__button-text,
.wc-block-components-formatted-money-amount,
.wc-block-components-totals-footer-item .wc-block-components-formatted-money-amount,
.woocommerce-order.mdc-thankyou strong {
  color: var(--mdc-green);
  font-family: "Archivo", sans-serif;
  font-weight: 700;
}

.wc-block-components-form .wc-block-components-text-input input,
.wc-block-components-form .wc-block-components-text-input.is-active input,
.wc-block-components-form .wc-block-components-text-input input:focus,
.wc-block-components-combobox .components-form-token-field__input,
.wc-block-components-textarea,
.wc-block-components-text-input input,
.wc-block-components-combobox select,
.wc-block-components-combobox .wc-block-components-select__select,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select {
  border: 1px solid var(--mdc-border-soft);
  border-radius: 24px;
  background: rgba(var(--mdc-cream-rgb), 0.96);
  box-shadow: none;
  color: var(--mdc-green);
}

.wc-block-components-form .wc-block-components-text-input label,
.wc-block-components-checkout-step__description,
.wc-block-components-textarea label,
.wc-block-components-checkbox__label,
.wc-block-components-address-form__address_2-toggle,
.woocommerce form .form-row label,
.wc-block-components-totals-item__label,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
  color: var(--mdc-text-soft);
}

.wc-block-components-button,
.wc-block-components-checkout-place-order-button,
.wc-block-cart__submit-button,
.wp-block-woocommerce-proceed-to-checkout-block .wc-block-cart__submit-button {
  min-height: 3.125rem;
  border-radius: 999px;
  background: var(--mdc-green);
  color: var(--mdc-cream);
  font-family: "Archivo", sans-serif;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.wc-block-components-button:not(.is-link):hover,
.wc-block-components-button:not(.is-link):focus-visible,
.wc-block-components-checkout-place-order-button:hover,
.wc-block-components-checkout-place-order-button:focus-visible,
.wc-block-cart__submit-button:hover,
.wc-block-cart__submit-button:focus-visible {
  background: var(--mdc-green-deep);
  color: var(--mdc-cream);
}

.wc-block-components-button.is-link,
.wc-block-components-order-summary__button-text,
.wc-block-components-product-metadata__description,
.woocommerce-order.mdc-thankyou a {
  color: var(--mdc-green);
}

.wc-block-components-notice-banner,
.wc-block-store-notices .wc-block-components-notice-banner,
.woocommerce-checkout-payment .woocommerce-info,
.mdc-order-received__note {
  border-radius: 24px;
  border: 1px solid rgba(var(--mdc-green-rgb), 0.14);
  background: rgba(216, 226, 78, 0.24);
  color: var(--mdc-green);
}

.wc-block-components-notice-banner {
  margin: 0 0 1rem;
}

.wc-block-components-totals-item,
.wc-block-components-order-summary-item,
.woocommerce-order-overview li {
  padding: 0.9rem 0;
  border-color: rgba(var(--mdc-green-rgb), 0.12);
}

.wc-block-checkout__shipping-method-option,
.wc-block-components-radio-control__option-layout,
.wc-block-components-address-card,
.wc-block-cart-item__image img,
.wc-block-components-order-summary-item__image img {
  border-radius: 18px;
}

.woocommerce-order.mdc-thankyou {
  display: grid;
  gap: 1.5rem;
}

.mdc-order-received {
  display: grid;
  gap: 1rem;
}

.mdc-order-received__note {
  margin: 0;
  padding: 1rem 1.2rem;
}

.woocommerce-order-overview {
  display: grid;
  gap: 0;
  margin: 1.5rem 0 0;
  padding: 0;
  list-style: none;
}

.woocommerce-order-overview li {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 0.75rem;
}

.woocommerce-order-overview li:first-child {
  padding-top: 0;
}

.woocommerce-order-overview li:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

.woocommerce-thankyou-order-failed-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.woocommerce-checkout-payment .payment_methods {
  margin: 0 0 1rem;
  padding: 0;
  list-style: none;
}

.woocommerce-checkout-payment .payment_methods > li {
  margin: 0;
}

@media (min-width: 700px) {
  .woocommerce .products {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 980px) {
  /* Full-width page: fit as many cards as the row allows instead of forcing 3,
     so a card stays a card on a 1920px screen. */
  .woocommerce .products.columns-3,
  .woocommerce .products.columns-4 {
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr));
  }

  .woocommerce .related .products,
  .woocommerce .upsells .products {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }


  .woocommerce .woocommerce-result-count,
  .woocommerce .woocommerce-ordering {
    align-self: center;
  }

  .woocommerce .woocommerce-ordering {
    justify-self: end;
  }

  .mdc-shop-shell .woocommerce-notices-wrapper,
  .mdc-shop-shell .woocommerce-products-header,
  .mdc-shop-shell .products,
  .mdc-shop-shell .woocommerce-pagination,
  .mdc-shop-shell > .mdc-container > .product,
  .mdc-shop-shell .related,
  .mdc-shop-shell .upsells {
    grid-column: 1 / -1;
  }

  .woocommerce .woocommerce-result-count + .woocommerce-ordering {
    margin-left: auto;
  }
}

/* --- Cart: pad the content inside the boxed panels (were flush-left) --- */
.wc-block-components-totals-wrapper,
.wc-block-cart__submit,
.wc-block-components-sidebar .wc-block-components-totals-wrapper {
  padding: clamp(1.25rem, 2.2vw, 1.9rem);
}
.wc-block-cart__totals-title,
.wc-block-components-totals-wrapper .wc-block-components-totals-coupon,
.wc-block-components-totals-wrapper .wc-block-components-totals-item {
  padding-left: 0;
  padding-right: 0;
}
/* coupon toggle + input breathing room */
.wc-block-components-totals-coupon__form,
.wc-block-components-totals-coupon {
  margin: 0.5rem 0;
}
.wc-block-components-panel__button,
.wc-block-components-totals-coupon-link {
  padding-left: 0.1rem;
}
/* the estimated-total row shouldn't hug the box edge */
.wc-block-components-totals-footer-item {
  padding: 1rem clamp(1rem, 1.8vw, 1.4rem);
  border-radius: 20px;
  background: rgba(var(--mdc-green-rgb), 0.04);
  margin-top: 0.75rem;
}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.wc-block-components-totals-footer-item .wc-block-components-formatted-money-amount {
  padding-left: 0;
}

/* =====================================================================
   Shop catalogue (/boutique/ only): Boss's own catalogue redesign,
   shipped 2026-09-14. Replaces every .mdc-shop-hero / .mdc-shop-filters /
   .mdc-shop-toolbar / .mdc-shop-results / .mdc-shop-catalog /
   .mdc-shop-empty / .mdc-shop-intro rule that used to live here (all
   removed, fully superseded -- category-archive pages keep their own
   unrelated .mdc-shop-catalog/.mdc-shop-filters markup, untouched, see
   woocommerce/archive-product.php).

   Namespaced .mdc-catalog-* / .mdc-guide-* / .mdc-trade-* / .mdc-quickview-*
   throughout so nothing here collides with .mdc-product-card (the real
   shop-grid card used on category pages, built earlier today) or a
   concurrent homepage "collection" card of a similar name.

   Pixel values are ported 1:1 from Boss's mockup -- only selectors, custom
   properties and fonts changed to this theme's real tokens (Archivo /
   DM Sans / the one Playfair Display italic accent already used elsewhere
   on this site for this exact kind of flourish, e.g. .mdc-collection__title
   em). Product cards, family tabs, search, volume filter, sort and the
   quick-view dialog are rendered by assets/js/theme.js from the real
   catalogue localized in inc/woocommerce.php (vertefrancheShopCatalog) --
   this file only carries the static shell and the look. */

/* Scoped exactly like the old full-bleed hero fix (:has() keyed to this
   page's own hero class), so container-type only ever applies on
   /boutique/ -- never on cart/checkout/account/single-product/category
   pages, which share the same .mdc-shop-shell wrapper markup. */
.mdc-shop-shell:has(.mdc-catalog__hero) {
  container-type: inline-size;
  padding-inline: 0;
  /* Boss, 2026-09-14: no gap under the navbar (hero touches it directly)
     and no gap above the footer (trade section touches it directly). */
  padding-block: 0;
}

/* Keep the catalogue's own gutters while the hero uses the shell's full
   query width (which excludes the scrollbar, unlike 100vw). */
.mdc-shop-shell:has(.mdc-catalog__hero) > .mdc-container {
  width: min(calc(100% - 2 * var(--mdc-section-pad-inline)), var(--mdc-container-max));
  /* Boss, 2026-09-14: this page's own sections (hero, catalog, guide,
     trade) must touch each other directly, no cream color-break between
     them -- the shared .mdc-shop-shell .mdc-container grid normally adds a
     gap between every child (theme.css), zeroed here for this page only.
     The hero's own margin-bottom (below) still separates it from the tabs
     underneath -- that space stays, it isn't a color-break, both sides are
     the same cream background. */
  gap: 0;
}

/* Boss, 2026-09-14: this page must stay full width like every other page
   on the site (--mdc-container-max: 100%) -- the mockup's own 1320/1400px
   .wrap cap is NOT reproduced here anymore. Hero width is handled by its
   own full-bleed rule below; these other blocks just take the full
   .mdc-container width now. */

/* ---- Hero: restored full-bleed image (Boss, 2026-09-14) -- same
   container-query breakout already proven on this page's old hero and on
   the account page: the image is an absolute background layer filling the
   whole section, text overlays its empty side. Not part of the shared
   1320/1400px cap above -- this section manages its own full width. ---- */
.mdc-catalog__hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  width: 100cqw;
  margin-inline: calc(50% - 50cqw);
  margin-bottom: clamp(1.5rem, 3vw, 2.5rem);
  min-height: clamp(300px, 32vw, 450px);
  display: flex;
  align-items: center;
}

.mdc-catalog__hero-media {
  position: absolute;
  inset: 0;
  z-index: 0;
  margin: 0;
  height: auto;
  border-radius: 0;
  overflow: hidden;
}

.mdc-catalog__hero-media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 54%;
}

.mdc-catalog__hero-copy {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  max-width: clamp(15rem, 38%, 30rem);
  padding: clamp(20px, 4vw, 48px);
}

.mdc-catalog__hero-title {
  margin: 0;
  font-family: "Archivo", sans-serif;
  font-weight: 750;
  text-transform: none;
  font-size: clamp(1.9rem, 3.6vw, 3rem);
  line-height: 1.02;
  letter-spacing: -0.045em;
  color: var(--mdc-green);
}

.mdc-catalog__hero-title em {
  font: italic 1em "Playfair Display", Georgia, serif;
  font-weight: 400;
}

.mdc-catalog__hero-copy > p {
  margin: 0;
  max-width: 32ch;
  color: var(--mdc-green);
  font-size: var(--mdc-small-size);
  line-height: 1.65;
}

.mdc-catalog__hero-origin {
  position: absolute;
  top: 20px;
  right: 20px;
  z-index: 2;
  border-radius: 50%;
  background: var(--mdc-lime);
  width: 66px;
  height: 66px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  font-family: "Archivo", sans-serif;
  font-size: 7px;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--mdc-green);
  transform: rotate(9deg);
}

.mdc-catalog__hero-origin b {
  margin-top: 3px;
  font: 14px "Playfair Display", Georgia, serif;
  font-weight: 400;
}

/* True mobile only: overlay text over a busy photo stops being readable
   well before tablet width -- stacks above a shorter crop instead, same
   breakpoint choice as the old hero it restores. */
@media (max-width: 767px) {
  .mdc-catalog__hero {
    flex-direction: column;
    align-items: stretch;
    min-height: 0;
    background: var(--mdc-cream);
  }
  .mdc-catalog__hero-media {
    position: static;
    height: auto;
    aspect-ratio: 1293 / 724;
  }
  .mdc-catalog__hero-copy {
    max-width: none;
    padding: clamp(20px, 5vw, 28px) clamp(16px, 4vw, 24px) 1.25rem;
  }
  .mdc-catalog__hero-origin { width: 57px; height: 57px; }
}

/* ---- Catalogue: family tabs / filter toggle / filter panel / results bar ---- */
.mdc-catalog {
  /* Boss, 2026-09-14: was 64px -- created a cream color-break before the
     guide section starts. Sections on this page now touch directly. */
  padding-bottom: 0;
  scroll-margin-top: 76px;
}

.mdc-catalog__nav {
  border-top: 1px solid var(--mdc-border-soft);
  border-bottom: 1px solid var(--mdc-border-soft);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 17px 0;
}

.mdc-catalog__tabs { display: flex; gap: 7px; flex-wrap: wrap; }

.mdc-catalog__tab {
  border: 1px solid transparent;
  border-radius: 30px;
  padding: 11px 18px;
  background: none;
  color: var(--mdc-green);
  font-family: "DM Sans", sans-serif;
  font-size: 13px;
  white-space: nowrap;
}

.mdc-catalog__tab sup { font-size: 9px; margin-left: 6px; opacity: .65; }

.mdc-catalog__tab[aria-pressed="true"] { background: var(--mdc-green); color: var(--mdc-cream); }
.mdc-catalog__tab:hover:not([aria-pressed="true"]) { background: var(--mdc-panel); }

/* Boss, 2026-09-14: this is a bare <button> -- the sitewide reset only
   clears font/color/cursor, not border/background/appearance, so without
   an explicit reset here the browser's own native button chrome (the
   "Windows 98" look) showed through underneath the intended border-left
   accent. Reset in full, then re-apply just the pill shape and accent. */
.mdc-catalog__filter-toggle {
  appearance: none;
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 10px 16px 10px 18px;
  border: 0;
  border-left: 1px solid var(--mdc-border-soft);
  border-radius: 0;
  background: none;
  color: var(--mdc-green);
  font-family: "DM Sans", sans-serif;
  font-size: 13px;
  line-height: 1.3;
}

.mdc-catalog__filter-toggle svg { width: 17px; height: 17px; }

/* An explicit `display` below would otherwise always beat the native
   [hidden] attribute JS toggles this panel with (both are author-normal
   rules once the panel has its own layout display, so [hidden] alone no
   longer wins the cascade against it -- these two must stay in sync). */
.mdc-catalog__filter-panel[hidden] { display: none; }

.mdc-catalog__filter-panel {
  display: flex;
  gap: 25px;
  align-items: end;
  margin-top: 16px;
  padding: 22px;
  border-radius: 3px;
  background: var(--mdc-panel);
}

.mdc-catalog__filter-panel label { display: grid; gap: 7px; width: auto; color: var(--mdc-green); font-size: 11px; }
.mdc-catalog__filter-panel label:first-child { flex: 1; }
.mdc-catalog__filter-panel input,
.mdc-catalog__filter-panel select {
  width: 100%;
  min-width: 0;
  min-height: 42px;
  padding: 8px 12px;
  border: 1px solid var(--mdc-border-strong);
  border-radius: 3px;
  background: var(--mdc-cream);
}

.mdc-catalog__reset {
  padding: 10px 0;
  background: none;
  color: var(--mdc-green);
  font-size: 11px;
  text-decoration: underline;
  text-underline-offset: 4px;
}

.mdc-catalog__results-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 22px 0;
  color: var(--mdc-text-muted);
  font-size: 11px;
}

.mdc-catalog__sort { display: flex; align-items: center; gap: 8px; }
.mdc-catalog__sort select {
  width: auto;
  max-width: 170px;
  padding: 4px 20px 4px 3px;
  border: 0;
  background: transparent;
  color: var(--mdc-green);
  font-size: 11px;
}

/* ---- Product grid + cards ---- */
.mdc-catalog__grid[hidden] { display: none; } /* see the filter-panel [hidden] note above */

.mdc-catalog__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 36px 24px;
}

/* Boss, 2026-09-14: now that the page is full width, a fixed 3 columns
   would stretch each card huge on a wide screen -- fit as many as the row
   allows instead, same pattern already used for the old shop grid. */
@media (min-width: 1450px) {
  .mdc-catalog__grid {
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr));
  }
}

.mdc-catalog-card { display: block; min-width: 0; }

.mdc-catalog-card__image {
  width: 100%;
  height: 326px;
  padding: 0;
  border: 0;
  border-radius: 3px;
  background: var(--mdc-panel);
  position: relative;
  display: grid;
  place-items: center;
  overflow: hidden;
}

.mdc-catalog-card:nth-child(2) .mdc-catalog-card__image { background: #f1f2e8; }
.mdc-catalog-card:nth-child(3) .mdc-catalog-card__image { background: #e7eadf; }

.mdc-catalog-card__image img {
  width: 300px;
  height: 300px;
  object-fit: contain;
  mix-blend-mode: multiply;
  transition: transform .4s;
}

.mdc-catalog-card:hover .mdc-catalog-card__image img { transform: translateY(-5px) scale(1.03); }

.mdc-catalog-card__index {
  position: absolute;
  left: 19px;
  top: 16px;
  z-index: 1;
  font: italic 17px "Playfair Display", Georgia, serif;
  color: var(--mdc-green);
}

.mdc-catalog-card__type {
  position: absolute;
  right: 17px;
  top: 18px;
  z-index: 1;
  font-family: "Archivo", sans-serif;
  font-size: 8px;
  font-weight: 700;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: var(--mdc-green);
}

.mdc-catalog-card__body { padding: 18px 1px 0; }

.mdc-catalog-card__heading {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 15px;
}

.mdc-catalog-card__heading h3 {
  margin: 0;
  font-family: "Archivo", sans-serif;
  font-weight: 700;
  text-transform: none;
  font-size: 21px;
  line-height: 1.25;
  letter-spacing: -.6px;
  color: var(--mdc-green);
}

.mdc-catalog-card__arrow {
  width: 34px;
  height: 34px;
  flex-shrink: 0;
  border: 1px solid var(--mdc-border-strong);
  border-radius: 50%;
  background: none;
  display: grid;
  place-items: center;
  color: var(--mdc-green);
  font-size: 18px;
  transition: background .2s;
}

.mdc-catalog-card:hover .mdc-catalog-card__arrow { background: var(--mdc-lime); }

.mdc-catalog-card__body > p {
  margin: 7px 0 0;
  min-height: 20px;
  color: var(--mdc-text-muted);
  font-size: 12px;
}

.mdc-catalog-card__bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 16px;
}

.mdc-catalog-card__sizes { display: flex; gap: 8px; flex-wrap: wrap; }
.mdc-catalog-card__sizes span {
  padding: 3px 10px;
  border: 1px solid var(--mdc-border-soft);
  border-radius: 20px;
  color: var(--mdc-green);
  font-size: 10px;
}

.mdc-catalog-card__price {
  color: var(--mdc-green);
  font-family: "Archivo", sans-serif;
  font-size: 14px;
  font-weight: 600;
}

/* ---- Editorial tile (shown only while no filter/search is active) ---- */
.mdc-catalog__editorial {
  position: relative;
  overflow: hidden;
  min-height: 440px;
  padding: 30px;
  border-radius: 3px;
  background: var(--mdc-green);
  color: var(--mdc-cream);
  display: flex;
  flex-direction: column;
  align-items: start;
  justify-content: space-between;
}

.mdc-catalog__editorial .mdc-eyebrow { color: var(--mdc-lime); }

.mdc-catalog__editorial-title {
  margin: 25px 0 18px;
  font-family: "Archivo", sans-serif;
  font-weight: 700;
  text-transform: none;
  font-size: 37px;
  line-height: 1.06;
  letter-spacing: -1.5px;
  color: var(--mdc-cream);
}

.mdc-catalog__editorial-title em {
  font: italic 1em "Playfair Display", Georgia, serif;
  font-weight: 400;
  color: var(--mdc-lime);
}

.mdc-catalog__editorial p { margin: 0; max-width: 245px; color: #c7d3bf; font-size: 12px; }

.mdc-catalog__editorial-cta {
  display: flex;
  justify-content: space-between;
  width: 100%;
  margin-top: 28px;
  padding-bottom: 6px;
  border-bottom: 1px solid #809275;
  color: var(--mdc-cream);
  font-size: 11px;
}

.mdc-catalog__editorial-mark {
  position: absolute;
  right: 24px;
  top: 20px;
  font: italic 34px "Playfair Display", Georgia, serif;
  color: #b6c99b;
}

/* ---- Empty state ---- */
.mdc-catalog__empty { padding: 70px 15px; border: 1px solid var(--mdc-border-soft); text-align: center; }
.mdc-catalog__empty h3 {
  margin: 0;
  font-family: "Archivo", sans-serif;
  font-weight: 700;
  text-transform: none;
  font-size: 22px;
  color: var(--mdc-green);
}
.mdc-catalog__empty p { margin: 10px 0; color: var(--mdc-text-muted); }

/* ---- Catalogue foot ---- */
.mdc-catalog__foot {
  margin-top: 36px;
  padding-top: 21px;
  border-top: 1px solid var(--mdc-border-soft);
  display: flex;
  justify-content: space-between;
  gap: 20px;
  color: var(--mdc-text-muted);
  font-size: 11px;
}
.mdc-catalog__foot a { border-bottom: 1px solid var(--mdc-green); color: var(--mdc-green); white-space: nowrap; }

/* ---- Shared pill CTA (mockup's ".btn": NOT the sitewide .mdc-btn, which
   is uppercase/bold by convention -- this design's own plain-weight pill,
   kept bespoke so it stays pixel-identical to the mockup). ---- */
.mdc-catalog__pill-btn {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
  padding: 14px 23px;
  border-radius: 30px;
  background: var(--mdc-green);
  color: var(--mdc-cream);
  font-family: "DM Sans", sans-serif;
  font-size: 11px;
  white-space: nowrap;
}

/* ---- Guide ("which format?") ---- */
.mdc-guide {
  width: 100cqw;
  margin-inline: calc(50% - 50cqw);
  padding: 55px var(--mdc-section-pad-inline);
  background: var(--mdc-panel);
}

.mdc-guide__grid { display: grid; grid-template-columns: 1fr 2fr; gap: 65px; align-items: start; }

.mdc-guide__title {
  margin: 15px 0;
  font-family: "Archivo", sans-serif;
  font-weight: 700;
  text-transform: none;
  font-size: 33px;
  line-height: 1.1;
  letter-spacing: -1.1px;
  color: var(--mdc-green);
}
.mdc-guide__title em { font: italic 1em "Playfair Display", Georgia, serif; font-weight: 400; }

.mdc-guide__intro p { margin: 0; max-width: 250px; color: var(--mdc-text-muted); font-size: 12px; }

.mdc-guide__options { display: grid; grid-template-columns: repeat(3, 1fr); gap: 25px; }

.mdc-guide__option {
  padding-top: 15px;
  border-top: 1px solid var(--mdc-border-strong);
  display: flex;
  flex-direction: column;
  align-items: start;
}
.mdc-guide__option > span { font: italic 20px "Playfair Display", Georgia, serif; color: #7b8870; }
.mdc-guide__option h3 {
  margin: 12px 0 8px;
  font-family: "Archivo", sans-serif;
  font-weight: 700;
  text-transform: none;
  font-size: 16px;
  color: var(--mdc-green);
}
.mdc-guide__option p { margin: 0 0 20px; flex: 1; color: var(--mdc-text-muted); font-size: 12px; }
/* Boss, 2026-09-14: same bare-<button> bug as .mdc-catalog__filter-toggle
   ("Affiner") -- reset border/background/appearance in full first, then
   re-apply just the intended underline. */
.mdc-guide__option button {
  appearance: none;
  display: inline-block;
  padding: 0 0 5px;
  border: 0;
  border-bottom: 1px solid var(--mdc-green);
  border-radius: 0;
  background: none;
  color: var(--mdc-green);
  font-family: "DM Sans", sans-serif;
  font-size: 12px;
  text-align: left;
}

/* ---- Trade / wholesale teaser ---- */
.mdc-trade {
  width: 100cqw;
  margin-inline: calc(50% - 50cqw);
  padding: 42px var(--mdc-section-pad-inline);
  background: var(--mdc-lime);
}

.mdc-trade__inner { display: flex; justify-content: space-between; align-items: center; gap: 30px; }

.mdc-trade__title {
  margin: 10px 0;
  font-family: "Archivo", sans-serif;
  font-weight: 700;
  text-transform: none;
  font-size: 27px;
  line-height: 1.2;
  letter-spacing: -.8px;
  color: var(--mdc-green);
}
.mdc-trade__inner p { margin: 0; color: var(--mdc-green); font-size: 12px; }
.mdc-trade__cta { flex-shrink: 0; }

/* ---- Quick-view dialog ---- */
.mdc-quickview {
  width: min(840px, calc(100% - 32px));
  max-height: 90vh;
  overflow: auto;
  padding: 30px;
  border: 1px solid var(--mdc-border-soft);
  border-radius: 5px;
  background: var(--mdc-cream);
  color: var(--mdc-green);
}
.mdc-quickview::backdrop { background: rgba(var(--mdc-green-rgb), .75); backdrop-filter: blur(4px); }

.mdc-quickview__close {
  position: absolute;
  right: 15px;
  top: 12px;
  z-index: 2;
  width: 35px;
  height: 35px;
  border-radius: 50%;
  background: var(--mdc-cream);
  color: var(--mdc-green);
  font-size: 25px;
}

.mdc-quickview__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; align-items: center; }
.mdc-quickview__image { border-radius: 3px; background: var(--mdc-panel); }
.mdc-quickview__image img { width: 100%; height: 350px; object-fit: contain; mix-blend-mode: multiply; }

.mdc-quickview__copy h2 {
  margin: 17px 0;
  font-family: "Archivo", sans-serif;
  font-weight: 700;
  text-transform: none;
  font-size: 31px;
  line-height: 1.1;
  letter-spacing: -1px;
  color: var(--mdc-green);
}
.mdc-quickview__copy p { margin: 12px 0; color: var(--mdc-text-muted); font-size: 13px; }
.mdc-quickview__copy .mdc-catalog-card__sizes { margin: 18px 0; }
.mdc-quickview__price {
  margin: 18px 0;
  color: var(--mdc-green);
  font-family: "Archivo", sans-serif;
  font-size: 22px;
}
.mdc-quickview__cta { margin-top: 12px; }

body.mdc-quickview-open { overflow: hidden; }

/* =====================================================================
   Responsive -- same breakpoints as the mockup (1500 / 1100 / 760 / 400).
   Inline gutters already breathe via the clamp()-based
   --mdc-section-pad-inline, so only the mockup's OWN size/layout changes
   are ported here, not its separate .wrap padding overrides. */
@media (min-width: 1500px) {
  .mdc-catalog-card__image { height: 352px; }
  .mdc-catalog-card__image img { width: 326px; height: 326px; }
}

@media (max-width: 1100px) {
  .mdc-catalog__hero { gap: 35px; }
  .mdc-catalog__hero-title { font-size: 49px; }
  .mdc-catalog__hero-media { height: 250px; }
  .mdc-catalog-card__image { height: 280px; }
  .mdc-catalog-card__image img { width: 265px; height: 265px; }
  .mdc-catalog-card__heading h3 { font-size: 18px; }
  .mdc-catalog-card__type { right: 13px; font-size: 7px; }
  .mdc-catalog__tab { padding: 10px 13px; }
  .mdc-guide__grid { gap: 30px; }
  .mdc-guide__options { gap: 18px; }
  .mdc-catalog__editorial { padding: 24px; }
  .mdc-catalog__editorial-title { font-size: 33px; }
}

@media (max-width: 760px) {
  .mdc-catalog__nav { flex-direction: column; align-items: stretch; padding: 14px 0 9px; }
  .mdc-catalog__tabs { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 7px; gap: 3px; }
  .mdc-catalog__tab { font-size: 10px; padding: 9px 12px; }
  .mdc-catalog__filter-toggle { border-left: 0; padding: 8px 2px; }
  .mdc-catalog__results-bar { padding: 16px 0; font-size: 10px; }
  .mdc-catalog__sort { gap: 4px; }
  .mdc-catalog__sort select { max-width: 145px; padding-right: 0; font-size: 10px; }
  .mdc-catalog__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px 13px; }
  .mdc-catalog-card__image { height: 230px; }
  .mdc-catalog-card__image img { width: 215px; height: 215px; max-width: none; }
  .mdc-catalog-card__index { left: 12px; top: 11px; font-size: 14px; }
  .mdc-catalog-card__type { right: 11px; top: 15px; max-width: 90px; font-size: 6px; letter-spacing: .4px; text-align: right; }
  .mdc-catalog-card__body { padding-top: 13px; }
  .mdc-catalog-card__heading { gap: 5px; }
  .mdc-catalog-card__heading h3 { font-size: 16px; letter-spacing: -.4px; }
  .mdc-catalog-card__arrow { width: 27px; height: 27px; font-size: 15px; }
  .mdc-catalog-card__body > p { font-size: 10px; line-height: 1.6; min-height: 32px; }
  .mdc-catalog-card__bottom { margin-top: 12px; gap: 6px; }
  .mdc-catalog-card__sizes span { padding: 3px 8px; font-size: 9px; }
  .mdc-catalog-card__price { font-size: 12px; }
  .mdc-catalog__editorial { min-height: 345px; padding: 21px; }
  .mdc-catalog__editorial .mdc-eyebrow { max-width: 95px; font-size: 8px; letter-spacing: 1px; }
  .mdc-catalog__editorial-title { margin: 22px 0 16px; font-size: 29px; }
  .mdc-catalog__editorial p { font-size: 10px; }
  .mdc-catalog__editorial-cta { font-size: 10px; }
  .mdc-catalog__editorial-mark { right: 16px; top: 14px; font-size: 24px; }
  .mdc-catalog { padding-bottom: 0; }
  .mdc-catalog__foot { flex-direction: column; align-items: start; gap: 12px; margin-top: 25px; font-size: 10px; }
  .mdc-catalog__filter-panel { flex-wrap: wrap; gap: 15px; padding: 15px; }
  .mdc-catalog__filter-panel label:first-child { flex-basis: 100%; }
  .mdc-catalog__filter-panel label:nth-child(2) { flex: 1; }
  .mdc-guide { padding-block: 36px; }
  .mdc-guide__grid { grid-template-columns: 1fr; gap: 25px; }
  .mdc-guide__title { font-size: 30px; }
  .mdc-guide__intro p { max-width: 340px; }
  .mdc-guide__options { gap: 15px; }
  .mdc-guide__option h3 { font-size: 13px; }
  .mdc-guide__option p { font-size: 10px; }
  .mdc-guide__option button { text-align: left; font-size: 10px; }
  .mdc-trade { padding-block: 30px; }
  .mdc-trade__inner { flex-direction: column; align-items: start; gap: 20px; }
  .mdc-trade__title { font-size: 26px; }
  .mdc-trade__inner p { font-size: 11px; }
  .mdc-quickview__grid { grid-template-columns: 1fr; gap: 23px; }
  .mdc-quickview__image img { height: 240px; }
  .mdc-quickview__copy h2 { font-size: 27px; }
  .mdc-quickview { padding: 22px; }
  .mdc-quickview__cta { white-space: normal; }
  .mdc-catalog__hero .mdc-eyebrow,
  .mdc-guide .mdc-eyebrow,
  .mdc-trade .mdc-eyebrow { font-size: 9px; }
}

@media (max-width: 400px) {
  .mdc-catalog-card__image { height: 205px; }
  .mdc-catalog-card__image img { width: 192px; height: 192px; }
  .mdc-catalog-card__heading h3 { font-size: 14px; }
  .mdc-catalog-card__type { max-width: 77px; font-size: 5.5px; }
  .mdc-catalog-card__index { left: 10px; }
  .mdc-catalog__editorial { padding: 17px; }
  .mdc-catalog__editorial-title { font-size: 26px; }
  .mdc-catalog__tab { padding: 9px 10px; }
  .mdc-guide__options { gap: 12px; }
}

@media (prefers-reduced-motion: reduce) {
  .mdc-catalog-card__image img { transition: none; }
}

/* Breadcrumb hiding is now sitewide on the base .mdc-breadcrumbs rule (theme.css). */

/* T20: account shortcode only; the page hero and section keep their own layout. */
.woocommerce-account .mdc-page-section .woocommerce {
  width: 100%;
  min-width: 0;
  color: var(--mdc-green);
  overflow-wrap: anywhere;
}

.woocommerce-account .woocommerce :is(.woocommerce-Addresses, .woocommerce-columns--addresses) {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--mdc-section-pad-inline);
  margin: 0;
}

.woocommerce-account .woocommerce :is(.mdc-account-card, .woocommerce-Address, .woocommerce-column--billing-address, .woocommerce-column--shipping-address, .woocommerce-MyAccount-content > form, .lost_reset_password) {
  min-width: 0;
  margin: 0;
  padding: var(--mdc-section-pad-inline);
  border: 1px solid var(--mdc-border-soft);
  border-radius: var(--mdc-radius-card);
  background: #fff;
}

/* T21: only the section containing login/register becomes a full-width hero.
   Its query width excludes the browser scrollbar, unlike 100vw.
   Fixed 2026-09-13: the original selector required an ancestor `.mdc-page`
   class that this page template (the generic is_page() branch in page.php)
   never actually outputs — the rule silently never matched, which is why
   the padding never actually went to zero. Target the section directly. */
.woocommerce-account .mdc-page-section:has(.mdc-account-auth) {
  container-type: inline-size;
  padding: 0;
}

.woocommerce-account .mdc-page-section:has(.mdc-account-auth) .mdc-page-section__inner {
  gap: 0;
}

.woocommerce-account .mdc-page-section:has(.mdc-account-auth) .woocommerce {
  margin: 0;
}

/* Boss, 2026-09-13, 4th pass: the login/register block should sit right
   under the navbar and touch the footer directly — no "Mon compte" title,
   no blank space either side. The H1 stays in the DOM for accessibility
   and SEO (one-H1-per-page rule), just visually hidden — same clip
   technique as the breadcrumb above. Scoped to the logged-out view only
   (:has(.mdc-account-auth)): the dashboard/orders/addresses/account-details
   views still show "Mon compte" normally, Boss has not asked to change those. */
body.woocommerce-account:has(.mdc-account-auth) .mdc-page-hero {
  position: absolute !important;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
  white-space: nowrap;
  border: 0;
  padding: 0;
  margin: -1px;
}

.woocommerce-account .woocommerce .mdc-account-auth {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
  width: 100cqw;
  margin-block: 0;
  margin-inline: calc(50% - 50cqw);
}

@media (min-width: 900px) {
  .woocommerce-account .woocommerce .mdc-account-auth {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.woocommerce-account .woocommerce .mdc-account-card.mdc-account-login,
.woocommerce-account .woocommerce .mdc-account-card.mdc-account-register {
  margin: 0;
  padding: clamp(34px, 5.5vw, 80px) clamp(18px, 4.5vw, 60px);
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

/* Preserve each panel's existing colours and contrast; other account views
   retain the generic white, rounded cards above. */
.woocommerce-account .woocommerce .mdc-account-card.mdc-account-login {
  background: var(--mdc-green);
  border-color: transparent;
  color: var(--mdc-cream);
}

.woocommerce-account .woocommerce .mdc-account-card.mdc-account-register {
  background: var(--mdc-lime);
  border-color: transparent;
  color: var(--mdc-green);
}

.woocommerce-account .woocommerce .mdc-account-card.mdc-account-login :is(h2, h3) {
  color: var(--mdc-cream);
}

.woocommerce-account .woocommerce .mdc-account-card.mdc-account-login label,
.woocommerce-account .woocommerce .mdc-account-card.mdc-account-login .woocommerce-form__label-for-checkbox {
  color: rgba(var(--mdc-cream-rgb), 0.85);
}

.woocommerce-account .woocommerce .mdc-account-card.mdc-account-login :is(.input-text, select, textarea) {
  border-color: transparent;
  background: var(--mdc-cream);
  color: var(--mdc-green);
}

.woocommerce-account .woocommerce .mdc-account-card.mdc-account-login input[type="checkbox"] {
  accent-color: var(--mdc-lime);
}

.woocommerce-account .woocommerce .mdc-account-card.mdc-account-login :is(input, select, textarea):focus-visible {
  border-color: transparent;
  outline-color: var(--mdc-lime);
}

.woocommerce-account .woocommerce .mdc-account-card.mdc-account-login :is(.button, .woocommerce-button, .woocommerce-Button, button[type="submit"]) {
  background: var(--mdc-lime);
  color: var(--mdc-green);
}

.woocommerce-account .woocommerce .mdc-account-card.mdc-account-login :is(.button, .woocommerce-button, .woocommerce-Button, button[type="submit"]):is(:hover, :focus-visible) {
  background: var(--mdc-green-deep);
  border-color: transparent;
  color: var(--mdc-cream);
}

.woocommerce-account .woocommerce .mdc-account-card.mdc-account-login a:not(.button) {
  color: var(--mdc-cream);
  text-decoration-color: rgba(var(--mdc-cream-rgb), 0.5);
}

.woocommerce-account .woocommerce .mdc-account-card.mdc-account-login a:not(.button):hover {
  color: var(--mdc-lime);
}

.woocommerce-account .woocommerce .mdc-account-card.mdc-account-login :is(a, button):focus-visible {
  outline-color: var(--mdc-lime);
}

.woocommerce-account .woocommerce .mdc-account-card.mdc-account-register :is(.button, .woocommerce-button, .woocommerce-Button, button[type="submit"]) {
  background: var(--mdc-green);
  color: var(--mdc-cream);
}

.woocommerce-account .woocommerce .mdc-account-card.mdc-account-register :is(.button, .woocommerce-button, .woocommerce-Button, button[type="submit"]):is(:hover, :focus-visible) {
  background: var(--mdc-green-deep);
  color: var(--mdc-cream);
}

.woocommerce-account .woocommerce .mdc-account-card.mdc-account-register a:not(.button) {
  color: var(--mdc-green-deep);
}

.woocommerce-account .woocommerce :is(h2, h3, legend) {
  margin: 0 0 1.5rem;
  color: var(--mdc-green);
  font-family: "Archivo", sans-serif;
  font-size: clamp(1.4rem, 2.6vw, 2rem);
  font-weight: 800;
  letter-spacing: -0.035em;
  line-height: 1.1;
  text-transform: uppercase;
}

.woocommerce-account .woocommerce :is(form, p, address) {
  min-width: 0;
}

.woocommerce-account .woocommerce p {
  margin: 0 0 1.5rem;
}

.woocommerce-account .woocommerce :is(form, .mdc-account-card) > :last-child {
  margin-bottom: 0;
}

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

.woocommerce-account .woocommerce form label {
  display: block;
  margin-bottom: 0.5rem;
  color: rgba(var(--mdc-green-rgb), 0.7);
  font-family: "Archivo", sans-serif;
  font-size: 0.71875rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  line-height: 1.6;
  text-transform: uppercase;
}

.woocommerce-account .woocommerce form :is(.input-text, select, textarea),
.woocommerce-account :is(.select2-selection--single, .select2-search__field) {
  width: 100%;
  max-width: 100%;
  min-height: 50px;
  padding: 14px;
  border: 1.5px solid rgba(var(--mdc-green-rgb), 0.25);
  border-radius: 0;
  background: #fff;
  color: var(--mdc-green);
  font: inherit;
  line-height: 1.4;
}

.woocommerce-account .woocommerce textarea {
  min-height: 9rem;
  resize: vertical;
}

.woocommerce-account .woocommerce :is(input, select, textarea):focus-visible,
.woocommerce-account .select2-container--focus .select2-selection {
  border-color: rgba(var(--mdc-green-rgb), 0.55);
  outline: 2px solid var(--mdc-green);
  outline-offset: 3px;
}

.woocommerce-account .woocommerce :is(a, button):focus-visible {
  outline: 2px solid var(--mdc-green);
  outline-offset: 3px;
}

.woocommerce-account .woocommerce .woocommerce-form__label-for-checkbox,
.woocommerce-account .woocommerce label.checkbox {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  min-height: 44px;
  width: fit-content;
  letter-spacing: 0;
  text-transform: none;
}

.woocommerce-account .woocommerce :is(input[type="checkbox"], input[type="radio"]) {
  width: 1.125rem;
  height: 1.125rem;
  flex-shrink: 0;
  accent-color: var(--mdc-green);
}

.woocommerce-account .woocommerce :is(.button, .woocommerce-button, .woocommerce-Button, button[type="submit"]) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.625rem;
  min-height: 50px;
  max-width: 100%;
  padding: 0.95rem 1.75rem;
  border: 1.5px solid transparent;
  border-radius: var(--mdc-radius-pill);
  background: var(--mdc-lime);
  color: var(--mdc-green);
  box-shadow: none;
  font-family: "Archivo", sans-serif;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  line-height: 1.4;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  white-space: normal;
  cursor: pointer;
}

.woocommerce-account .woocommerce :is(.button, .woocommerce-button, .woocommerce-Button, button[type="submit"]):is(:hover, :focus-visible) {
  background: var(--mdc-cream);
  border-color: var(--mdc-border-strong);
  color: var(--mdc-green);
  transform: translateY(-1px);
}

.woocommerce-account .woocommerce :is(button, input):disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.woocommerce-account .woocommerce :is(.lost_password a, .woocommerce-Address .edit) {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
}

.woocommerce-account .woocommerce a:not(.button):not(.mdc-account-nav__link) {
  color: var(--mdc-green);
  text-underline-offset: 0.25em;
  text-decoration-thickness: 1px;
}

.woocommerce-account .woocommerce a:not(.button):not(.mdc-account-nav__link):hover {
  color: var(--mdc-green-deep);
  text-decoration-thickness: 2px;
}

.woocommerce-account .woocommerce :is(.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-password-strength) {
  margin: 0 0 1rem;
  padding: 1rem 1.125rem;
  border: 1px solid var(--mdc-border-soft);
  border-radius: 20px;
  background: rgba(var(--mdc-green-rgb), 0.08);
  color: var(--mdc-green);
  list-style: none;
}

.woocommerce-account .woocommerce .woocommerce-message {
  background: color-mix(in srgb, var(--mdc-lime) 28%, transparent);
  color: var(--mdc-green-deep);
}

.woocommerce-account .woocommerce :is(.woocommerce-message, .woocommerce-info, .woocommerce-error)::before {
  content: none;
}

.woocommerce-account .woocommerce :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) .button {
  margin: 0.5rem;
}

.woocommerce-account .woocommerce .password-input {
  position: relative;
  display: block;
}

.woocommerce-account .woocommerce .password-input input {
  padding-right: 58px;
}

.woocommerce-account .woocommerce .show-password-input {
  position: absolute;
  top: 3px;
  right: 3px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  min-height: 44px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--mdc-green);
  cursor: pointer;
}

/* The core eye glyph is supplied by WooCommerce's general CSS, dequeued here. */
.woocommerce-account .woocommerce .show-password-input::before {
  content: "";
  width: 20px;
  height: 12px;
  border: 1.5px solid currentColor;
  border-radius: 70% 20%;
  transform: rotate(45deg);
}

.woocommerce-account .woocommerce .show-password-input::after {
  content: "";
  position: absolute;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: currentColor;
}

.woocommerce-account .woocommerce .show-password-input.display-password {
  background: var(--mdc-panel);
}

.woocommerce-account .select2-container .select2-selection--single {
  height: auto;
}

.woocommerce-account .select2-container .select2-selection__rendered {
  padding: 0 1rem 0 0;
  color: var(--mdc-green);
  line-height: 1.4;
}

.woocommerce-account .select2-container .select2-selection__arrow {
  top: 50%;
  transform: translateY(-50%);
}

.woocommerce-account .select2-dropdown {
  border-color: var(--mdc-border-strong);
  border-radius: 0;
}

.woocommerce-account .select2-container--default .select2-results__option--highlighted[aria-selected] {
  background: var(--mdc-green);
  color: var(--mdc-cream);
}

.woocommerce-account .woocommerce .mdc-account-nav {
  float: none;
  width: 100%;
  margin-bottom: var(--mdc-section-pad-inline);
  padding: 1rem var(--mdc-section-pad-inline);
  border-radius: var(--mdc-radius-card);
  background: var(--mdc-green);
}

.woocommerce-account .mdc-account-nav ul {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1.75rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.woocommerce-account .mdc-account-nav__link {
  position: relative;
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0.5rem 0;
  color: var(--mdc-cream);
  font-family: "Archivo", sans-serif;
  font-size: var(--mdc-label-size);
  font-weight: 600;
  letter-spacing: 0.12em;
  text-decoration: none;
  text-transform: uppercase;
}

.woocommerce-account .mdc-account-nav__link::after {
  content: "";
  position: absolute;
  left: 0;
  right: 100%;
  bottom: 0.3rem;
  height: 1px;
  background: var(--mdc-lime);
}

.woocommerce-account .mdc-account-nav__link:is(:hover, :focus-visible, [aria-current="page"]) {
  color: var(--mdc-lime);
}

.woocommerce-account .woocommerce .mdc-account-nav__link:focus-visible {
  outline-color: var(--mdc-lime);
}

.woocommerce-account .mdc-account-nav__link:is(:hover, :focus-visible, [aria-current="page"])::after {
  right: 0;
}

.woocommerce-account .woocommerce .woocommerce-MyAccount-content {
  float: none;
  width: 100%;
  min-width: 0;
}

.woocommerce-account .mdc-account-welcome {
  font-size: clamp(1.125rem, 2vw, 1.5rem);
  line-height: 1.6;
}

.woocommerce-account .woocommerce :is(.woocommerce-Address-title, .woocommerce-customer-details) {
  margin-bottom: 1.5rem;
}

.woocommerce-account .woocommerce .woocommerce-Address-title h2 {
  margin-bottom: 0.5rem;
}

.woocommerce-account .woocommerce address {
  font-style: normal;
}

.woocommerce-account .woocommerce fieldset {
  min-width: 0;
  margin: 1.5rem 0;
  padding: 1.5rem 0 0;
  border: 0;
  border-top: 1px solid var(--mdc-border-soft);
}

.woocommerce-account .woocommerce :is(.woocommerce-privacy-policy-text, .woocommerce-password-hint, #account_display_name_description) {
  display: block;
  color: var(--mdc-text-soft);
  font-size: var(--mdc-small-size);
}

.woocommerce-account .woocommerce table.shop_table {
  width: 100%;
  margin: 0 0 1.5rem;
  border: 1px solid var(--mdc-border-soft);
  border-spacing: 0;
  border-radius: var(--mdc-radius-card);
  table-layout: fixed;
  overflow: hidden;
  background: #fff;
}

.woocommerce-account .woocommerce table.shop_table :is(th, td) {
  padding: 1rem 1.125rem;
  border: 0;
  border-bottom: 1px solid var(--mdc-border-soft);
  text-align: left;
  vertical-align: top;
}

.woocommerce-account .woocommerce table.shop_table th {
  font-family: "Archivo", sans-serif;
  font-size: var(--mdc-label-size);
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.woocommerce-account .woocommerce table.shop_table thead {
  background: var(--mdc-panel);
}

.woocommerce-account .woocommerce table.shop_table .button {
  min-height: 44px;
  margin: 0 0 0.5rem;
  padding: 0.75rem 1rem;
}

.woocommerce-account .woocommerce .mdc-account-status {
  display: inline-block;
  padding: 0.25rem 0.75rem;
  border-radius: var(--mdc-radius-pill);
  background: var(--mdc-panel);
  color: var(--mdc-green);
  font-size: var(--mdc-small-size);
}

.woocommerce-account :is(.woocommerce-orders-table__row--status-completed, .woocommerce-orders-table__row--status-processing) .mdc-account-status {
  background: var(--mdc-lime);
}

.woocommerce-account .woocommerce .woocommerce-pagination {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}

@media (max-width: 900px) {
  .woocommerce-account .woocommerce :is(.woocommerce-Addresses, .woocommerce-columns--addresses) {
    grid-template-columns: minmax(0, 1fr);
  }

  .woocommerce-account .mdc-account-nav ul {
    flex-direction: column;
    gap: 0.5rem;
  }

  .woocommerce-account .mdc-account-nav__link {
    width: 100%;
  }

  .woocommerce-account .woocommerce table.shop_table_responsive {
    display: block;
    border: 0;
    border-radius: 0;
    overflow: visible;
    background: transparent;
  }

  .woocommerce-account .woocommerce table.shop_table_responsive thead {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
  }

  .woocommerce-account .woocommerce table.shop_table_responsive tbody {
    display: block;
  }

  .woocommerce-account .woocommerce table.shop_table_responsive tr {
    display: block;
    margin-bottom: 1rem;
    padding: 1rem;
    border: 1px solid var(--mdc-border-soft);
    border-radius: var(--mdc-radius-card);
    background: #fff;
  }

  .woocommerce-account .woocommerce table.shop_table_responsive :is(td, th[scope="row"]) {
    display: block;
    padding: 0.75rem 0;
    text-align: left;
  }

  .woocommerce-account .woocommerce table.shop_table_responsive [data-title]::before {
    content: attr(data-title);
    display: block;
    margin-bottom: 0.5rem;
    font-family: "Archivo", sans-serif;
    font-size: var(--mdc-label-size);
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
  }

  .woocommerce-account .woocommerce table.shop_table_responsive tr > :last-child {
    border-bottom: 0;
  }
}

@media (prefers-reduced-motion: no-preference) {
  .woocommerce-account .mdc-account-nav__link { transition: color 180ms ease; }
  .woocommerce-account .mdc-account-nav__link::after { transition: right 220ms ease; }
}

@media (prefers-reduced-motion: reduce) {
  .woocommerce-account .woocommerce :is(.button, .mdc-btn, .woocommerce-button, .woocommerce-Button, input, select, textarea) {
    transition: none;
  }
}


/* Boss, 2026-09-14: removed the 1240px cap -- single product must stay full
   width like every other page. Padding/gap kept, just not the width limit. */
.single-product .mdc-shop-shell {
  padding: 32px 0 0;
}
.single-product .mdc-shop-shell > .mdc-container {
  padding: 0 40px;
  gap: 0;
}
.mdc-single-product {
  font-size: 15px;
  line-height: 1.65;
}
.mdc-single-product :is(h1, h2, h3, p, dl) { margin: 0; }
/* Boss, 2026-09-18: this blanket rule was winning over .mdc-btn--dark's own
   cream text colour (higher specificity: one class + one element beats one
   class alone), so "Nous contacter" rendered dark-green text on its own
   dark-green background -- invisible. Excluding .mdc-btn here fixes the
   actual conflict instead of re-patching every button variant that lives
   inside .mdc-single-product. */
.mdc-single-product a:not(.mdc-btn) { color: inherit; text-decoration: none; }
.mdc-single-product img { display: block; max-width: 100%; }
.mdc-single-product :is(.eyebrow, .tag, .gallery-foot > span:first-child, .choice-title, .size, .fact span, summary, .card-image > span, .card-line strong) {
  font-family: "Archivo", sans-serif;
}
.mdc-single-product .gallery-foot > span:first-child { text-transform: uppercase; }
.mdc-single-product :is(.info, .story, .accordion, .card) { min-width: 0; }
.mdc-single-product .sizes { flex-wrap: wrap; }
.mdc-single-product .size { padding: 0 10px; }
.mdc-single-product h1.product_title { text-wrap: initial; }
.mdc-single-product .section-title,
.mdc-single-product .card--editorial h3 { text-transform: none; text-wrap: initial; }
.mdc-single-product .accordion summary:focus-visible {
  outline:3px solid var(--mdc-green);
  outline-offset:5px;
}

.mdc-single-product .mdc-single-product__hero {
  display:grid;
  grid-template-columns:1.06fr 1fr;
  gap:68px;
  align-items:start;
  padding-bottom:66px;
}

.mdc-single-product .gallery {
  position:relative;
  background:var(--mdc-panel);
  border-radius:5px;
  min-width:0;
}

.mdc-single-product .image-stage {
  height:578px;
  display:grid;
  place-items:center;
  padding:48px 16px 30px;
  position:relative;
}

.mdc-single-product .image-stage>img {
  height:480px;
  width:480px;
  object-fit:contain;
  mix-blend-mode:multiply;
}

.mdc-single-product .tag {
  position:absolute;
  left:25px;
  top:24px;
  background:var(--mdc-cream);
  border-radius:30px;
  font-size:9px;
  letter-spacing:1.4px;
  text-transform:uppercase;
  padding:8px 13px;
}

.mdc-single-product .zoom {
  position:absolute;
  right:22px;
  bottom:24px;
  width:40px;
  height:40px;
  background:var(--mdc-cream);
  border:1px solid var(--mdc-border-soft);
  border-radius:50%;
  display:grid;
  place-items:center;
}

.mdc-single-product .zoom svg {
  width:18px;
}

.mdc-single-product .gallery-foot {
  display:flex;
  justify-content:space-between;
  border-top:1px solid var(--mdc-border-soft);
  margin:0 24px;
  padding:15px 0;
  font-size:10px;
  color:var(--mdc-text-muted);
}

.mdc-single-product .eyebrow {
  font-size:10px;
  letter-spacing:2px;
  text-transform:uppercase;
  font-weight:700;
}

.mdc-single-product .eyebrow .dot {
  display:inline-block;
  width:6px;
  height:6px;
  background:var(--mdc-green);
  border-radius:50%;
  margin:0 8px 2px 0;
}

.mdc-single-product .info {
  padding-top:6px;
}

.mdc-single-product h1.product_title {
  font-size:43px;
  letter-spacing:-1.9px;
  line-height:1.08;
  text-transform:uppercase;
  font-weight:800;
  margin:17px 0 9px;
}

.mdc-single-product .subtitle {
  color:var(--mdc-text-muted);
  font-size:14px;
}

.mdc-single-product .price-row {
  display:flex;
  align-items:baseline;
  gap:15px;
  margin:20px 0 18px;
}

.mdc-single-product .price {
  font-size:28px;
  letter-spacing:-1px;
}

.mdc-single-product .perlitre {
  font-size:11px;
  color:var(--mdc-text-muted);
}

.mdc-single-product .intro {
  font-size:14px;
  line-height:1.75;
  max-width:430px;
}

.mdc-single-product .choice {
  margin-top:26px;
  border-top:1px solid var(--mdc-border-soft);
  padding-top:20px;
}

.mdc-single-product .choice-title {
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-size:11px;
  margin-bottom:12px;
}

.mdc-single-product .choice-title span {
  color:var(--mdc-text-muted);
}

.mdc-single-product .sizes {
  display:flex;
  gap:8px;
}

.mdc-single-product .size {
  display:grid;
  place-items:center;
  min-width:69px;
  min-height:43px;
  border:1px solid var(--mdc-border-strong);
  border-radius:3px;
  font-size:12px;
  background:transparent;
}

.mdc-single-product .size.selected {
  background:var(--mdc-green);
  color:var(--mdc-cream);
  border-color:var(--mdc-green);
}

.mdc-single-product .size:hover {
  border-color:var(--mdc-green);
}

.mdc-single-product .help {
  display:block;
  font-size:11px;
  text-decoration:underline;
  text-underline-offset:3px;
  color:var(--mdc-text-muted);
}

.mdc-single-product .facts {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  border-top:1px solid var(--mdc-border-soft);
  margin-top:24px;
  padding-top:18px;
  gap:12px;
}

.mdc-single-product .fact span {
  display:block;
  font-size:9px;
  color:var(--mdc-text-muted);
  text-transform:uppercase;
  letter-spacing:1px;
}

.mdc-single-product .fact strong {
  font-size:12px;
  font-weight:500;
}

.mdc-single-product .detail-section {
  border-top:1px solid var(--mdc-border-soft);
  padding:53px 0 60px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:100px;
}

.mdc-single-product .section-title {
  font-size:30px;
  line-height:1.16;
  letter-spacing:-1px;
  margin:15px 0 20px;
}

.mdc-single-product .story p {
  font-size:14px;
  color:var(--mdc-text-soft);
  max-width:460px;
  margin-bottom:16px;
}

.mdc-single-product .usage {
  display:flex;
  gap:8px;
  margin-top:22px;
  flex-wrap:wrap;
}

.mdc-single-product .usage span {
  font-size:11px;
  border:1px solid var(--mdc-border-soft);
  padding:5px 13px;
  border-radius:30px;
}

.mdc-single-product .accordion details {
  border-bottom:1px solid var(--mdc-border-soft);
}

.mdc-single-product .accordion details:first-child {
  border-top:1px solid var(--mdc-border-soft);
}

.mdc-single-product .accordion summary {
  cursor:pointer;
  list-style:none;
  font-size:13px;
  font-weight:600;
  padding:19px 0;
  display:flex;
  justify-content:space-between;
  gap:20px;
}

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

.mdc-single-product .accordion summary:after {
  content:'+';
  font-size:18px;
  font-weight:400;
  line-height:1;
}

.mdc-single-product .accordion details[open] summary:after {
  content:'−';
}

.mdc-single-product .accordion p,
.mdc-single-product .accordion dl {
  font-size:12px;
  color:var(--mdc-text-soft);
  margin:0 0 20px;
  line-height:1.8;
}

.mdc-single-product .accordion dl div {
  display:flex;
  justify-content:space-between;
  gap:20px;
  padding:4px 0;
}

.mdc-single-product .accordion dt,
.mdc-single-product .accordion dd {
  margin:0;
}

.mdc-single-product .related {
  border-top:1px solid var(--mdc-border-soft);
  padding:52px 0 66px;
}

.mdc-single-product .section-head {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:24px;
  margin-bottom:26px;
}

.mdc-single-product .section-head .section-title {
  margin-bottom:0;
}

.mdc-single-product .textlink {
  font-size:11px;
  text-decoration:underline;
  text-underline-offset:5px;
  white-space:nowrap;
}

.mdc-single-product .cards {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}

.mdc-single-product .card-image {
  background:var(--mdc-panel);
  height:270px;
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
  border-radius:3px;
  overflow:hidden;
}

.mdc-single-product .card-image img {
  width:245px;
  height:245px;
  object-fit:contain;
  mix-blend-mode:multiply;
  transition:transform .3s;
}

.mdc-single-product .card:hover img {
  transform:scale(1.035);
}

.mdc-single-product .card-image span {
  position:absolute;
  top:18px;
  left:18px;
  font-size:9px;
  letter-spacing:1px;
}

.mdc-single-product .card-line {
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding-top:16px;
  font-size:14px;
}

.mdc-single-product .card p {
  font-size:11px;
  color:var(--mdc-text-muted);
  margin-top:3px;
}

.mdc-single-product .card-arrow {
  display:inline-block;
  margin-top:14px;
  font-size:11px;
  border-bottom:1px solid var(--mdc-green);
}
@media (min-width:1450px) {
/* Boss, 2026-09-14: the single-product page must stay full width like every
   other page on the site -- this cap (added when the page was rebuilt
   earlier today) was the only place any page artificially stopped growing
   on a wide screen. Removed; the rest of this breakpoint's larger gap/image
   sizing is unrelated and stays. */
.mdc-single-product .mdc-single-product__hero {
  gap:90px;
}

.mdc-single-product .image-stage {
  height:600px;
}

.mdc-single-product .image-stage>img {
  height:500px;
  width:500px;
}
}

@media (max-width:1000px) {
.single-product .mdc-shop-shell > .mdc-container { padding: 0 28px; }
.mdc-single-product .mdc-single-product__hero {
  gap:36px;
}

.mdc-single-product .image-stage {
  height:550px;
}

.mdc-single-product .image-stage>img {
  height:440px;
  width:440px;
}

.mdc-single-product h1.product_title {
  font-size:36px;
}

.mdc-single-product .detail-section {
  gap:50px;
}

.mdc-single-product .size {
  min-width:59px;
}
}

@media (max-width:740px) {
.single-product .mdc-shop-shell { padding-top: 20px; }
.single-product .mdc-shop-shell > .mdc-container { padding: 0 20px; }
.mdc-single-product .mdc-single-product__hero {
  grid-template-columns:1fr;
  gap:28px;
  padding-bottom:38px;
}

.mdc-single-product .image-stage {
  height:355px;
  padding:20px 5px 10px;
}

.mdc-single-product .image-stage>img {
  height:330px;
  width:330px;
}

.mdc-single-product .tag {
  top:17px;
  left:17px;
  font-size:8px;
}

.mdc-single-product .gallery-foot {
  margin:0 18px;
  padding:11px 0;
  font-size:9px;
}

.mdc-single-product .zoom {
  right:15px;
  bottom:14px;
  width:34px;
  height:34px;
}

.mdc-single-product .info {
  padding:0;
}

.mdc-single-product h1.product_title {
  font-size:37px;
  margin:13px 0 9px;
  max-width:370px;
}

.mdc-single-product .price-row {
  margin:16px 0;
}

.mdc-single-product .intro {
  font-size:14px;
}

.mdc-single-product .choice {
  margin-top:22px;
}

.mdc-single-product .sizes {
  gap:9px;
}

.mdc-single-product .size {
  min-width:64px;
}

.mdc-single-product .detail-section {
  grid-template-columns:1fr;
  gap:28px;
  padding:34px 0 40px;
}

.mdc-single-product .section-title {
  font-size:27px;
}

.mdc-single-product .related {
  padding:34px 0 40px;
}

.mdc-single-product .section-head {
  align-items:start;
  flex-direction:column;
  gap:16px;
}

.mdc-single-product .cards {
  grid-template-columns:repeat(2,1fr);
  gap:20px 12px;
}

.mdc-single-product .card--editorial {
  display:none;
}

.mdc-single-product .card-image {
  height:210px;
}

.mdc-single-product .card-image img {
  width:200px;
  height:200px;
}

.mdc-single-product .card-image span {
  top:12px;
  left:12px;
  font-size:8px;
}

.mdc-single-product .card-line {
  font-size:12px;
  flex-direction:column;
  gap:2px;
}

.mdc-single-product .card p {
  font-size:10px;
}

.mdc-single-product .section-head .textlink {
  font-size:11px;
}
}

/* The purchase area contains WooCommerce's native form and quantity template. */
.mdc-single-product .purchase { margin: 22px 0 12px; }
.mdc-single-product .purchase form.cart {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  margin: 0;
}
.mdc-single-product .quantity[data-quantity-control] {
  height: 52px;
  min-height: 0;
  gap: 0;
  padding: 0;
  border: 1px solid var(--mdc-border-strong);
  border-radius: 3px;
  background: transparent;
}
.woocommerce .mdc-single-product .quantity input.qty {
  width: 37px;
  height: 48px;
  min-height: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  appearance: textfield;
  font-size: 15px;
}
.mdc-single-product .quantity .mdc-quantity__button {
  width: 34px;
  height: 48px;
  min-height: 0;
  background: transparent;
  color: var(--mdc-green);
  font-size: 18px;
  border-radius: 0;
}
.woocommerce .mdc-single-product .single_add_to_cart_button {
  display: flex;
  flex: 1;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 52px;
  padding: 0 16px;
  border: 0;
  border-radius: 3px;
  background: var(--mdc-lime);
  color: var(--mdc-green);
  font-family: "Archivo", sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: none;
  box-shadow: none;
}
.mdc-single-product .single_add_to_cart_button::after { content: '↗'; }
.woocommerce .mdc-single-product .single_add_to_cart_button:hover { background: var(--mdc-lime); filter: brightness(.95); }
.mdc-single-product .intro p + p { margin-top: 12px; }
.woocommerce .mdc-single-product .related { margin-top: 0; }
.mdc-single-product .price { color: var(--mdc-green); font-weight: 700; }
.mdc-single-product .price ins { text-decoration: none; }
.mdc-single-product .price del { color: var(--mdc-text-muted); font-size: .7em; }
.mdc-single-product .accordion dd { text-align: right; }
.mdc-single-product .accordion a { text-decoration: underline; text-underline-offset: 3px; }
.mdc-single-product #questions { scroll-margin-top: 120px; }
.mdc-single-product .card--editorial .card-image { background: var(--mdc-lime); padding: 32px; justify-content: flex-start; }
.mdc-single-product .card--editorial h3 { font-size: 34px; line-height: 1.1; letter-spacing: -1px; margin: 18px 0; }
.mdc-single-product .card--editorial .editorial-arrow { position: static; font-size: 25px; }
.mdc-single-product .product-zoom-dialog {
  position: fixed;
  margin: auto;
  inset: 0;
  border: 0;
  padding: 30px;
  border-radius: 8px;
  max-width: 90vw;
  max-height: 90vh;
  background: var(--mdc-cream);
  color: var(--mdc-green);
}
.mdc-single-product .product-zoom-dialog::backdrop { background: rgba(var(--mdc-green-rgb), .75); }
.mdc-single-product .product-zoom-dialog img { height: min(74vh, 650px); width: auto; max-width: 100%; object-fit: contain; margin: auto; }
.mdc-single-product .product-zoom-dialog button { position: absolute; right: 12px; top: 12px; border: 0; border-radius: 50%; width: 35px; height: 35px; background: var(--mdc-panel); color: var(--mdc-green); font-size: 20px; cursor: pointer; }
@media (prefers-reduced-motion: reduce) {
  .mdc-single-product * { transition: none !important; }
}

.mdc-catalog__contact { display: inline-flex; align-items: center; min-height: 44px; text-decoration: underline; text-underline-offset: 4px; }
