/* Cloud Heaven desktop layout: >= 1180px */

:root {
  --ch-content-width: 1240px;
  --ch-gutter: 32px;
  --ch-section-space: 84px;
  --ch-grid-gap: 28px;
  --ch-product-media-max: 650px;
  --ch-product-summary-max: 500px;
  --ch-product-gap: 42px;
}

body.woocommerce-page .ch-theme-wc-page,
body.single-product .ch-theme-wc-page {
  width: min(var(--ch-content-width), calc(100% - (var(--ch-gutter) * 2)));
}

body.woocommerce-shop .ch-theme-catalog-page,
body.tax-product_cat .ch-theme-catalog-page,
body.tax-product_tag .ch-theme-catalog-page,
body.search-results.woocommerce .ch-theme-catalog-page {
  width: min(var(--page-width), calc(100% - 40px));
}

body.woocommerce-shop .ch-theme-wc-page,
body.tax-product_cat .ch-theme-wc-page,
body.tax-product_tag .ch-theme-wc-page {
  padding-block: 48px var(--ch-section-space);
}

.cloud-heaven-catalog-section {
  padding-inline: 0;
}

body.woocommerce-shop .woocommerce ul.products,
body.tax-product_cat .woocommerce ul.products,
body.tax-product_tag .woocommerce ul.products,
body.search-results.woocommerce .woocommerce ul.products,
.woocommerce ul.products.cloud-heaven-catalog-grid,
.cloud-heaven-catalog-grid {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  justify-content: center;
  gap: 32px;
}

body.woocommerce-shop .woocommerce ul.products > li.product,
body.tax-product_cat .woocommerce ul.products > li.product,
body.tax-product_tag .woocommerce ul.products > li.product,
body.search-results.woocommerce .woocommerce ul.products > li.product,
.cloud-heaven-catalog-grid > .product-card {
  flex: 1 1 220px;
  max-width: 328px;
  height: auto;
}

.product-card .product-card-variations {
  min-height: 0;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  justify-content: stretch;
}

.product-card .product-card-variation {
  width: 100%;
  min-width: 0;
  padding-inline: 4px;
  white-space: nowrap;
}

.product-card--unavailable .product-card-body,
.product-card--coming-soon .product-card-body {
  grid-template-rows:
    minmax(var(--ch-product-card-title-min), auto)
    minmax(var(--ch-product-card-action-min), 1fr);
}

.product-card--unavailable .product-card-status,
.product-card--coming-soon .product-card-status {
  display: none;
}

.product-card--unavailable .product-card-actions,
.product-card--coming-soon .product-card-actions {
  grid-row: 2;
}

.product-card--unavailable .product-card-actions .button[disabled],
.product-card--unavailable .product-card-actions .button:disabled,
.product-card--unavailable .product-card-actions .button[disabled]:hover,
.product-card--unavailable .product-card-actions .button:disabled:hover {
  opacity: 1;
  background: var(--color-accent);
  color: var(--color-white);
  cursor: default;
  transform: none;
}

body.home .hero-brand-panel {
  align-self: center;
  gap: 0;
  padding: 20px 22px 22px;
  transform: translateY(-18px);
}

body.home .hero-panel-kicker {
  margin-bottom: 11px;
}

body.home .hero-panel-title {
  margin-bottom: 19px;
}

body.single-product .ch-theme-wc-page {
  padding-block: 44px 88px;
}

body.single-product .woocommerce div.product {
  width: 100%;
  max-width: none;
  grid-template-columns: minmax(0, var(--ch-product-media-max)) minmax(420px, var(--ch-product-summary-max));
  column-gap: var(--ch-product-gap);
  row-gap: 0;
  justify-content: center;
  align-items: start;
  padding: 0;
}

body.single-product .woocommerce div.product div.images {
  width: 100%;
  max-width: var(--ch-product-media-max);
  justify-self: end;
}

body.single-product .woocommerce div.product div.summary {
  width: 100%;
  max-width: var(--ch-product-summary-max);
  justify-self: start;
  padding: 28px 30px;
}

body.single-product .woocommerce div.product .product_title {
  max-width: 15ch;
  margin-bottom: 18px;
  font-size: clamp(36px, 3vw, 48px);
  line-height: 0.98;
}

body.single-product .woocommerce div.product .woocommerce-product-details__short-description {
  font-size: 15px;
  line-height: 1.58;
}

body.single-product .cloud-heaven-single-order__options {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

body.single-product .woocommerce div.product form.cart .woocommerce-variation-add-to-cart,
body.single-product .woocommerce div.product form.cart:not(.variations_form) {
  grid-template-columns: 112px minmax(0, 1fr);
  gap: 12px;
}

body.single-product .woocommerce div.product form.cart .quantity {
  width: 112px;
}

body.single-product .woocommerce div.product .woocommerce-tabs {
  margin-top: 54px;
}

body.single-product .woocommerce :is(.related.products, .upsells.products) {
  width: min(1180px, 100%);
  margin-top: 64px;
  margin-inline: auto;
  padding-top: 40px;
  justify-self: center;
}

body.single-product .woocommerce :is(.related.products, .upsells.products) > h2 {
  margin: 0 0 34px;
  font-size: clamp(34px, 2.8vw, 42px);
  line-height: 1;
  text-align: center !important;
}

body.single-product .woocommerce :is(.related.products, .upsells.products) ul.products {
  width: min(1180px, 100%);
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
  justify-content: center;
  gap: 30px;
}

body.single-product .woocommerce :is(.related.products, .upsells.products) .product-card-body {
  padding: 22px;
}

body.single-product .woocommerce :is(.related.products, .upsells.products) .product-card h3 {
  font-size: 17px;
  line-height: 1.18;
}

body.single-product .woocommerce :is(.related.products, .upsells.products) .product-card .price {
  font-size: 22px;
}
