/* Reading sizes for public content, loaded after legacy and page styles.
   Keep root sizing, display headings, navigation and footer independent. */
:root {
  --nz-copy-size: clamp(17px, 1.35vw, 19px);
  --nz-copy-leading: 1.75;
  --nz-control-size: 16px;
  --nz-caption-size: 14px;
}

/* Only page-content siblings of the shared header/footer are in this scope.
   Important size/leading declarations bridge legacy inline and page overrides. */
.body-inner > :not(#header, #footer, footer) p:not(:where(
  [class*="kicker"], [class*="eyebrow"], [class*="label"],
  .nz-mag-hero-byline, .nz-mag-quote-text, .nz-mag-lede,
  .na-person-caption p, .ph-sr-only, .nz-con-sr
)),
.body-inner > :not(#header, #footer, footer) :is(.rich-text, .post-item-description) :is(li, td),
:is(.nz-mag-section, .nz-ind-list, .nz-prod-copy, .nz-prod-description) li {
  font-size: var(--nz-copy-size) !important;
  line-height: var(--nz-copy-leading) !important;
}

/* Structured prose and technical information are not always paragraph tags. */
:is(.nz-prod-lead, .nz-prod-specrow, .nz-prod-spec-label, .nz-prod-spec-value,
    .nz-prod-keyspec-value, .nz-prod-features li, .nz-mag-section li,
    .nz-ind-needs li, .nz-ind-list li, .nz-con-address, .nz-con-address a,
    .nz-con-address-name, .nz-con-card-direct a) {
  font-size: var(--nz-copy-size) !important;
  line-height: 1.65 !important;
}

/* Small supporting labels have a deliberate floor rather than 9–12px text. */
:is(.nz-about-kicker, .na-eyebrow, .na-index, .na-optics-coordinate,
    .nz-cat-kicker, .nz-cat-banner-audience > span, .nz-prod-keyspec-label,
    .nz-rec-hero-eyebrow, .nz-rec-card-label, .nz-mag-hero-kicker,
    .nz-mag-hero-byline, .nz-mag-range > span, .nz-ind-marker,
    .nz-dl-section-label, .nz-dl-count, .nz-dl-doc-type,
    .nz-con-eyebrow, .nz-con-routelabel, .nz-con-field > label,
    .nz-con-route > span, .ps-label) {
  font-size: var(--nz-caption-size) !important;
  line-height: 1.5 !important;
}

/* Card names, document names and descriptive links remain clearly readable. */
:is(.nz-cat-card-name, .nz-prod-dl-name, .nz-dl-doc-name, .nz-mag-inst-name) {
  font-size: var(--nz-copy-size) !important;
  line-height: 1.4 !important;
}
.nz-prod-h2-title { font-size: 22px; line-height: 1.3; }
:is(.nz-ind-card-name, .nz-dl-card h3, .nz-dl-empty h3, .nz-dl-no-results h3) {
  font-size: 20px;
  line-height: 1.4;
}
.nz-about-hero .nz-about-kicker { font-size: var(--nz-caption-size) !important; }

.body-inner > :not(#header, #footer, footer) :is(legend, figcaption, small) {
  font-size: var(--nz-caption-size) !important;
  line-height: 1.5 !important;
}
.nz-con legend em { font-size: inherit; }
.nz-breadcrumbs { font-size: var(--nz-caption-size); line-height: 1.5; }
.post-item-description > p { max-width: 72ch; }
.nz-gallery-link { font-size: var(--nz-copy-size); line-height: 1.5; }
.body-inner > :not(#header, #footer, footer) .nz-btn {
  font-size: var(--nz-control-size);
  line-height: 1.5;
}

:is(.ph-button, .pc-all-products, .pe-contact-link, .na-contact-link,
    .nz-about-arrow-link, .nz-cat-hero-btn, .nz-cat-btn, .nz-cat-chip,
    .nz-cat-card-btn, .nz-prod-btn, .nz-prod-back, .nz-ind-btn,
    .nz-ind-hero-index-btn, .nz-ind-back, .nz-rec-hero-btn, .nz-rec-btn,
    .nz-mag-inst-link, .nz-dl-outline-btn, .nz-dl-text-link,
    .nz-dl-product-link, .nz-dl-pill, .nz-dl-page-btn,
    .nz-con-submit, .nz-con-pcard a) {
  font-size: var(--nz-control-size) !important;
  line-height: 1.5 !important;
}

.nz-con :is(input:not([type="radio"]):not([type="checkbox"]):not([type="hidden"]), select, textarea),
.nz-dl-search input {
  font-size: 17px !important;
  line-height: 1.5 !important;
}
.nz-con :is(input, textarea)::placeholder,
.nz-dl-search input::placeholder { font-size: inherit; }

/* Preserve the hierarchy of editorial quotes, statistics and portrait captions. */
.nz-mag-lede { font-size: clamp(20px, 1.6vw, 24px) !important; line-height: 1.65 !important; }
.na-person-caption p { font-size: 16px; line-height: 1.5; }
.nz-con-route > span { padding-block: 10px; }
.nz-cat-chip { white-space: normal; }
.nz-cat-card-foot { gap: 12px; }
.nz-dl-doc-copy { min-width: 0; }
.nz-dl-doc-name { overflow-wrap: anywhere; }
.ps-label { letter-spacing: .04em; }

@media (max-width: 600px) {
  .na-person-caption p { font-size: 14px; }
  .ps-grid { gap: 12px; }
  .ps-label { max-width: 16ch; margin-inline: auto; }
}
