/* Typography for the product type, specifications, add-ons and installation choices.
 * catalog-product.js marks their existing nodes with ep-catalog-flow-item.
 * Payment controls stay excluded, even when reparented inside a choice section.
 * Keep layout, totals, form handlers and PDF behavior unchanged. */
body#page_product_detail .ec-productRole__profile :is(
  .rp-card__name,
  .rp-btn,
  .opt-btn,
  .opt-btn__name,
  .ep-addon__n,
  .ep-addon__rowmain,
  .rp-section-label > span,
  #tg-options .tg-face-tab-title,
  #tg-options .tg-face-tab-spec,
  #tg-options .tg-face-tab-prompt,
  #tg-options .tg-face-active-name,
  #tg-options .tg-face-option .opt-btn__name,
  .ec-choiceSectionHeading h3,
  .ep-catalog-section-head h3,
  .rp-section-label,
  .ep-addon__partname,
  .ec-choiceSectionHeading > p,
  .ep-catalog-section-head > p,
  .rp-card__caption-detail,
  .opt-comment,
  .opt-survey-note,
  .ep-addon__s,
  .ep-addon__p,
  .ep-addon__hint,
  .ep-addon__notice,
  .ep-addon__inc,
  .ep-addon__d,
  .ep-addon__selects label,
  #tg-options .tg-face-tab-count,
  #tg-options .tg-diff,
  .rp-select,
  .form-group select,
  .form-group input[type="number"],
  .ep-addon__selects select
):where(.ep-catalog-flow-item, .ep-catalog-flow-item *):not(.ep-paySel, .ep-paySel *) {
  font-family: "Yu Gothic", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
}

/* Keep the heading hierarchy and stable metrics before/after selection. */
body#page_product_detail .ec-productRole__profile :is(
  .ec-choiceSectionHeading h3,
  .ep-catalog-section-head h3
):where(.ep-catalog-flow-item, .ep-catalog-flow-item *):not(.ep-paySel, .ep-paySel *) {
  font-size: 17px;
  font-weight: 700;
  line-height: 1.5;
}
body#page_product_detail .ec-productRole__profile :is(
  .rp-section-label,
  .ep-addon__partname
):where(.ep-catalog-flow-item, .ep-catalog-flow-item *):not(.ep-paySel, .ep-paySel *) {
  font-size: 13px;
  font-weight: 700;
  line-height: 1.5;
}
body#page_product_detail .ec-productRole__profile :is(
  .rp-card__name,
  .rp-btn,
  .opt-btn,
  .opt-btn__name,
  .ep-addon__n,
  .ep-addon__rowmain,
  .rp-section-label > span,
  #tg-options .tg-face-tab-title,
  #tg-options .tg-face-tab-spec,
  #tg-options .tg-face-tab-prompt,
  #tg-options .tg-face-active-name,
  #tg-options .tg-face-option .opt-btn__name
):where(.ep-catalog-flow-item, .ep-catalog-flow-item *):not(.ep-paySel, .ep-paySel *) {
  font-size: 13px;
  font-weight: 400;
  line-height: 1.5;
  white-space: normal;
  overflow-wrap: anywhere;
}
body#page_product_detail .ec-productRole__profile :is(
  .ec-choiceSectionHeading > p,
  .ep-catalog-section-head > p,
  .rp-card__caption-detail,
  .opt-comment,
  .opt-survey-note,
  .ep-addon__s,
  .ep-addon__p,
  .ep-addon__hint,
  .ep-addon__notice,
  .ep-addon__inc,
  .ep-addon__d,
  .ep-addon__selects label,
  #tg-options .tg-face-tab-count,
  #tg-options .tg-diff
):where(.ep-catalog-flow-item, .ep-catalog-flow-item *):not(.ep-paySel, .ep-paySel *) {
  font-size: 12px;
  font-weight: 400;
  line-height: 1.5;
  white-space: normal;
  overflow-wrap: anywhere;
}
body#page_product_detail .ec-productRole__profile :is(
  .rp-select,
  .form-group select,
  .form-group input[type="number"],
  .ep-addon__selects select
):where(.ep-catalog-flow-item, .ep-catalog-flow-item *):not(.ep-paySel, .ep-paySel *) {
  font-size: 13px;
  font-weight: 400;
  line-height: 1.5;
}

@media (max-width: 767px) {
  body#page_product_detail .ec-productRole__profile :is(
    .rp-select,
    .form-group select,
    .form-group input[type="number"],
    .ep-addon__selects select
  ):where(.ep-catalog-flow-item, .ep-catalog-flow-item *):not(.ep-paySel, .ep-paySel *) {
    font-size: 16px;
  }
}
