/* Shared reading sizes. Load after page styles; admin typography is independent. */
body.storefront {
  --reading-body: 1rem;
  --reading-ui: .9375rem;
  --reading-detail: .9375rem;
  --reading-small: .875rem;
  font-size: var(--reading-body);
}

/* Navigation and common actions */
body.storefront .main-nav > a,
body.storefront .main-nav > button,
body.storefront .nav-product-item > a,
body.storefront .mobile-nav-panel a { font-size: 1rem; }
body.storefront :is(.model-query-button, .header-actions .text-button, .customer-account-link) {
  font-size: var(--reading-ui);
}
body.storefront :is(.btn, .card-actions button, .card-actions a, .section-head > a,
  .showcase-heading a, .category-tabs button, .subcategory-tabs button,
  .explorer-hero-cta, .directory-row-link, .directory-row-head > button,
  .feature-card a, .company-nav a, .service-anchor-nav a, .service-detail-nav a,
  .service-detail-aside a, .case-card-action, .case-text-link, .case-pager-all) {
  font-size: var(--reading-ui);
  line-height: 1.5;
}
body.storefront :is(.announcement, .hero-data dd, .trust-grid span,
  .product-meta, .product-price small, .breadcrumb, .sub-kicker,
  .sub-hero-aside span, .catalog-count, .directory-breadcrumb, .catalog-path,
  .directory-family-copy small, .directory-family-copy > span,
  .directory-leaf-copy small, .directory-product-card small,
  .directory-row-head h3 small, .page-note, .case-tags span) {
  font-size: var(--reading-small);
}

/* Home, product directory and editorial pages */
body.storefront :is(.trust-grid strong, .product-spec, .sub-section-head > p,
  .feature-card p, .process-grid p, .case-copy p, .case-grid p, .value-grid p,
  .capability-list p, .story-copy, .category-explorer-head > p,
  .directory-intro > p, .explorer-hero p, .directory-empty p,
  .partner-section .partner-heading p) {
  font-size: var(--reading-body);
  line-height: 1.8;
}
body.storefront :is(.explorer-card-title, .directory-family-copy strong,
  .directory-leaf-copy strong, .directory-product-card strong) {
  font-size: 1rem;
  line-height: 1.5;
}
/* The overview titles already have a larger size; keep their hierarchy. */
body.storefront.products-root-active .directory-root-view .directory-family-copy strong {
  font-size: 1.375rem;
  line-height: 1.35;
}
body.storefront .partner-section .partner-logos b { font-size: var(--reading-small); }
body.storefront .directory-family-copy { flex-shrink: 0; }
body.storefront .directory-row-head h3 { flex-wrap: wrap; padding-block: 12px; }
body.storefront .directory-row-head h3 small { white-space: normal; }

/* Product introduction, model list, expanded parameters and dialogs */
body.storefront :is(.pd-intro-text, .pd-hero-sub, .pd-panel-head p,
  .pd-description-article, .pd-description-aside ul, .pd-assembly-list ul,
  .pd-custom-card p, .pd-curve-card p, .pd-contact-inner p) {
  font-size: var(--reading-body);
  line-height: 1.8;
}
body.storefront :is(.pd-hero-meta strong, .pd-purchase-selection strong,
  .pd-tab-nav button, .pd-panel-link, .pd-btn-primary, .pd-btn-ghost,
  .pd-btn-outline-light, .pd-hero-cart, .pd-hero-buy, .pd-hero-consult,
  .pd-sku-model-trigger strong, .pd-related-card h3,
  .pd-compare-toolbar strong, .pd-sku-detail-heading strong) {
  font-size: var(--reading-ui);
  line-height: 1.5;
}
body.storefront :is(.pd-hero-meta span, .pd-hero-sku-label,
  .pd-purchase-price small, .pd-purchase-price span, .pd-purchase-selection small,
  .pd-intro-model, .pd-intro-link, .pd-intro-image-empty, .pd-intro-media figcaption,
  .pd-panel-tag, .pd-sku-count, .pd-sku-model-hint, .pd-sku-model-trigger small,
  .pd-sku-detail-heading span, .pd-sku-detail-panel > p, .pd-sku-shipping,
  .pd-sku-shipping strong, .pd-price-contact, .pd-compare-control,
  .pd-compare-toolbar small, .pd-compare-note, .pd-related-card small,
  .pd-files-dialog-head span, .pd-files-type-copy small, .pd-files-download,
  .pd-files-download-all, .pd-files-unavailable, .pd-files-dialog-foot > span,
  .pd-schematic-caption, .pd-assembly-note, .pd-breadcrumb) {
  font-size: var(--reading-small);
  line-height: 1.6;
}
body.storefront :is(.pd-sku-table td, .pd-spec-table, .pd-spec-table thead th,
  .pd-compare-table th, .pd-compare-table td, .sub-spec-table td, .spec-table td) {
  font-size: var(--reading-detail);
  line-height: 1.6;
}
body.storefront .pd-sku-table thead th {
  padding-block: 15px;
  font-size: var(--reading-small);
  line-height: 1.5;
}
body.storefront .pd-sku-table td { padding-block: 13px; }
body.storefront .pd-purchase-actions { flex-wrap: wrap; }
body.storefront .pd-cart-actions { flex-wrap: wrap; }
body.storefront .pd-cart-buttons { flex: 1 0 180px; }
body.storefront .pd-sku-table .pd-sku-model { font-size: 1rem; }
body.storefront .pd-sku-spec-trigger > span,
body.storefront .pd-sku-spec-copy { font-size: var(--reading-detail); }
body.storefront .pd-sku-spec-trigger small,
body.storefront .pd-sku-table :is(.price-pending, .pd-sku-stock, .pd-sku-stock strong) {
  font-size: var(--reading-small);
}
body.storefront :is(.pd-cart-buttons .pd-sku-add, .pd-cart-buttons .pd-sku-buy,
  .pd-sku-consult, .pd-compare-toolbar button, .pd-compare-dialog-foot button) {
  min-height: 44px;
  font-size: var(--reading-small);
  line-height: 1.5;
}
body.storefront .pd-sku-detail-panel dl { grid-auto-rows: minmax(48px, auto); }
body.storefront .pd-sku-detail-panel :is(dt, dd) {
  display: flex;
  align-items: center;
  padding-block: 10px;
  font-size: var(--reading-detail);
  line-height: 1.6;
}

/* Service articles and case studies */
body.storefront :is(.service-hero-inner > p, .service-guide-grid p,
  .service-directory-card p, .service-detail-hero p:last-child,
  .service-detail-content > p, .service-detail-copy, .service-detail-block p,
  .service-detail-list li, .service-detail-faq summary, .service-detail-faq details p,
  .service-detail-cta p, .service-policy-grid article > div, .service-faq-list summary,
  .service-faq-list details p, .service-contact-band span,
  .case-card-body > p:not(.case-card-type), .case-overview-text, .case-challenge-list dd,
  .case-detail-heading > p, .case-architecture p, .case-selection-grid > div > p:not(.sub-kicker),
  .case-constraint-list dd, .case-delivery-grid li) {
  font-size: var(--reading-body);
  line-height: 1.8;
}
body.storefront :is(.service-directory-index, .service-detail-aside p,
  .service-section-head p, .service-section-head > span, .service-faq-layout > header > p,
  .service-faq-layout > header > span, .service-contact-band p, .service-policy-grid article > p,
  .case-card-type, .case-card-facts dt, .case-card-facts dd, .case-detail-breadcrumb .shell,
  .case-detail-tags span, .case-detail-figure figcaption, .case-challenge-list dt,
  .case-constraint-list dt, .case-product-copy p, .case-product-copy small,
  .case-product-copy span, .case-pager small, .case-architecture small, .case-architecture a) {
  font-size: var(--reading-small);
  line-height: 1.6;
}

/* Search, cart and customer forms */
body.storefront :is(.search-field-label, .search-panel label, .search-panel .search-results button,
  .search-panel .search-results > span, .product-search-heading small, .product-search-form label,
  .product-search-status, .product-search-result span, .product-search-pagination,
  .cart-item p, .cart-footer > p, .cart-assurance span, .form-note,
  .drawer label, .form-grid label, .invoice-fields label,
  .customer-auth-card label, .customer-auth-note, .customer-auth-error,
  .customer-wechat-panel > p, .wechat-qr-frame span, .customer-auth-points span,
  .code-button, .account-nav a, .account-nav button, .customer-profile-card > p,
  .customer-profile-card dl div, .customer-orders-panel > header > a,
  .customer-order-meta p, .customer-order-meta b, .customer-order-address,
  .account-form-grid label, .account-panel-note, .account-field-note,
  .account-section-nav button, .account-link-button, .account-secondary-button,
  .order-status-tabs button, .address-item p, .address-item header span) {
  font-size: var(--reading-small);
  line-height: 1.6;
}
body.storefront :is(.product-search-result strong, .cart-item-heading h3) {
  font-size: var(--reading-ui);
  line-height: 1.6;
}
body.storefront .cart-assurance { flex-wrap: wrap; }

/* Footer */
body.storefront :is(.site-footer-pro .footer-company p, .site-footer-pro .footer-company .footer-hours,
  .site-footer-pro .footer-links a, .site-footer-pro .footer-social > p,
  .site-footer-pro .footer-platform figcaption, .site-footer-pro .copyright,
  .site-footer-pro .copyright a) {
  font-size: var(--reading-small);
  line-height: 1.7;
}
body.storefront :is(.site-footer-pro .footer-social > strong, .site-footer-pro .footer-links strong) {
  font-size: var(--reading-ui);
}
body.storefront .site-footer-pro .footer-platform figcaption { white-space: normal; }
body.storefront .site-footer-pro .footer-links a { min-height: 34px; }

@media (min-width: 761px) {
  body.storefront.product-detail-page .pd-sku-table { min-width: 1100px; }
}

@media (min-width: 1101px) {
  body.storefront .site-footer-pro .footer-links { padding-right: 36px; }
}

@media (min-width: 761px) and (max-width: 1200px) {
  body.storefront .header-row { gap: 12px; }
  body.storefront .main-nav > a,
  body.storefront .nav-product-item > a { padding-inline: 12px; }
  body.storefront .site-header .brand-wide-logo { flex-shrink: 1; }
  body.storefront #productShowcase .home-category-tile > strong { font-size: 1rem; }
}

@media (max-width: 760px) {
  body.storefront {
    --reading-ui: .875rem;
    --reading-detail: .875rem;
    --reading-small: .8125rem;
  }
  body.storefront:not(.subpage) .hero-lead { font-size: 1rem; line-height: 1.8; }
  body.storefront:not(.subpage) .hero-data dd { font-size: .8125rem; line-height: 1.5; }
  body.storefront:not(.subpage) .hero-actions .btn { font-size: .875rem; }
  body.storefront.products-root-active .directory-root-view .directory-family-copy strong {
    font-size: 1rem;
  }
  body.storefront .directory-root-view .directory-family-copy { flex-basis: auto; min-height: 64px; }
  body.storefront .pd-sku-table td::before { font-size: .8125rem; }
  body.storefront .pd-cart-buttons { flex: none; }
  body.storefront .pd-cart-actions { width: 100%; flex-wrap: nowrap; }
  body.storefront .pd-cart-actions .pd-qty-stepper { flex: 0 0 auto; }
  body.storefront .pd-tab-nav-inner { overflow-x: auto; }
  body.storefront .pd-tab-nav button { flex: 1 0 auto; padding-inline: 12px; }
  body.storefront .showcase-heading { flex-wrap: wrap; gap: 12px; }
  body.storefront .site-footer-pro .footer-links a { min-height: 38px; }
}
