/*
 * Müller & Sohn — WooCommerce design system
 * Covers classic templates, WooCommerce Blocks and Germanized.
 */

body.woocommerce-page,
body.woocommerce-page button,
body.woocommerce-page input,
body.woocommerce-page select,
body.woocommerce-page textarea,
.wp-block-woocommerce-coming-soon,
.wp-block-woocommerce-coming-soon * {
  font-family: var(--ms-font) !important;
}

.woocommerce-page .entry-content {
  width: 100%;
  max-width: none;
}

.woocommerce-page .entry-content > .wp-block-woocommerce-cart,
.woocommerce-page .entry-content > .wp-block-woocommerce-checkout,
.woocommerce-page .entry-content > .woocommerce,
.woocommerce-page .entry-content > [class*="wp-block-woocommerce"] {
  width: min(100%, 1200px);
  max-width: 1200px;
}

/* Store and archive */
.ms-shop,
.woocommerce.ms-shop {
  padding-block: 46px 110px;
}

.woocommerce-products-header {
  display: grid;
  grid-template-columns: 170px minmax(0, 1fr);
  gap: 28px;
  align-items: end;
  margin-bottom: 38px;
  padding-bottom: 32px;
  border-bottom: 1px solid var(--ms-line);
}

.woocommerce-products-header::before {
  content: "Label";
  color: var(--ms-muted);
  font-size: 12px;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.woocommerce-products-header__title.page-title {
  margin: 0;
  font-family: var(--ms-font-light);
  font-size: clamp(40px, 5vw, 76px);
  font-weight: 400;
  line-height: 1;
  letter-spacing: -.02em;
}

.woocommerce .woocommerce-breadcrumb {
  margin-bottom: 30px;
  color: var(--ms-muted);
  font-size: 11px;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering {
  margin-bottom: 34px;
  color: var(--ms-muted);
  font-size: 12px;
}

.woocommerce .woocommerce-ordering select {
  min-height: 42px;
  padding: 8px 34px 8px 12px;
  border: 1px solid var(--ms-line);
  border-radius: 0;
  background: transparent;
  color: var(--ms-text);
}

.woocommerce ul.products,
.wc-block-grid__products,
.wc-block-product-template {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 58px 28px !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none;
}

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

.woocommerce ul.products li.product,
.wc-block-grid__product,
.wc-block-product {
  float: none !important;
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  text-align: left !important;
}

.woocommerce ul.products li.product a img,
.wc-block-grid__product-image img,
.wc-block-components-product-image img {
  width: 100%;
  margin: 0 0 15px !important;
  background: transparent;
  object-fit: contain;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title,
.wc-block-grid__product-title,
.wc-block-components-product-name,
.wc-block-components-product-name a {
  margin: 0 !important;
  padding: 12px 0 0 !important;
  border-top: 1px solid var(--ms-line);
  color: var(--ms-text) !important;
  font-family: var(--ms-font-medium) !important;
  font-size: 18px !important;
  font-weight: 400 !important;
  line-height: 1.25;
  text-decoration: none !important;
}

.woocommerce ul.products li.product .price,
.wc-block-grid__product-price,
.wc-block-components-product-price,
.wc-block-components-product-price__value {
  margin-top: 7px;
  color: var(--ms-text) !important;
  font-size: 14px !important;
  font-weight: 400 !important;
}

.woocommerce span.onsale,
.wc-block-grid__product-onsale,
.wc-block-components-product-sale-badge {
  min-width: 0 !important;
  min-height: 0 !important;
  padding: 8px 10px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: var(--ms-red) !important;
  color: #fff !important;
  font-size: 10px !important;
  font-weight: 400 !important;
  line-height: 1 !important;
  letter-spacing: .08em;
  text-transform: uppercase;
}

/* Buttons */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.wc-block-components-button,
body.woocommerce-page .wp-element-button,
.wp-block-woocommerce-coming-soon .wp-element-button,
.wc-block-grid__product-add-to-cart .wp-block-button__link {
  min-height: 44px;
  padding: 11px 16px !important;
  border: 1px solid var(--ms-text) !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: var(--ms-text) !important;
  font-family: var(--ms-font-medium) !important;
  font-size: 11px !important;
  font-weight: 400 !important;
  line-height: 1.2 !important;
  letter-spacing: .08em;
  text-decoration: none !important;
  text-transform: uppercase;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.wc-block-components-button:hover,
body.woocommerce-page .wp-element-button:hover,
.wp-block-woocommerce-coming-soon .wp-element-button:hover,
.wc-block-grid__product-add-to-cart .wp-block-button__link:hover {
  border-color: var(--ms-text) !important;
  background: var(--ms-text) !important;
  color: #fff !important;
}

.woocommerce button.single_add_to_cart_button,
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button {
  border-color: var(--ms-red) !important;
  background: var(--ms-red) !important;
  color: #fff !important;
}

.woocommerce button.single_add_to_cart_button:hover,
.wc-block-cart__submit-button:hover,
.wc-block-components-checkout-place-order-button:hover {
  border-color: var(--ms-text) !important;
  background: var(--ms-text) !important;
}

/* Single product */
.woocommerce div.product {
  padding-block: 48px 110px;
}

.woocommerce div.product div.images,
.woocommerce div.product div.summary {
  margin-bottom: 0;
}

.woocommerce div.product .product_title {
  margin: 0 0 20px;
  font-family: var(--ms-font-light);
  font-size: clamp(38px, 5vw, 70px);
  font-weight: 400;
  line-height: 1.02;
  letter-spacing: -.02em;
}

.woocommerce div.product p.price,
.woocommerce div.product span.price {
  color: var(--ms-text);
  font-size: 20px;
}

.woocommerce-product-details__short-description {
  max-width: 620px;
  color: #3f3f3a;
}

.woocommerce div.product form.cart {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 30px;
}

.woocommerce .quantity .qty {
  min-height: 44px;
  border: 1px solid var(--ms-line);
  border-radius: 0;
  background: var(--ms-paper);
}

.woocommerce div.product .woocommerce-tabs {
  padding-top: 64px;
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
  margin: 0 !important;
  padding: 0 !important;
  border-bottom: 1px solid var(--ms-line);
}

.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 !important;
}

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

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
  padding: 12px 0 !important;
  font-size: 11px;
  font-weight: 400 !important;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.woocommerce div.product .woocommerce-tabs .panel {
  max-width: var(--ms-copy);
  padding-top: 26px;
}

.woocommerce div.product .related.products,
.woocommerce div.product .up-sells.products {
  clear: both;
  padding-top: 72px;
}

.woocommerce div.product .related.products > h2,
.woocommerce div.product .up-sells.products > h2 {
  padding-top: 24px;
  border-top: 1px solid var(--ms-line);
  font-family: var(--ms-font-light);
  font-size: clamp(28px, 3vw, 42px);
  font-weight: 400;
}

/* Forms, cart, checkout and account */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form select,
.select2-container--default .select2-selection--single,
.wc-block-components-text-input input,
.wc-block-components-combobox .wc-block-components-combobox-control input,
.wc-block-components-address-form__country .wc-blocks-components-select__select {
  min-height: 48px !important;
  padding: 11px 13px !important;
  border: 1px solid var(--ms-line) !important;
  border-radius: 0 !important;
  background: var(--ms-paper) !important;
  box-shadow: none !important;
  color: var(--ms-text) !important;
}

.woocommerce form .form-row textarea {
  min-height: 140px !important;
}

.woocommerce form.checkout_coupon,
.woocommerce form.login,
.woocommerce form.register,
.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content,
.wc-block-components-sidebar,
.wc-block-components-totals-wrapper,
.wc-block-checkout__order-notes,
.wc-block-checkout__terms {
  border: 1px solid var(--ms-line) !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.woocommerce table.shop_table,
.wc-block-cart-items,
.wc-block-components-totals-item {
  border-color: var(--ms-line) !important;
  border-radius: 0 !important;
}

.woocommerce table.shop_table th,
.woocommerce table.shop_table td,
.wc-block-cart-items th,
.wc-block-cart-items td {
  border-color: var(--ms-line) !important;
}

.woocommerce-cart .cart-collaterals .cart_totals,
.woocommerce-checkout #order_review,
.woocommerce-checkout #order_review_heading {
  width: 100%;
  max-width: 620px;
}

.woocommerce-MyAccount-navigation ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.woocommerce-MyAccount-navigation li {
  border-bottom: 1px solid var(--ms-line);
}

.woocommerce-MyAccount-navigation li:last-child {
  border-bottom: 0;
}

.woocommerce-MyAccount-navigation a {
  display: block;
  padding: 12px 14px;
  text-decoration: none;
}

.woocommerce-MyAccount-navigation .is-active a {
  color: var(--ms-red);
}

.woocommerce-error,
.woocommerce-info,
.woocommerce-message,
.wc-block-components-notice-banner {
  border: 1px solid var(--ms-line) !important;
  border-top: 3px solid var(--ms-red) !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: var(--ms-text) !important;
}

/* WooCommerce Germanized */
.wc-gzd-additional-info,
.wc-gzd-product-name-left,
.product-units-wrapper,
.legal-price-info,
.delivery-time-info {
  color: var(--ms-muted) !important;
  font-size: 12px !important;
  line-height: 1.45;
}

.wc-gzd-checkbox-placeholder,
.woocommerce-checkout .legal {
  font-size: 13px;
}

/* WooCommerce's store-coming-soon block */
.wp-block-woocommerce-coming-soon.woocommerce-coming-soon-store-only {
  display: grid;
  min-height: 62vh;
  place-items: center;
  padding: 90px 32px;
  background: var(--ms-bg) !important;
  color: var(--ms-text) !important;
}

.wp-block-woocommerce-coming-soon .wp-block-group {
  width: min(100%, 900px);
  gap: 22px !important;
  margin: 0 auto;
  padding: 54px 0;
  border-block: 1px solid var(--ms-line);
}

.wp-block-woocommerce-coming-soon .wp-block-spacer {
  display: none;
}

.wp-block-woocommerce-coming-soon h1,
.wp-block-woocommerce-coming-soon .has-cardo-font-family {
  margin: 0 !important;
  font-family: var(--ms-font-light) !important;
  font-size: clamp(42px, 6vw, 82px) !important;
  font-weight: 400 !important;
  line-height: 1 !important;
  letter-spacing: -.025em;
}

.wp-block-woocommerce-coming-soon p,
.wp-block-woocommerce-coming-soon .has-inter-font-family {
  max-width: 620px;
  margin: 0 auto !important;
  color: var(--ms-muted) !important;
  font-family: var(--ms-font) !important;
  font-size: 17px !important;
}

@media (max-width: 960px) {
  .woocommerce-products-header {
    grid-template-columns: 120px minmax(0, 1fr);
  }

  .woocommerce ul.products,
  .wc-block-grid__products,
  .wc-block-product-template {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 640px) {
  .ms-shop,
  .woocommerce.ms-shop,
  .woocommerce div.product {
    padding-block: 34px 76px;
  }

  .woocommerce-products-header {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .woocommerce ul.products,
  .wc-block-grid__products,
  .wc-block-product-template {
    grid-template-columns: 1fr !important;
    gap: 46px !important;
  }

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

  .woocommerce-account .woocommerce-MyAccount-navigation,
  .woocommerce-account .woocommerce-MyAccount-content {
    float: none;
    width: 100%;
    margin-bottom: 28px;
  }

  .wp-block-woocommerce-coming-soon.woocommerce-coming-soon-store-only {
    min-height: 56vh;
    padding: 62px 20px;
  }
}
