/* Site-wide readability layer. Loaded after page-specific styles. */
:root {
  --slate: #3f485e;
  --slate-soft: #5f687d;
}

body {
  font-size: 16px;
  line-height: 1.6;
  text-rendering: optimizeLegibility;
}

/* Descriptive copy across every public section and detail page. */
main p,
body > section p {
  font-size: clamp(15px, 1.1vw, 16.5px) !important;
  line-height: 1.72 !important;
}

main [class*="-card"] p,
body > section [class*="-card"] p,
.value-item p,
.why-reason p,
.loc-card p {
  font-size: 15px !important;
  line-height: 1.68 !important;
}

main small,
body > section small,
main [class*="-meta"],
main [class*="-kicker"],
main [class*="-code"],
main [class*="-caption"],
main [class*="-index"] {
  font-size: 11px !important;
  line-height: 1.45;
}

.eyebrow,
.about-story-tag,
.about-process-no,
.about-value-no,
.ps-category-index,
.ps-category-count,
.ps-service-code,
.ps-service-card small,
.category-product-code,
.detail-process-no,
.detail-brief-head,
.detail-quality-status,
.catalog-subnav b,
.catalog-cta-copy small {
  font-size: 11px !important;
  line-height: 1.45;
}

/* Secondary information remains subordinate, but no longer tiny. */
.stat-cell-lt .lbl,
.stat-cell .cap,
.home-product-count span,
.home-command-metrics span,
.why-system-stats span,
.about-stat .label,
.about-panel-stat span,
.about-story-float span,
.about-cert-tab-copy span,
.ps-panel-stat span,
.ps-command-row span,
.ps-network-fact span,
.ps-lab-cell span,
.ps-form-note,
.ps-summary-row,
.ps-summary-row strong,
.catalog-panel-stat span,
.category-proof small,
.detail-applications span,
.detail-brief-row span,
.detail-related-card span,
.contact-map-legend span,
.contact-visual-badge span,
.cp-aside-grid span,
.csr-value p,
.blog-flow-step p,
.blog-intelligence-list span {
  font-size: 13px !important;
  line-height: 1.6 !important;
}

.ps-service-card p,
.category-product-content p,
.detail-process-card p,
.detail-test-card p,
.event-card p,
.blog-insight-body p,
.csr-pillar p,
.contact-address p {
  color: var(--slate) !important;
}

/* Stronger contrast for copy placed over navy, photography and gradients. */
[class*="-hero"] p,
.why-pct-system p,
.home-products-command p,
.stats-band p,
.banner p,
.ps-portfolio p,
.ps-floor p,
.ps-close p,
.category-system p,
.detail-quality p,
.cp-closing p,
.events-gallery p,
.csr-values p,
.csr-report-card p,
.blog-editorial-hero p,
.blog-intelligence p,
.blog-closing p,
.about-people-note p,
.about-vision p,
.about-banner p,
.about-cert-shell p,
footer p {
  color: rgba(255,255,255,.82) !important;
}

.category-flow-step p,
.detail-test-card p,
.ps-floor-step p,
.csr-value p,
.blog-flow-step p {
  color: rgba(255,255,255,.78) !important;
}

/* Header and footer descriptions also meet the same readable baseline. */
.mega-item p,
.mega-promo p,
.mega-product-card p,
.mega-service-card p,
.mega-service-note span,
.product-stage-copy p,
.mega-service-visual > p {
  font-size: 11.5px !important;
  line-height: 1.52 !important;
  color: #4b556b !important;
}

.mega-service-visual > p,
.product-stage-copy p {
  color: rgba(255,255,255,.78) !important;
}

.mega-product-tags span,
.mega-product-tags a,
.mega-product-more,
.mega-service-card small,
.mega-service-group-head b,
.service-flow-track em,
.product-flow-steps b,
.service-process-step span {
  font-size: 9.5px !important;
  line-height: 1.4 !important;
}

.footer-brand p { font-size: 15px !important; }
.footer-col a { font-size: 15px; color: rgba(255,255,255,.86); }
.footer-col .contact-line { font-size: 14px; color: rgba(255,255,255,.82); }
.footer-bottom { font-size: 13px; color: rgba(255,255,255,.68); }
.footer-node span { font-size: 11px; color: rgba(255,255,255,.74); }

/* Page-specific microcopy audited across the complete template set. */
.about-media .tag,
.about-panel-head,
.about-story-tag,
.about-machine::before,
.about-people-content small,
.about-cert-current small,
.about-cert-nav-head b,
.about-cert-nav-head span,
.about-cert-tab-copy small,
.about-value-no,
.about-process-no,
.home-command-kicker,
.home-product-index,
.why-system-top,
.why-system-copy small,
.why-reason-no,
.footer-kicker,
.footer-col h5,
.footer-node b,
.footer-category-node,
.footer-portfolio-hub b,
.ps-panel-head,
.ps-command-column > small,
.ps-command-row em,
.ps-core-label,
.ps-product-tab span,
.ps-stage-copy small,
.ps-stage-specs span,
.ps-lab-bar,
.ps-lab-cell small,
.ps-quality-tag small,
.ps-form-head span,
.category-flow-step span,
.detail-test-card > span,
.detail-related-card small,
.category-product-code,
.blog-card-index,
.blog-story-meta,
.blog-flow-step span,
.blog-hero-stats span,
.blog-image-caption span,
.blog-visual-code span,
.blog-visual-card > span,
.blog-intel-stamp span,
.blog-closing-inner span,
.event-card-meta,
.event-card-foot span,
.event-card-year,
.events-date,
.events-feature-badge,
.events-feature-copy::before,
.events-location,
.events-mosaic figcaption,
.csr-pillar small,
.csr-value b,
.csr-policy summary > span,
.csr-code-nav small,
.contact-address small,
.contact-form-head span,
.contact-form-visual small,
.contact-map-legend b,
.pct-map-popup small,
.cp-aside-head,
.cp-breadcrumb,
.cp-kicker {
  font-size: 11px !important;
  line-height: 1.45 !important;
}

.about-media .float-card .l,
.about-intro-points span,
.about-adv-card small,
.about-cert-action,
.ps-industries span,
.ps-product-tab i,
.ps-stage-readout,
.ps-form-head span,
.category-product-link,
.detail-related-card span,
.blog-filters button,
.blog-topic-track span,
.blog-read-link,
.events-filter button,
.csr-partners span,
.csr-code-nav a,
.contact-field label,
.contact-map-legend strong,
.pct-map-popup a,
.cp-chip {
  font-size: 12px !important;
  line-height: 1.5 !important;
}

.about-panel-stat span,
.ps-panel-stat span,
.catalog-panel-stat span,
.blog-hero-stats span,
.cp-aside-grid span,
.about-cert-tab-copy span,
.contact-map-legend span {
  color: rgba(255,255,255,.76) !important;
}

.about-stat .label,
.ps-form-note,
.detail-related-card span,
.contact-form-actions p,
.pct-map-popup p {
  color: var(--slate) !important;
}

/* Every large technical illustration gets a legible text floor. */
.detail-product-svg text {
  font-size: 10px !important;
  font-weight: 600 !important;
  letter-spacing: .04em !important;
}

.detail-product-svg .dv-kicker,
.detail-product-svg .dv-data,
.detail-product-svg .dv-callout text,
.detail-product-svg .dv-port-label,
.detail-product-svg .dv-badges > text,
.detail-product-svg .dv-micro,
.consumer-product-vector .cv-flow-labels text,
.consumer-product-vector .cv-fluid text,
.consumer-product-vector .cv-voltage text,
.consumer-product-vector .cv-hvac-route text,
.networking-product-vector .nv-data-route text,
.networking-product-vector .nv-poe-route text,
.manufacturing-service-vector .mv-process-route text,
.manufacturing-service-vector .mv-torque text,
.manufacturing-service-vector .mv-torque-gauge text,
.engineering-service-vector .ev-evidence-route text,
.engineering-service-vector .ev-gate-labels text,
.engineering-service-vector .ev-change-route text,
.operations-service-vector .ov-route-labels text,
.operations-service-vector .ov-source text,
.lifecycle-service-vector .lv-route-labels text,
.pe-telemetry text,
.pe-energy-route text,
.sv-hybrid-route text,
.sv-vehicle-route text {
  font-size: 10.5px !important;
  font-weight: 700 !important;
  letter-spacing: .025em !important;
  fill: #27344f !important;
}

.adv-illustration svg text,
.about-machine svg text,
.ps-lab-canvas svg text,
.ps-network-visual svg text {
  font-size: 10.5px !important;
  font-weight: 650 !important;
  letter-spacing: .035em !important;
}

.home-product-vector .v-text,
.ps-category-vector .v-text,
.footer-ems-svg .v-text {
  font-size: 8.5px !important;
  font-weight: 700 !important;
  letter-spacing: .02em !important;
}

.footer-ems-console text,
.footer-ems-micro,
.footer-stage text,
.footer-ems-readouts text {
  font-size: 8.5px !important;
  fill: rgba(245,247,255,.88) !important;
}

@media (max-width: 700px) {
  body { font-size: 16px; }
  main p,
  body > section p,
  main [class*="-card"] p,
  body > section [class*="-card"] p {
    font-size: 15px !important;
    line-height: 1.72 !important;
  }

  main small,
  body > section small,
  main [class*="-meta"],
  main [class*="-kicker"],
  main [class*="-code"],
  main [class*="-status"],
  main [class*="-caption"],
  main [class*="-index"] {
    font-size: 11px !important;
  }

  .detail-config-visual {
    min-height: 520px;
  }

  .detail-product-svg text {
    font-size: 10.5px !important;
    letter-spacing: .02em !important;
  }

  .adv-illustration svg text,
  .about-machine svg text,
  .ps-lab-canvas svg text,
  .ps-network-visual svg text {
    font-size: 11px !important;
    letter-spacing: .02em !important;
  }

  .ps-service-card,
  .detail-process-card,
  .detail-test-card,
  .csr-pillar,
  .about-value-card {
    min-height: auto;
  }
}

@media (max-width: 430px) {
  .wrap { padding-inline: 20px; }
  .detail-config-visual { min-height: 500px; }
  .footer-ems-svg { min-width: 0; }
}
