/* Loop badges over the photo: compact, two independent columns (left/right). Single product keeps theme layout. */
.woocommerce .product-badges:not(.entry-product-badges) {
  top: 8px;
  left: 4px;
  right: 4px;
  display: grid;
  grid-template-columns: auto auto;
  grid-auto-flow: row dense;
  justify-content: space-between;
  align-items: start;
  gap: 2px 8px;
  pointer-events: none;
  --p-badge-round: 10px;
  --p-badge-v-padding: 3px;
  --p-badge-h-padding: 7px;
}

.woocommerce .product-badges:not(.entry-product-badges) > div {
  grid-column: 1;
  justify-self: start;
  margin: 0;
  min-width: 0;
  /* Caps-only text sits high in the line box; nudge to optical center (fallback). */
  padding-top: calc(var(--p-badge-v-padding) + 1px);
  padding-bottom: calc(var(--p-badge-v-padding) - 1px);
}

.woocommerce .product-badges:not(.entry-product-badges) > .cf-badge-right {
  grid-column: 2;
  justify-self: end;
}

.woocommerce .product-badges:not(.entry-product-badges) > div > span {
  font-size: 11px;
  line-height: 14px;
  letter-spacing: 0.02em;
}

.woocommerce .product-badges:not(.entry-product-badges) > div.has-icon {
  padding-left: 20px;
}

.woocommerce .product-badges:not(.entry-product-badges) > div:before {
  top: 4px;
  left: 7px;
  font-size: 10px;
}

/* Single product: theme layout and size, only re-centered (fallback nudge). */
.single-product .entry-product-badges > div {
  padding-top: calc(var(--p-badge-v-padding) + 1px);
  padding-bottom: calc(var(--p-badge-v-padding) - 1px);
}

/* Exact centering: trim the line box to cap height; whole-pixel height keeps stacked badges from rounding differently. */
@supports (text-box: trim-both cap alphabetic) {
  .single-product .entry-product-badges > div {
    height: 32px;
    padding-top: 0;
    padding-bottom: 0;
  }

  .single-product .entry-product-badges > div > span {
    text-box: trim-both cap alphabetic;
  }

  .woocommerce .product-badges:not(.entry-product-badges) > div {
    height: var(--cf-badge-height, 18px);
    padding-top: 0;
    padding-bottom: 0;
  }

  .woocommerce .product-badges:not(.entry-product-badges) > div > span {
    text-box: trim-both cap alphabetic;
  }
}

@media (max-width: 767px) {
  .woocommerce .product-badges:not(.entry-product-badges) {
    top: 6px;
    left: 2px;
    right: 2px;
    gap: 2px 6px;
    --p-badge-v-padding: 2px;
    --p-badge-h-padding: 5px;
    --cf-badge-height: 16px;
  }

  .woocommerce .product-badges:not(.entry-product-badges) > div > span {
    font-size: 10px;
    line-height: 13px;
  }
}
