/**
 * Semantic typography consumers owned by the theme.
 * Component-configurable areas are intentionally excluded.
 */
.rp-type-breadcrumb {
    font-size: var(--rp-type-breadcrumb-size, 12px) !important;
    font-weight: var(--rp-type-breadcrumb-weight, 200) !important;
}

body:not(.wp-admin) :is(.rp-purchase-steps, .rp-cart-checkout-steps, .rp-checkout-steps) .rp-checkout-step-title {
    font-size: var(--rp-type-breadcrumb-size, 12px) !important;
    font-weight: var(--rp-type-breadcrumb-weight, 200) !important;
}

.rp-type-helper {
    font-size: var(--rp-type-helper-size, 12px) !important;
    font-weight: var(--rp-type-helper-weight, 300) !important;
}

body.single-product .rp-product-buybox .woocommerce-variation-description,
body.single-product .rp-product-buybox .woocommerce-variation-description p,
.rp-type-body {
    font-size: var(--rp-type-body-size, 14px) !important;
    font-weight: var(--rp-type-body-weight, 400) !important;
}

.rp-type-navigation {
    font-size: var(--rp-type-navigation-size, 15px) !important;
    font-weight: var(--rp-type-navigation-weight, 500) !important;
}

.rp-type-header-navigation {
    font-size: var(--rp-type-header_navigation-size, 13px) !important;
    font-weight: var(--rp-type-header_navigation-weight, 400) !important;
}

.rp-type-footer-navigation {
    font-size: var(--rp-type-footer_navigation-size, 13px) !important;
    font-weight: var(--rp-type-footer_navigation-weight, 300) !important;
}

body:not(.wp-admin) .rp-footer-column h4,
.rp-type-footer-menu-title {
    font-size: var(--rp-type-footer_menu_title-size, 13px) !important;
    font-weight: var(--rp-type-footer_menu_title-weight, 500) !important;
}

.rp-type-footer-text {
    font-size: var(--rp-type-footer_text-size, 13px) !important;
    font-weight: var(--rp-type-footer_text-weight, 300) !important;
}

.rp-type-button {
    font-size: var(--rp-type-button-size, 13px) !important;
    font-weight: var(--rp-type-button-weight, 500) !important;
}

body:not(.wp-admin) .rp-shop-brand-description__toggle {
    font-size: var(--rp-type-button-size, 13px) !important;
    font-weight: var(--rp-type-button-weight, 500) !important;
}

body:not(.wp-admin) .rp-shop-active-filter-chip > span:not(.screen-reader-text) {
    font-size: var(--rp-type-meta-size, 12px) !important;
    font-weight: var(--rp-type-meta-weight, 400) !important;
}

.rp-type-heading {
    font-size: var(--rp-type-heading-size, 19px) !important;
    font-weight: var(--rp-type-heading-weight, 500) !important;
}

.rp-type-product-detail-heading {
    font-size: var(--rp-type-product_detail_heading-size, 14px) !important;
    font-weight: var(--rp-type-product_detail_heading-weight, 500) !important;
}

.rp-type-page-title {
    font-size: var(--rp-type-page_title-size, 21px) !important;
    font-weight: var(--rp-type-page_title-weight, 700) !important;
}

.rp-type-form-label {
    font-size: var(--rp-type-form_label-size, 13px) !important;
    font-weight: var(--rp-type-form_label-weight, 500) !important;
}

.rp-type-form-input {
    font-size: var(--rp-type-form_input-size, 16px) !important;
    font-weight: var(--rp-type-form_input-weight, 400) !important;
}

.rp-type-placeholder::placeholder {
    font-size: var(--rp-type-form_placeholder-size, 13px) !important;
    font-weight: var(--rp-type-form_placeholder-weight, 400) !important;
}

.rp-type-search-input {
    font-size: var(--rp-type-search_input-size, 14px) !important;
    font-weight: var(--rp-type-search_input-weight, 500) !important;
}

body.single-product .rp-product-brand-line,
body.single-product .rp-product-brand-line a,
body.single-product .rp-product-brand-logo:not(.rp-product-brand-logo--has-image),
.rp-type-meta {
    font-size: var(--rp-type-meta-size, 12px) !important;
    font-weight: var(--rp-type-meta-weight, 400) !important;
}

.rp-type-price {
    font-size: var(--rp-type-price-size, 16px) !important;
    font-weight: var(--rp-type-price-weight, 700) !important;
}

.rp-type-price-before-discount {
    font-size: var(--rp-type-price_before_discount-size, 12px) !important;
    font-weight: var(--rp-type-price_before_discount-weight, 400) !important;
}

.rp-type-currency-symbol {
    font-size: var(--rp-type-currency_symbol-size, 12px) !important;
    font-weight: var(--rp-type-currency_symbol-weight, 400) !important;
}

.rp-type-empty-price {
    font-size: var(--rp-type-empty_price-size, 16px) !important;
    font-weight: var(--rp-type-empty_price-weight, 700) !important;
}

body.single-product .rp-product-price-content .rp-wct-contact-price {
    font-size: var(--rp-type-empty_price-size, 16px) !important;
    font-weight: var(--rp-type-empty_price-weight, 700) !important;
}

/* Page-owned titles, including the canonical single-product title. */
body:not(.wp-admin) :is(
    .rp-entry-title,
    .rp-blog-single-title,
    .rp-compare-head > h1
):not(:where(body.rp-generic-page-contained .rp-page *)) {
    font-size: var(--rp-type-page_title-size, 28px) !important;
    font-weight: var(--rp-type-page_title-weight, 700) !important;
}

html body.single-product .rp-single-product-page .rp-product-title {
    font-size: var(--rp-type-page_title-size, 28px) !important;
    font-weight: var(--rp-type-page_title-weight, 700) !important;
}

body.woocommerce-order-received .rp-thankyou-card h1 {
    font-size: var(--rp-type-page_title-size, 28px) !important;
    font-weight: var(--rp-type-page_title-weight, 700) !important;
}

body:not(.wp-admin) .rp-shop-hero:not(.rp-shop-filter-term-hero) .rp-shop-title,
body:not(.wp-admin) .rp-shop-filter-term-hero .rp-shop-title {
    font-size: var(--rp-type-page_title-size, 28px) !important;
    font-weight: var(--rp-type-page_title-weight, 700) !important;
}

body:not(.wp-admin) .rp-shop-filter-term-description__content {
    font-size: var(--rp-type-filter_term_description-size, 14px) !important;
    font-weight: var(--rp-type-filter_term_description-weight, 400) !important;
}

/* Fixed public forms; login/search and configurable components stay excluded. */
body.woocommerce-checkout :is(.form-row, .woocommerce-form-row) > label,
body.woocommerce-checkout #shipping_method label .rp-checkout-shipping-method-name,
body.woocommerce-account .woocommerce-MyAccount-content :is(.form-row, .woocommerce-form-row) > label,
body.single-post .comment-respond :is(.comment-form-author, .comment-form-email, .comment-form-phone, .comment-form-url, .comment-form-comment) > label,
body.single-product .comment-respond :is(.comment-form-author, .comment-form-email, .comment-form-phone, .comment-form-url, .comment-form-comment, .comment-form-rating) > label {
    font-size: var(--rp-type-form_label-size, 13px) !important;
    font-weight: var(--rp-type-form_label-weight, 500) !important;
}

body.woocommerce-checkout #shipping_method label .rp-wct-carrier-express-badge {
    font-size: var(--rp-type-helper-size, 11px) !important;
    font-weight: var(--rp-type-helper-weight, 400) !important;
}

/* General form fields. A 16px default prevents focus zoom in mobile Safari. */
body.woocommerce-checkout :is(form.checkout, .woocommerce-checkout-form, .rp-checkout-native-layout) :is(input.input-text, input[type="text"], input[type="email"], input[type="tel"], input[type="number"], textarea, select),
body.woocommerce-cart :is(.woocommerce-cart-form, .cart_totals) :is(input.input-text, input[type="text"], input[type="number"], textarea, select),
body.woocommerce-account .woocommerce-MyAccount-content :is(input.input-text, input[type="text"], input[type="email"], input[type="tel"], input[type="number"], textarea, select),
html body.woocommerce-account .woocommerce-MyAccount-content .rp-account-password-form .password-input input.input-text,
body.single-post .comment-respond :is(input[type="text"], input[type="email"], input[type="tel"], input[type="url"], textarea, select),
body.single-product .comment-respond :is(input[type="text"], input[type="email"], input[type="tel"], input[type="url"], textarea, select) {
    font-size: var(--rp-type-form_input-size, 16px) !important;
    font-weight: var(--rp-type-form_input-weight, 400) !important;
}

/* General form hints. Header search, authentication, widgets and component-owned forms stay independent. */
body.woocommerce-checkout :is(form.checkout, .woocommerce-checkout-form, .rp-checkout-native-layout) :is(input.input-text, input[type="text"], input[type="email"], input[type="tel"], input[type="number"], textarea)::placeholder,
body.woocommerce-cart :is(.woocommerce-cart-form, .cart_totals) :is(input.input-text, input[type="text"], input[type="number"], textarea)::placeholder,
body.woocommerce-account .woocommerce-MyAccount-content :is(input.input-text, input[type="text"], input[type="email"], input[type="tel"], input[type="number"], textarea)::placeholder,
body.single-post .comment-respond :is(input[type="text"], input[type="email"], input[type="tel"], input[type="url"], textarea)::placeholder,
body.single-product .comment-respond :is(input[type="text"], input[type="email"], input[type="tel"], input[type="url"], textarea)::placeholder {
    font-size: var(--rp-type-form_placeholder-size, 13px) !important;
    font-weight: var(--rp-type-form_placeholder-weight, 400) !important;
}

/* Global WooCommerce feedback: message text and acknowledgement are public UI. */
body:not(.wp-admin) :is(.rp-wc-notice-modal__content, .rp-wc-notice-toast__content) {
    font-size: var(--rp-type-body-size, 14px) !important;
    font-weight: var(--rp-type-body-weight, 400) !important;
}

body:not(.wp-admin) :is(.rp-wc-notice-modal__close, .rp-wc-notice-toast__close) {
    font-size: var(--rp-type-button-size, 14px) !important;
    font-weight: var(--rp-type-button-weight, 500) !important;
}

body.single-post .rp-blog-post-head .rp-blog-meta,
body.single-post .rp-blog-post-head .rp-blog-meta-item,
body.single-post .rp-blog-comments .rp-blog-comment-meta,
body.single-product .rp-single-product-page .rp-product-meta-line,
body.woocommerce-shop .rp-shop-result-count,
body.post-type-archive-product .rp-shop-result-count,
body.tax-product_cat .rp-shop-result-count,
body.tax-product_tag .rp-shop-result-count,
body.tax-product_brand .rp-shop-result-count,
body:not(.wp-admin) .rp-footer-copyright,
body:not(.wp-admin) .rp-footer-copyright-text {
    font-size: var(--rp-type-meta-size, 12px) !important;
    font-weight: var(--rp-type-meta-weight, 400) !important;
}

/* The mini-cart owns its layout and colors, while its text follows semantic global roles. */
body:not(.wp-admin) .rp-cart-sidebar-head > strong {
    font-size: var(--rp-type-product_detail_heading-size, 14px) !important;
    font-weight: var(--rp-type-product_detail_heading-weight, 500) !important;
}

body:not(.wp-admin) .rp-cart-sidebar :is(.rp-cart-item-title, .rp-cart-sidebar-empty, .woocommerce-mini-cart__empty-message) {
    font-size: var(--rp-type-body-size, 14px) !important;
    font-weight: var(--rp-type-body-weight, 400) !important;
}

body:not(.wp-admin) .rp-cart-sidebar .rp-cart-item-meta {
    font-size: var(--rp-type-helper-size, 12px) !important;
    font-weight: var(--rp-type-helper-weight, 300) !important;
}

body:not(.wp-admin) .rp-cart-sidebar :is(.rp-cart-qty-input, .rp-cart-qty-fixed-label) {
    font-size: var(--rp-type-form_input-size, 16px) !important;
    font-weight: var(--rp-type-form_input-weight, 400) !important;
}

/* Editable and fixed quantities in the cart table are one audit connection. */
body.woocommerce-cart .woocommerce-cart-form td.product-quantity :is(.rp-cart-table-qty-fixed, .rp-cart-table-qty-stepper input.qty) {
    font-size: var(--rp-type-form_input-size, 16px) !important;
    font-weight: var(--rp-type-form_input-weight, 400) !important;
}

body:not(.wp-admin) .rp-cart-sidebar :is(.rp-cart-sidebar-clear-all, .rp-cart-qty-btn, .rp-cart-item-remove, .rp-cart-sidebar-checkout, .rp-cart-sidebar-account, .rp-cart-sidebar-close > span) {
    font-size: var(--rp-type-button-size, 14px) !important;
    font-weight: var(--rp-type-button-weight, 500) !important;
}

body:not(.wp-admin) .rp-cart-sidebar-total > span {
    font-size: var(--rp-type-form_label-size, 13px) !important;
    font-weight: var(--rp-type-form_label-weight, 500) !important;
}

body:not(.wp-admin) .rp-cart-sidebar :is(.rp-cart-item-price, .rp-cart-sidebar-total > strong) {
    font-size: var(--rp-type-price-size, 16px) !important;
    font-weight: var(--rp-type-price-weight, 700) !important;
}

/* Amount markup must follow its price row's assigned role, including live
 * audit previews and explicit connections. Currency symbols remain separate. */
body:not(.wp-admin) .rp-cart-sidebar .rp-cart-item-price :is(.woocommerce-Price-amount:not(del .woocommerce-Price-amount), bdi:not(del bdi)),
body:not(.wp-admin) .rp-cart-sidebar .rp-cart-sidebar-total :is(.woocommerce-Price-amount, bdi) {
    font-size: inherit !important;
    font-weight: inherit !important;
}

/* One semantic role for the crossed-out original price. The sidebar is shared
 * by drawer and popover/modal mini-cart modes. The specificity anchor beats
 * legacy component and stale positional audit connections. The semantic
 * crossed-price role must win over unrelated positional price roles. */
:is(#rp-price-before-discount-specificity#rp-price-before-discount-specificity#rp-price-before-discount-specificity,
    body.single-product .rp-single-product-page .rp-buybox-price-before,
    body.single-product .rp-single-product-page .rp-buybox-price-before :is(.amount, bdi),
    body.single-product .rp-mobile-product-sticky-price-content .rp-buybox-price-before,
    body.single-product .rp-mobile-product-sticky-price-content .rp-buybox-price-before :is(.amount, bdi),
    body.single-product .rp-single-product-page :is(.rp-product-price-box, .rp-product-buybox, .rp-mobile-product-sticky-price-content) del,
    body.single-product .rp-single-product-page :is(.rp-product-price-box, .rp-product-buybox, .rp-mobile-product-sticky-price-content) del :is(.amount, bdi),
    body.woocommerce-cart :is(.woocommerce-cart-form, .cart_totals) del,
    body.woocommerce-cart :is(.woocommerce-cart-form, .cart_totals) del :is(.amount, bdi),
    body.woocommerce-checkout :is(.woocommerce-checkout, .rp-checkout-summary-column) del,
    body.woocommerce-checkout :is(.woocommerce-checkout, .rp-checkout-summary-column) del :is(.amount, bdi),
    body:not(.wp-admin) .rp-cart-sidebar .rp-cart-item-price del,
    body:not(.wp-admin) .rp-cart-sidebar .rp-cart-item-price del :is(.amount, bdi)) {
    font-size: var(--rp-type-price_before_discount-size, 12px) !important;
    font-weight: var(--rp-type-price_before_discount-weight, 400) !important;
}

body:not(.wp-admin) .rp-cart-sidebar .rp-cart-qty .rp-cart-qty-btn {
    font-size: var(--rp-type-button-size, 14px) !important;
    font-weight: var(--rp-type-button-weight, 500) !important;
}

body:not(.wp-admin) .rp-footer-copyright .rp-footer-copyright-link {
    font-size: var(--rp-type-meta-size, 12px) !important;
    font-weight: var(--rp-type-meta-weight, 400) !important;
}

body:not(.wp-admin) .rp-cart-sidebar :is(.woocommerce-Price-currencySymbol, .rp-cart-total-currency) {
    font-size: var(--rp-type-currency_symbol-size, 12px) !important;
    font-weight: var(--rp-type-currency_symbol-weight, 400) !important;
}

/* Header account popover keeps its component visuals but consumes global text roles. */
body:not(.wp-admin) .rp-account-dropdown-head-text > strong {
    font-size: var(--rp-type-body-size, 14px) !important;
    font-weight: var(--rp-type-body-weight, 400) !important;
}

body:not(.wp-admin) .rp-account-dropdown-head-text > span {
    font-size: var(--rp-type-helper-size, 12px) !important;
    font-weight: var(--rp-type-helper-weight, 300) !important;
}

body:not(.wp-admin) .rp-account-dropdown-item > span:last-child {
    font-size: var(--rp-type-header_navigation-size, 13px) !important;
    font-weight: var(--rp-type-header_navigation-weight, 400) !important;
}

/* Theme-mode dialogs are system UI, while their text follows the shared semantic scale. */
body:not(.wp-admin) .rp-theme-mode-transition__title {
    font-size: var(--rp-type-heading-size, 20px) !important;
    font-weight: var(--rp-type-heading-weight, 700) !important;
}

body:not(.wp-admin) .rp-theme-mode-transition__description {
    font-size: var(--rp-type-body-size, 14px) !important;
    font-weight: var(--rp-type-body-weight, 400) !important;
}

body:not(.wp-admin) .rp-theme-mode-transition__percent {
    font-size: var(--rp-type-meta-size, 12px) !important;
    font-weight: var(--rp-type-meta-weight, 400) !important;
}

body:not(.wp-admin) .rp-theme-mode-confirm__actions > button {
    font-size: var(--rp-type-button-size, 14px) !important;
    font-weight: var(--rp-type-button-weight, 500) !important;
}

body:not(.wp-admin) .rp-account-toast__message {
    font-size: var(--rp-type-body-size, 14px) !important;
    font-weight: var(--rp-type-body-weight, 400) !important;
}

body:not(.wp-admin) .rp-account-toast__close {
    font-size: var(--rp-type-button-size, 14px) !important;
    font-weight: var(--rp-type-button-weight, 500) !important;
}

/* Long-form, page-owned content. Card excerpts and widget copy are excluded. */
body:not(.wp-admin):not(.rp-generic-page-contained) .rp-entry-content,
body.single-post .rp-blog-article-content,
body.single-post .rp-blog-comments .rp-blog-comment-description,
body.single-product .rp-single-product-page .rp-product-description,
body.single-product .rp-single-product-page .rp-product-subtitle,
body.woocommerce-account .woocommerce-MyAccount-content > p {
    font-size: var(--rp-type-body-size, 14px) !important;
    font-weight: var(--rp-type-body-weight, 400) !important;
}

/* System feedback and empty-state copy belong to the body role. */
body:not(.wp-admin) :is(.woocommerce-message, .woocommerce-error, .woocommerce-info),
body.woocommerce-cart .rp-empty-cart__message,
body.woocommerce-account :is(.rp-account-orders-empty, .rp-account-favorites-empty) > p,
body:is(.blog, .archive, .search) .rp-blog-empty,
body:is(.woocommerce-shop, .post-type-archive-product, .tax-product_cat, .tax-product_tag, .tax-product_brand) .rp-shop-filter-empty-results > p,
body.single-post .rp-blog-comments-empty > p,
body.single-product .rp-product-reviews-empty > p,
body:not(.wp-admin) .rp-compare-empty > strong,
body.woocommerce-order-received .rp-thankyou-message {
    font-size: var(--rp-type-body-size, 14px) !important;
    font-weight: var(--rp-type-body-weight, 400) !important;
}

body.woocommerce-order-received .rp-thankyou-card :is(p, span, strong) {
    font-size: var(--rp-type-body-size, 14px) !important;
    font-weight: var(--rp-type-body-weight, 400) !important;
}

/* Supporting copy tied to fixed forms and page content only. */
body:not(.wp-admin):not(.rp-generic-page-contained) .rp-entry-content > :is(.description, small),
body.woocommerce-shop .rp-shop-note,
body.post-type-archive-product .rp-shop-note,
body.tax-product_cat .rp-shop-note,
body.tax-product_tag .rp-shop-note,
body.tax-product_brand .rp-shop-note,
body.woocommerce-checkout :is(.form-row, .woocommerce-form-row) > :is(.description, small),
body.woocommerce-account .woocommerce-MyAccount-content :is(.form-row, .woocommerce-form-row) > :is(.description, small),
body.single-post .comment-respond :is(.comment-notes, .logged-in-as),
body.single-product .comment-respond :is(.comment-notes, .logged-in-as) {
    font-size: var(--rp-type-helper-size, 12px) !important;
    font-weight: var(--rp-type-helper-weight, 300) !important;
}

body.single-product .rp-single-product-page .rp-product-original-name {
    font-size: var(--rp-type-helper-size, 12px) !important;
    font-weight: var(--rp-type-helper-weight, 300) !important;
}

/* Single-product shell. The main product title remains independently configurable. */
body.single-product .rp-single-product-page :is(.rp-product-sku-label, .rp-product-sku-value),
body.single-product .rp-product-review-items :is(.woocommerce-review__dash, .woocommerce-review__published-date),
body.single-product .rp-product-reviews-panel :is(.star-rating, .woocommerce-review-link),
body.single-product .rp-single-product-page [data-rp-price-discount] {
    font-size: var(--rp-type-meta-size, 12px) !important;
    font-weight: var(--rp-type-meta-weight, 400) !important;
}

body.single-product .rp-single-product-page :is(.rp-single-variation-choice-title, .rp-product-quick-attrs b, .rp-product-buybox form.cart label),
body.single-product .rp-product-info-tabs table.shop_attributes th,
body.single-product .rp-product-review-items .woocommerce-review__author {
    font-size: var(--rp-type-form_label-size, 13px) !important;
    font-weight: var(--rp-type-form_label-weight, 500) !important;
}

body.single-product .rp-single-product-page :is(.rp-single-variation-choice-label, .rp-product-quick-attrs span, .rp-product-service-item b, .rp-grouped-product-name),
body.single-product .rp-product-info-tabs table.shop_attributes td,
body.single-product .rp-product-info-tabs table.shop_attributes td :is(p, span),
body.single-product .rp-product-review-items .description,
body.single-product .rp-product-review-items .description p {
    font-size: var(--rp-type-body-size, 14px) !important;
    font-weight: var(--rp-type-body-weight, 400) !important;
}

body.single-product .rp-single-product-page :is(.stock, .rp-product-service-item small, .rp-grouped-product-fixed-variation, .rp-product-buybox-note-text, .rp-product-price-choice-note) {
    font-size: var(--rp-type-helper-size, 12px) !important;
    font-weight: var(--rp-type-helper-weight, 300) !important;
}

body.single-product .rp-single-product-page :is(.rp-product-buybox-countdown, .rp-mobile-product-sticky-countdown) > span {
    font-size: var(--rp-type-helper-size, 12px) !important;
    font-weight: var(--rp-type-helper-weight, 300) !important;
}

body.single-product .rp-single-product-page :is(.rp-product-buybox-countdown, .rp-mobile-product-sticky-countdown) .rp-card-sale-countdown__value {
    font-size: var(--rp-type-meta-size, 12px) !important;
    font-weight: var(--rp-type-meta-weight, 400) !important;
}

body.single-product .rp-single-product-page :is(.rp-product-show-more, .rp-buybox-qty-btn, .rp-grouped-quantity-button, .single_add_to_cart_button, .rp-mobile-product-sticky-cart-btn),
body.single-product .rp-product-reviews-panel :is(.rp-product-reviews-mobile-toggle, .stars a) {
    font-size: var(--rp-type-button-size, 14px) !important;
    font-weight: var(--rp-type-button-weight, 500) !important;
}

body.single-product .rp-single-product-page .rp-product-tabs-nav a {
    font-size: var(--rp-type-navigation-size, 15px) !important;
    font-weight: var(--rp-type-navigation-weight, 500) !important;
}

body.single-product .rp-single-product-page :is(.rp-product-price-content, .rp-product-price-content bdi:not(del bdi, .rp-buybox-price-before bdi), .rp-buybox-price-current, .rp-grouped-product-price .amount) {
    font-size: var(--rp-type-price-size, 16px) !important;
    font-weight: var(--rp-type-price-weight, 700) !important;
}

/* The primary buybox total has its own role; generic product prices stay compact. */
body.single-product .rp-single-product-page .rp-product-buybox .rp-product-price-box .rp-buybox-price-final,
body.single-product .rp-single-product-page .rp-product-buybox .rp-product-price-box .rp-buybox-price-final :is(.amount, bdi) {
    font-size: var(--rp-type-product_buybox_final_price-size, 27px) !important;
    font-weight: var(--rp-type-product_buybox_final_price-weight, 800) !important;
}

body.single-product .rp-mobile-product-sticky-price-content :is(.rp-buybox-price-final, .woocommerce-Price-amount:not(del .woocommerce-Price-amount, .rp-buybox-price-before .woocommerce-Price-amount), .amount:not(del .amount, .rp-buybox-price-before .amount), bdi:not(del bdi, .rp-buybox-price-before bdi), ins) {
    font-size: var(--rp-type-price-size, 16px) !important;
    font-weight: var(--rp-type-price-weight, 700) !important;
}

body.single-product .rp-single-product-page :is(.rp-buybox-price-currency, .woocommerce-Price-currencySymbol) {
    font-size: var(--rp-type-currency_symbol-size, 12px) !important;
    font-weight: var(--rp-type-currency_symbol-weight, 400) !important;
}

body.single-product .rp-mobile-product-sticky-price-content :is(.rp-buybox-price-currency, .woocommerce-Price-currencySymbol) {
    font-size: var(--rp-type-currency_symbol-size, 12px) !important;
    font-weight: var(--rp-type-currency_symbol-weight, 400) !important;
}

body.single-product :is(.rp-mobile-product-sticky-discount, .rp-mobile-product-sticky-price-content .rp-product-buybox-discount) {
    font-size: var(--rp-type-meta-size, 12px) !important;
    font-weight: var(--rp-type-meta-weight, 400) !important;
}

body.single-product .rp-single-product-page :is(.qty, input.input-text, .rp-grouped-product-fixed-count, .rp-grouped-product-variation-choice select, .rp-grouped-product-variation-choice option) {
    font-size: var(--rp-type-form_input-size, 16px) !important;
    font-weight: var(--rp-type-form_input-weight, 400) !important;
}

/* Shared FAQ has content settings only; its typography follows the global roles. */
body:not(.wp-admin) .rp-content-faq__eyebrow {
    font-size: var(--rp-type-product_detail_heading-size, 14px) !important;
    font-weight: var(--rp-type-product_detail_heading-weight, 500) !important;
}

body:not(.wp-admin) .rp-content-faq__item > summary > span {
    font-size: var(--rp-type-form_label-size, 13px) !important;
    font-weight: var(--rp-type-form_label-weight, 500) !important;
}

body:not(.wp-admin) .rp-content-faq__answer,
body:not(.wp-admin) .rp-content-faq__answer :is(p, li) {
    font-size: var(--rp-type-body-size, 14px) !important;
    font-weight: var(--rp-type-body-weight, 400) !important;
}

/* Header and footer menus own separate roles; configurable component menus are excluded. */
body:not(.wp-admin) .rp-main-menu a {
    font-size: var(--rp-type-header_navigation-size, 13px) !important;
    font-weight: var(--rp-type-header_navigation-weight, 400) !important;
}

body:not(.wp-admin) .rp-mobile-drawer :is(.rp-mobile-drawer-tab, .rp-mobile-drawer-menu a, .rp-mobile-submenu-title) {
    font-size: var(--rp-type-header_navigation-size, 13px) !important;
    font-weight: var(--rp-type-header_navigation-weight, 400) !important;
}

body:not(.wp-admin) .rp-mobile-drawer :is(.rp-mobile-drawer-close, .rp-mobile-submenu-back) {
    font-size: var(--rp-type-button-size, 14px) !important;
    font-weight: var(--rp-type-button-weight, 500) !important;
}

html body:not(.wp-admin) .rp-mobile-drawer .rp-mobile-submenu-back strong {
    font-size: var(--rp-type-button-size, 14px) !important;
    font-weight: var(--rp-type-button-weight, 500) !important;
}

body:not(.wp-admin) .rp-footer-links a {
    font-size: var(--rp-type-footer_navigation-size, 13px) !important;
    font-weight: var(--rp-type-footer_navigation-weight, 400) !important;
}

/* The two introduction lines share a role and an audit peer group. */
body:not(.wp-admin) :is(.rp-footer-description, .rp-footer-business-text) {
    font-size: var(--rp-type-footer_text-size, 13px) !important;
    font-weight: var(--rp-type-footer_text-weight, 300) !important;
}

/* Address is a separate semantic target even when it inherits footer_text. */
body:not(.wp-admin) .rp-footer-address {
    font-size: var(--rp-type-footer_text-size, 13px) !important;
    font-weight: var(--rp-type-footer_text-weight, 300) !important;
}

/* Other fixed navigation keeps the general navigation role. */
body:not(.wp-admin) .rp-faq-link,
body:not(.wp-admin) .rp-header-actions .rp-action-link,
body.woocommerce-account .woocommerce-MyAccount-navigation a,
body:is(.woocommerce-shop, .post-type-archive-product, .tax-product_cat, .tax-product_tag, .tax-product_brand) .rp-shop-sort-label {
    font-size: var(--rp-type-navigation-size, 15px) !important;
    font-weight: var(--rp-type-navigation-weight, 500) !important;
}

/* Public Shop shell. Product cards and configurable filtered-term headers stay independent. */
body:is(.woocommerce-shop, .post-type-archive-product, .tax-product_cat, .tax-product_tag, .tax-product_brand) :is(.rp-shop-category-name, .rp-shop-sortbar > a, .rp-shop-sort-dialog__options > a) {
    font-size: var(--rp-type-navigation-size, 15px) !important;
    font-weight: var(--rp-type-navigation-weight, 500) !important;
}

body:is(.woocommerce-shop, .post-type-archive-product, .tax-product_cat, .tax-product_tag, .tax-product_brand) :is(.rp-shop-quick-note, .rp-shop-note) {
    font-size: var(--rp-type-helper-size, 12px) !important;
    font-weight: var(--rp-type-helper-weight, 300) !important;
}

body:is(.woocommerce-shop, .post-type-archive-product, .tax-product_cat, .tax-product_tag, .tax-product_brand) .rp-shop-infinite-status {
    font-size: var(--rp-type-helper-size, 12px) !important;
    font-weight: var(--rp-type-helper-weight, 300) !important;
}

body:is(.woocommerce-shop, .post-type-archive-product, .tax-product_cat, .tax-product_tag, .tax-product_brand) .rp-shop-infinite-retry {
    font-size: var(--rp-type-button-size, 14px) !important;
    font-weight: var(--rp-type-button-weight, 500) !important;
}

body:is(.woocommerce-shop, .post-type-archive-product, .tax-product_cat, .tax-product_tag, .tax-product_brand) :is(.rp-shop-filter-toggle, .rp-shop-compare-toggle, .rp-shop-filter-head-reset, .rp-shop-filter-more, .rp-shop-sort-dialog__close, .rp-shop-mobile-filter-head > button, .rp-shop-filter-head > button) {
    font-size: var(--rp-type-button-size, 14px) !important;
    font-weight: var(--rp-type-button-weight, 500) !important;
}

body:is(.woocommerce-shop, .post-type-archive-product, .tax-product_cat, .tax-product_tag, .tax-product_brand) :is(.rp-shop-filters-mobile-title, .rp-shop-mobile-filter-head > strong, .rp-shop-filter-head strong, .rp-shop-sort-dialog__head > strong) {
    font-size: var(--rp-type-heading-size, 20px) !important;
    font-weight: var(--rp-type-heading-weight, 700) !important;
}

body:is(.woocommerce-shop, .post-type-archive-product, .tax-product_cat, .tax-product_tag, .tax-product_brand) :is(.rp-shop-filter-collapse-toggle > span:first-child, .rp-filter-term-label) {
    font-size: var(--rp-type-form_label-size, 13px) !important;
    font-weight: var(--rp-type-form_label-weight, 500) !important;
}

body:is(.woocommerce-shop, .post-type-archive-product, .tax-product_cat, .tax-product_tag, .tax-product_brand) :is(.rp-shop-attribute-filter-option small, .rp-shop-toolbar-result-count) {
    font-size: var(--rp-type-meta-size, 12px) !important;
    font-weight: var(--rp-type-meta-weight, 400) !important;
}

body:is(.woocommerce-shop, .post-type-archive-product, .tax-product_cat, .tax-product_tag, .tax-product_brand) :is(.rp-shop-archive-short-description-content, .rp-shop-archive-default-description) {
    font-size: var(--rp-type-body-size, 14px) !important;
    font-weight: var(--rp-type-body-weight, 400) !important;
}

body.woocommerce-account .woocommerce-MyAccount-navigation ul::before {
    font-size: var(--rp-type-navigation-size, 15px) !important;
    font-weight: var(--rp-type-navigation-weight, 500) !important;
}

body.woocommerce-account .woocommerce-orders-table td::before {
    font-size: var(--rp-type-form_label-size, 13px) !important;
    font-weight: var(--rp-type-form_label-weight, 500) !important;
}

body.woocommerce-account .woocommerce-MyAccount-content > .woocommerce-Addresses::before {
    font-size: var(--rp-type-helper-size, 12px) !important;
    font-weight: var(--rp-type-helper-weight, 300) !important;
}

/* Textual page actions only. Icon controls and product-card actions stay independent. */
body.woocommerce-cart .wc-proceed-to-checkout .checkout-button,
body.woocommerce-cart :is(.coupon, .actions) button.button,
body.woocommerce-checkout #place_order,
body.woocommerce-checkout .rp-checkout-coupon-controls button,
body.woocommerce-account .woocommerce-MyAccount-content :is(a.button, button.button, input.button),
body.single-post .comment-respond .form-submit .submit,
body.single-product .comment-respond .form-submit .submit,
body:not(.wp-admin) .rp-compare-description-toggle > summary,
body:not(.wp-admin) .rp-compare-empty > a {
    font-size: var(--rp-type-button-size, 14px) !important;
    font-weight: var(--rp-type-button-weight, 500) !important;
}

body.woocommerce-cart .rp-empty-cart__shop-link,
body:is(.woocommerce-shop, .post-type-archive-product, .tax-product_cat, .tax-product_tag, .tax-product_brand) .rp-shop-filter-empty-results > a,
body.woocommerce-order-received .rp-thankyou-actions .button,
body.woocommerce-account .rp-account-address-modal :is(.rp-account-address-modal__submit, button.button) {
    font-size: var(--rp-type-button-size, 14px) !important;
    font-weight: var(--rp-type-button-weight, 500) !important;
}

/* Section headings owned by page templates, not cards or widgets. */
body.single-product .rp-product-section-title,
body.blog .rp-blog-section-title,
body.archive .rp-blog-section-title,
body.search .rp-blog-section-title,
body.single-post .rp-blog-section-title,
body.woocommerce-checkout .rp-checkout-section-heading,
body.woocommerce-cart .cart_totals > h2,
body.woocommerce-checkout #order_review_heading,
body.woocommerce-account .woocommerce-MyAccount-content .rp-account-section-title {
    font-size: var(--rp-type-heading-size, 20px) !important;
    font-weight: var(--rp-type-heading-weight, 700) !important;
}

/* Compact headings inside the product details area have their own semantic role. */
html body.woocommerce-checkout .rp-checkout-products-carousel-head #rp-checkout-products-title {
    font-size: var(--rp-type-product_detail_heading-size, 14px) !important;
    font-weight: var(--rp-type-product_detail_heading-weight, 500) !important;
}

html body.woocommerce-checkout .rp-checkout-products-carousel-subtotal-label {
    font-size: var(--rp-type-form_label-size, 13px) !important;
    font-weight: var(--rp-type-form_label-weight, 500) !important;
}

html body.woocommerce-checkout .rp-checkout-products-carousel-subtotal-value,
html body.woocommerce-checkout .rp-checkout-products-carousel-subtotal-value :is(.woocommerce-Price-amount, bdi) {
    font-size: var(--rp-type-price-size, 16px) !important;
    font-weight: var(--rp-type-price-weight, 700) !important;
}

body.single-product .rp-single-product-page .rp-grouped-product-choices > .rp-product-section-title,
body.single-product .rp-single-product-page .rp-product-quick-attrs-wrap > .rp-product-section-title,
html body.single-product .rp-single-product-page #rp-product-specs > h2:first-child,
html body.single-product .rp-single-product-page #rp-product-specs > h2#rp-product-description {
    font-size: var(--rp-type-product_detail_heading-size, 14px) !important;
    font-weight: var(--rp-type-product_detail_heading-weight, 500) !important;
}

body.woocommerce-account :is(.rp-account-favorites-empty > h2, .rp-account-address-modal__title),
body:is(.woocommerce-shop, .post-type-archive-product, .tax-product_cat, .tax-product_tag, .tax-product_brand) .rp-shop-filter-empty-results > strong,
body.single-post .rp-blog-comments-empty > strong,
body.single-product .rp-product-reviews-empty > strong {
    font-size: var(--rp-type-heading-size, 20px) !important;
    font-weight: var(--rp-type-heading-weight, 700) !important;
}

/* Pagination is navigation, regardless of the page that owns it. */
body:not(.wp-admin) :is(
    .rp-blog-pagination,
    .rp-blog-comment-pagination,
    .rp-shop-pagination,
    .woocommerce-pagination
) :is(a, span, .page-numbers, .button) {
    font-size: var(--rp-type-navigation-size, 15px) !important;
    font-weight: var(--rp-type-navigation-weight, 500) !important;
}

/* Fixed WooCommerce data tables: labels and values retain separate semantics. */
body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) table.shop_table th,
body.woocommerce-cart .cart_totals th,
body.woocommerce-account table.woocommerce-orders-table th {
    font-size: var(--rp-type-form_label-size, 13px) !important;
    font-weight: var(--rp-type-form_label-weight, 500) !important;
}

body:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) table.shop_table td,
body.woocommerce-account table.woocommerce-orders-table td {
    font-size: var(--rp-type-body-size, 14px) !important;
    font-weight: var(--rp-type-body-weight, 400) !important;
}

/* Mobile cart labels are generated from data-title via ::before. */
body.woocommerce-cart .woocommerce-cart-form td[data-title]::before {
    font-size: var(--rp-type-form_label-size, 13px) !important;
    font-weight: var(--rp-type-form_label-weight, 500) !important;
}

body.woocommerce-cart :is(.woocommerce-cart-form, .cart_totals) :is(.product-price, .product-subtotal, .cart-subtotal, .order-total) :is(.woocommerce-Price-amount:not(del .woocommerce-Price-amount), .amount:not(del .amount), bdi:not(del bdi), ins) {
    font-size: var(--rp-type-price-size, 16px) !important;
    font-weight: var(--rp-type-price-weight, 700) !important;
}

body.woocommerce-cart :is(.woocommerce-cart-form, .cart_totals) .woocommerce-Price-currencySymbol {
    font-size: var(--rp-type-currency_symbol-size, 12px) !important;
    font-weight: var(--rp-type-currency_symbol-weight, 400) !important;
}

/* The checkout payable figure is not body copy. Target the rendered amount
   and its numeric bdi so the audit selects the role that actually styles it. */
html body.woocommerce-checkout .rp-checkout-payable-card .rp-checkout-payable-table tfoot tr:is(.cart-subtotal, .cart-discount, .fee, .shipping-total, .tax-rate, .tax-total) > th {
    font-size: var(--rp-type-form_label-size, 13px) !important;
    font-weight: 700 !important;
}

html body.woocommerce-checkout .rp-checkout-payable-card .rp-checkout-payable-table tfoot tr:is(.cart-subtotal, .cart-discount, .fee, .shipping-total, .tax-rate, .tax-total) > td :is(.woocommerce-Price-amount:not(del .woocommerce-Price-amount), bdi:not(del bdi)) {
    font-size: var(--rp-type-price-size, 16px) !important;
    font-weight: var(--rp-type-price-weight, 700) !important;
}

html body.woocommerce-checkout .rp-checkout-payable-card .rp-checkout-payable-table tfoot tr:is(.cart-subtotal, .cart-discount, .fee, .shipping-total, .tax-rate, .tax-total) > td .woocommerce-Price-currencySymbol {
    font-size: var(--rp-type-currency_symbol-size, 12px) !important;
    font-weight: var(--rp-type-currency_symbol-weight, 400) !important;
}

html body.woocommerce-checkout .rp-checkout-payable-card .rp-checkout-review-order-table tfoot tr.order-total > td .woocommerce-Price-amount.amount,
html body.woocommerce-checkout .rp-checkout-payable-card .rp-checkout-review-order-table tfoot tr.order-total > td .woocommerce-Price-amount.amount > bdi {
    font-size: var(--rp-type-checkout_payable_price-size, 27px) !important;
    font-weight: var(--rp-type-checkout_payable_price-weight, 800) !important;
}

/* The native pay-for-order table has no order-total row class. */
html body.woocommerce-order-pay #order_review > table.shop_table tfoot > tr:nth-last-child(2) > td.product-total .woocommerce-Price-amount.amount,
html body.woocommerce-order-pay #order_review > table.shop_table tfoot > tr:nth-last-child(2) > td.product-total .woocommerce-Price-amount.amount > bdi {
    font-size: var(--rp-type-checkout_payable_price-size, 27px) !important;
    font-weight: var(--rp-type-checkout_payable_price-weight, 800) !important;
}

/* Advanced-search shortcode has no independent typography controls. */
body:not(.wp-admin) .rp-advanced-search .rp-advanced-search__header > h2 {
    font-size: var(--rp-type-heading-size, 19px) !important;
    font-weight: var(--rp-type-heading-weight, 500) !important;
}

body:not(.wp-admin) .rp-advanced-search :is(
    .rp-advanced-search__question-toolbar > h3,
    .rp-advanced-search__results-head h3,
    .rp-advanced-search-result-row__content > h4
) {
    font-size: var(--rp-type-heading-size, 20px) !important;
    font-weight: var(--rp-type-heading-weight, 700) !important;
}

body:not(.wp-admin) .rp-advanced-search :is(
    .rp-advanced-search__header > p,
    .rp-advanced-search-option,
    .rp-advanced-search-result-row__content > p
) {
    font-size: var(--rp-type-body-size, 14px) !important;
    font-weight: var(--rp-type-body-weight, 400) !important;
}

body:not(.wp-admin) .rp-advanced-search .rp-advanced-search-option > span:not(.rp-advanced-search-option__placeholder) {
    font-size: var(--rp-type-body-size, 14px) !important;
    font-weight: var(--rp-type-body-weight, 400) !important;
}

/* The typed query and the visible placeholder have distinct typography roles. */
html body:not(.wp-admin) .rp-advanced-search .rp-advanced-search__term-search input[type="search"] {
    font-size: var(--rp-type-form_input-size, 16px) !important;
    font-weight: var(--rp-type-form_input-weight, 400) !important;
}

html body:not(.wp-admin) .rp-advanced-search .rp-advanced-search__term-search input[type="search"]::placeholder {
    font-size: var(--rp-type-form_placeholder-size, 13px) !important;
    font-weight: var(--rp-type-form_placeholder-weight, 400) !important;
}

body:not(.wp-admin) .rp-advanced-search :is(
    .rp-advanced-search__progress,
    .rp-advanced-search__checking,
    .rp-advanced-search__term-search [data-rp-term-search-count],
    .rp-advanced-search__term-empty,
    .rp-advanced-search-result-row__stock,
    .rp-advanced-search__results-head > div > span
) {
    font-size: var(--rp-type-helper-size, 12px) !important;
    font-weight: var(--rp-type-helper-weight, 300) !important;
}

body:not(.wp-admin) .rp-advanced-search :is(
    .rp-advanced-search__controls,
    .rp-advanced-search__results-actions
) button {
    font-size: var(--rp-type-button-size, 14px) !important;
    font-weight: var(--rp-type-button-weight, 500) !important;
}

body:not(.wp-admin) .rp-advanced-search .rp-advanced-search__result-basis > strong {
    font-size: var(--rp-type-form_label-size, 13px) !important;
    font-weight: var(--rp-type-form_label-weight, 500) !important;
}

/* Blog-home chrome has no private typography controls; blog cards remain private. */
body.blog .rp-blog-home :is(.rp-blog-strip-head h2, .rp-blog-carousel-title) {
    font-size: var(--rp-type-heading-size, 20px) !important;
    font-weight: var(--rp-type-heading-weight, 700) !important;
}

body.blog .rp-blog-home :is(.rp-blog-strip-all, .rp-blog-carousel-more) {
    font-size: var(--rp-type-button-size, 14px) !important;
    font-weight: var(--rp-type-button-weight, 500) !important;
}

body.blog .rp-blog-home .rp-blog-archive-pills > a > strong {
    font-size: var(--rp-type-navigation-size, 15px) !important;
    font-weight: var(--rp-type-navigation-weight, 500) !important;
}

body.blog .rp-blog-home .rp-blog-archive-pills > a > span {
    font-size: var(--rp-type-meta-size, 12px) !important;
    font-weight: var(--rp-type-meta-weight, 400) !important;
}

body.blog .rp-blog-home .rp-blog-home-description {
    font-size: var(--rp-type-body-size, 14px) !important;
    font-weight: var(--rp-type-body-weight, 400) !important;
}

/* Single-post shell is global; configurable article cards stay privately owned. */
body.single-post .rp-blog-article-content :is(h2, h3, h4, h5, h6),
body.single-post :is(
    .rp-blog-comments-title,
    .rp-blog-comments-mobile-toggle,
    .rp-blog-sidebar-title,
    .rp-blog-related-head > h2,
    .rp-comment-identity-modal__dialog > h3
) {
    font-size: var(--rp-type-heading-size, 20px) !important;
    font-weight: var(--rp-type-heading-weight, 700) !important;
}

body.single-post :is(
    .rp-blog-comment-jump,
    .comment-reply-link,
    .rp-blog-sidebar-shop-button,
    .rp-comment-identity-modal__close,
    .rp-comment-identity-modal__confirm
) {
    font-size: var(--rp-type-button-size, 14px) !important;
    font-weight: var(--rp-type-button-weight, 500) !important;
}

body.single-post :is(
    .rp-blog-single-category,
    .rp-blog-single-author-name,
    .rp-blog-post-navigation span
) {
    font-size: var(--rp-type-meta-size, 12px) !important;
    font-weight: var(--rp-type-meta-weight, 400) !important;
}

body.single-post :is(
    .rp-blog-post-navigation strong,
    .rp-blog-toc a,
    .rp-blog-sidebar-post strong
) {
    font-size: var(--rp-type-navigation-size, 15px) !important;
    font-weight: var(--rp-type-navigation-weight, 500) !important;
}

body.single-post :is(
    .rp-product-review-form > p,
    .rp-comment-identity-modal__intro,
    .rp-comment-identity-modal__error
) {
    font-size: var(--rp-type-helper-size, 12px) !important;
    font-weight: var(--rp-type-helper-weight, 300) !important;
}

body.single-post .rp-blog-single-bottom-intro .rp-blog-home-description {
    font-size: var(--rp-type-body-size, 14px) !important;
    font-weight: var(--rp-type-body-weight, 400) !important;
}

/* Comment actions belong to the shared metadata role on both content types. */
html body:is(.single-post, .single-product) .rp-comment-vote-modal #rp-comment-vote-title {
    font-size: var(--rp-type-heading-size, 19px) !important;
    font-weight: var(--rp-type-heading-weight, 500) !important;
}

html body:is(.single-post, .single-product) .rp-comment-vote-modal :is(.rp-comment-identity-modal__intro, .rp-comment-identity-modal__error) {
    font-size: var(--rp-type-helper-size, 12px) !important;
    font-weight: var(--rp-type-helper-weight, 300) !important;
}

html body:is(.single-post, .single-product) .rp-comment-vote-modal label {
    font-size: var(--rp-type-form_label-size, 13px) !important;
    font-weight: var(--rp-type-form_label-weight, 500) !important;
}

html body:is(.single-post, .single-product) .rp-comment-vote-modal :is(input[data-rp-vote-name], input[data-rp-vote-phone]) {
    font-size: var(--rp-type-form_input-size, 16px) !important;
    font-weight: var(--rp-type-form_input-weight, 400) !important;
}

html body:is(.single-post, .single-product) .rp-comment-vote-modal :is(.rp-comment-identity-modal__close, .rp-comment-identity-modal__confirm) {
    font-size: var(--rp-type-button-size, 13px) !important;
    font-weight: var(--rp-type-button-weight, 500) !important;
}

body:is(.single-post, .single-product) .rp-comment-reactions button,
body:is(.single-post, .single-product) .rp-mobile-comment-copy__actions .rp-comment-reactions__votes button {
    font-size: var(--rp-type-meta-size, 12px) !important;
    font-weight: var(--rp-type-meta-weight, 400) !important;
}

/* Blog taxonomy/date/author archives have no independent typography controls. */
body.archive .rp-blog-archive .rp-blog-page-kicker {
    font-size: var(--rp-type-helper-size, 12px) !important;
    font-weight: var(--rp-type-helper-weight, 300) !important;
}

body.archive .rp-blog-archive .rp-blog-home-title {
    font-size: var(--rp-type-page_title-size, 28px) !important;
    font-weight: var(--rp-type-page_title-weight, 700) !important;
}

body.archive .rp-blog-archive .rp-blog-home-description {
    font-size: var(--rp-type-body-size, 14px) !important;
    font-weight: var(--rp-type-body-weight, 400) !important;
}

body.archive .rp-blog-archive .rp-blog-strip-head h2 {
    font-size: var(--rp-type-heading-size, 20px) !important;
    font-weight: var(--rp-type-heading-weight, 700) !important;
}

body.archive .rp-blog-archive :is(
    .rp-blog-archive-card-head > strong,
    .rp-blog-archive-card li > a
) {
    font-size: var(--rp-type-navigation-size, 15px) !important;
    font-weight: var(--rp-type-navigation-weight, 500) !important;
}

body.archive .rp-blog-archive .rp-blog-archive-card-head > em {
    font-size: var(--rp-type-meta-size, 12px) !important;
    font-weight: var(--rp-type-meta-weight, 400) !important;
}

/* Dynamic Term visuals and vote blocks expose content settings, not typography. */
body.single-product :is(
    .rp-term-visual-card-head > strong
) {
    font-size: var(--rp-type-product_detail_heading-size, 14px) !important;
    font-weight: var(--rp-type-product_detail_heading-weight, 500) !important;
}

body.single-product :is(
    .rp-term-visual-group-title > h3,
    .rp-product-vote-identity > h3
) {
    font-size: var(--rp-type-product_detail_heading-size, 14px) !important;
    font-weight: var(--rp-type-product_detail_heading-weight, 500) !important;
}

body.single-product .rp-term-visual-name {
    font-size: var(--rp-type-navigation-size, 15px) !important;
    font-weight: var(--rp-type-navigation-weight, 500) !important;
}

body.single-product :is(
    .rp-product-vote-selector-step-caption,
    .rp-product-vote-label
) {
    font-size: var(--rp-type-form_label-size, 13px) !important;
    font-weight: var(--rp-type-form_label-weight, 500) !important;
}

body.single-product .rp-product-vote-submit__label {
    font-size: var(--rp-type-button-size, 14px) !important;
    font-weight: var(--rp-type-button-weight, 500) !important;
}

body.single-product :is(
    .rp-product-vote-stats > b,
    .rp-product-vote-total
) {
    font-size: var(--rp-type-meta-size, 12px) !important;
    font-weight: var(--rp-type-meta-weight, 400) !important;
}

@media (max-width: 767px) {
    body:not(.wp-admin) .rp-footer-mobile-links.rp-mobile-bottom-bar .rp-mobile-bottom-text {
        font-size: var(--rp-type-navigation-size, 11px) !important;
        font-weight: var(--rp-type-navigation-weight, 400) !important;
    }
}

@media (max-width: 560px) {
    body:not(.wp-admin) .rp-advanced-search .rp-advanced-search__results-actions button {
        font-size: var(--rp-type-helper-size, 11px) !important;
        font-weight: var(--rp-type-button-weight, 500) !important;
    }
}

/* Checkout components with legacy high-specificity declarations still consume
 * the same persisted role tokens that the live editor previews. */
html body.woocommerce-checkout .rp-checkout-shipping-tab {
    font-size: var(--rp-type-button-size, 14px) !important;
    font-weight: var(--rp-type-button-weight, 500) !important;
}

html body.woocommerce-checkout .rp-checkout-products-carousel-head h3 {
    font-size: var(--rp-type-product_detail_heading-size, 14px) !important;
    font-weight: var(--rp-type-product_detail_heading-weight, 500) !important;
}

/* Advanced-shipping fragments are inserted after the initial checkout render. */
html body.woocommerce-checkout :is(
    #rp-checkout-coupon-title,
    .rp-checkout-shipping-methods-title,
    .rp-wct-checkout-packaging > h3,
    .rp-wct-delivery-head > h3,
    #payment .wc_payment_methods li > label
) {
    font-size: var(--rp-type-checkout_section_heading-size, 14px) !important;
    font-weight: var(--rp-type-checkout_section_heading-weight, 500) !important;
}

html body.woocommerce-checkout .rp-wct-checkout-packaging .rp-wct-checkout-packaging-option .rp-wct-checkout-packaging-copy strong,
html body.woocommerce-checkout .rp-wct-delivery-day-name {
    font-size: var(--rp-type-form_label-size, 13px) !important;
    font-weight: var(--rp-type-form_label-weight, 500) !important;
}

html body.woocommerce-checkout .rp-wct-checkout-packaging-copy small,
html body.woocommerce-checkout .rp-wct-carrier-short-description,
html body.woocommerce-checkout .rp-wct-delivery-day small {
    font-size: var(--rp-type-helper-size, 12px) !important;
    font-weight: var(--rp-type-helper-weight, 300) !important;
}

html body.woocommerce-checkout .rp-wct-checkout-packaging-price {
    font-size: var(--rp-type-price-size, 16px) !important;
    font-weight: var(--rp-type-price-weight, 700) !important;
}

html body.woocommerce-checkout .rp-referral-source-field-wrap--choices .rp-referral-source-title {
    font-size: var(--rp-type-form_label-size, 13px) !important;
    font-weight: var(--rp-type-form_label-weight, 500) !important;
}

html body.woocommerce-checkout .rp-referral-source-field-wrap--choices .rp-referral-source-choice > span {
    font-size: var(--rp-type-button-size, 12px) !important;
    font-weight: var(--rp-type-button-weight, 500) !important;
}

html body.woocommerce-checkout .rp-checkout-field-section__heading > span[data-rp-global-typography-role="product_detail_heading"] {
    font-size: var(--rp-type-product_detail_heading-size, 13px) !important;
    font-weight: var(--rp-type-product_detail_heading-weight, 500) !important;
}

html body.woocommerce-checkout .leaflet-control-attribution,
html body.woocommerce-checkout .leaflet-control-attribution :is(span, a) {
    font-size: var(--rp-type-helper-size, 12px) !important;
    font-weight: var(--rp-type-helper-weight, 400) !important;
}

html body.woocommerce-checkout :is(
    .rp-checkout-order-notes-title
) {
    font-size: var(--rp-type-heading-size, 20px) !important;
    font-weight: var(--rp-type-heading-weight, 700) !important;
}

html body.woocommerce-checkout :is(
    .rp-checkout-shipping-methods-table .woocommerce-shipping-totals th,
    .woocommerce-checkout-review-order-table .order-total th
) {
    font-size: var(--rp-type-form_label-size, 13px) !important;
    font-weight: var(--rp-type-form_label-weight, 500) !important;
}

html body.woocommerce-checkout #payment .payment_box p {
    font-size: var(--rp-type-helper-size, 12px) !important;
    font-weight: var(--rp-type-helper-weight, 300) !important;
}

/* Carrier descriptions live in a dialog outside the replaceable checkout form. */
html body.woocommerce-checkout #rp-wct-carrier-modal #rp-wct-carrier-modal-title {
    font-size: var(--rp-type-heading-size, 19px) !important;
    font-weight: var(--rp-type-heading-weight, 500) !important;
}

html body.woocommerce-checkout #rp-wct-carrier-modal [data-rp-wct-carrier-modal-description] {
    font-size: var(--rp-type-body-size, 14px) !important;
    font-weight: var(--rp-type-body-weight, 400) !important;
}

html body.woocommerce-checkout #rp-wct-carrier-modal > .button {
    font-size: var(--rp-type-button-size, 13px) !important;
    font-weight: var(--rp-type-button-weight, 500) !important;
}

html body.woocommerce-checkout .select2-container .select2-selection__rendered {
    font-size: var(--rp-type-form_input-size, 16px) !important;
    font-weight: var(--rp-type-form_input-weight, 400) !important;
}

/* Page/post editor content is one body-text surface, while embedded widgets
 * and rich shortcodes keep their own typography controls. */
body:not(.wp-admin):not(.rp-generic-page-contained) .rp-entry-content :is(p, li, a):not(.rp-wct-independent-shortcode *):not(.rp-widget *) {
    font-size: var(--rp-type-body-size, 14px) !important;
    font-weight: var(--rp-type-body-weight, 400) !important;
}

/* Term-card titles have their own responsive typography controls. */
body:not(.wp-admin):not(.rp-generic-page-contained) .rp-entry-content strong:not(.rp-widget-term-title):not(.rp-wct-independent-shortcode *):not(.rp-widget *) {
    font-size: inherit !important;
    font-weight: bolder !important;
}

body:not(.wp-admin):not(.rp-generic-page-contained) .rp-entry-content :is(h2, h3):not(.rp-wct-independent-shortcode *):not(.rp-widget *) {
    font-size: var(--rp-type-heading-size, 20px) !important;
    font-weight: var(--rp-type-heading-weight, 700) !important;
}

body:not(.wp-admin):not(.rp-generic-page-contained) .rp-entry-content :is(h4, h5, h6):not(.rp-wct-independent-shortcode *):not(.rp-widget *) {
    font-size: var(--rp-type-heading-size, 20px) !important;
    font-weight: var(--rp-type-heading-weight, 700) !important;
}

body:not(.wp-admin):not(.rp-generic-page-contained) .rp-entry-content :is(h4, h5, h6) > strong:not(.rp-wct-independent-shortcode *):not(.rp-widget *) {
    font-size: inherit !important;
    font-weight: inherit !important;
}

/* Account shell and address details are shared typography, not private widgets.
 * Keep these rules above the account template's legacy fixed-size declarations. */
html body.woocommerce-account .rp-account-user-name,
html body.woocommerce-account .rp-account-address-detail :is(.rp-account-address-detail__label, .rp-account-address-detail__value) {
    font-size: var(--rp-type-body-size, 14px) !important;
    font-weight: var(--rp-type-body-weight, 400) !important;
}

html body.woocommerce-account .rp-account-latest-order-card .rp-account-latest-order-row > strong {
    font-size: var(--rp-type-body-size, 14px) !important;
    font-weight: var(--rp-type-body-weight, 400) !important;
}

html body.woocommerce-account .rp-account-order-total-amount .woocommerce-Price-amount {
    font-size: var(--rp-type-price-size, 18px) !important;
    font-weight: var(--rp-type-price-weight, 700) !important;
}

html body.woocommerce-account .woocommerce-Price-currencySymbol {
    font-size: var(--rp-type-currency_symbol-size, 12px) !important;
    font-weight: var(--rp-type-currency_symbol-weight, 400) !important;
}

html body.woocommerce-account :is(.rp-account-password-submit, .rp-wct-phone-change-trigger, .woocommerce-MyAccount-content .woocommerce-Button.button) {
    font-size: var(--rp-type-button-size, 14px) !important;
    font-weight: var(--rp-type-button-weight, 500) !important;
}

html body.woocommerce-account .woocommerce-MyAccount-content button.woocommerce-Button.button {
    font-weight: var(--rp-type-button-weight, 500) !important;
}

html body.single-product :is(.rp-grouped-stock-notice.stock, .stock.available-on-backorder) {
    font-size: var(--rp-type-helper-size, 12px) !important;
    font-weight: var(--rp-type-helper-weight, 300) !important;
}

html body.single-product .rp-product-buybox form.cart .quantity input.qty {
    font-size: var(--rp-type-form_input-size, 16px) !important;
    font-weight: var(--rp-type-form_input-weight, 400) !important;
}

html body.single-product .rp-product-buybox .rp-product-buybox-card .rp-grouped-stock-notice.stock.out-of-stock {
    font-size: var(--rp-type-helper-size, 12px) !important;
}

/* Single-post controls and comment metadata keep their assigned live roles. */
html body.single-post .rp-blog-comment-jump > span {
    font-size: inherit !important;
}

html body.single-post .rp-blog-single-category,
html body.single-post .rp-blog-comments .rp-blog-comment-author {
    font-size: var(--rp-type-meta-size, 12px) !important;
    font-weight: var(--rp-type-meta-weight, 400) !important;
}

html body.single-post .rp-blog-post-head a.rp-blog-single-category {
    font-weight: var(--rp-type-meta-weight, 400) !important;
}

html body.single-post .rp-mobile-comment-copy__content > p {
    font-size: var(--rp-type-body-size, 14px) !important;
    font-weight: var(--rp-type-body-weight, 400) !important;
}

@media (max-width: 900px) {
    html body.blog .rp-blog-home .rp-blog-archive-strip > a.rp-blog-strip-all--bottom.rp-blog-strip-all--mobile {
        font-size: var(--rp-type-button-size, 14px) !important;
        font-weight: var(--rp-type-button-weight, 500) !important;
    }

    html body.single-post .rp-blog-post-navigation strong,
    html body.single-post .rp-blog-single-sidebar--tech .rp-blog-sidebar-post strong {
        font-size: var(--rp-type-navigation-size, 15px) !important;
        font-weight: var(--rp-type-navigation-weight, 500) !important;
    }

    html body.single-post .rp-blog-comment-reply a.comment-reply-link {
        font-size: var(--rp-type-button-size, 14px) !important;
        font-weight: var(--rp-type-button-weight, 500) !important;
    }

    html body.single-post .rp-product-review-form.rp-blog-comment-form > p {
        font-size: var(--rp-type-helper-size, 12px) !important;
        font-weight: var(--rp-type-helper-weight, 300) !important;
    }

    html body.woocommerce-account .woocommerce-orders-table time,
    html body.woocommerce-account .woocommerce-orders-table .rp-account-order-items-count {
        font-size: var(--rp-type-body-size, 14px) !important;
        font-weight: var(--rp-type-body-weight, 400) !important;
    }

    html body.woocommerce-account .woocommerce-orders-table td.woocommerce-orders-table__cell-order-total .rp-account-order-total-amount .amount {
        font-size: var(--rp-type-price-size, 18px) !important;
        font-weight: var(--rp-type-price-weight, 700) !important;
    }

    html body.single-product .rp-mobile-product-sticky-price-content .rp-buybox-price-final .amount {
        font-size: var(--rp-type-price-size, 16px) !important;
        font-weight: var(--rp-type-price-weight, 700) !important;
    }
}

/* Destination controls share the canonical button typography role. */
html body.woocommerce-checkout .rp-checkout-destination-card [data-rp-destination-edit] { font-size:var(--rp-type-button-size,13px)!important;font-weight:var(--rp-type-button-weight,500)!important; }
