/* CNF offer typography 1.0.0. Presentation only: no content or price writes.
   Deliberately scoped: brand/hero/navigation, checkout and cart are unchanged. */
.single-product,
.product-tile {
  --cnf-offer-font: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

.single-product .section-1__content .row-2 > .col-2 :is(h1, h2, h3, p, span, select, button, td, th, label),
.single-product .cnf-model-photo-caption,
.product-tile :is(h3, p, span, button, select) {
  font-family: var(--cnf-offer-font) !important;
  font-style: normal !important;
  letter-spacing: normal !important;
}

.single-product .section-1__content .section-heading h1 {
  font-size: clamp(26px, 2.1vw, 32px) !important;
  font-weight: 650 !important;
  line-height: 1.25 !important;
  letter-spacing: -0.015em !important;
  color: #161c22 !important;
  overflow-wrap: break-word;
  text-wrap: balance;
  margin: 0;
}

.single-product .section-1__content .row-2 > .col-2 .desc :is(p, span, a, li) {
  font-family: var(--cnf-offer-font) !important;
  font-size: 15px;
  line-height: 1.5;
  font-weight: 400;
}

.single-product .section-1__content .row-2 > .col-2 .desc--gray :is(p, span, a, li),
.single-product .section-1__content .row-2 > .col-2 .heading-table :is(p, h2, h3) {
  color: #545e68 !important;
}

.single-product .section-1__content .row-2 > .col-2 .heading-table :is(p, h2, h3) {
  font-size: 16px !important;
  font-weight: 600 !important;
  line-height: 1.4 !important;
}

.single-product .product-buy-box .price__lowest,
.single-product .product-buy-box .price__lowest p,
.single-product .product-buy-box .price__lowest span {
  font-size: 14px !important;
  line-height: 1.5 !important;
  font-weight: 400 !important;
  color: #545e68 !important;
}

.single-product .product-buy-box .price-catalog,
.product-tile .price-catalog {
  display: flex !important;
  flex-wrap: wrap;
  align-items: baseline !important;
  column-gap: 4px;
  row-gap: 2px;
}

.single-product .product-buy-box .price-catalog__title p,
.single-product .product-buy-box .price-catalog__currency,
.product-tile .price-catalog__currency {
  font-size: 14px !important;
  line-height: 1.5 !important;
  color: #545e68 !important;
}

.single-product .product-buy-box .price,
.product-tile .price {
  align-items: baseline !important;
  flex-wrap: nowrap;
  gap: 6px;
}

.single-product .product-buy-box .price__value,
.product-tile .price__value,
.single-product .product-buy-box .price-catalog__value,
.product-tile .price-catalog__value {
  display: inline-flex !important;
  align-items: baseline !important;
  gap: 0 !important;
  font-family: var(--cnf-offer-font) !important;
  font-style: normal !important;
  letter-spacing: normal !important;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.single-product .product-buy-box .price__value {
  font-size: 32px !important;
  line-height: 1.15 !important;
  font-weight: 700 !important;
  color: #161c22 !important;
}

.single-product .product-buy-box .price-catalog__value,
.product-tile .price-catalog__value {
  font-size: 15px !important;
  line-height: 1.5 !important;
  font-weight: 600 !important;
  color: #545e68 !important;
}

.single-product .product-buy-box :is(.price__sup, .price-catalog__sup),
.product-tile :is(.price__sup, .price-catalog__sup) {
  position: static !important;
  top: auto !important;
  font-family: inherit !important;
  font-size: 1em !important;
  font-weight: inherit !important;
  line-height: inherit !important;
  color: inherit !important;
  vertical-align: baseline !important;
  letter-spacing: normal !important;
}

/* Existing theme emits integer + two-decimal <sup>, with no decimal separator.
   Only add the Polish separator to those exact legacy classes. WooCommerce
   amounts used by Omnibus are NOT matched, so their comma is not duplicated. */
.single-product .product-buy-box :is(.price__sup, .price-catalog__sup)::before,
.product-tile :is(.price__sup, .price-catalog__sup)::before {
  content: ",";
}

.single-product .product-buy-box .price__currency,
.product-tile .price__currency {
  font-family: var(--cnf-offer-font) !important;
  font-size: 14px !important;
  line-height: 1.5 !important;
  font-weight: 400 !important;
  color: #545e68 !important;
  white-space: nowrap;
}

.single-product .product-buy-box .stock-info {
  font-weight: 600 !important;
  color: #161c22 !important;
}

.single-product .product-buy-box :is(.single_add_to_cart_button, select) {
  font-size: 15px !important;
  font-weight: 600 !important;
  line-height: 1.4 !important;
}

.single-product .cnf-model-photo-caption {
  font-size: 13px !important;
  line-height: 1.5 !important;
  color: #545e68 !important;
}

.product-tile .title :is(h3, p) {
  font-size: 17px !important;
  line-height: 1.4 !important;
  font-weight: 600 !important;
  letter-spacing: -0.01em !important;
  overflow-wrap: break-word;
}

.product-tile .producent p {
  font-size: 12px !important;
  font-weight: 500 !important;
  line-height: 1.5 !important;
  letter-spacing: 0.04em !important;
  color: #545e68 !important;
}

.product-tile .price__value {
  font-size: 26px !important;
  line-height: 1.2 !important;
  font-weight: 700 !important;
  color: #161c22 !important;
}

@media (max-width: 600px) {
  .single-product .section-1__content .section-heading h1 {
    font-size: 24px !important;
    line-height: 1.3 !important;
  }
  .single-product .product-buy-box .price__value {
    font-size: 28px !important;
  }
  .product-tile .title :is(h3, p) {
    font-size: 16px !important;
  }
  .product-tile .price__value {
    font-size: 24px !important;
  }
}
