/* Shared type scale, loaded after every page template. Brand fonts stay unchanged. */
:root {
  --type-body: 16px;
  --type-copy: 15px;
  --type-label: 14px;
  --type-note: 13px;
  --type-compact: 12px;
}
main :is(h1,h2,h3) { text-wrap: balance; overflow-wrap: break-word; }
.copy-content :is(p,ul,ol) { font-size: var(--type-body); line-height: 1.8; }
.copy-content h2 { line-height: 1.25; }
.copy-content h3 { line-height: 1.3; }
.copy-content :is(p,ul,ol) { max-width: 68ch; }
.page-content > .copy-content { max-width: 820px; }
.catalog-card h3 { line-height: 1.25; }
/* Grid images must be allowed to shrink below their intrinsic image height. */
.catalog-image { display: flex; align-items: center; justify-content: center; }
.catalog-image img { min-width: 0; min-height: 0; max-width: 100%; max-height: 100%; object-fit: contain; }
.catalog-link, .category-pill { font-size: var(--type-label); }
.table-scroll table { font-size: var(--type-label); }
.table-scroll td { overflow-wrap: break-word; }
.document-card span, .download-result span { font-size: var(--type-note); }
.download-result { font-size: var(--type-copy); line-height: 1.7; }
.filter-row label, .search-label, .result-count, .planner-form label,
.local-inquiry .form-grid label { font-size: var(--type-label); line-height: 1.6; }
.form-grid :is(input,textarea), .planner-form :is(input,select),
.directory-search-panel :is(input:not([type=file]),select) { font-size: var(--type-body); }
.local-inquiry :is(.preview-notice,.reply-line,.file-status,.file-picker-button),
.planner-note, .planner-file-note { font-size: var(--type-label); line-height: 1.75; }
.local-inquiry .file-field > span { font-size: var(--type-label); }
.image-caption, .application-grid figcaption, .gallery-item figcaption,
.quality-photo figcaption, .quote figcaption { font-size: var(--type-note); line-height: 1.7; }
.hero-immersive .capacity, .hero-credentials span { font-size: var(--type-label); }
.hero-tour, .cert-toggle, .testimonial-toggle { font-size: var(--type-label); }
.testimonial-controls p { font-size: var(--type-note); line-height: 1.7; }
.inquiry-strip p { font-size: var(--type-copy); line-height: 1.7; }
.cert-jump-links a, .cert-library-search { font-size: var(--type-label); }
.cert-mobile-select { font-size: var(--type-label); line-height: 1.6; }
.cert-mobile-select select { font-size: var(--type-body); }
.cert-library-copy .cert-doc-kind { font-size: var(--type-note); }
.cert-library-copy p { font-size: var(--type-label); line-height: 1.75; }

/* Product directory: category labels and model browsing must remain easy to scan. */
.directory-search-panel label { font-size: var(--type-label); }
.directory-search-panel > p, .directory-results-bar p,
.directory-results-bar button { font-size: var(--type-label); }
.directory-tile > span { font-size: var(--type-label); line-height: 1.5; min-height: 42px; }
.directory-section-head p, .directory-help p { font-size: var(--type-copy); line-height: 1.75; }
.directory-subcategories a { font-size: var(--type-label); min-height: 44px; }
.directory-category-link, .directory-detail { font-size: var(--type-copy); min-height: 44px; }
.directory-subtype { font-size: var(--type-note); line-height: 1.6; }
.directory-product h3 { line-height: 1.3; }

/* Both product-detail families share one readable scale. */
.pd-page, .lpr-product-page {
  --type-body: 17px;
  --type-copy: 17px;
  --type-note: 14px;
  --pd-muted: #4b4b53;
  --lpr-muted: #4b4b53;
}
.pd-page p, .lpr-product-page p { font-size: var(--type-body); line-height: 1.75; }
:is(.pd-local-links,.lpr-local-links) > a { font-size: var(--type-label); line-height: 1.5; white-space: nowrap; }
:is(.pd-breadcrumbs,.lpr-breadcrumbs) { font-size: var(--type-note); line-height: 1.7; }
.pd-local-quote, .lpr-local-quote { font-size: var(--type-note); min-height: 40px; }
:is(.pd-view,.lpr-view) span { font-size: var(--type-compact); line-height: 1.5; }
:is(.pd-hero-facts,.lpr-hero-facts) span { font-size: var(--type-note); line-height: 1.6; }
.pd-hero-facts strong { font-size: var(--type-copy); line-height: 1.6; }
.pd-page .pd-intro, .lpr-product-page .lpr-hero-description { font-size: var(--type-body); line-height: 1.75; }
.pd-page .pd-section-title > p, .lpr-product-page .lpr-section-heading > p { font-size: var(--type-copy); line-height: 1.75; }
.pd-page :is(.pd-feature,.pd-feature-wide,.pd-workflow-heading,.pd-planning-row,
.pd-drawing-card,.pd-application,.pd-download-card,.pd-contact-card) p,
.lpr-product-page :is(.lpr-camera-card,.lpr-network-card,.lpr-integration-card,
.lpr-topology-card,.lpr-application-copy,.lpr-download,.lpr-contact-card) p {
  font-size: var(--type-copy); line-height: 1.75;
}
.lpr-display-card p:not(.lpr-feature-value),
.lpr-dimensions-card p:not(.lpr-caption):not(.lpr-dimension-value) { font-size: var(--type-copy); line-height: 1.75; }
.pd-page :is(p,span):is(.pd-caption,.pd-source-note),
.lpr-product-page :is(p,span):is(.lpr-caption,.lpr-source-note) { font-size: var(--type-note); line-height: 1.75; color: #62626a; }
.pd-page .pd-photo-gap p { font-size: var(--type-note); }
:is(.pd-spec-card,.lpr-spec-card) dl > div { font-size: var(--type-label); line-height: 1.8; }
:is(.pd-spec-card,.lpr-spec-card) :is(dt,dd) { min-width: 0; overflow-wrap: anywhere; font-size: var(--type-label); }
:is(.pd-faq,.lpr-faq) summary { font-size: var(--type-body); line-height: 1.6; }
:is(.pd-faq,.lpr-faq) details p { font-size: var(--type-copy); line-height: 1.75; }
.pd-download-links > a { font-size: var(--type-label); line-height: 1.7; min-height: 44px; }
.pd-related > span, .pd-variant-link > span { font-size: var(--type-label); line-height: 1.7; }
.pd-variant-choice p { font-size: var(--type-label); line-height: 1.7; }
.pd-variant-choice > span { font-size: var(--type-note); }
.pd-contact-actions > a:last-child, .lpr-email { font-size: var(--type-label); }
.pd-planning-row li, .pd-flow > li { font-size: var(--type-body); line-height: 1.75; color: #4b4b53; }
.pd-version-table table { font-size: var(--type-label); }
.pd-page .pd-button, .lpr-product-page .lpr-button { font-size: var(--type-label); }
.pd-hero-actions .pd-text-link, .lpr-hero-actions .lpr-text-link { font-size: var(--type-label); }
.pd-page .pd-hero-image, .lpr-product-page .lpr-hero-image { padding: 14px; }
.pd-hero-image, .pd-view, .pd-inline-drawing .pd-image-zoom, .viewer-image { background-color: #fff; }
.pd-view, .lpr-view, .pd-related, .pd-variant-link, .pd-variant-choice { overflow: hidden; }
.pc-media, .reader-tag-photo, .product-image { overflow: hidden; }
img[data-product-frame] { transition: none; }
.pd-model-sizes { display: flex; flex-direction: column; gap: 10px; max-width: 100%; overflow-x: auto; scrollbar-width: thin; padding-bottom: 4px; }
.pd-model-size { display: block; line-height: 1.7; white-space: nowrap; }
.pd-size-model, .pd-size-value { white-space: nowrap; }
.pd-spec-card dl > .pd-multi-model-size { grid-template-columns: 1fr; gap: 12px; }
.pd-page .pd-local-quote, .lpr-product-page .lpr-local-quote { font-size: var(--type-note); }

/* Reader and matching tag are one product entry, with clearly separated roles. */
.directory-product-image { position: relative; }
.reader-tag-pair { position: absolute; inset: 24px; display: grid; grid-template-columns: 1.2fr 1fr; gap: 18px; }
.reader-tag-pair figure { display: flex; flex-direction: column; min-width: 0; min-height: 0; margin: 0; }
.reader-tag-pair .reader-tag-photo { flex: 1; min-width: 0; min-height: 0; display: flex; align-items: center; justify-content: center; }
.reader-tag-pair .reader-tag-photo img { position: static; inset: auto; width: 100%; height: 100%; min-width: 0; min-height: 0; max-width: 100%; max-height: 100%; object-fit: contain; mix-blend-mode: multiply; }
.reader-tag-pair figcaption { font-size: 13px; line-height: 1.5; text-align: center; color: #4b4b53; margin-top: 13px; }
.directory-pairing { display: block; font-size: 14px; line-height: 1.7; color: #4b4b53; margin: -6px 0 13px; }
.catalog-pairing { font-size: 14px; line-height: 1.7; margin-top: 12px; color: #4b4b53; }
.pd-tag-card { display: grid; grid-template-columns: .9fr 1.1fr; gap: 44px; padding: 40px; align-items: start; }
.pd-tag-photo { min-width: 0; }
.pd-tag-photo .pd-image-zoom { width: 100%; height: 330px; padding: 20px; }
.pd-tag-photo img { width: 100%; height: 100%; min-width: 0; min-height: 0; object-fit: contain; }
.pd-tag-card h3 { font-size: 26px; line-height: 1.3; margin-bottom: 16px; }
.pd-tag-card h3:not(:first-child) { margin-top: 24px; font-size: 22px; }
.pd-page .pd-tag-card p { font-size: var(--type-body); line-height: 1.75; }
.pd-tag-downloads { display: flex; gap: 12px 24px; flex-wrap: wrap; margin-top: 24px; }
.pd-tag-spec-heading { margin: 30px 0 20px; }
.pd-tag-spec-heading h3 { font-size: 25px; line-height: 1.3; margin-bottom: 12px; }
.pd-interface-overview { display: grid; grid-template-columns: 1.05fr 1fr; gap: 24px; align-items: start; }
.pd-interface-figure { padding: 24px; min-width: 0; }
.pd-interface-figure .pd-image-zoom { height: auto; padding-bottom: 42px; }
.pd-interface-figure .pd-zoom-mark { right: 0; bottom: 0; }
.pd-interface-figure img { width: 100%; height: auto; min-width: 0; min-height: 0; object-fit: contain; }
.pd-interface-figure figcaption { font-size: 14px; line-height: 1.75; color: #62626a; margin-top: 18px; }
.pd-interface-summary { padding: 32px; }
.pd-interface-summary > div + div { margin-top: 25px; padding-top: 25px; border-top: 1px solid #e0e5ec; }
.pd-interfaces h3 { font-size: 24px; line-height: 1.3; margin-bottom: 16px; }
.pd-terminal-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px; margin-top: 24px; align-items: start; }
.pd-terminal-card { padding: 26px; min-width: 0; }
.pd-interfaces .pd-terminal-card > p:not(.pd-caption) { font-size: 15px; line-height: 1.75; margin-bottom: 20px; }
.pd-terminal-card table { width: 100%; border-collapse: collapse; font-size: 14px; line-height: 1.65; text-align: left; }
.pd-terminal-card :is(th,td) { border-bottom: 1px solid #e4e8ee; padding: 12px 7px; vertical-align: top; }
.pd-terminal-card thead th { background: #f1f4f9; color: #344e75; font-weight: 600; }
.pd-terminal-card tbody th { font-weight: 500; white-space: nowrap; }
.pd-terminal-card tr > :first-child { white-space: nowrap; padding-left: 0; }
.pd-terminal-card .pd-caption { margin-top: 19px; }
.pd-interface-version-note { margin-top: 24px; padding: 25px 28px; background: #eaf0f9; border-radius: 16px; }
.pd-interface-version-note p { max-width: 80ch; }
.pd-interface-version-note .pd-text-link { margin-top: 12px; }
.pd-dimensions { margin-top: 34px; }
.pd-wiring-drawings { display: grid; gap: 28px; }
.pd-demo-card { padding: 24px; overflow: hidden; }
.pd-demo-card video { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; border-radius: 20px; background: #eef0f2; }
.pd-demo-card figcaption { display: flex; justify-content: space-between; gap: 14px 24px; flex-wrap: wrap; padding: 20px 4px 2px; color: #55555c; font-size: 14px; line-height: 1.75; }
.pd-demo-card figcaption a { color: #1a4699; text-decoration: underline; text-underline-offset: 4px; }
.pd-wiring-figure { min-width: 0; padding: 28px; }
.pd-wiring-figure figcaption { font: 500 23px/1.4 'Archivo',Arial,sans-serif; color: #252a34; margin-bottom: 24px; }
.pd-wiring-figure .pd-image-zoom { display: block; width: 100%; height: auto; padding: 0 0 44px; background: #fff; }
.pd-wiring-figure img { display: block; width: 100%; height: auto; max-height: none; object-fit: contain; min-width: 0; min-height: 0; }
.pd-wiring-figure.is-portrait .pd-image-zoom { max-width: 800px; margin-inline: auto; }
.pd-wiring-figure .pd-zoom-mark { right: 0; bottom: 0; }
.pd-page .pd-wiring-source { display: inline-flex; gap: 10px; margin-top: 18px; color: #1a4699; font-size: 14px; line-height: 1.75; text-decoration: underline; text-underline-offset: 4px; }
.pd-dimensions > .pd-section-title h3 { font-size: 29px; line-height: 1.3; margin-bottom: 14px; }
.pd-inline-drawing-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; align-items: start; }
.pd-inline-drawing:only-child { grid-column: 1 / -1; }
.pd-page[data-slug="kjz01"] .pd-inline-drawing:first-child { grid-column: 1 / -1; }
.pd-inline-drawing { padding: 25px; min-width: 0; }
.pd-inline-drawing figcaption { font: 500 21px/1.4 'Archivo',Arial,sans-serif; margin-bottom: 22px; color: #252a34; }
.pd-inline-drawing .pd-image-zoom { display: block; width: 100%; height: auto; padding: 0; background: #fff; }
.pd-inline-drawing img { display: block; width: 100%; height: auto; max-height: 700px; object-fit: contain; min-width: 0; min-height: 0; }
/* Preserve every panel of application collages; fixed-height cover crops are unsuitable. */
.pd-page .pd-application-grid .pd-card.pd-application img,
.pd-page .pd-additional-scenes img,
.lpr-product-page .lpr-application.lpr-card img {
  display: block; width: 100%; height: auto; max-height: none;
  aspect-ratio: auto; object-fit: contain; min-width: 0; min-height: 0;
}
.pd-page .pd-application > .pd-image-zoom,
.pd-page .pd-additional-scenes .pd-image-zoom,
.lpr-product-page .lpr-application > .lpr-image-button { height: auto; flex-shrink: 0; }
@media (max-width: 1100px) {
  .pd-page[data-slug="d01/swing-away-arm"] .pd-local-quote { display: none; }
  .pd-page[data-slug="d01/swing-away-arm"] .pd-local-links { gap: 16px; }
  .pd-page:is([data-slug="a200qr"],[data-slug="y17"]) .pd-local-quote { display: none; }
  .pd-page[data-slug="a200qr"] .pd-local-links { gap: 16px; }
  .pd-terminal-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .pd-terminal-card:last-child { grid-column: 1 / -1; }
}
@media (max-width: 700px) {
  .pd-interface-overview, .pd-terminal-grid { grid-template-columns: 1fr; gap: 18px; }
  .pd-interface-summary, .pd-terminal-card { padding: 24px; }
  .pd-interface-figure { padding: 18px; }
  .pd-wiring-figure { padding: 18px; }
  .pd-demo-card { padding: 12px; }
  .pd-demo-card video { border-radius: 16px; }
  .pd-demo-card figcaption { padding: 16px 6px 6px; }
  .pd-wiring-figure figcaption { font-size: 21px; margin-bottom: 20px; }
  .pd-interface-version-note { padding: 23px; }
  .pd-inline-drawing-grid { grid-template-columns: 1fr; gap: 18px; }
  .pd-inline-drawing { padding: 18px; }
  .pd-tag-card { grid-template-columns: 1fr; gap: 24px; padding: 25px; }
  .pd-tag-photo .pd-image-zoom { height: 240px; }
  .reader-tag-pair { inset: 18px; gap: 12px; }
}

/* Footer: brand, navigation, and contact have separate, aligned columns. */
.site-footer { padding: 64px 0 44px; background: #080c12; color: #f4f6fa; }
.site-footer .footer-top { display: grid; grid-template-columns: 1.2fr .55fr 1fr; gap: 72px; align-items: start; }
.site-footer .footer-top > * { min-width: 0; }
.site-footer .footer-top .brand { width: 220px; padding: 11px; }
.site-footer .footer-description { font-size: var(--type-copy); line-height: 1.85; max-width: 46ch; color: #bbc3cf; margin: 24px 0 0; }
.site-footer .footer-heading { font-family: 'Archivo',Arial,sans-serif; font-size: 19px; font-weight: 500; line-height: 1.35; letter-spacing: -.015em; margin: 0 0 23px; }
.site-footer .footer-sections { display: grid; grid-template-columns: 1fr; gap: 2px; margin: 0; }
.site-footer .footer-sections a { font-size: var(--type-body); font-weight: 500; line-height: 1.5; min-height: 44px; }
.site-footer .footer-contact dl { margin: 0; }
.site-footer .footer-contact dl > div + div { margin-top: 19px; }
.site-footer .footer-contact dt { font-size: var(--type-note); line-height: 1.5; color: #99a6b9; margin-bottom: 3px; }
.site-footer .footer-contact dd { margin: 0; font-size: var(--type-body); line-height: 1.75; }
.site-footer .footer-contact a { display: inline-flex; align-items: center; min-height: 36px; overflow-wrap: anywhere; max-width: 100%; }
.site-footer .footer-contact address { font-size: var(--type-copy); font-style: normal; line-height: 1.8; color: #bbc3cf; max-width: 36ch; }
.site-footer .social-links { gap: 12px; margin-top: 27px; }
.site-footer .social-links a.social-icon { border-color: #4b596d; color: #e8edf5; }
.site-footer .social-links a.social-icon:hover { border-color: #97b8f6; background: #1a4699; color: #fff; }
.site-footer .footer-bottom { border-color: #2b3544; margin-top: 42px; padding-top: 20px; gap: 8px 30px; font-size: var(--type-label); line-height: 1.6; color: #b6bfcd; }
.site-footer .footer-bottom a { display: inline-flex; min-height: 44px; align-items: center; }
.site-footer a:focus-visible { outline-color: #a9c6ff; }
.site-footer :is(.footer-sections,.footer-contact,.footer-bottom) a:hover { color: #adc8ff; text-decoration: underline; text-underline-offset: 5px; }
@media (max-width: 1100px) {
  .site-footer .footer-top { gap: 36px; grid-template-columns: 1.1fr .6fr 1fr; }
}
@media (max-width: 850px) {
  .site-footer .footer-top { grid-template-columns: 1fr 1fr; gap: 38px 48px; }
  .site-footer .footer-brand-column { grid-column: 1 / -1; }
  .site-footer .footer-description { max-width: 65ch; }
}
@media (max-width: 620px) {
  .pd-page, .lpr-product-page { --type-body: 16px; --type-copy: 16px; }
  .site-footer { padding: 46px 0 90px; }
  .site-footer .footer-top { grid-template-columns: 1fr; gap: 34px; }
  .site-footer .footer-brand-column { grid-column: auto; }
  .site-footer .footer-contact { order: 1; }
  .site-footer .footer-navigation { order: 2; padding-top: 28px; border-top: 1px solid #2b3544; }
  .site-footer .footer-heading { font-size: 19px; margin-bottom: 16px; }
  .site-footer .footer-sections { grid-template-columns: 1fr 1fr; gap: 4px 24px; }
  .site-footer .footer-bottom { margin-top: 28px; display: grid; grid-template-columns: 1fr 1fr; gap: 4px 18px; }
  .site-footer .footer-bottom a { min-height: 44px; }
  .site-footer .footer-contact a { min-height: 44px; }
  :is(.pd-local-nav > .pd-container,.lpr-local-nav > .lpr-container) { display: grid; grid-template-columns: minmax(0,1fr); gap: 0; min-height: 90px; }
  :is(.pd-local-name,.lpr-local-name) { font-size: 18px; padding-top: 12px; margin: 0; }
  :is(.pd-local-links,.lpr-local-links) { display: flex; overflow-x: auto; gap: 20px; justify-content: flex-start; min-width: 0; scrollbar-width: thin; }
  :is(.pd-local-links,.lpr-local-links) > a { font-size: var(--type-label); min-height: 48px; flex-shrink: 0; }
  .pd-page :is(#overview,#specs,#applications,#downloads,#faq) { scroll-margin-top: calc(var(--pd-header-height) + 112px); }
  .lpr-product-page :is(#lpr-overview,#lpr-specs,#lpr-applications,#lpr-downloads) { scroll-margin-top: calc(var(--lpr-header-height) + 112px); }
  .pd-hero-facts { grid-template-columns: 1fr; gap: 14px; }
  .pd-hero-facts > div { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; align-items: baseline; }
  .pd-hero-facts span { margin: 0; }
  :is(.pd-spec-card,.lpr-spec-card) dl > div { grid-template-columns: 1fr; gap: 4px; }
  :is(.pd-spec-card,.lpr-spec-card) dt { color: #62626a; }
  :is(.pd-spec-card,.lpr-spec-card) dd { margin: 0; color: #252a34; }
  .lpr-view { padding-inline: 3px; }
}
