/*
 * Batya Shop typography system
 * ----------------------------
 * theme.json owns the canonical font-size presets. This late-loaded stylesheet
 * only normalizes legacy component declarations that predate that system.
 *
 * Rules of the scale:
 *   XS      12px  — counters, timestamps, badges and genuinely secondary meta
 *   Small   14px  — compact UI, chips, tabs, filters and secondary labels
 *   Base    16px  — readable body copy, form values and primary navigation text
 *   Medium  18px  — UI section headings and compact prominent values
 *   Large   20–24 — section headings
 *   XL      28–32 — page/product titles
 *   XXL     32–40 — hero titles / major display values
 *
 * Do not add viewport-specific typography here. Responsive behaviour belongs
 * only to layout. If a component needs a smaller size merely to fit, fix its
 * geometry rather than collapsing the type hierarchy.
 */

/* Readable defaults ----------------------------------------------------- */
:where(input:not([type="checkbox"]):not([type="radio"]), textarea, select) {
  font-size: var(--batya-font-base);
}

:where(.entry-content, .wysiwyg-content, .single-product-tabs .woocommerce-Tabs-panel) {
  font-size: var(--batya-font-base);
}

/* Header / navigation --------------------------------------------------- */
.site-header__catalog-btn,
.desktop-menu__cat,
.desktop-menu__children a,
.catalog-mobile-links__item,
.catalog-mobile-links__child,
.catalog-mobile-links__children--depth-2 .catalog-mobile-links__child,
.catalog-mobile-links__children--depth-3 .catalog-mobile-links__child,
.catalog-mobile-links__children--depth-4 .catalog-mobile-links__child {
  font-size: var(--batya-font-base);
}

.desktop-menu__panel-title,
.catalog-mobile-panel__head strong,
.catalog-mobile-panel__head h2 {
  font-size: var(--batya-font-lg);
}

.desktop-menu__future-note {
  font-size: var(--batya-font-sm);
}

.catalog-mobile-panel__meta,
.catalog-mobile-links__count {
  font-size: var(--batya-font-xs);
}

/* Catalog page ---------------------------------------------------------- */
.catalog-title-row .page-title,
.catalog-page .page-title {
  font-size: var(--batya-font-xl);
}

.term-description,
.woocommerce-products-header__description,
.catalog-page__description {
  font-size: var(--batya-font-base);
}

.catalog-title-count,
.catalog-breadcrumbs,
.catalog-toolbar__count .woocommerce-result-count,
.woocommerce-result-count {
  font-size: var(--batya-font-xs);
}

.catalog-quick-links__item,
.catalog-subcats__link,
.catalog-tool-button,
.catalog-icon-button,
.catalog-filter-toggle,
.woocommerce-ordering select {
  font-size: var(--batya-font-sm);
}

.catalog-subcats__count {
  font-size: var(--batya-font-xs);
}

/* Product cards: names must never collapse into micro-copy. */
.product-card__title,
.catalog-main .product-card__title {
  font-size: var(--batya-font-sm);
  line-height: 1.35;
}

.product-card__price,
.product-card__price .price,
.catalog-main .product-card__price .price {
  font-size: var(--batya-font-base);
}

.product-badge,
.product-card__stock,
.product-card__sku,
.product-card__chip,
.catalog-main .product-badge,
.catalog-main .product-card__stock,
.catalog-main .product-card__sku,
.catalog-main .product-card__chip {
  font-size: var(--batya-font-xs);
}

.product-card__actions .button,
.product-card__actions .added_to_cart,
.product-card__button,
.product-card .added_to_cart {
  font-size: var(--batya-font-sm);
}

/* Desktop catalog filter rail ------------------------------------------ */
.catalog-sidebar__title,
.catalog-sidebar .batya-filter > summary,
.catalog-sidebar .batya-filter__item,
.catalog-sidebar .batya-filter__name,
.catalog-sidebar .batya-filter__desktop-more,
.batya-catalog-active-filters__chip,
.batya-catalog-active-filters__clear,
.catalog-main-toolbar__label,
.catalog-main-toolbar .woocommerce-ordering select {
  font-size: var(--batya-font-sm);
}

.catalog-sidebar .batya-filter__badge,
.catalog-sidebar .batya-filter__count {
  font-size: var(--batya-font-xs);
}

/* Homepage -------------------------------------------------------------- */
.home-intro h1 {
  font-size: var(--batya-font-xxl);
}

.home-intro p {
  font-size: var(--batya-font-base);
}

.home-section__head h2 {
  font-size: var(--batya-font-lg);
}

.home-section__more,
.home-category-card__title,
.home-store-card__meta,
.home-store-card__help-copy strong,
.home-store-card__links a {
  font-size: var(--batya-font-sm);
}

.home-category-card__count,
.home-store-card__eyebrow,
.home-store-card__help-copy span {
  font-size: var(--batya-font-xs);
}

.home-store-card__address,
.home-store-card__links .home-store-card__phone {
  font-size: var(--batya-font-md);
}

/* Footer ---------------------------------------------------------------- */
.site-footer__title,
.site-footer__phone {
  font-size: var(--batya-font-base);
}

.site-footer__links a,
.site-footer__contact,
.site-footer__contact a,
.site-footer__description {
  font-size: var(--batya-font-sm);
}

.site-footer__socials a,
.site-footer__bottom {
  font-size: var(--batya-font-xs);
}

/* Single product -------------------------------------------------------- */
.single-product-card__title {
  font-size: var(--batya-font-xl);
}

.single-product-card__stock,
.single-product-card__sale,
.single-product-card__sku,
.single-product-card__chip,
.single-product-buybox__pickup-label,
.single-product-service__label,
.single-sticky-bar__title {
  font-size: var(--batya-font-xs);
}

.single-product-card__excerpt {
  font-size: var(--batya-font-base);
}

.single-product-buybox__price.single-product-card__price,
.single-product-buybox__price .price {
  font-size: var(--batya-font-xl);
}

.single-product-buybox__availability,
.single-product-card__feedback,
.single-product-buybox__pickup-address,
.single-product-service__value,
.single-product-tabs .woocommerce-tabs ul.tabs li a,
.single-sticky-bar__price,
.single-product-card__cta form.cart.has-batya-mobile-stepper > .batya-mobile-qty-label,
.single-product-card__native-notices .woocommerce-message,
.single-product-card__native-notices .woocommerce-info,
.single-product-card__native-notices .woocommerce-error {
  font-size: var(--batya-font-sm);
}

.single-product-related__title {
  font-size: var(--batya-font-lg);
}

.single-product-card__cta .single_add_to_cart_button,
.single-sticky-bar__button {
  font-size: var(--batya-font-base);
}

/* Product specifications ------------------------------------------------ */
.single-product-tabs .woocommerce-Tabs-panel--additional_information .shop_attributes th {
  font-size: var(--batya-font-sm);
}

.single-product-tabs .woocommerce-Tabs-panel--additional_information .shop_attributes td {
  font-size: var(--batya-font-base);
}

/* Bundle composition ---------------------------------------------------- */
.single-product-bundle-contents__title {
  font-size: var(--batya-font-md);
}

.single-product-bundle-contents__hint,
.single-product-bundle-contents .woosb-products .stock,
.single-product-bundle-contents .woosb-products .woosb-stock {
  font-size: var(--batya-font-xs);
}

.single-product-bundle-contents .woosb-products .woosb-title,
.single-product-bundle-contents .woosb-products .woosb-price {
  font-size: var(--batya-font-sm);
}

/* Product rating link --------------------------------------------------- */
.single-product-card__rating,
.single-product-card__rating-value {
  font-size: var(--batya-font-sm);
}

/* Reviews --------------------------------------------------------------- */
.batya-reviews__title {
  font-size: var(--batya-font-lg);
}

.batya-review-form__title {
  font-size: var(--batya-font-md);
}

.batya-reviews__count,
.batya-reviews__write-button,
.batya-reviews-toolbar__select,
.batya-review-pagination .page-numbers a,
.batya-review-pagination .page-numbers span,
.batya-reviews-empty p,
.batya-review-upload,
.batya-review-form__submit,
.batya-review-form__form .must-log-in,
.batya-review-form__form .must-log-in a,
.batya-reviews__verification-note,
.batya-review-form__form .comment-form-cookies-consent label {
  font-size: var(--batya-font-sm) !important;
}

.batya-reviews-summary__average {
  font-size: var(--batya-font-xxl);
}

.batya-reviews-summary__caption,
.batya-rating-row__label,
.batya-rating-row__count,
.batya-review-photo-rail__header span,
.batya-reviews-toolbar__label,
.batya-review__date,
.batya-review__source,
.batya-review__media-only-label,
.batya-review-form__note,
.batya-review-form__field-note {
  font-size: var(--batya-font-xs);
}

.batya-review-photo-rail__header h3,
.batya-review__author,
.batya-review__content,
.batya-reviews-empty strong {
  font-size: var(--batya-font-base);
}

.batya-review-form-wrapper :where(input:not([type="checkbox"]):not([type="radio"]), textarea, select) {
  font-size: var(--batya-font-base);
}

.batya-review-form-wrapper label {
  font-size: var(--batya-font-sm);
}

/* Checkout --------------------------------------------------------------
   WooCommerce section titles intentionally remain untouched: Blocks already
   consume --wp--preset--font-size--medium, which is the canonical 18px token. */
.batya-checkout-pickup-only .wc-block-components-radio-control__label,
.batya-checkout-pickup-only .wc-block-components-radio-control__option-layout,
.batya-checkout-pickup-only .wc-block-components-checkout-place-order-button {
  font-size: var(--batya-font-base);
}

.batya-checkout-pickup-only .wc-block-components-radio-control__description,
.batya-checkout-pickup-only .wc-block-components-radio-control__secondary-description,
.batya-checkout-pickup-only .wp-block-woocommerce-checkout-order-note-block,
.batya-checkout-pickup-only .wp-block-woocommerce-checkout-terms-block,
.batya-checkout-pickup-only .wc-block-components-order-summary-item__description .wc-block-components-product-name,
.batya-checkout-pickup-only .wc-block-components-order-summary-item__total-price {
  font-size: var(--batya-font-sm) !important;
}

.batya-checkout-pickup-only .wc-block-components-order-summary-item__individual-prices {
  font-size: var(--batya-font-xs);
}

/* Icon glyph sizes are intentionally not normalized. Stars, chevrons and
 * counter bubbles are geometry, not reading text. The 10px cart/quantity badge
 * is therefore allowed to remain a component-specific exception. */
