/* Product-page readability floor.
   Technical labels must remain legible on a laptop without browser zoom. */
:root {
  --technical-small: 14px;
  --technical-label: 14px;
  --technical-copy: 15px;
}

/* Repeated all-caps section kickers add noise and become unreadable fine print. */
main .section .eyebrow {
  display: none !important;
}

.section-nav .wrap,
.section-nav .wrap a {
  font-size: 14px !important;
  line-height: 1.4 !important;
}

/* Introductory copy beside section headings is primary content. */
main .section .section-heading > p {
  font-size: 18px !important;
  line-height: 1.55 !important;
}

/* No informational text on a product section may render as fine print. */
main .section :where(
  p, li, small, label, button, output, summary, option,
  figcaption, td, th, dt, dd
) {
  font-size: max(14px, 1em) !important;
  line-height: 1.5 !important;
}

.hero .visual-caption {
  font-size: 15px !important;
  line-height: 1.5 !important;
  color: #d7e7f4 !important;
}

:where(
  .usa-chip b, .usa-badge b, .io-terminal-head b,
  .drive-channel b, .meter-source b, .meter-load b,
  .socket-copy b, .part-note b, .download-card span,
  .output-contact strong, .feature-number, .mesh-stage strong,
  .parameter-count b, .terminals b, .signal-flow b,
  .detent-row b, .encoder-param-grid article > b
) {
  font-size: 14px !important;
  line-height: 1.45 !important;
}

.hero-visual > p {
  font-size: 15px !important;
  line-height: 1.5 !important;
  color: #d7e7f4 !important;
}

/* casNEO's scalable ring diagram is still technical copy. */
:where(
  .diagram-kicker, .wire-key text, .forward-link text,
  .terminal-label, .ring-unit > text:nth-of-type(1),
  .ring-unit .unit-note
) {
  font-size: 12px !important;
}

:where(
  .address-lab, .encoder-lab, .relay-lab, .power-lab, .trim-lab,
  .interactive-section, .channel-studio, .digital-io, .gang-story,
  .wiring, .connections, .scale
) .section-heading > p {
  color: #d9eaf5 !important;
}

/* Tables are reference material, not legal fine print. */
:where(
  .profile-row, .dmx-parameter-row, .parameter-table > div,
  .parameter-grid > div, table tr
) > * {
  font-size: 15px !important;
  line-height: 1.45 !important;
}

:where(
  .eyebrow, .demo-badge, .visual-tag, .feature-num, .fine-print,
  .map-foot, .browser-chrome, .metrics span, .mini-brand small,
  .patriot-colors small, .pdf-icon, .use-cases > span,
  .use-cases button, .terminal-list li, .signal-flow small,
  .control-hint, .demo-note, .play-button, .reset,
  .tour-tabs button span, .tour-preview figcaption
) , :where(.wiring-map p, .parameter-table > div:first-child > *) {
  font-size: var(--technical-small) !important;
  line-height: 1.45 !important;
}

:where(
  .lab-controls label, .sim-controls label, .studio-controls label,
  .trim-controls label, .encoder-controls label, .current-settings label,
  .io-panel label, .parameter-sidebar > label,
  .channel-tabs button, .mode-select button, .mode-toggle button,
  .io-role button, .command-row button, .load-command button,
  .direction-control button, .encoder-action-row button,
  .encoder-actions button, .gang-toggle button, .luxury-plate button,
  .finish-picker button, .effect-quick button, .map-options label
) { font-size: var(--technical-label) !important; line-height: 1.35 !important; }

:where(
  .lab-controls > p, .sim-controls > p, .studio-controls > p,
  .trim-controls > p, .encoder-controls > p, .lab-note, .sim-note,
  .profile-note, .warning-note, .wiring-note, .interface-warning,
  .knob-help, .encoder-try-bar span, .encoder-param-grid p,
  .calibration-steps p, .io-panel p, .io-behaviors p,
  .feature-card p, .parameter-card p, .application-card p,
  .profile-card p, .spec-card p, .studio-controls p
) , :where(.demo-controls > p, .map-toolbar p) {
  font-size: var(--technical-copy) !important;
  line-height: 1.55 !important;
}

:where(
  .block-summary span, .address-row b, .address-row span,
  .adjacent-lock span, .key-mark, .delay-row, .copy-frame span,
  .copy-frame b, .copy-source span, .flow-node span, .ltp-card p,
  .no-io p, .pin em,
  .signal-card > span, .connection-card > span, .profile-card > span,
  .channel-path b, .channel-path strong, .trim-labels,
  .trim-labels b, .trim-labels em, .meter-source span,
  .meter-load span, .signal-diagram small, .detent-row span,
  .pin-flow span, .pin-flow b, .calibration-steps span,
  .level-readout > span, .voltage-panel > span, .trim-status,
  .encoder-status, .power-status, .relay-status, .polarity-line,
  .terminal-readout span, .breaker-panel > span, .io-terminal-head span,
  .output-block span, .load-block span, .pulse-step > span,
  .use-card > span, .mode-card > span, .drive-channel span,
  .mode-badges span, .scene-result span, .window-track span,
  .meter-card header, .power-summary span, .signal-node span,
  .gang-node-shared span, .gang-node-shared small, .io-flow > div span,
  .usa-chip small, .hero-path span, .independence-card > span,
  .independence-card li, .io-behaviors span, .mode-diagram i,
  .mode-diagram em, .mode-grid > article > span, .output-meters small,
  .output-meters span, .wiring-diagram small, .driver span,
  .tw-controls > p, .spec-card dl > div, .studio-output > p,
  .gang-memory > div small, .bridge-arrow span, .gang-station > span,
  .gang-memory > span, .channel-role span, .channel-role small,
  .parameter-count span, .gang-kicker, .gesture-strip span,
  .gesture-strip p, .parameter-result > span, .parameter-result > p,
  .room-lighting span, .channel span, .gang-station > small,
  .parameter-grid > label small, .parameter-proof span, .stage-label,
  .terminals span, .gang-story span, .trigger-link span,
  .scale-unit > span, .scale-unit > small, .app-library-items span,
  .scale-math span, .scale-math b, .terminal-label,
  .app-library-copy > a, .ring-return p, .scale-note,
  .scale-summary span
) , :where(
  .current-settings label span, .current-settings label output,
  .luxury-plate button span, .plate-stage > span, .interface-stage > span,
  .mesh-stage > span, .hero-visual > span, .hero-visual > div,
  .demo-topbar > span, .effect-quick button, .color-row span,
  .map-toolbar p, .map-options label, .app-library-items article > span
) {
  font-size: var(--technical-small) !important;
  line-height: 1.45 !important;
}

/* Dark technical panels previously used muted 8–11 px copy. */
:where(.address-lab, .encoder-lab, .simulator, .interactive-demo, .product-demo)
  :where(.lab-controls > p, .lab-note, .demo-note, .knob-help, .sim-note) {
  color: #c9dbe8 !important;
}

@media (max-width: 780px) {
  :root {
    --technical-small: 14px;
    --technical-label: 14px;
    --technical-copy: 15px;
  }
}
