/* Shared industrial website layout. No external font or UI dependencies. */
:root {
  --ink: #1f1f22;
  --muted: #4b4b50;
  --paper: #fff;
  --line: #e4e4e7;
  --brand: #d11629;
  --accent: #d11629;
  --pale: #f6f6f7;
  --dark: #0f0f10;
  --radius: 8px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 100px; }
body { margin: 0; background: var(--paper); color: var(--ink); font: 15px/1.65 -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif; -webkit-font-smoothing: antialiased; }
[hidden] { display: none !important; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
button, summary { cursor: pointer; }
a, button { -webkit-tap-highlight-color: transparent; }
button { color: inherit; }
:focus-visible { outline: 3px solid #d11629; outline-offset: 4px; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { line-height: 1.2; letter-spacing: -.025em; font-weight: 600; }
h1 { font-size: clamp(36px, 4vw, 52px); margin-bottom: 22px; }
h2 { font-size: 32px; margin-bottom: 20px; }
h3 { font-size: 22px; margin-bottom: 12px; }
p { color: var(--muted); margin-bottom: 20px; }
.wrap { width: calc(100% - 96px); max-width: 1248px; margin-inline: auto; }
.section { padding-block: 64px; }
.lede { font-size: 18px; line-height: 1.7; max-width: 750px; }
.meta, .eyebrow { font-size: 12px; font-weight: 600; letter-spacing: .075em; color: var(--accent); }
.eyebrow { margin-bottom: 17px; }
.eyebrow > span { display: none; }
.section-heading { max-width: 760px; }
.section-heading h2 { margin-bottom: 15px; }
.section-heading .lede { font-size: 17px; margin-bottom: 0; max-width:68ch; }
.section > .section-heading { margin-bottom:32px; }
.text-link { display: inline-flex; gap: 18px; align-items: center; color: var(--accent); font-size: 14px; font-weight: 600; line-height: 1.5; }
.text-link:hover { text-decoration: underline; text-underline-offset: 4px; }
.text-link > span, .button > span, .row-arrow { font-size: 19px; font-weight: 400; }
.button { display: inline-flex; align-items: center; justify-content: space-between; gap: 26px; padding: 13px 21px; min-height: 47px; border: 1px solid transparent; border-radius: 6px; font-size: 14px; font-weight: 600; line-height: 1.4; }
.button.dark { color: #fff; background: var(--accent); }
.button.dark:hover { background: #ad1020; }
.button.light { color: var(--dark); background: #fff; }
.button.light:hover { background: #eeeeee; }
.skip-link { position: fixed; z-index: 100; left: 16px; top: 12px; transform: translateY(-150%); padding: 12px 20px; background: #fff; border: 2px solid var(--accent); }
.skip-link:focus { transform: none; }
.site-header { position: sticky; top: 0; z-index: 20; background: #fff; border-bottom: 1px solid var(--line); }
.nav-wrap { width: calc(100% - 64px); max-width: 1360px; min-height: 88px; display: flex; justify-content: space-between; gap: 32px; align-items: center; position: relative; }
.brand { display: inline-flex; align-items: center; gap: 10px; color: var(--brand); font-size: 25px; line-height: 1; font-weight: 700; letter-spacing: -.06em; flex-shrink: 0; }
.brand svg { display: block; width: 184px; height: auto; aspect-ratio: 572 / 112; overflow: hidden; }
.footer-top .brand svg { width: 206px; }
#main-nav { display: flex; align-items: center; gap: 24px; }
#main-nav > a, .nav-dropdown summary { font-size: 16px; font-weight: 500; line-height: 1.5; letter-spacing: -.01em; min-height: 48px; display: inline-flex; align-items: center; white-space: nowrap; }
#main-nav > a[aria-current], #main-nav > a:hover, .nav-dropdown summary:hover { color: var(--accent); }
#main-nav > a[aria-current] { text-decoration: underline; text-underline-offset: 9px; text-decoration-thickness: 2px; }
#main-nav > .nav-cta { background: var(--brand); color: #fff; border-radius: 6px; padding: 12px 18px; display: flex; gap: 12px; font-size: 15px; font-weight: 600; }
#main-nav > .nav-cta:hover { background: var(--accent); }
.menu-toggle { display: none; border: 1px solid var(--line); padding: 13px 10px; background: #fff; width: 44px; height: 42px; }
.menu-toggle span { display: block; height: 1px; background: var(--dark); margin: 5px 0; }
.nav-dropdown { position: relative; }
.nav-dropdown summary { list-style: none; display: flex; align-items: center; gap: 6px; }
.nav-dropdown summary::-webkit-details-marker { display: none; }
.nav-dropdown summary:after { content: '⌄'; color: #7f7f7f; }
.nav-panel { position: absolute; top: calc(100% + 12px); left: -18px; min-width: 250px; border: 1px solid var(--line); padding: 8px; background: #fff; box-shadow: 0 8px 20px #28282810; }
.nav-panel a { display: flex; align-items: center; min-height: 48px; padding: 12px 16px; font-size: 16px; line-height: 1.5; white-space: nowrap; }
.nav-panel a:hover { color: var(--accent); background: var(--pale); }
.hero { display: grid; grid-template-columns: 1.03fr 1fr; gap: 65px; align-items: center; padding-block: 52px; }
.hero h1 { font-size: clamp(36px, 3.7vw, 50px); line-height: 1.13; letter-spacing: -.035em; margin-bottom: 24px; }
.hero .eyebrow { font-size: 12px; letter-spacing: .035em; margin-bottom: 20px; }
.hero .lede { max-width: 540px; font-size: 17px; line-height: 1.75; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 25px; align-items: center; margin-top: 28px; }
.hero-footnote { font-size: 12px; margin: 26px 0 0; color: #767676; }
.system-drawing { padding: 25px 32px 18px; background: var(--pale); border: 1px solid var(--line); border-radius: var(--radius); color: var(--ink); min-width: 0; }
.drawing-caption { display: flex; justify-content: space-between; gap: 20px; padding-bottom: 20px; border-bottom: 1px solid var(--line); font-size: 9px; letter-spacing: .1em; color: var(--brand); }
.architecture-top { border: 1px solid #c9c9c9; border-radius: 5px; background: #fff; width: 62%; margin: 22px auto 0; text-align: center; padding: 9px; }
.architecture-top > span { display: block; font-size: 14px; font-weight: 600; }
.architecture-top > small { color: var(--muted); font-size: 10px; }
.architecture-link { position: relative; height: 38px; display: flex; justify-content: center; align-items: center; }
.architecture-link:before { content: ''; position: absolute; top: 0; bottom: 0; left: 50%; border-left: 1px solid #959595; }
.architecture-link span { position: relative; background: var(--pale); color: var(--muted); font-size: 10px; padding: 0 10px; }
.architecture-core { border: 1px solid var(--brand); border-radius: 6px; padding: 18px; background: var(--dark); color: #fff; text-align: center; }
.core-label { color: #e5e5e5; font-size: 9px; letter-spacing: .08em; margin-bottom: 10px; }
.architecture-core > strong { font-size: 20px; font-weight: 500; line-height: 1.3; }
.architecture-core p { font-size: 10px; color: #ebebeb; margin: 9px 0 16px; }
.core-options { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.core-options span { padding: 6px; border: 1px solid #9d9d9d; border-radius: 3px; font-size: 10px; }
.architecture-field { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.architecture-field span { padding: 8px 5px; background: #fff; border: 1px solid #c9c9c9; border-radius: 5px; font-size: 11px; text-align: center; }
.drawing-disclaimer { font-size: 9px; color: var(--muted); line-height: 1.6; margin: 18px 0 0; }
.capability-strip { background: var(--pale); border-block: 1px solid var(--line); }
.capability-strip > .wrap { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); padding-block: 20px; }
.capability-strip a { display: block; padding: 7px 22px; border-right: 1px solid #d7d7d7; }
.capability-strip a:first-child { padding-left: 0; }
.capability-strip a:last-child { border: 0; }
.capability-strip strong { display: block; font-size: 16px; font-weight: 600; line-height: 1.4; }
.capability-strip span { display: block; margin-top: 6px; font-size: 14px; line-height: 1.5; color: var(--muted); }
.capability-strip a:hover strong { color: var(--accent); }

.split-heading { display: flex; justify-content: space-between; gap: 45px; align-items: flex-end; margin-bottom: 32px; }
.split-heading > .text-link { flex-shrink: 0; padding-bottom: 4px; }
.split-heading .section-heading { max-width: 790px; }
.product-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px; }
.product-card { min-width: 0; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; }
.product-visual { display: block; background: var(--pale); border-bottom: 1px solid var(--line); }
.device-art { min-width: 0; padding: 20px; color: #505050; }
.diagram-type { font-size: 9px; letter-spacing: .07em; color: #787878; display: block; }
.device-diagram { display: grid; grid-template-columns: 1fr 15px 1.1fr 15px 1fr; align-items: center; margin-block: 24px 20px; }
.device-diagram > span { font-size: 10px; text-align: center; line-height: 1.5; }
.device-diagram > strong { border: 1px solid #acacac; background: #efefef; text-align: center; font-size: 11px; font-weight: 500; padding: 14px 6px; }
.device-diagram > i { display: block; height: 1px; background: #a7a7a7; }
.diagram-note { font-size: 9px; color: #878787; }
.product-copy { padding: 23px 24px 25px; }
.product-copy > .meta { font-size: 9px; color: #797979; letter-spacing: .06em; }
.product-copy h3 { font-size: 21px; margin: 10px 0 12px; }
.product-copy h3 a:hover { color: var(--accent); }
.product-copy p { font-size: 14px; line-height: 1.65; margin-bottom: 20px; }
.product-copy .text-link { font-size: 13px; }
.custom-band { background: var(--pale); border-block: 1px solid var(--line); }
.custom-feature { display: grid; grid-template-columns: 1.1fr 1fr; gap: 85px; align-items: center; padding-block: 62px; }
.feature-copy > p { max-width: 570px; }
.custom-deliverables { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 15px; border-top: 1px solid var(--line); padding: 22px 0; font-size: 13px; }
.custom-deliverables > span:before { content: '—'; color: var(--accent); margin-right: 9px; }
.project-study { background: #fff; padding: 30px; border: 1px solid var(--line); border-top: 3px solid var(--accent); }
.study-header { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 12px; align-items: center; margin-bottom: 28px; }
.study-header .meta { font-size: 9px; color: #747474; }
.study-model { font-size: 12px; font-weight: 600; }
.project-study > h3 { font-size: 26px; }
.project-study > p { font-size: 14px; }
.study-facts { margin: 24px 0; }
.study-facts > div { display: grid; grid-template-columns: 90px 1fr; gap: 18px; padding-block: 10px; border-top: 1px solid var(--line); font-size: 12px; }
.study-facts dt { color: #7a7a7a; }
.study-facts dd { margin: 0; }
.project-study > .fine-print { margin: 15px 0 0; font-size: 10px; }
.need-list { border-top: 1px solid var(--line); }
.need-row { display: grid; grid-template-columns: 40px 1fr 32px; gap: 15px; align-items: center; border-bottom: 1px solid var(--line); padding: 23px 8px; }
.need-row:hover { background: var(--pale); }
.need-number { font-size: 11px; color: #7e7e7e; }
.need-row h3 { font-size: 23px; margin-bottom: 6px; }
.need-row p { font-size: 16px; line-height: 1.65; margin: 0; max-width: 800px; }
.need-examples { display: block; margin-top: 9px; font-size: 14px; line-height: 1.6; color: var(--brand); }
.row-arrow { color: var(--accent); }
.home-services { border-top: 1px solid var(--line); background: var(--pale); }
.service-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 70px; padding-block: 45px; }
.service-grid > article + article { border-left: 1px solid var(--line); padding-left: 50px; }
.service-grid h2 { font-size: 27px; }
.service-grid p { font-size: 14px; }
.service-links { display: flex; gap: 25px; flex-wrap: wrap; }
.cta-panel { padding: 35px 40px; background: var(--brand); border-radius: var(--radius); color: #fff; display: flex; justify-content: space-between; gap: 35px; align-items: center; margin-block: 55px; }
.cta-panel h2 { font-size: 28px; margin-bottom: 10px; }
.cta-panel p { color: #fff; font-size: 16px; margin: 0; max-width:65ch; }
.cta-panel > .button { flex-shrink: 0; }
.site-footer { background: var(--pale); border-top: 1px solid var(--line); padding-top: 45px; }
.footer-top { display: grid; grid-template-columns: 1.8fr 1fr 1fr 1.2fr; gap: 40px; padding-bottom: 40px; }
.footer-top > div { display: flex; flex-direction: column; align-items: flex-start; }
.footer-top .brand { font-size: 25px; }
.footer-top p { margin: 20px 0 0; font-size: 12px; line-height: 1.85; }
.footer-top .meta { font-size: 10px; color: #747474; margin-bottom: 16px; }
.footer-top > div > a:not(.brand) { font-size: 12px; margin-bottom: 9px; color: #626262; }
.footer-top > div > a:hover { color: var(--accent); text-decoration: underline; }
.footer-bottom { border-top: 1px solid var(--line); display: flex; justify-content: space-between; padding-block: 19px; gap: 20px; font-size: 10px; color: #7b7b7b; }
.page-intro { padding-block: 55px 35px; }
.page-intro h1 { max-width: 900px; }
.page-intro .lede { font-size: 17px; }
.page-intro .button { margin-top: 8px; }
.needs-section, .product-section { background: var(--pale); }
.editorial-grid, .system-overview, .two-feature { display: grid; grid-template-columns: 1fr 1fr; gap: 75px; }
.editorial-grid > *, .system-overview > *, .brief-layout > *, .case-lead > * { min-width: 0; }
.system-overview { align-items: center; padding-block: 25px; }
.check-list { list-style: none; padding: 0; margin: 0; }
.check-list li { border-bottom: 1px solid var(--line); padding: 14px 0 14px 23px; position: relative; font-size: 14px; color: var(--muted); }
.check-list li:before { content: '—'; color: var(--accent); position: absolute; left: 0; }
.system-flow { display: grid; grid-template-columns: 1fr 30px 1.1fr 30px 1fr; align-items: center; gap: 8px; border: 1px solid var(--line); padding: 25px; }
.system-flow > div { padding: 18px; }
.system-flow span { display: block; color: #7e7e7e; font-size: 9px; margin-bottom: 12px; }
.system-flow strong { display: block; font-size: 20px; font-weight: 500; line-height: 1.3; margin-bottom: 9px; }
.system-flow small { display: block; font-size: 11px; color: var(--muted); }
.system-flow > b { color: #979797; text-align: center; font-weight: 400; }
.system-flow .flow-main { background: var(--dark); color: #fff; }
.system-flow .flow-main span, .system-flow .flow-main small { color: #cfcfcf; }
.architecture-layers, .scope-grid, .delivery-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 30px; margin-top: 35px; }
.architecture-layers > div, .scope-grid > article, .delivery-steps > li { border-top: 2px solid #b1b1b1; padding-top: 18px; }
.architecture-layers h3, .scope-grid h3, .delivery-steps h3 { font-size: 22px; margin-top: 22px; }
.architecture-layers p, .scope-grid p, .delivery-steps p { font-size: 14px; }
.architecture-layers span, .scope-grid > article > span, .delivery-steps > li > span { color: #7f7f7f; font-size: 11px; }
.architecture-layers small, .delivery-steps small { font-size: 11px; color: #7f7f7f; }
.delivery-steps { list-style: none; padding: 0; }
.two-feature article { border-top: 1px solid var(--line); padding-top: 28px; }
.two-feature h2 { font-size: 29px; }
.case-lead { display: grid; grid-template-columns: 1.1fr 1fr; align-items: center; gap: 65px; padding-block: 20px; }
.case-study-graphic { background: var(--dark); padding: 35px; color: #fff; min-height: 310px; display: flex; flex-direction: column; justify-content: space-between; }
.case-study-graphic > .meta { color: #cecece; font-size: 9px; }
.heat-pipes { display: grid; grid-template-columns: 1fr 1.2fr 1fr; align-items: center; gap: 12px; position: relative; margin-block: 38px; }
.heat-pipes > i { position: absolute; height: 1px; background: #838383; width: 100%; }
.heat-pipes > i:nth-child(2) { top: calc(50% + 6px); }
.heat-pipes > span, .heat-pipes > b { position: relative; background: var(--dark); font-size: 10px; padding: 12px 0; text-align: center; }
.heat-pipes > b { background: #444444; border: 1px solid #8e8e8e; padding: 24px 8px; font-size: 17px; font-weight: 500; }
.case-lead aside h2 { font-size: 29px; }
.case-lead aside p { font-size: 14px; }
.solution-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 45px 70px; padding-top: 20px; }
.solution-grid > article { border-top: 1px solid var(--line); padding-top: 22px; }
.big-number { font-size: 11px; color: #7f7f7f; }
.solution-grid .eyebrow { margin-top: 22px; }
.solution-grid h2 { font-size: 30px; }
.solution-grid p { font-size: 15px; }
.application-labels { display: grid; grid-template-columns: 1fr 1fr; gap: 0 35px; margin-top: 25px; }
.application-labels > a { display: flex; justify-content: space-between; gap: 15px; padding-block: 15px; border-bottom: 1px solid var(--line); font-size: 14px; }
.interface-note { margin-top: 25px; font-size: 12px; color: var(--accent); }
.filter-bar { display: flex; align-items: center; flex-wrap: wrap; gap: 25px; padding-block: 16px; border-block: 1px solid var(--line); margin-bottom: 30px; }
.filter-bar > span { font-size: 10px; font-weight: 600; color: #777777; }
.filter-bar > div { display: flex; flex-wrap: wrap; gap: 8px; }
.filter-button { padding: 9px 14px; border: 1px solid var(--line); background: #fff; font-size: 12px; }
.filter-button:hover { border-color: var(--accent); }
.filter-button[aria-pressed=true] { background: var(--accent); border-color: var(--accent); color: #fff; }
.filter-status { font-size: 11px; margin: 0 0 0 auto; }
.product-hero { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 70px; padding-block: 65px; }
.product-hero .lede { font-size: 17px; }
.detail-art { border: 1px solid var(--line); background: var(--pale); }
.detail-art .device-art { padding: 35px; }
.detail-art .device-diagram { grid-template-columns: 1fr; gap: 0; margin-block: 30px; }
.detail-art .device-diagram > strong { font-size: 22px; padding: 25px; }
.detail-art .device-diagram > span { font-size: 14px; padding: 10px; }
.detail-art .device-diagram > i { width: 1px; height: 25px; margin-inline: auto; }
.related-band { background: var(--pale); border: 1px solid var(--line); display: flex; justify-content: space-between; gap: 35px; align-items: center; padding: 30px; margin-block: 20px 60px; }
.related-band h2 { font-size: 27px; margin: 10px 0; }
.related-band p { font-size: 14px; margin: 0; }
.software-rows { padding-top: 5px; }
.software-rows > article { display: grid; grid-template-columns: 70px 1fr; gap: 25px; border-top: 1px solid var(--line); padding-block: 35px; }
.software-rows h2 { font-size: 29px; }
.software-rows p { font-size: 16px; max-width: 820px; }
.software-rows small { color: #7b7b7b; font-size: 12px; }
.resource-list { padding-top: 10px; }
.resource-list > article { display: grid; grid-template-columns: .9fr 1.1fr; gap: 70px; border-top: 1px solid var(--line); padding-block: 35px; scroll-margin-top: 110px; }
.resource-list h2 { font-size: 29px; }
.resource-list .text-link { margin-top: 18px; }
.fine-print { font-size: 12px; line-height: 1.7; color: #7a7a7a; }
.brief-layout { display: grid; grid-template-columns: .8fr 1.2fr; gap: 85px; padding-top: 15px; }
.brief-layout > aside > h2 { font-size: 28px; }
.brief-prompts { padding-left: 20px; color: var(--muted); font-size: 14px; }
.brief-prompts li { padding-block: 6px; }
.framework-notice { border-left: 3px solid var(--accent); background: var(--pale); padding: 20px; margin-top: 30px; }
.framework-notice strong { font-size: 13px; }
.framework-notice p { font-size: 13px; margin: 9px 0 0; }
.form-row { margin-bottom: 22px; }
.form-row.two { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
label { display: block; font-size: 13px; font-weight: 600; }
label > span { color: #7a7a7a; font-size: 11px; font-weight: 400; }
input:not([type=checkbox]), select, textarea { display: block; width: 100%; border: 1px solid #c6c6c6; border-radius: 2px; padding: 12px; background: #fff; font-size: 14px; font-weight: 400; color: var(--ink); margin-top: 8px; }
input::placeholder, textarea::placeholder { color: #838383; font-size: 12px; }
textarea { resize: vertical; min-height: 135px; }
fieldset { border: 0; padding: 0; margin: 28px 0; }
legend { font-size: 13px; font-weight: 600; margin-bottom: 15px; }
.checkboxes { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.checkboxes label { font-size: 12px; font-weight: 400; display: flex; align-items: center; gap: 9px; }
.checkboxes input { width: 16px; height: 16px; margin: 0; accent-color: var(--accent); }
.brief-layout form > .fine-print { margin-top: 17px; }
#brief-status { font-size: 13px; color: var(--accent); margin-top: 20px; }
#brief-result { padding: 25px; border: 1px solid #b3b3b3; background: #f6f6f6; scroll-margin-top: 105px; }
#brief-result > h2 { font-size: 25px; }
#brief-preview { white-space: pre-wrap; overflow-wrap: anywhere; font: 12px/1.9 monospace; border-top: 1px solid var(--line); padding-top: 20px; }
#download-brief { font-size: 12px; }
.prose { max-width: 820px; padding-top: 15px; }
.prose h2 { margin-top: 35px; font-size: 28px; }
.error-links { display: flex; flex-wrap: wrap; gap: 25px; padding-bottom: 70px; align-items: center; }
.support-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 35px; padding-top: 20px; }
.support-cards > article { border-top: 2px solid #c1c1c1; padding-top: 25px; }
.support-cards h2 { font-size: 27px; }
.publication-state { font-size: 13px; padding: 13px 16px; background: var(--pale); border-left: 2px solid #a4a4a4; }
.firmware-directory { display: grid; grid-template-columns: 1.3fr .7fr; gap: 60px; padding-top: 20px; }
.publication-notice { padding: 32px; background: var(--pale); border: 1px solid var(--line); }
.publication-notice h2 { font-size: 30px; margin-top: 24px; }
.publication-notice .button { margin-top: 12px; }
.firmware-directory aside h2 { font-size: 26px; }
.platform-band { background: var(--pale); border-block: 1px solid var(--line); }
.platform-feature { display: grid; grid-template-columns: .8fr 1.2fr; align-items: center; gap: 48px; min-width: 0; }
.platform-band .platform-feature { padding-block: 55px; }
.platform-feature > div { min-width: 0; }
.platform-feature h2 { font-size: 32px; }
.platform-feature p { font-size: 15px; }
.platform-feature .fine-print { font-size: 11px; margin-top: 20px; }
.platform-image { min-width: 0; margin: 0; }
.platform-image > a { display: block; border: 1px solid #d6d6d6; border-radius: var(--radius); overflow: hidden; background: #fff; }
.platform-image img { display: block; width: 100%; height: auto; }
.platform-image a:hover { border-color: var(--accent); }
.platform-image figcaption { font-size: 12px; line-height: 1.6; color: var(--ink); margin-top: 13px; }
.platform-image figcaption > span { display: block; color: var(--muted); font-size: 10px; margin-top: 3px; }
.platform-overview { padding-bottom: 10px; }
.platform-summary { display: flex; align-items: end; justify-content: space-between; gap: 35px; margin-bottom: 27px; }
.platform-summary > div { max-width: 780px; }
.platform-summary h2 { font-size: 27px; }
.platform-summary p { margin: 0; }
.platform-summary > a { flex-shrink: 0; padding-bottom: 6px; }
.application-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin-top: 32px; }
.application-cards article { padding: 27px; border: 1px solid var(--line); background: #fff; border-radius: var(--radius); }
.application-cards h3 { margin-top: 14px; font-size: 23px; }
.application-cards p { font-size: 14px; }
.application-scope { margin: 25px 0 0; }
.demo-intro { padding-top: 55px; padding-bottom: 20px; }
.console-modules { margin: 0; }
.console-modules > div { border-bottom: 1px solid var(--line); padding: 16px 0; }
.console-modules > div:first-child { padding-top: 0; }
.console-modules dt { font-size: 16px; font-weight: 600; color: var(--brand); }
.console-modules dd { margin: 6px 0 0; color: var(--muted); font-size: 14px; }
.publication-notice, .nav-panel { border-radius: var(--radius); }
input:not([type=checkbox]), select, textarea { border-radius: 6px; }
@media (max-width: 1320px) {
  .hero { gap: 40px; }
  .device-art { padding: 17px; }
}
@media (max-width: 1280px) {
  .nav-wrap { min-height: 80px; }
  .menu-toggle { display: block; }
  #main-nav { display: none; position: absolute; top: 80px; left: -32px; right: -32px; padding: 15px 32px 25px; background: #fff; border-bottom: 1px solid var(--line); max-height: calc(100dvh - 80px); overflow-y: auto; }
  #main-nav.is-open { display: flex; flex-direction: column; gap: 0; align-items: stretch; }
  #main-nav > a, .nav-dropdown summary { padding: 13px 0; font-size: 17px; }
  #main-nav > .nav-cta { padding: 14px 17px; margin-top: 12px; justify-content: space-between; }
  .nav-panel { position: static; box-shadow: none; border: 0; border-left: 1px solid var(--line); margin-bottom: 10px; padding: 0 0 0 10px; }
}
@media (max-width: 1200px) {
  .wrap { width: calc(100% - 64px); }
  .hero h1 { font-size: 39px; }
  .hero .lede { font-size: 16px; }
  .system-drawing { padding: 23px; }
  .custom-feature, .editorial-grid, .system-overview, .two-feature, .product-hero, .brief-layout, .case-lead, .resource-list > article { gap: 40px; }
  .product-grid { gap: 22px; }
  .product-copy { padding: 20px; }
  .product-copy h3 { font-size: 20px; }
  .device-diagram { grid-template-columns: 1fr 10px 1.1fr 10px 1fr; }
  .device-diagram > span { font-size: 9px; }
  .architecture-layers, .scope-grid, .delivery-steps { grid-template-columns: 1fr 1fr; gap: 30px; }
}
@media (max-width: 900px) {
  .hero { grid-template-columns: 1fr 1fr; gap: 30px; }
  .hero h1 { font-size: 33px; }
  .hero h1 br { display: none; }
  .hero-actions { gap: 18px; }
  .hero .lede { font-size: 15px; }
  .system-drawing { padding: 20px; }
  .architecture-core { padding: 15px 10px; }
  .architecture-core > strong { font-size: 18px; }
  .core-options { gap: 5px; }
  .core-options span { padding-inline: 2px; font-size: 9px; }
  .product-grid { grid-template-columns: 1fr 1fr; }
  .custom-feature { gap: 35px; }
  .custom-feature h2 { font-size: 29px; }
  .project-study { padding: 25px; }
  .project-study h3 { font-size: 24px; }
  .study-facts > div { grid-template-columns: 75px 1fr; gap: 10px; font-size: 11px; }
  .custom-deliverables { grid-template-columns: 1fr; }
  .footer-top { grid-template-columns: 1.5fr 1fr 1fr; gap: 30px; }
  .footer-top > div:last-child { grid-column: 2 / -1; }
  .split-heading { gap: 25px; }
  .service-grid { gap: 30px; }
  .service-grid > article + article { padding-left: 30px; }
}
@media (max-width: 700px) {
  .platform-feature, .application-cards { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .platform-band .platform-feature { padding-block: 35px; }
  .platform-feature h2 { font-size: 27px; }
  .platform-summary { display: block; }
  .platform-summary > a { margin-top: 20px; }
  .platform-summary h2 { font-size: 25px; }
  .platform-image figcaption { font-size: 11px; }
  .application-cards article { padding: 23px; }
  .wrap { width: calc(100% - 40px); }
  h1 { font-size: 35px; }
  h2 { font-size: 28px; }
  .section { padding-block: 45px; }
  .nav-wrap { min-height: 76px; }
  .brand { font-size: 24px; }
  #main-nav { top: 76px; left: -20px; right: -20px; padding-inline: 20px; }
  .hero { grid-template-columns: 1fr; gap: 30px; padding-block: 36px; }
  .hero h1 { font-size: 37px; line-height: 1.15; max-width: 550px; }
  .hero .eyebrow { font-size: 11px; margin-bottom: 18px; }
  .hero .lede { font-size: 16px; }
  .hero-actions { gap: 24px; margin-top: 24px; }
  .hero-footnote { margin-top: 22px; font-size: 11px; }
  .hero > .system-drawing { width: 100%; max-width: 550px; }
  .architecture-top { width: 66%; }
  .architecture-core { padding: 18px 15px; }
  .architecture-core > strong { font-size: 20px; }
  .core-options span { font-size: 10px; padding: 7px 3px; }
  .capability-strip > .wrap { grid-template-columns: 1fr 1fr; gap: 13px 10px; padding-block: 18px; }
  .capability-strip a { padding: 12px 0; border: 0; }
  .capability-strip strong { font-size: 16px; }
  .capability-strip span { font-size: 14px; }
  .split-heading { display: block; margin-bottom: 25px; }
  .split-heading > .text-link { margin-top: 20px; }
  .section-heading .lede { font-size: 15px; }
  .product-grid { gap: 20px; }
  .device-art { padding: 15px; }
  .diagram-type { font-size: 8px; }
  .device-diagram { grid-template-columns: 1fr; margin-block: 15px; }
  .device-diagram > span { font-size: 10px; padding: 5px 0; }
  .device-diagram > strong { font-size: 11px; padding: 10px 5px; }
  .device-diagram > i { width: 1px; height: 9px; margin-inline: auto; }
  .product-copy { padding: 18px; }
  .product-copy > .meta { font-size: 8px; }
  .product-copy h3 { font-size: 20px; }
  .product-copy p { font-size: 13px; }
  .custom-feature, .editorial-grid, .system-overview, .two-feature, .product-hero, .case-lead, .brief-layout, .resource-list > article, .firmware-directory, .support-cards { grid-template-columns: minmax(0, 1fr); gap: 30px; }
  .custom-feature { padding-block: 42px; }
  .custom-deliverables { grid-template-columns: 1fr 1fr; font-size: 12px; }
  .project-study { padding: 25px; }
  .project-study > h3 { font-size: 25px; }
  .study-facts > div { grid-template-columns: 85px 1fr; font-size: 12px; }
  .need-row { grid-template-columns: 26px 1fr 24px; gap: 8px; padding-block: 20px; }
  .need-row h3 { font-size: 21px; }
  .need-row p { font-size: 15px; }
  .service-grid { grid-template-columns: 1fr; padding-block: 35px; gap: 30px; }
  .service-grid > article + article { border-left: 0; border-top: 1px solid var(--line); padding: 27px 0 0; }
  .service-grid h2 { font-size: 25px; }
  .cta-panel { display: block; padding: 28px; margin-block: 35px; }
  .cta-panel h2 { font-size: 26px; }
  .cta-panel .button { margin-top: 23px; }
  .footer-top { grid-template-columns: 1fr 1fr; gap: 30px 25px; padding-bottom: 30px; }
  .footer-top > div:first-child { grid-column: 1 / -1; }
  .footer-top > div:last-child { grid-column: auto; }
  .footer-top p { margin-top: 15px; }
  .footer-bottom { font-size: 9px; flex-wrap: wrap; gap: 10px 20px; }
  .footer-bottom > span:last-child { width: 100%; }
  .page-intro { padding-block: 38px 25px; }
  .page-intro .lede { font-size: 16px; }
  .system-overview { padding-block: 15px; }
  .system-flow { grid-template-columns: 1fr; gap: 5px; padding: 17px; }
  .system-flow > div { padding: 15px; }
  .system-flow > b { transform: rotate(90deg); }
  .architecture-layers, .scope-grid, .delivery-steps { gap: 28px 22px; }
  .architecture-layers h3, .scope-grid h3, .delivery-steps h3 { font-size: 21px; }
  .case-lead { padding-top: 5px; }
  .case-study-graphic { min-height: 290px; padding: 25px; }
  .solution-grid { grid-template-columns: 1fr; gap: 35px; padding-top: 15px; }
  .solution-grid h2 { font-size: 28px; }
  .application-labels { gap: 0 20px; }
  .application-labels > a { font-size: 12px; }
  .product-hero { padding-block: 38px; }
  .product-hero .lede { font-size: 16px; }
  .detail-art .device-art { padding: 25px; }
  .related-band { display: block; padding: 25px; margin-bottom: 40px; }
  .related-band .text-link { margin-top: 15px; }
  .filter-bar { gap: 12px; }
  .filter-bar > div { width: 100%; gap: 5px; }
  .filter-button { padding: 8px 10px; font-size: 11px; }
  .filter-status { margin: 0; }
  .software-rows > article { grid-template-columns: 25px 1fr; gap: 15px; padding-block: 28px; }
  .software-rows h2 { font-size: 26px; }
  .software-rows p { font-size: 15px; }
  .resource-list > article { gap: 10px; padding-block: 28px; }
  .resource-list h2 { font-size: 27px; }
  .brief-layout { padding-top: 10px; }
  .brief-prompts { display: none; }
  .framework-notice { margin-top: 20px; }
  .form-row.two { gap: 15px; }
  .support-cards { padding-top: 10px; }
  .publication-notice { padding: 25px; }
  .publication-notice h2 { font-size: 28px; }
}
@media (max-width: 420px) {
  .hero h1 { font-size: 34px; }
  .hero-actions { gap: 20px; }
  .hero-actions .button { padding-inline: 16px; gap: 14px; font-size: 13px; }
  .hero-actions .text-link { font-size: 12px; gap: 10px; }
  .product-grid { grid-template-columns: minmax(0, 1fr); }
  .product-card { display: grid; grid-template-columns: 95px minmax(0, 1fr); }
  .product-visual { border-bottom: 0; border-right: 1px solid var(--line); display: flex; align-items: center; }
  .device-art { padding: 12px 8px; width: 100%; }
  .diagram-type, .diagram-note { display: none; }
  .device-diagram > span { font-size: 9px; }
  .device-diagram > strong { font-size: 9px; padding: 9px 2px; }
  .product-copy { padding: 18px 15px; }
  .product-copy h3 { font-size: 19px; }
  .product-copy p { font-size: 12px; margin-bottom: 15px; }
  .product-copy .text-link { font-size: 12px; gap: 12px; }
  .architecture-layers, .scope-grid, .delivery-steps, .form-row.two, .checkboxes, .application-labels { grid-template-columns: 1fr; }
  .system-drawing { padding: 20px 17px; }
  .architecture-core > strong { font-size: 18px; }
  .architecture-core p { font-size: 9px; }
  .architecture-field { gap: 7px; }
  .architecture-field span { font-size: 10px; }
  .drawing-caption { font-size: 8px; gap: 10px; }
  .custom-deliverables { grid-template-columns: 1fr; }
  .heat-pipes { gap: 8px; }
  .heat-pipes > span { font-size: 8px; }
  .heat-pipes > b { font-size: 14px; padding: 20px 6px; }
  .form-row.two { gap: 22px; }
  .filter-button { padding: 8px; font-size: 10px; }
  .detail-art .device-art { padding: 25px; }
  .detail-art .diagram-type, .detail-art .diagram-note { display: block; }
  .detail-art .device-diagram > span { font-size: 13px; }
  .detail-art .device-diagram > strong { font-size: 21px; padding: 22px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *:before, *:after { transition: none !important; animation: none !important; }
}
@media print {
  .site-header, .site-footer, .cta-panel, .hero-actions, .menu-toggle, .button, .filter-bar { display: none !important; }
  .wrap { width: 100%; }
  .section { padding-block: 20px; }
  .hero, .editorial-grid, .brief-layout { display: block; }
  .system-drawing { break-inside: avoid; }
  #brief-result { background: #fff; border: 1px solid #ccc; }
}

.scenario-links { list-style: none; padding: 0; margin: 20px 0 22px; }
.scenario-links li { border-top: 1px solid var(--line); }
.scenario-links a { display: flex; justify-content: space-between; gap: 16px; align-items: center; min-height: 48px; padding-block: 10px; font-size: 16px; line-height: 1.5; color: var(--brand); }
.scenario-links a:hover { text-decoration: underline; text-underline-offset: 4px; }
.scenario-section > .section-heading { margin-bottom: 10px; }
.scenario { display: grid; grid-template-columns: .8fr 1.2fr; gap: 64px; padding-block: 40px; border-bottom: 1px solid var(--line); scroll-margin-top: 108px; }
.scenario-context h3 { font-size: 28px; margin-bottom: 18px; }
.scenario-context p, .scenario-detail > p { font-size: 16px; line-height: 1.75; }
.scenario-context .text-link { display: flex; width: fit-content; min-height: 44px; align-items: center; }
.scenario-route { list-style: none; padding: 0; margin: 0 0 24px; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; }
.scenario-route li { position: relative; display: flex; align-items: center; justify-content: center; min-height: 82px; padding: 14px 10px; background: var(--pale); border: 1px solid var(--line); border-radius: 4px; font-size: 14px; font-weight: 500; line-height: 1.5; text-align: center; }
.scenario-route li + li:before { content: '→'; position: absolute; left: -20px; color: var(--accent); }
.scenario-detail h4 { margin: 22px 0 10px; font-size: 16px; font-weight: 600; }
.scenario-detail .check-list { margin-bottom: 20px; }
.scenario-detail .check-list li { font-size: 15px; }
.scenario-detail .scenario-inputs { font-size: 14px; line-height: 1.65; padding-top: 18px; border-top: 1px solid var(--line); margin-bottom: 0; }
.scenario-inputs strong { display: block; font-size: 14px; color: var(--ink); margin-bottom: 5px; }
.contact-options { display: grid; gap: 10px; margin-block: 22px; overflow-wrap: anywhere; }
.contact-options a { color: var(--brand); font-size: 16px; line-height: 1.5; min-height: 44px; display: flex; align-items: center; }
.site-footer .contact-options { margin-top: 18px; }
.company-location { margin-block: 24px; overflow-wrap: anywhere; }
.company-location .meta { margin-bottom: 10px; }
.company-location address { font-style: normal; line-height: 1.7; }
.footer-location { border-top: 1px solid var(--line); padding-block: 20px; }
.site-footer .company-location { display: grid; grid-template-columns: max-content minmax(0,1fr); align-items: baseline; gap: 8px 24px; margin: 0; font-size: 14px; }
.site-footer .company-location .meta { margin: 0; font-size: 12px; }
@media (max-width: 600px) {
  .site-footer .company-location { grid-template-columns: minmax(0,1fr); gap: 6px; }
}
.site-footer .contact-options a { font-size: 14px; margin: 0; }
.whatsapp-contact { position: fixed; right: 20px; bottom: 20px; z-index: 20; display: inline-flex; gap: 18px; align-items: center; min-height: 48px; padding: 10px 18px; border: 1px solid var(--line); border-radius: 5px; background: white; color: var(--brand); font-size: 16px; font-weight: 600; box-shadow: 0 3px 15px #31313115; }
.whatsapp-contact:hover { border-color: var(--brand); }
.site-footer { padding-bottom: 65px; }
#inquiry-fields { min-width: 0; border: 0; padding: 0; margin: 0; }
.sr-only, .inquiry-trap { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.privacy-consent { display: flex; align-items: flex-start; gap: 12px; font-size: 14px; line-height: 1.65; margin-block: 24px; }
.privacy-consent input { flex: 0 0 18px; width: 18px; height: 18px; margin-top: 3px; }
.privacy-consent a { text-decoration: underline; text-underline-offset: 3px; }
.inquiry-actions { display: flex; flex-wrap: wrap; gap: 14px; }
.inquiry-actions .secondary { background: white; color: var(--brand); border: 1px solid var(--line); }
.inquiry-actions button:disabled { opacity: .55; cursor: not-allowed; }
#brief-status { min-height: 30px; margin-block: 18px; line-height: 1.7; }
#brief-status[data-state="error"] { color: #9a2828; }
#brief-result { scroll-margin-top: 108px; }
#inquiry-reference { font-weight: 600; overflow-wrap: anywhere; }
@media (max-width: 700px) { .whatsapp-contact { right: 12px; bottom: 12px; min-height: 46px; padding: 9px 14px; font-size: 15px; } }
@media print { .whatsapp-contact { display: none; } }
@media (max-width: 900px) { .scenario { grid-template-columns: minmax(0,1fr); gap: 24px; } }
@media (max-width: 700px) {
  .scenario { padding-block: 30px; }
  .scenario-context h3 { font-size: 25px; }
  .scenario-route { grid-template-columns: minmax(0,1fr); gap: 20px; }
  .scenario-route li { min-height: 54px; font-size: 15px; padding: 13px 16px; }
  .scenario-route li + li:before { content: '↓'; left: calc(50% - 5px); top: -23px; }
}

/* Document-driven catalogue. The original logo and brand palette remain authoritative. */
body { font-size: 16px; }
.button { font-size: 16px; min-height: 48px; }
.evidence-hero { gap: 56px; padding-block: 64px 52px; }
.evidence-hero h1 { font-size: clamp(38px, 3.8vw, 54px); line-height: 1.09; }
.evidence-hero .lede { font-size: 19px; line-height: 1.65; }
.hero-subline { margin: 26px 0 0; font-size: 15px; max-width: 420px; }
.photo-brief { margin: 0; min-width: 0; }
.photo-frame { min-height: 350px; background: #f1f2f3; border: 1px solid #dadcdf; border-top: 3px solid var(--accent); padding: 30px; display: flex; flex-direction: column; position: relative; }
.photo-label { color: #55575b; font-size: 11px; font-weight: 600; letter-spacing: .055em; margin-bottom: auto; overflow-wrap: anywhere; }
.photo-frame strong { font-size: 26px; line-height: 1.25; max-width: 330px; padding-top: 42px; margin-bottom: 16px; font-weight: 500; letter-spacing: -.025em; }
.photo-frame p { font-size: 15px; max-width: 420px; margin-bottom: 35px; }
.photo-index { color: #666970; font-size: 15px; letter-spacing: .12em; }
.photo-brief figcaption { font-size: 12px; line-height: 1.5; margin-top: 12px; color: #626269; }
.photo-brief.compact .photo-frame { min-height: 285px; }
.evidence-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 32px; border-bottom: 1px solid var(--line); padding-block: 24px; }
.evidence-bar > span { color: var(--muted); flex: 1 1 240px; }
.evidence-bar a { font-size: 15px; }
.reference-row { display: grid; grid-template-columns: 54px minmax(0,1fr) 30px; align-items: center; gap: 30px; border-top: 1px solid var(--line); padding: 28px 0; }
.reference-row:last-child { border-bottom: 1px solid var(--line); }
.reference-row h3 { font-size: 26px; margin: 6px 0 8px; }
.reference-row p { margin-bottom: 0; }
.reference-row:hover h3 { color: var(--accent); }
.reference-code { font-size: 14px; color: #626269; align-self: start; padding-top: 4px; }
.reference-row > span:last-child { font-size: 27px; color: var(--accent); }
.cabinet-editorial { display: grid; grid-template-columns: 1fr 1fr; gap: 100px; padding-block: 65px; }
.cabinet-editorial h2 { font-size: 36px; }
.handover-list { list-style: none; padding: 0; margin: 0; counter-reset: handover; }
.handover-list li { padding: 18px 0; border-bottom: 1px solid #d6d6d9; display: grid; grid-template-columns: 100px 1fr; gap: 16px; }
.handover-list strong { font-size: 18px; font-weight: 600; }
.handover-list span { color: var(--muted); }
.shortlist-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 26px; }
.shortlist-item { border-top: 3px solid var(--ink); padding-block: 22px; }
.shortlist-item h3 { margin-block: 18px 12px; }
.shortlist-item h3 .text-link { font-size: 26px; }
.shortlist-spec { font-size: 15px; line-height: 1.8; }
.catalogue-intro { display: flex; align-items: center; flex-wrap: wrap; gap: 20px 32px; }
.browse-tools { display: flex; flex-wrap: wrap; align-items: end; gap: 24px; padding: 26px; background: var(--pale); border: 1px solid var(--line); margin-bottom: 32px; }
.browse-tools label { display: block; color: var(--ink); font-size: 15px; font-weight: 500; }
.search-label { flex: 1 1 360px; }
.select-label { flex: 0 1 260px; }
.browse-tools input, .browse-tools select { display: block; margin-top: 9px; width: 100%; min-height: 50px; padding: 11px 13px; background: #fff; border: 1px solid #94949c; border-radius: 3px; font-size: 16px; color: var(--ink); }
.browse-status { margin: 0 0 12px; min-width: 80px; font-size: 15px; }
.no-results { padding: 30px 0; }
.model-row { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.4fr) 125px; gap: 35px; align-items: center; padding: 32px 0; border-bottom: 1px solid var(--line); }
.model-row h2 { margin: 8px 0; font-size: 28px; }
.model-row h2 a:hover { color: var(--accent); }
.model-row p { margin-bottom: 0; font-size: 16px; max-width: 290px; }
.model-row dl { margin: 0; }
.model-row dl div { display: grid; grid-template-columns: 100px minmax(0,1fr); gap: 14px; margin-block: 7px; font-size: 15px; }
.model-row dt { color: #626269; }
.model-row dd { margin: 0; }
.model-row > .text-link { justify-self: end; }
.selection-notes { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 40px; }
.selection-notes article { border-top: 1px solid #bcbcc2; padding-top: 24px; }
.breadcrumbs { display: flex; gap: 14px; flex-wrap: wrap; padding-top: 25px; font-size: 14px; color: var(--muted); }
.breadcrumbs a { text-decoration: underline; text-underline-offset: 4px; }
.model-hero { display: grid; grid-template-columns: 1fr 1fr; gap: 65px; padding-block: 40px 15px; align-items: center; }
.model-hero h1 { font-size: clamp(44px,5vw,64px); margin-bottom: 12px; }
.model-hero h2 { font-size: 27px; line-height: 1.35; font-weight: 500; }
.model-hero .lede { font-size: 18px; }
.model-specs { display: grid; grid-template-columns: .85fr 1.3fr; gap: 90px; }
.model-specs > div p { max-width: 350px; }
.spec-list { margin: 0; }
.spec-list > div { display: grid; grid-template-columns: 130px minmax(0,1fr); gap: 22px; padding-block: 15px; border-top: 1px solid var(--line); }
.spec-list dt { color: var(--muted); }
.spec-list dd { margin: 0; }
.download-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,255px),1fr)); gap: 24px; }
.download-grid article { padding: 25px; border: 1px solid var(--line); }
.download-grid h3 { font-size: 21px; margin-top: 18px; line-height: 1.35; }
.download-grid p { font-size: 15px; }
.variant-note { padding: 30px; border-left: 3px solid var(--accent); background: var(--pale); }
.variant-note h2 { font-size: 24px; }
.model-links { display: flex; flex-wrap: wrap; gap: 18px 40px; }
.model-links a { font-size: 22px; }
.solution-lead { display: grid; grid-template-columns: 1fr 1fr; gap: 70px; align-items: center; padding-block: 15px 30px; }
.scope-caption { margin-top: 20px; font-size: 14px; color: #626269; }
.reference-topology { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); list-style: none; padding: 0; border: 1px solid var(--line); }
.reference-topology li { border-right: 1px solid var(--line); padding: 25px; }
.reference-topology li:last-child { border: 0; }
.reference-topology span { display: block; color: var(--accent); font-size: 13px; margin-bottom: 25px; }
.reference-topology strong { font-size: 19px; font-weight: 500; }
.acceptance-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 90px; }
.capability-links { display: flex; gap: 30px; flex-wrap: wrap; }
.document-policy { padding: 26px 30px; background: var(--pale); border-left: 3px solid var(--accent); }
.document-policy p { max-width: 900px; margin-bottom: 10px; }
.document-row { display: grid; grid-template-columns: minmax(0,1fr) 145px; align-items: center; gap: 45px; border-bottom: 1px solid var(--line); padding: 26px 0; }
.document-row h2 { font-size: 21px; line-height: 1.4; margin: 8px 0; }
.document-row p { font-size: 14px; margin-bottom: 8px; }
.document-row > a { justify-self: end; }
.file-integrity { font-size: 13px; }
.file-integrity summary { color: var(--muted); padding-block: 6px; }
.file-integrity code { display: block; overflow-wrap: anywhere; font-size: 12px; padding: 10px 12px; background: var(--pale); margin-top: 5px; }
.technical-answer { border-bottom: 1px solid var(--line); scroll-margin-top: 110px; }
.technical-answer:first-child { border-top: 1px solid var(--line); }
.technical-answer > summary { font-size: 20px; font-weight: 500; line-height: 1.45; padding: 22px 35px 22px 0; position: relative; list-style: none; }
.technical-answer > summary::-webkit-details-marker { display: none; }
.technical-answer > summary:after { content: '+'; position: absolute; right: 6px; top: 22px; color: var(--accent); font-size: 23px; }
.technical-answer[open] > summary:after { content: '−'; }
.technical-answer > div { padding: 0 35px 25px 0; }
.technical-answer > div p { max-width: 880px; line-height: 1.8; }
.technical-answer .text-link { font-size: 15px; }
.answer-version { display: block; font-size: 13px; color: var(--muted); margin-top: 9px; }
.guide-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 45px; }
.guide-grid article { padding-block: 28px; border-top: 1px solid var(--line); }
.guide-grid h2 { font-size: 24px; line-height: 1.4; margin-top: 12px; }
.support-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 35px; }
.support-grid article { border-top: 2px solid var(--ink); padding-block: 25px; }
@media (max-width: 1000px) {
  .evidence-hero { gap: 30px; }
  .cabinet-editorial { gap: 50px; }
  .shortlist-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .model-row { grid-template-columns: minmax(0,.8fr) minmax(0,1.3fr); gap: 20px; }
  .model-row > .text-link { grid-column: 1 / -1; justify-self: start; }
  .model-hero { gap: 30px; }
  .model-specs, .solution-lead, .acceptance-columns { gap: 40px; }
}
@media (max-width: 767px) {
  .evidence-hero, .model-hero, .solution-lead, .cabinet-editorial, .model-specs, .acceptance-columns { grid-template-columns: 1fr; gap: 32px; }
  .evidence-hero { padding-block: 35px; }
  .evidence-hero h1 { font-size: 38px; }
  .evidence-hero .lede { font-size: 18px; }
  .photo-frame { min-height: 280px; padding: 24px; }
  .photo-frame strong { font-size: 24px; padding-top: 30px; }
  .evidence-bar { gap: 14px 25px; }
  .evidence-bar > span { flex-basis: 100%; }
  .reference-row { grid-template-columns: 30px minmax(0,1fr) 18px; gap: 15px; padding-block: 24px; }
  .reference-row h3 { font-size: 23px; }
  .reference-row p { font-size: 15px; }
  .reference-code { font-size: 12px; }
  .cabinet-editorial { padding-block: 45px; }
  .cabinet-editorial h2 { font-size: 31px; }
  .handover-list li { grid-template-columns: 85px minmax(0,1fr); }
  .browse-tools { padding: 18px; gap: 18px; }
  .search-label, .select-label { flex: 1 1 100%; }
  .browse-status { margin-bottom: 0; }
  .model-row { grid-template-columns: 1fr; gap: 14px; }
  .model-row p { max-width: none; }
  .model-row dl div { grid-template-columns: 90px minmax(0,1fr); }
  .selection-notes { grid-template-columns: 1fr; gap: 28px; }
  .model-hero h1 { font-size: 45px; }
  .model-hero h2 { font-size: 24px; }
  .spec-list > div { grid-template-columns: 100px minmax(0,1fr); gap: 15px; }
  .reference-topology { grid-template-columns: 1fr; }
  .reference-topology li { border-right: 0; border-bottom: 1px solid var(--line); display: flex; gap: 24px; }
  .reference-topology span { margin: 0; }
  .document-policy { padding: 22px; }
  .document-row { grid-template-columns: 1fr; gap: 12px; }
  .document-row > a { justify-self: start; }
  .technical-answer > summary { font-size: 19px; }
  .guide-grid, .support-grid { grid-template-columns: 1fr; gap: 15px; }
}
@media (max-width: 380px) {
  .evidence-hero h1 { font-size: 34px; }
  .shortlist-grid { grid-template-columns: 1fr; }
  .photo-frame { padding: 20px; }
}
@media print {
  .browse-tools, .photo-brief { display: none; }
  .technical-answer > div { display: block !important; }
  .model-row, .document-row { break-inside: avoid; }
}

/* Visual product and application paths. Existing brand SVG and contact flows retained. */
body { font-size:16px; }
.visual-hero { display:grid; grid-template-columns:1fr 1.1fr; align-items:center; gap:56px; padding-block:64px 58px; }
.visual-hero h1 { font-size:clamp(40px,4.15vw,54px); line-height:1.1; letter-spacing:-.035em; max-width:none; }
.visual-hero .lede { max-width:530px; font-size:19px; line-height:1.7; }
.visual-hero .hero-subline { font-size:15px; margin-top:24px; max-width:440px; }
.hero-visual { position:relative; padding-bottom:85px; min-width:0; }
.hero-scene { display:block; position:relative; overflow:hidden; }
.hero-scene > img { width:100%; height:420px; display:block; object-fit:cover; object-position:65% center; }
.hero-image-label { position:absolute; inset:auto 0 0; padding:50px 24px 24px; color:#fff; font-size:12px; letter-spacing:.07em; background:linear-gradient(transparent,#101418cc); }
.hero-image-label b { display:block; margin-top:8px; font-size:18px; letter-spacing:0; }
.hero-device { position:absolute; right:-10px; bottom:30px; width:190px; padding:10px 12px 16px; border:1px solid var(--line); background:white; box-shadow:0 8px 24px #12121515; }
.hero-device img { display:block; width:100%; height:170px; object-fit:contain; }
.hero-device > span { font-weight:600; font-size:17px; }
.hero-device b { display:block; margin-top:3px; color:var(--brand); font-size:12px; }
.visual-disclosure { margin:12px 195px 0 0; font-size:11px; line-height:1.5; }
.scene-grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:28px; }
.scene-grid > .scene-card { grid-column:span 2; }
.scene-grid.count-1 > .scene-card { grid-column:span 6; }
.scene-grid.count-2 > .scene-card, .scene-grid.count-5 > .scene-card:nth-child(-n+2) { grid-column:span 3; }
.scene-card { min-width:0; background:#f5f5f5; }
.scene-card a { display:flex; flex-direction:column; position:relative; height:100%; }
.scene-card img { display:block; width:100%; height:220px; object-fit:cover; }
.scene-card .scene-caption { display:block; color:#666; font-size:11px; padding:8px 24px 0; }
.scene-copy { padding:16px 24px 26px; display:flex; flex:1; flex-direction:column; align-items:flex-start; }
.scene-copy h3 { font-size:25px; line-height:1.25; margin:10px 0 14px; }
.scene-copy p { font-size:16px; line-height:1.6; }
.scene-copy strong { color:var(--brand); font-size:15px; display:flex; gap:20px; align-items:center; margin-top:auto; padding-top:8px; }
.scene-card a:hover h3,.visual-product-art:hover~div h3,.catalogue-art:hover~div h2 { color:var(--brand); }
.visual-system-band { background:#f4f4f3; }
.visual-system { display:grid; grid-template-columns:1.12fr 1fr; gap:56px; align-items:center; padding-block:64px; }
.system-architecture-preview { min-width:0; }
.system-architecture-preview .engineering-image { margin:0; }
.system-architecture-preview .engineering-image a { padding:6px; }
.visual-system h2 { font-size:36px; line-height:1.2; }
.system-feature-art { display:block; position:relative; }
.system-feature-art img { width:100%; height:420px; display:block; object-fit:cover; }
.system-feature-art > span { position:absolute; inset:auto 0 0; background:#111d; padding:18px 22px; color:white; font-size:15px; }
.system-delivery { display:grid; grid-template-columns:1fr 1fr; list-style:none; padding:0; gap:13px 20px; margin-block:20px 30px; }
.system-delivery li { border-left:2px solid var(--brand); padding-left:12px; font-size:15px; }
.visual-system .fine-print { margin:20px 0 0; }
.visual-products { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr)); gap:28px; margin-block:28px; }
.visual-product { min-width:0; display:flex; flex-direction:column; border-bottom:1px solid var(--line); }
.visual-product-art { display:block; background:#fafafa; position:relative; }
.visual-product-art img { width:100%; height:250px; display:block; object-fit:contain; padding:15px; mix-blend-mode:multiply; }
.visual-product-art > span { position:absolute; bottom:12px; left:16px; font-size:12px; color:var(--brand); background:#fffffff0; padding:5px 8px; }
.visual-product > div { padding:22px 0; flex:1; display:flex; flex-direction:column; align-items:flex-start; }
.visual-product > div > .text-link { margin-top:auto; }
.visual-product h3 { font-size:27px; margin:10px 0; }
.visual-product p { font-size:16px; margin-bottom:16px; }
.visual-product h3 + p { min-height:3.3em; }
.product-card-spec { font-size:14px !important; line-height:1.7; }
.model-row { grid-template-columns:170px minmax(0,1fr) minmax(0,1.35fr) 110px; gap:28px; }
.catalogue-art { display:block; position:relative; background:#fafafa; }
.catalogue-art img { width:100%; height:180px; display:block; object-fit:contain; padding:10px; mix-blend-mode:multiply; }
.catalogue-art > span { display:block; text-align:center; font-size:11px; color:var(--brand); padding:6px; }
.model-hero-art { display:block; position:relative; background:#fafafa; }
.model-hero-art img { display:block; width:100%; height:470px; object-fit:contain; padding:20px; mix-blend-mode:multiply; }
.model-hero-art > span { display:block; text-align:center; padding-bottom:18px; color:var(--brand); font-size:15px; }
.model-section-links { display:flex; gap:14px 22px; flex-wrap:wrap; margin-top:30px; }
.model-section-links a { font-size:14px; text-decoration:underline; text-underline-offset:5px; }
.product-gallery { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr)); gap:28px; }
.product-gallery-item { display:block; min-width:0; border:1px solid var(--line); background:#fafafa; }
.product-gallery-item img { display:block; width:100%; height:280px; object-fit:contain; padding:16px; mix-blend-mode:multiply; }
.product-gallery-item > span { display:block; padding:16px; border-top:1px solid var(--line); font-size:15px; }
.document-card-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr)); gap:28px; }
.document-card { display:flex; flex-direction:column; min-width:0; border:1px solid var(--line); }
.document-cover { display:flex; justify-content:center; align-items:center; position:relative; background:#f1f2f3; height:270px; padding:20px; }
.document-cover img { display:block; width:auto; height:100%; max-width:100%; object-fit:contain; box-shadow:0 3px 12px #1313151a; }
.document-cover > span { position:absolute; right:12px; bottom:12px; background:var(--brand); color:white; padding:8px 13px; font-size:13px; }
.document-card > div { padding:22px; flex:1; display:flex; flex-direction:column; }
.document-card .document-actions { margin-top:auto; padding-top:5px; }
.document-card h3 { font-size:21px; line-height:1.35; margin:10px 0 12px; overflow-wrap:anywhere; }
.document-card p { font-size:14px; }
.document-actions { display:flex; flex-wrap:wrap; gap:12px 24px; align-items:center; }
.document-actions .text-link { font-size:15px; }
.document-actions > a:first-child { font-weight:700; }
.document-row { display:grid; grid-template-columns:95px minmax(0,1fr) 160px; align-items:center; gap:30px; }
.library-cover { display:block; padding:8px; background:#f1f2f3; }
.library-cover img { display:block; width:100%; height:115px; object-fit:contain; }
.document-row .document-actions { flex-direction:column; align-items:flex-start; }
.solution-banner { position:relative; background:#1c2328; overflow:hidden; }
.solution-banner > a > img { display:block; width:100%; height:490px; object-fit:cover; }
.solution-banner:after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,#0c121bea,#0c121b66 60%,transparent); pointer-events:none; }
.solution-banner-copy { position:absolute; top:50%; left:0; right:0; transform:translateY(-50%); z-index:1; pointer-events:none; }
.solution-banner-copy h1 { font-size:clamp(36px,4.6vw,62px); max-width:650px; color:white; }
.solution-banner-copy .eyebrow,.solution-banner-copy .lede { color:white; max-width:560px; }
.solution-banner-copy .button { pointer-events:auto; }
.banner-disclosure { position:absolute; bottom:16px; right:24px; z-index:1; color:white; font-size:12px; background:#0008; padding:5px 10px; }
.solution-chapters { display:flex; gap:24px; flex-wrap:wrap; padding-block:22px; border-bottom:1px solid var(--line); }
.solution-chapters a { font-size:15px; }
.solution-chapters a:hover { color:var(--brand); }
.engineering-image { margin:30px 0; }
.engineering-image a { display:block; position:relative; border:1px solid var(--line); background:white; padding:16px; }
.engineering-image img { display:block; width:100%; height:auto; max-height:700px; object-fit:contain; }
.engineering-image figcaption { font-size:13px; color:var(--muted); margin-top:12px; }
.zoom-label { display:block; color:var(--brand); padding:10px; text-align:right; font-size:14px; }
.installation-detail { max-width:850px; margin:25px auto 0; }
.installation-detail img { display:block; width:100%; max-height:650px; object-fit:contain; }
.solution-document { margin-block:35px; max-width:680px; }
.solution-document .document-card { display:grid; grid-template-columns:180px minmax(0,1fr); }
.solution-document .document-cover { height:230px; padding:18px; }
.preview-heading { display:flex; align-items:center; justify-content:space-between; gap:30px; padding-block:30px; }
.preview-heading h1 { font-size:32px; max-width:800px; margin:12px 0 0; }
.preview-heading .button { flex-shrink:0; }
.document-reader { padding:20px; background:#eef0f2; border:1px solid #d9dde0; }
.reader-controls { display:flex; align-items:center; justify-content:center; gap:12px; flex-wrap:wrap; margin-bottom:18px; }
.reader-controls button,.reader-controls select { background:white; border:1px solid #b6bbc0; border-radius:4px; padding:10px 14px; min-height:44px; font-size:15px; }
.reader-controls label { display:flex; align-items:center; gap:10px; font-size:15px; }
.reader-controls button:disabled { opacity:.45; cursor:default; }
.reader-status { margin:0; font-size:14px; min-width:120px; }
.reader-stage { max-height:1000px; overflow:auto; background:#dfe3e6; text-align:center; padding:18px; }
.reader-stage img { display:block; width:auto; height:auto; max-width:100%; margin:auto; background:white; box-shadow:0 3px 15px #17212a20; }
.reader-stage.is-zoomed img { max-width:none; }
.reader-help { font-size:14px; margin:18px 0 0; }
.media-dialog { border:0; padding:0; max-width:min(95vw,1500px); width:95vw; max-height:94vh; background:white; }
.media-dialog::backdrop { background:#101215dc; }
.media-dialog-head { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:16px 22px; border-bottom:1px solid var(--line); }
.media-dialog-head p { margin:0; font-size:15px; }
.media-dialog-head button { background:white; border:1px solid var(--line); padding:10px 15px; }
.media-dialog figure { margin:0; padding:20px; max-height:77vh; overflow:auto; }
.media-dialog img { display:block; width:100%; max-height:70vh; object-fit:contain; }
.media-dialog a { color:var(--brand); font-size:14px; }
@media(max-width:1100px) {
 .visual-hero { gap:32px; }.hero-scene > img { height:370px; }.visual-products { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .model-row { grid-template-columns:140px minmax(0,1fr) minmax(0,1.3fr); }.model-row > .text-link { grid-column:2 / -1; justify-self:start; }
 .visual-system { gap:40px; }.scene-grid { gap:20px; }.scene-copy { padding:16px 18px 22px; }.scene-card .scene-caption { padding-left:18px; }
 .document-card-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:760px) {
 .visual-hero,.visual-system { grid-template-columns:minmax(0,1fr); gap:32px; padding-block:38px; }.visual-hero h1 { font-size:44px; }.visual-hero .lede { font-size:18px; }
 .hero-scene > img { height:330px; }.hero-device { width:150px; right:0; bottom:30px; }.hero-device img { height:145px; }.visual-disclosure { margin-right:155px; }.visual-hero .hero-subline { margin-bottom:0; }
 .scene-grid { grid-template-columns:1fr 1fr; }.scene-grid .scene-card:nth-child(4) { grid-column:auto; }.scene-grid .scene-card:nth-child(4) img { aspect-ratio:1.65; }.scene-copy h3 { font-size:23px; }
 .visual-system h2 { font-size:32px; }.system-feature-art img { height:310px; }.model-hero-art img { height:360px; }
 .model-row { grid-template-columns:110px minmax(0,1fr); gap:20px; }.model-row dl { grid-column:1 / -1; }.model-row > .text-link { grid-column:1 / -1; }.catalogue-art img { height:140px; }
 .document-row { grid-template-columns:72px minmax(0,1fr); gap:18px; }.document-row .document-actions { grid-column:2; flex-direction:row; gap:16px; }.library-cover img { height:90px; }
 .solution-banner > a > img { height:450px; }.solution-banner-copy h1 { font-size:38px; max-width:450px; }.solution-banner-copy .lede { font-size:18px; }
 .banner-disclosure { font-size:10px; right:14px; }.solution-chapters { gap:15px 22px; }.solution-chapters a { font-size:14px; }
 .preview-heading { display:block; }.preview-heading h1 { font-size:28px; }.preview-heading .button { margin-top:24px; }.document-reader { padding:10px; }.reader-stage { padding:7px; max-height:750px; }
 .reader-controls { gap:8px; }.reader-controls button,.reader-controls select { font-size:13px; padding:8px 10px; }.reader-controls label { font-size:13px; }.reader-status { font-size:12px; text-align:center; }.media-dialog-head { padding:12px; }.media-dialog-head p { font-size:13px; }
}
@media(max-width:480px) {
 .scene-grid,.document-card-grid { grid-template-columns:minmax(0,1fr); }.scene-card img,.scene-grid .scene-card:nth-child(4) img { aspect-ratio:1.65; }
 .visual-products { gap:20px; }.visual-product-art img { height:185px; padding:8px; }.visual-product-art > span { display:none; }.visual-product h3 { font-size:24px; }.visual-product p { font-size:14px; }.product-card-spec { font-size:12px !important; }
 .visual-hero h1 { font-size:39px; }.hero-scene > img { height:290px; }.hero-device { width:135px; }.hero-device img { height:125px; }.visual-disclosure { margin-right:140px; }.hero-device > span { font-size:15px; }
 .model-hero-art img { height:320px; }.product-gallery-item img { height:280px; }.system-delivery { grid-template-columns:1fr; }.document-cover { height:270px; }
 .model-row dl div { grid-template-columns:85px minmax(0,1fr); font-size:14px; }.model-row h2 { font-size:26px; }.model-row p { font-size:15px; }.document-actions .text-link { font-size:14px; }
 .engineering-image a { padding:4px; }.engineering-image img { min-height:170px; }.solution-banner-copy h1 { font-size:35px; }
}

/* Complete manual: wheel / touch scrolling through all source pages. */
.reader-stage { position:relative; height:min(78vh,1000px); max-height:none; overflow:auto; scroll-behavior:auto; overflow-anchor:none; }
.reader-page { position:relative; width:min(100%,1132px); margin:0 auto 22px; background:white; box-shadow:0 3px 15px #17212a20; }
.reader-page:last-child { margin-bottom:0; }
.reader-stage .reader-page img { display:block; width:100%; height:auto; max-width:none; box-shadow:none; }
.reader-page figcaption { display:flex; justify-content:center; flex-wrap:wrap; align-items:center; gap:12px; padding:10px; font-size:12px; color:#5b6065; background:#f9fafb; border-top:1px solid var(--line); }
.reader-stage.is-zoomed .reader-page { width:max-content; min-width:100%; }
.reader-stage.is-zoomed .reader-page img { width:auto; max-width:none; }
.reader-page[data-failed] { border:2px solid #b32530; }
.reader-page[data-failed] figcaption { color:#9d1d28; }
.reader-page [data-reader-retry] { border:1px solid #b32530; color:#9d1d28; background:white; border-radius:3px; min-height:38px; padding:6px 12px; }
@media(max-width:760px) { .reader-stage { height:72vh; max-height:none; }.reader-page { margin-bottom:14px; } }

/* Product facts and count-aware editorial grids. */
.model-key-facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin:24px 0; padding-top:20px; border-top:1px solid var(--line); }
.model-key-facts div { min-width:0; }
.model-key-facts dt { font-size:12px; color:var(--muted); margin-bottom:7px; }
.model-key-facts dd { margin:0; font-size:14px; line-height:1.55; font-weight:600; }
.model-hero { padding-bottom:40px; }
.model-specs { border-top:1px solid var(--line); }
#product-gallery { padding-top:32px; }
.acceptance-columns h2 { font-size:30px; max-width:22ch; margin-top:12px; }
.solution-chapters a { padding-block:6px; }
.document-policy { display:flex; justify-content:space-between; gap:24px; align-items:center; padding-block:20px; border-block:1px solid var(--line); }
.document-policy p { margin:0; max-width:75ch; }
.document-policy > a { flex-shrink:0; }
@media(max-width:1100px) {
 .scene-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .scene-grid > .scene-card,.scene-grid.count-1 > .scene-card,.scene-grid.count-2 > .scene-card,.scene-grid.count-5 > .scene-card:nth-child(-n+2) { grid-column:auto; }
 .scene-grid.count-5 > .scene-card:last-child { grid-column:1 / -1; }
 .scene-grid.count-1 { grid-template-columns:1fr; }
 .document-card-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .document-policy { align-items:flex-start; flex-direction:column; }
}
@media(max-width:760px) {
 .scene-grid,.document-card-grid { grid-template-columns:minmax(0,1fr); }
 .scene-grid.count-5 > .scene-card:last-child { grid-column:auto; }
 .scene-card img,.scene-grid .scene-card img { height:auto; aspect-ratio:16 / 9; }
 .visual-hero h1 { max-width:none; }
 .model-key-facts { grid-template-columns:1fr; gap:10px; }
 .model-key-facts div { display:grid; grid-template-columns:92px minmax(0,1fr); gap:12px; }
 .model-key-facts dt { margin:0; }
 .solution-document .document-card { grid-template-columns:110px minmax(0,1fr); }
 .solution-document .document-cover { height:190px; padding:10px; }
 .solution-document .document-cover span { display:none; }
 .solution-document .document-card > div { padding:16px; }
 .acceptance-columns h2 { font-size:27px; }
}

.company-intro { display:grid; grid-template-columns:1.2fr 1fr; gap:64px; padding-block:64px; align-items:center; }
.company-intro h1 { font-size:clamp(36px,3.4vw,48px); line-height:1.15; }
.company-intro .model-hero-art img { height:410px; }
.selection-notes article { display:flex; flex-direction:column; align-items:flex-start; min-width:0; }
.selection-notes article .text-link { margin-top:auto; }
.catalogue-intro { flex-wrap:wrap; }
@media(max-width:900px) { .company-intro { grid-template-columns:1fr; gap:30px; }.company-intro .model-hero-art img { height:320px; } }

/* Model comparison uses the same source catalogue as the product pages. */
.comparison-controls { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; margin-bottom:24px; }
.comparison-controls label { display:grid; gap:10px; font-size:16px; font-weight:600; min-width:0; }
.comparison-controls select { width:100%; min-width:0; padding:13px 36px 13px 12px; border:1px solid var(--line); border-radius:3px; background:#fff; font:inherit; font-size:15px; color:var(--ink); }
.comparison-status { font-weight:600; margin:0 0 8px; }
.comparison-hint { font-size:14px; color:var(--muted); margin:0 0 24px; }
.comparison-scroll { overflow-x:auto; border:1px solid var(--line); background:#fff; }
.comparison-scroll:focus-visible { outline:3px solid var(--brand); outline-offset:4px; }
.comparison-table { border-collapse:separate; border-spacing:0; width:100%; table-layout:fixed; }
.comparison-table caption { text-align:left; padding:18px; font-size:14px; color:var(--muted); border-bottom:1px solid var(--line); }
.comparison-table th, .comparison-table td { width:270px; padding:22px; text-align:left; vertical-align:top; border-bottom:1px solid var(--line); border-right:1px solid var(--line); font-size:15px; line-height:1.65; overflow-wrap:anywhere; }
.comparison-table tr > :first-child { width:160px; position:sticky; left:0; background:#f5f5f4; z-index:1; font-size:15px; font-weight:600; }
.comparison-table tr > :last-child { border-right:0; }
.comparison-table tbody tr:last-child > * { border-bottom:0; }
.comparison-table thead th:not(:first-child) { background:#fff; }
.comparison-table thead a { display:grid; gap:8px; text-decoration:none; color:var(--ink); }
.comparison-table thead img { width:100%; height:150px; object-fit:contain; }
.comparison-table thead strong { font-size:23px; }
.comparison-table thead span { font-size:15px; font-weight:400; line-height:1.5; }
.comparison-table ul { padding-left:18px; margin:0; }
.comparison-table li+li { margin-top:12px; }
.comparison-docs { display:grid; gap:16px; }
.comparison-docs .text-link { font-size:14px; }
.comparison-actions { display:flex; gap:26px; align-items:center; flex-wrap:wrap; margin:28px 0 18px; }
.delivery-evidence { display:grid; grid-template-columns:1fr 1fr; gap:72px; align-items:start; }
.delivery-checklist { border-top:3px solid var(--brand); padding:24px 28px; background:var(--paper); }
.delivery-checklist h3 { margin-top:0; }
.delivery-checklist li { margin:14px 0; }
.inquiry-starters { margin:0 0 28px; padding-bottom:24px; border-bottom:1px solid var(--line); }
.inquiry-starters > p:first-child { font-weight:600; margin:0 0 12px; }
.inquiry-starters [role=group] { display:flex; flex-wrap:wrap; gap:8px; }
.inquiry-starters button { padding:10px 14px; background:#fff; color:var(--ink); border:1px solid var(--line); border-radius:3px; font:inherit; font-size:14px; cursor:pointer; }
.inquiry-starters button:hover, .inquiry-starters button[aria-pressed=true] { border-color:var(--ink); background:var(--ink); color:#fff; }
.inquiry-starters .fine-print { margin:12px 0 0; }
.inquiry-next { padding-left:19px; font-size:15px; line-height:1.65; margin:24px 0; }
.inquiry-next li+li { margin-top:16px; }
.inquiry-details { margin:22px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.inquiry-details > summary { padding:18px 0; font-size:16px; font-weight:600; cursor:pointer; }
.inquiry-details > summary span { font-weight:400; color:var(--muted); }
.inquiry-details > div { padding:8px 0; }
#project-brief label { font-size:15px; }
#project-brief input:not([type=checkbox]), #project-brief textarea, #project-brief select { font-size:16px; }
@media (max-width:767px) {
  .comparison-controls { grid-template-columns:1fr; gap:18px; }
  .comparison-controls select { font-size:16px; }
  .comparison-table th, .comparison-table td { width:230px; padding:16px; }
  .comparison-table tr > :first-child { width:118px; padding:16px 12px; font-size:14px; }
  .comparison-table thead img { height:115px; }
  .delivery-evidence { grid-template-columns:1fr; gap:32px; }
  .delivery-checklist { padding:20px; }
  .comparison-actions { gap:20px; }
}

/* The form leads in document order; the contact guide sits alongside on desktop. */
.brief-layout > form { grid-column:2; grid-row:1; }
.brief-layout > aside { grid-column:1; grid-row:1; }
#project-brief [data-requirements-label] { color:inherit; font-size:inherit; font-weight:inherit; }
@media (max-width:1024px) {
  .brief-layout { grid-template-columns:minmax(0,1fr); gap:40px; }
  .brief-layout > form, .brief-layout > aside { grid-column:1; grid-row:auto; }
}

/* Milesight reference composition: compact header, panoramic slides and image-led groups. */
.site-header .nav-wrap { max-width: 1536px; min-height: 76px; gap: 40px; position: static; }
.site-header .brand svg { width: 170px; }
#main-nav { gap: 48px; flex: 1; }
#main-nav > a, .nav-dropdown summary { font-size: 16px; min-height: 76px; font-weight: 500; padding-block: 0; }
.nav-dropdown { position: static; }
.nav-dropdown summary { position: relative; cursor: pointer; }
.nav-dropdown summary::after { font-size: 12px; }
.nav-dropdown[open] summary { color: var(--brand); }
.nav-dropdown[open] summary::before { content: ''; position: absolute; height: 3px; background: var(--brand); bottom: 0; left: 0; right: 0; }
#main-nav > .nav-cta, #main-nav > .nav-demo { min-height: 40px; padding: 8px 17px; border-radius: 24px; font-size: 15px; }
#main-nav > .nav-cta { margin-left: auto; }
#main-nav > .nav-demo { border: 1px solid #ccc; margin-left: -13px; }
#main-nav > .nav-demo:hover { border-color: var(--brand); }
.nav-panel.mega-panel { top: 100%; left: 0; right: 0; padding: 30px 0 36px; border: 0; border-top: 1px solid var(--line); box-shadow: 0 12px 18px #14141412; border-radius: 0; }
.mega-inner { display: flex; gap: 48px; align-items: stretch; }
.mega-column { flex: 1; min-width: 0; }
.mega-title { display: block; color: #6a6a70; font-size: 12px; font-weight: 600; letter-spacing: .07em; margin-bottom: 12px; }
.mega-column p { font-size: 15px; line-height: 1.7; max-width: 290px; }
.mega-panel a { padding: 9px 0; font-size: 16px; white-space: normal; min-height: 42px; }
.mega-panel a:hover { background: transparent; }
.mega-featured { flex: 2.7; padding-left: 32px; border-left: 1px solid var(--line); min-width: 0; }
.mega-products { display: grid; grid-template-columns: repeat(3,1fr); gap: 25px; }
.mega-products a { display: flex; flex-direction: column; text-align: center; gap: 6px; }
.mega-products img { width: 100%; height: 150px; object-fit: contain; }
.mega-products strong { font-weight: 600; }
.mega-products span { font-size: 13px; color: #555; }
.mega-panel .mega-all { display: inline-flex; margin: 12px 28px 0 0; color: var(--brand); }
.mega-panel .mega-story { display: flex; flex-direction: column; align-items: start; gap: 12px; flex: 1.2; min-width: 0; padding: 0; }
.mega-story img { width: 100%; height: 170px; object-fit: cover; }
.mega-story strong { font-size: 19px; line-height: 1.4; }
.mega-story span { font-size: 14px; color: #555; }

.home-carousel { position: relative; background: #26282b; }
.hero-slide { position: relative; height: clamp(520px,36.1457vw,754px); min-height: 520px; overflow: hidden; isolation: isolate; background: #555d60; }
.hero-slide[hidden] { display: none; }
.hero-backdrop { position: absolute; inset: 0; z-index: -3; pointer-events: none; }
.hero-backdrop img { display: block; width: 100%; height: 100%; object-fit: cover; }
/* Retain the original display frames in external CSS, as required by the public CSP. */
.hero-banner-art { position: absolute; top: 50%; right: 0; transform: translateY(-50%); width: min(100%,1440px); aspect-ratio: 1440/520; z-index: -2; }
.hero-product-slide .hero-banner-art { width: min(100%,2048px); aspect-ratio: 2048/740; }
.hero-banner-art img { display: block; width: 100%; height: 100%; object-fit: contain; mask-size: 100% 100%; mask-repeat: no-repeat; mask-mode: alpha; }
/* Blend the cleaned systems scene and the three original equipment foregrounds. */
.hero-systems-slide .hero-banner-art img { mask-image: url('/assets/hero-mask-systems.svg'); }
.hero-product-slide .hero-banner-art img { mask-image: url('/assets/hero-mask-products.svg'); }
.hero-lorawan-slide .hero-banner-art img { mask-image: url('/assets/hero-mask-lorawan.svg'); }
.hero-platform-slide .hero-banner-art img { mask-image: url('/assets/hero-mask-m2m.svg'); }
/* One translucent black gradient, shared by all four slides. */
.hero-slide::before { content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: linear-gradient(90deg,rgba(0,0,0,.57) 0%,rgba(0,0,0,.48) 35%,rgba(0,0,0,.2) 62%,rgba(0,0,0,0) 88%); }
.hero-banner-content { position: relative; display: flex; flex-direction: column; align-items: flex-start; padding-block: 64px; }
.hero-banner-content .eyebrow,.hero-banner-content h1,.hero-banner-content h2,.hero-banner-content > p { text-shadow: 0 1px 3px #0006; }
.hero-banner-content .eyebrow { color: #fff; font-size: 14px; font-weight: 500; line-height: 1.4; letter-spacing: .08em; margin: 0 0 18px; }
.hero-banner-content h1, .hero-banner-content h2 { font-size: clamp(38px,3.65vw,56px); font-weight: 600; line-height: 1.13; letter-spacing: -.035em; min-height: 2.26em; max-width: 710px; color: #fff; margin: 0 0 22px; }
.hero-banner-content > p:not(.eyebrow) { font-size: 18px; line-height: 1.65; min-height: 4.95em; max-width: 510px; color: #f4f4f4; margin: 0 0 28px; }
.hero-banner-content .button { justify-content: space-between; width: min(260px,100%); height: 54px; min-height: 54px; box-sizing: border-box; border-radius: 3px; font-size: 15px; line-height: 1.4; padding: 12px 22px; }
.hero-source-label { position: absolute; bottom: 17px; right: max(32px, calc((100% - 1248px)/2)); padding: 3px 8px; background: #19212be0; color: #fff; font-size: 11px; }
.hero-selector-bar { background: #282b30; color: #fff; }
.hero-selector-inner { display: flex; align-items: center; gap: 24px; }
.hero-selectors { display: grid; grid-template-columns: repeat(4,1fr); flex: 1; min-width: 0; gap: 30px; }
.hero-selectors button { text-align: left; color: #bfc1c5; background: transparent; border: 0; border-top: 3px solid transparent; padding: 17px 0 21px; cursor: pointer; line-height: 1.3; }
.hero-selectors button span { display: block; font-size: 12px; margin-bottom: 8px; }
.hero-selectors button strong { display: block; font-weight: 500; font-size: 16px; }
.hero-selectors button[aria-pressed=true] { border-color: var(--brand); color: #fff; }
.hero-selectors button:hover { color: #fff; }
.hero-playback { display: flex; gap: 2px; }
.hero-playback button { border: 1px solid #666970; color: #fff; background: transparent; width: 38px; min-height: 42px; cursor: pointer; font-size: 17px; }
.hero-playback button:hover { background: #41444a; }
.home-section { padding-block: 76px; }
.home-heading { display: flex; justify-content: space-between; align-items: end; gap: 48px; margin-bottom: 34px; }
.home-heading > :first-child { flex: 1.1; }
.home-heading > :last-child { flex: 1; max-width: 480px; }
.home-heading .eyebrow, .home-centered-heading .eyebrow { font-size: 13px; margin-bottom: 14px; }
.home-heading h2, .home-centered-heading h2, .home-contact h2 { font-size: clamp(30px,2.7vw,40px); line-height: 1.22; font-weight: 600; letter-spacing: -.025em; margin: 0; }
.home-heading p { font-size: 16px; line-height: 1.7; margin: 0 0 14px; }
.product-mosaic { display: grid; grid-template-columns: 1fr 1fr 1.05fr; grid-template-rows: 270px 270px; gap: 18px; }
.product-mosaic article { min-width: 0; background: #f4f4f5; overflow: hidden; }
.product-mosaic a { position: relative; display: flex; width: 100%; height: 100%; overflow: hidden; }
.product-mosaic article:hover strong { color: var(--brand); }
.mosaic-gateways { grid-column: 1 / 3; }
.mosaic-gateways a { align-items: center; }
.mosaic-scene { position: relative; width: 53%; height: 100%; flex-shrink: 0; overflow: hidden; }
.mosaic-scene img { width: 100%; height: 100%; object-fit: cover; object-position: 65% center; }
.mosaic-scene::after { content: ''; position: absolute; inset-block: 0; right: -1px; width: clamp(28px,18%,80px); background: linear-gradient(90deg,#f4f4f500,#f4f4f5); pointer-events: none; }
.mosaic-gateways .mosaic-copy { width: 47%; }
.product-mosaic small { position: absolute; right: 12px; top: 12px; background: #18232cdf; color: #fff; padding: 3px 6px; font-size: 10px; }
.mosaic-twin { display: flex; width: 53%; flex-shrink: 0; align-items: center; margin-left: -14px; }
.mosaic-twin img { width: 58%; margin-right: -15%; aspect-ratio: 1; object-fit: contain; mix-blend-mode: multiply; }
.mosaic-twin img:last-child { margin-top: 36px; }
.mosaic-copy { position: relative; padding: 26px; }
.mosaic-copy > span { display: block; font-size: 11px; color: #626269; letter-spacing: .08em; margin-bottom: 12px; }
.mosaic-copy h3 { font-size: 25px; font-weight: 500; line-height: 1.25; letter-spacing: -.015em; margin: 0 0 12px; }
.mosaic-copy p { font-size: 14px; line-height: 1.65; margin-bottom: 20px; }
.mosaic-copy strong { font-size: 14px; font-weight: 500; }
.mosaic-systems { grid-column: 3; grid-row: 1 / 3; }
.mosaic-systems a { display: block; background: #18232c; color: #fff; }
.mosaic-systems img { width: 100%; height: 53%; object-fit: cover; }
.mosaic-systems .mosaic-copy { padding: 26px; }
.mosaic-systems .mosaic-copy > span, .mosaic-systems .mosaic-copy p { color: #e0e2e5; }
.mosaic-systems small { position: absolute; right: 12px; top: 12px; background: #18232cdf; padding: 3px 6px; font-size: 10px; }
.mosaic-routers img, .mosaic-lorawan img { position: absolute; width: 100%; height: 67%; object-fit: cover; top: 0; right: 0; }
.mosaic-routers img { object-position: 30% center; }
.mosaic-lorawan img { object-position: 75% center; }
.mosaic-routers .mosaic-copy, .mosaic-lorawan .mosaic-copy { align-self: end; width: 100%; background: linear-gradient(0deg,#f4f4f5 10%,#f4f4f5eb 70%,#f4f4f500); padding: 18px 24px; }
.mosaic-routers h3, .mosaic-lorawan h3 { font-size: 21px; }
.home-compare-link { display: flex; justify-content: center; align-items: center; gap: 18px; margin-top: 28px; font-size: 15px; }
.home-compare-link > span { color: #606066; }
.home-applications { background: #f8f8f9; }
.home-centered-heading { text-align: center; margin: 0 auto 38px; }
.home-centered-heading p { margin: 18px auto 0; max-width: 700px; }
.application-tabs { display: grid; grid-template-columns: repeat(4,1fr); margin-bottom: 34px; border-bottom: 1px solid #d4d4d8; }
.application-tabs button { border: 0; border-bottom: 3px solid transparent; padding: 18px 12px; background: transparent; cursor: pointer; font-size: 17px; font-weight: 500; line-height: 1.3; }
.application-tabs button[aria-selected=true] { border-color: var(--brand); color: var(--brand); }
.application-tabs button:hover { color: var(--brand); }
.application-panel { display: grid; grid-template-columns: 1fr 2fr; gap: 45px; align-items: center; margin-bottom: 24px; }
.application-copy h3 { font-size: 26px; line-height: 1.3; font-weight: 500; margin: 13px 0; }
.application-copy p { font-size: 15px; line-height: 1.75; }
.application-copy ul { list-style: none; padding: 0; font-size: 14px; margin: 22px 0; }
.application-copy li { padding-block: 9px; border-bottom: 1px solid #ddd; }
.application-copy li::before { content: '→'; color: var(--brand); margin-right: 12px; }
.application-copy .button { padding: 11px 16px; font-size: 14px; }
.application-art { position: relative; display: block; align-self: stretch; min-height: 380px; }
.application-art img { position: absolute; width: 100%; height: 100%; object-fit: cover; }
.application-art > span { position: absolute; bottom: 0; left: 0; right: 0; padding: 28px 20px 14px; background: linear-gradient(transparent,#111a25d9); color: #fff; display: flex; flex-wrap: wrap; gap: 8px; justify-content: space-between; font-size: 11px; }
.application-art b { font-size: 13px; font-weight: 500; }
.reference-mosaic { display: grid; grid-template-columns: 1.25fr 1fr; grid-template-rows: 340px 240px; gap: 18px; }
.reference-tile { overflow: hidden; }
.reference-tile a { position: relative; display: block; width: 100%; height: 100%; color: #fff; }
.reference-tile img { position: absolute; width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.reference-tile a::after { content: ''; position: absolute; inset: 0; background: linear-gradient(0deg,#0d1727e8,#0d172720 85%); }
.reference-tile a:hover img { transform: scale(1.025); }
.reference-tile a > div { position: absolute; z-index: 1; bottom: 0; left: 0; right: 0; padding: 25px 30px; }
.reference-tile div > span { font-size: 10px; letter-spacing: .08em; }
.reference-tile h3 { font-size: 27px; font-weight: 500; line-height: 1.2; margin: 10px 0; }
.reference-tile p { color: #eef0f3; font-size: 14px; margin: 0 0 13px; }
.reference-tile strong { font-size: 14px; font-weight: 500; }
.reference-tile small { position: absolute; right: 14px; top: 12px; z-index: 1; font-size: 10px; padding: 3px 6px; background: #142033c9; }
.home-platform { color: #fff; background: linear-gradient(120deg,#21252b 60%,#421e26); overflow: hidden; }
.home-platform > .wrap { display: grid; grid-template-columns: 1fr 1.35fr; gap: 55px; align-items: center; padding-block: 76px; }
.home-platform .eyebrow { color: #f37c87; }
.home-platform h2 { font-size: clamp(30px,2.9vw,42px); line-height: 1.2; font-weight: 500; margin: 0 0 22px; letter-spacing: -.02em; }
.home-platform-copy > p { color: #d4d7dd; line-height: 1.8; font-size: 16px; }
.home-platform .text-link { color: #fff; }
.home-platform .hero-actions { gap: 18px; }
.home-platform .platform-disclosure { font-size: 11px; color: #bdc0c6; margin: 24px 0 0; }
.home-platform-screen { display: block; min-width: 0; background: #41454e; box-shadow: 0 12px 40px #0004; border-radius: 6px 6px 0 0; overflow: hidden; }
.home-platform-screen img { display: block; width: 100%; height: auto; }
.home-platform-screen span { display: block; padding: 12px 17px; font-size: 13px; color: #fff; }
.home-resource-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; }
.home-resource { display: block; border: 1px solid var(--line); }
.home-resource-art { height: 220px; background: #f3f4f5; overflow: hidden; padding: 20px; display: flex; align-items: start; justify-content: center; }
.home-resource-art img { display: block; width: auto; height: 265px; box-shadow: 0 4px 15px #0001; }
.resource-diagram { align-items: center; }
.resource-diagram img { width: 100%; height: auto; box-shadow: none; }
.home-resource > div:last-child { padding: 25px; }
.home-resource h3 { font-size: 22px; line-height: 1.35; font-weight: 500; margin: 0 0 12px; }
.home-resource p { font-size: 15px; min-height: 52px; }
.home-resource strong { font-size: 14px; font-weight: 500; color: var(--brand); }
.home-contact { background: #f6f6f7; border-top: 1px solid var(--line); }
.home-contact > .wrap { display: flex; justify-content: space-between; gap: 70px; align-items: center; padding-block: 55px; }
.home-contact p { margin: 17px 0 0; max-width: 650px; font-size: 16px; }
.home-contact-actions { flex-shrink: 0; }
.home-contact-actions .contact-links { margin-top: 18px; }
.site-footer { background: #f4f4f5; border-top: 1px solid #ddd; }
.footer-top { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr 1fr; gap: 28px; padding-block: 48px; }
.footer-top .brand svg { width: 170px; }
.footer-top p { font-size: 14px; }
.footer-top .meta { font-size: 12px; margin-bottom: 14px; }
.footer-top > div > a:not(.brand) { font-size: 14px; min-height: 32px; line-height: 1.6; }
.footer-top > div:last-child { grid-column: auto; }
.footer-bottom { font-size: 12px; }

@media (max-width: 1280px) {
 .site-header .nav-wrap { min-height: 76px; position: relative; }
 #main-nav { top: 76px; gap: 0; }
 #main-nav > a, .nav-dropdown summary { min-height: 48px; padding-block: 12px; font-size: 17px; }
 .nav-dropdown[open] summary::before { display: none; }
 .nav-panel.mega-panel { position: static; padding: 6px 0 18px 16px; border: 0; box-shadow: none; }
 .mega-inner { width: 100%; display: block; }
 .mega-column { margin-bottom: 18px; }
 .mega-title { margin: 10px 0 5px; }
 .mega-panel a { font-size: 16px; min-height: 44px; padding-block: 10px; }
 .mega-featured { padding: 10px 0 0; border-left: 0; border-top: 1px solid var(--line); }
 .mega-products { gap: 8px; }
 .mega-products img { height: 100px; }
 .mega-story { max-width: 420px; }
 .mega-panel .mega-story { margin-bottom: 22px; }
 .mega-panel .mega-story img { height: 150px; }
 #main-nav > .nav-cta, #main-nav > .nav-demo { margin: 8px 0 0; min-height: 44px; justify-content: center; }
 .hero-banner-content h1,.hero-banner-content h2 { font-size: 44px; }
 .hero-selectors { gap: 18px; }
 .hero-selectors button strong { font-size: 15px; }
 .hero-selector-inner { gap: 15px; }
 .hero-playback button { width: 30px; }
 .product-mosaic { grid-template-rows: 260px 260px; }
 .mosaic-copy { padding: 18px; }
 .mosaic-copy h3 { font-size: 22px; }
 .mosaic-twin { width: 48%; }
 .mosaic-systems .mosaic-copy { padding: 20px; }
 .mosaic-routers .mosaic-copy,.mosaic-lorawan .mosaic-copy { padding: 18px; }
 .mosaic-routers h3,.mosaic-lorawan h3 { font-size: 19px; }
 .application-panel { gap: 26px; grid-template-columns: 1fr 1.6fr; }
 .application-tabs button { font-size: 16px; }
 .home-platform > .wrap { gap: 35px; }
 .footer-top { grid-template-columns: 1.4fr 1fr 1fr; row-gap: 36px; }
}
@media (max-width: 800px) {
 .hero-slide { display: flex; flex-direction: column; height: auto; min-height: 0; }
 .hero-slide::before { background: linear-gradient(180deg,rgba(0,0,0,.57) 0%,rgba(0,0,0,.52) 65%,rgba(0,0,0,.08) 100%); }
 .hero-banner-content { order: 1; padding-block: 40px 24px; }
 .hero-banner-content h1,.hero-banner-content h2 { font-size: 38px; }
 .hero-banner-content > p:not(.eyebrow) { max-width: 510px; font-size: 16px; }
 .hero-banner-art { position: relative; top: auto; right: auto; transform: none; align-self: flex-end; order: 2; flex-shrink: 0; z-index: -2; }
 .hero-banner-art img { height: auto; }
 .hero-source-label { right: 20px; bottom: 10px; }
 .hero-selector-inner { display: block; position: relative; }
 .hero-selectors { gap: 14px; margin-right: 0; }
 .hero-selectors button { padding: 12px 0 15px; }
 .hero-selectors button strong { font-size: 12px; line-height: 1.4; }
 .hero-selectors button span { font-size: 10px; }
 .hero-playback { position: absolute; bottom: calc(100% + 12px); left: 0; }
 .hero-playback button { width: 36px; min-height: 38px; background: #262b32de; }
 .home-section { padding-block: 52px; }
 .home-heading { display: block; margin-bottom: 28px; }
 .home-heading > :last-child { margin-top: 18px; max-width: none; }
 .home-heading h2 br { display: none; }
 .home-heading h2,.home-centered-heading h2 { font-size: 30px; }
 .product-mosaic { grid-template-columns: repeat(2,1fr); grid-template-rows: 270px 270px 290px; gap: 14px; }
 .mosaic-gateways { grid-column: 1 / 3; }
 .mosaic-systems { grid-column: 1 / 3; grid-row: 3; }
 .mosaic-systems a { display: grid; grid-template-columns: 1fr 1fr; }
 .mosaic-systems img { height: 100%; }
 .mosaic-systems .mosaic-copy { align-self: center; }
 .mosaic-systems small { left: 10px; right: auto; }
 .home-compare-link { display: block; text-align: center; }
 .home-compare-link > span { display: block; margin-bottom: 6px; }
 .application-tabs { grid-template-columns: repeat(2,1fr); margin-bottom: 24px; }
 .application-tabs button { font-size: 15px; padding: 14px 5px; min-height: 52px; }
 .application-panel { display: flex; flex-direction: column-reverse; gap: 26px; align-items: stretch; }
 .application-art { min-height: 0; aspect-ratio: 16 / 10; }
 .application-copy h3 { font-size: 26px; }
 .application-copy ul { margin: 15px 0 22px; }
 .application-copy p { font-size: 16px; }
 .reference-mosaic { grid-template-columns: repeat(2,1fr); grid-template-rows: 300px 300px; }
 .reference-tile a > div { padding: 20px; }
 .reference-tile h3 { font-size: 23px; }
 .reference-tile p { display: none; }
 .home-platform > .wrap { grid-template-columns: 1fr; padding-block: 52px; }
 .home-platform h2 br { display: none; }
 .home-platform-screen { width: 100%; }
 .home-resource-grid { gap: 14px; }
 .home-resource > div:last-child { padding: 18px; }
 .home-resource h3 { font-size: 20px; }
 .home-resource p { min-height: 95px; font-size: 14px; }
 .home-resource-art { height: 180px; padding: 18px; }
 .home-resource-art img { height: 225px; }
 .resource-diagram img { height: auto; }
 .home-contact > .wrap { display: block; padding-block: 45px; }
 .home-contact-actions { margin-top: 25px; }
 .footer-top { grid-template-columns: repeat(2,1fr); }
 .footer-top > div:first-child { grid-column: 1 / 3; }
}
@media (max-width: 540px) {
 .site-header .brand svg { width: 170px; }
 .hero-banner-content { padding-block: 32px 24px; }
 .hero-banner-content h1,.hero-banner-content h2 { font-size: 36px; min-height: 4.52em; }
 .hero-banner-content > p:not(.eyebrow) { max-width: none; font-size: 16px; min-height: 6.6em; margin-bottom: 22px; }
 .hero-banner-content .eyebrow { font-size: 12px; margin-bottom: 16px; }
 .hero-selectors { gap: 0 18px; grid-template-columns: repeat(2,1fr); }
 .hero-selectors button strong { font-size: 14px; }
 .hero-selectors button span { font-size: 10px; }
 .mosaic-twin { width: 43%; margin-left: -15px; }
 .mosaic-twin img { width: 75%; margin-right: -35%; }
 .mosaic-twin img:last-child { margin-top: 70px; }
 .mosaic-copy h3 { font-size: 22px; }
 .mosaic-copy h3 br { display: none; }
 .mosaic-copy p { font-size: 13px; }
 .mosaic-copy strong { font-size: 13px; }
 .mosaic-copy > span { font-size: 10px; }
 .product-mosaic { grid-template-columns: 1fr; grid-template-rows: auto 260px 260px auto; gap: 12px; }
 .mosaic-gateways { grid-column: 1; }
 .mosaic-routers { grid-row: 2; }
 .mosaic-lorawan { grid-row: 3; }
 .mosaic-systems { grid-column: 1; grid-row: 4; }
 .mosaic-gateways a,.mosaic-systems a { height: auto; min-height: 330px; }
 .mosaic-scene { position: relative; width: 43%; height: auto; align-self: stretch; }
 .mosaic-scene img { position: absolute; inset: 0; }
 .mosaic-gateways .mosaic-copy { width: 57%; }
 .mosaic-gateways .mosaic-copy { padding: 17px; }
 .mosaic-routers img,.mosaic-lorawan img { width: 100%; top: 4px; right: 0; }
 .mosaic-routers .mosaic-copy,.mosaic-lorawan .mosaic-copy { padding: 15px; }
 .mosaic-routers h3,.mosaic-lorawan h3 { font-size: 18px; }
 .mosaic-systems a { grid-template-columns: 42% 58%; }
 .mosaic-systems .mosaic-copy { padding: 18px; }
 .reference-mosaic { display: block; }
 .reference-tile { height: 260px; margin-bottom: 14px; }
 .reference-tile a > div { padding: 22px; }
 .reference-tile p { display: block; margin-bottom: 10px; }
 .home-resource-grid { grid-template-columns: 1fr; gap: 18px; }
 .home-resource { display: grid; grid-template-columns: 35% 65%; }
 .home-resource-art { padding: 15px; height: 100%; min-height: 180px; }
 .home-resource-art img { height: 190px; max-width: none; }
 .resource-diagram img { width: 220px; height: auto; align-self: center; }
 .home-resource p { min-height: 0; font-size: 14px; }
 .home-resource h3 { font-size: 21px; }
 .home-contact h2 { font-size: 30px; }
 .footer-top { gap: 30px 18px; }
 .footer-top a:not(.brand) { min-height: 36px; font-size: 14px; }
}
@media (max-width: 360px) {
 .hero-banner-content > p:not(.eyebrow) { min-height: 8.25em; }
}
@media (prefers-reduced-motion: reduce) {
 .reference-tile img { transition: none; }
}

/* Router workflow preview */
.router-demo-intro{padding-top:65px;padding-bottom:32px}.router-demo-intro h1{font-size:clamp(38px,4.5vw,64px);letter-spacing:-.04em;line-height:1.08;margin:18px 0}.router-demo-intro .lede{max-width:740px}.demo-entry-actions{display:flex;align-items:center;gap:25px;margin-top:24px;flex-wrap:wrap}.router-demo-workspace{max-width:1600px}.demo-workspace-bar{display:flex;align-items:center;justify-content:space-between;gap:20px;background:#20242b;color:white;padding:20px 24px}.demo-workspace-bar strong{display:block;font-size:19px}.demo-workspace-bar span{display:block;font-size:14px;color:#c9cbd0;margin-top:5px}.demo-workspace-bar label{display:flex;align-items:center;gap:12px;white-space:nowrap;font-size:14px}.demo-workspace-bar select{padding:10px;font:inherit;background:white;color:#20242b;border:0;border-radius:2px}.router-demo-workspace iframe{display:block;width:100%;height:940px;border:1px solid #ddd;background:#f4f5f7}.demo-caption{font-size:14px;line-height:1.6;color:#636973;margin:12px 0}.demo-explore-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px}.demo-explore-grid h2{font-size:25px}.software-demo-feature{display:flex;align-items:center;justify-content:space-between;gap:35px;background:#f4f5f7;padding:35px;margin-top:40px}.software-demo-feature h2{margin:10px 0;font-size:32px}.software-demo-feature p{max-width:680px}.software-demo-feature .button{flex-shrink:0}@media(max-width:760px){.demo-workspace-bar{align-items:start;flex-direction:column;padding:18px}.demo-explore-grid{grid-template-columns:1fr;gap:24px}.software-demo-feature{align-items:start;flex-direction:column}.router-demo-workspace iframe{height:720px}.demo-workspace-bar select{max-width:200px}}

/* Language utility row: native names, separate from the full-size main navigation. */
.language-bar { height:34px; background:#f5f5f6; border-bottom:1px solid #e8e8eb; }
.language-bar>.wrap { display:flex; justify-content:flex-end; height:100%; }
.language-switch { position:relative; z-index:40; }
.language-switch>summary { display:flex; align-items:center; gap:8px; min-height:34px; cursor:pointer; font-size:14px; list-style:none; }
.language-switch>summary::-webkit-details-marker { display:none; }
.language-switch>summary::after { content:'⌄'; margin-left:8px; }
.language-options { position:absolute; top:100%; right:0; background:white; border:1px solid #ddd; box-shadow:0 10px 25px #00000015; min-width:190px; padding:8px 0; }
.language-options a { display:block; padding:10px 18px; font-size:16px; white-space:nowrap; }
.language-options a:hover,.language-options a[aria-current] { color:var(--brand); background:#f5f5f6; }
.translation-note { padding-top:22px; font-size:13px; color:#666; }
.translation-note a { text-decoration:underline; text-underline-offset:3px; }
html[lang=ru] #main-nav { gap:48px; }
html[lang=ru] .site-header .nav-wrap { gap:28px; }
html[lang=vi] #main-nav { gap:48px; }
html[lang=vi] .site-header .nav-wrap { gap:28px; }
@media (max-width:1280px) {
 .language-bar { height:32px; }
 .language-switch>summary { min-height:32px; }
 .language-bar>.wrap { width:calc(100% - 40px); }
 html[lang=ru] #main-nav,html[lang=vi] #main-nav { gap:0; }
}

@media (min-width:1281px) {
 html[lang="ru"] .hero-banner-content { padding-top:70px; }
}

/* Software support: editorial service pages and an original, lightweight workflow diagram. */
.sw-overview { padding-bottom:72px; }
.sw-overview-lead,.sw-engineering-lead,.sw-node-lead { display:grid; grid-template-columns:1fr 1.25fr; align-items:center; gap:56px; }
.sw-overview-lead { margin:12px 0 64px; }
.sw-overview-lead h2,.sw-engineering-lead h2,.sw-node-lead h2,.sw-feature-intro h2 { font-size:clamp(28px,2.7vw,39px); line-height:1.2; letter-spacing:-.025em; margin:14px 0 20px; }
.sw-overview-lead p,.sw-engineering-lead p,.sw-node-lead p,.sw-feature-intro p { font-size:18px; line-height:1.8; }
.sw-overview-lead .button { margin:8px 18px 12px 0; }
.sw-service-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0 38px; }
.sw-service-grid article { border-top:2px solid #d9dadd; padding:30px 0 36px; }
.sw-service-grid h2 { font-size:26px; line-height:1.3; margin:16px 0; }
.sw-service-grid p { min-height:90px; font-size:17px; }
.sw-number { font-size:14px; font-weight:600; color:var(--brand); letter-spacing:.08em; }
.sw-editor { margin:0; min-width:0; background:#fff; border:1px solid #d8dadd; box-shadow:0 14px 40px #20242b0b; }
.sw-editor-bar { background:#252a31; color:#fff; padding:16px 20px; display:flex; flex-wrap:wrap; justify-content:space-between; gap:10px; font-size:16px; }
.sw-editor-bar span { color:#d9dde2; font-size:13px; }
.sw-editor-body { display:grid; grid-template-columns:108px minmax(0,1fr); min-height:260px; }
.sw-editor-body aside { background:#f1f2f4; border-right:1px solid #d8dadd; padding:20px 12px; }
.sw-editor-body aside>span,.sw-workspace-label { font-size:10px; letter-spacing:.06em; color:#707780; display:block; }
.sw-editor-body aside b { font-size:12px; display:block; border:1px solid #d3d6da; border-left:3px solid #8b969f; padding:8px 6px; background:white; margin-top:15px; font-weight:500; }
.sw-flow { padding:20px 16px; background:radial-gradient(#cdd2d7 .7px,transparent .7px) 0 0/12px 12px; min-width:0; }
.sw-flow-nodes { display:flex; flex-direction:column; align-items:center; gap:18px; margin:15px 0 23px; }
.sw-flow-node { position:relative; background:#e1eaf2; border:1px solid #94aabd; padding:10px 18px; border-radius:5px; min-width:190px; text-align:left; max-width:100%; }
.sw-flow-node strong { font-size:14px; display:block; }.sw-flow-node>span { font-size:12px; display:block; color:#4b5660; }
.sw-flow-node.function { background:#f5e6c4; border-color:#c8ad76; }.sw-flow-node.output { background:#e2eadc; border-color:#9ab08b; }
.sw-flow-node:not(:last-child)::after { content:'↓'; position:absolute; bottom:-21px; left:50%; color:#73818d; font-size:16px; }
.sw-debug { background:#fff; border-top:1px solid #cbd1d6; padding-top:12px; }.sw-debug strong { font-size:10px; color:#606871; display:block; margin:0 0 6px; }.sw-debug code { font-size:12px; overflow-wrap:anywhere; }
.sw-editor figcaption { border-top:1px solid #ddd; color:#626973; padding:12px 16px; font-size:12px; line-height:1.6; }
.sw-engineering-lead { grid-template-columns:1fr 1fr; margin-top:8px; }
.sw-product-art { background:#f4f5f6; height:340px; display:flex; align-items:center; justify-content:center; }
.sw-product-art img { width:100%; height:100%; object-fit:contain; mix-blend-mode:multiply; }
.sw-product-art img[src*="scene-"] { object-fit:cover; mix-blend-mode:normal; }
.sw-protocol-art { background:#f2f3f5; border-left:4px solid var(--brand); padding:52px 32px; min-height:280px; display:flex; flex-direction:column; justify-content:center; gap:18px; }
.sw-protocol-art>span { font-size:12px; letter-spacing:.08em; color:#626973; }.sw-protocol-art strong { font-size:clamp(24px,2.6vw,38px); line-height:1.3; }.sw-protocol-art p { font-size:15px; margin:0; }
.sw-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:30px 40px; }.sw-cards.four { grid-template-columns:repeat(4,minmax(0,1fr)); }
.sw-cards article { border-top:1px solid #d3d5d8; padding:24px 0 0; }.sw-cards h3 { font-size:23px; margin:14px 0; line-height:1.35; }.sw-cards p { font-size:17px; line-height:1.8; }
.sw-handover { max-width:1000px; }.sw-handover h2,.sw-scope-note h2 { font-size:30px; }.sw-scope-note { padding:28px 32px; border-left:4px solid var(--brand); background:#f5f5f6; }
.sw-doc-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; }.sw-doc-grid article { border-top:1px solid #ddd; padding:25px 0; }.sw-doc-cover { display:flex; height:220px; background:#f1f2f4; justify-content:center; padding:16px; }.sw-doc-cover img { height:100%; width:auto; max-width:100%; object-fit:contain; box-shadow:0 3px 8px #00000016; }.sw-doc-grid h3 { font-size:19px; line-height:1.5; margin:22px 0 12px; }.sw-doc-grid p { font-size:14px; color:#626973; }.sw-doc-grid .text-link { margin:6px 16px 6px 0; font-size:15px; }
.sw-enquiry { background:#f2f3f4; padding:64px 0; }.sw-enquiry>.wrap { display:flex; align-items:center; justify-content:space-between; gap:45px; }.sw-enquiry h2 { font-size:36px; margin:12px 0; }.sw-enquiry p { max-width:750px; font-size:18px; }.sw-enquiry .button { flex-shrink:0; }
.sw-feature-intro { display:grid; grid-template-columns:1.3fr 1fr; gap:65px; align-items:center; background:#f4f5f6; padding:35px; }.sw-feature-intro>img { width:100%; height:280px; object-fit:contain; mix-blend-mode:multiply; }
.sw-feature-list article { display:grid; grid-template-columns:1fr 1.45fr; gap:70px; padding:34px 0; border-top:1px solid #ddd; }.sw-feature-list h2 { font-size:29px; margin:16px 0; line-height:1.3; }.sw-feature-list article p { font-size:18px; line-height:1.8; margin-top:0; }.sw-feature-list .sw-source { font-size:13px; color:#707780; }
.sw-node-lead { grid-template-columns:1.25fr 1fr; }.sw-node-lead .text-link { margin:10px 20px 8px 0; }
.sw-table-scroll { overflow:auto; }.sw-model-scope table { border-collapse:collapse; width:100%; text-align:left; font-size:17px; }.sw-model-scope th,.sw-model-scope td { padding:20px; border-bottom:1px solid #d6d8dc; line-height:1.75; vertical-align:top; }.sw-model-scope thead { background:#f3f4f6; }.sw-model-scope tbody th { width:38%; }.sw-model-scope>p { font-size:17px; line-height:1.8; max-width:1000px; }
@media(min-width:1281px) and (max-width:1535px) {
 html[lang=ja] #main-nav,html[lang=ru] #main-nav,html[lang=vi] #main-nav { gap:32px; }
}
@media(min-width:1281px) and (max-width:1365px) {
 html[lang=en] #main-nav { gap:32px; }
 html[lang=ja] #main-nav,html[lang=ru] #main-nav,html[lang=vi] #main-nav { gap:20px; }
}
@media(max-width:1100px) {
 .sw-overview-lead,.sw-engineering-lead,.sw-node-lead { gap:30px; }.sw-service-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.sw-cards.four { grid-template-columns:repeat(2,minmax(0,1fr)); }.sw-feature-list article { gap:35px; }.sw-enquiry>.wrap { flex-direction:column; align-items:flex-start; }
}
@media(max-width:760px) {
 .sw-overview-lead,.sw-engineering-lead,.sw-node-lead,.sw-feature-intro,.sw-feature-list article { grid-template-columns:minmax(0,1fr); gap:24px; }.sw-service-grid,.sw-cards,.sw-cards.four,.sw-doc-grid { grid-template-columns:minmax(0,1fr); gap:20px; }.sw-service-grid p { min-height:0; }.sw-service-grid h2 { font-size:25px; }.sw-engineering-lead { margin-top:0; }.sw-product-art { height:280px; }.sw-feature-intro { padding:24px; }.sw-feature-intro>img { height:220px; }.sw-node-lead { display:flex; flex-direction:column-reverse; align-items:stretch; }.sw-editor-body { grid-template-columns:82px minmax(0,1fr); }.sw-editor-body aside { padding:18px 8px; }.sw-editor-body aside>span { font-size:9px; }.sw-flow { padding:18px 10px; }.sw-flow-node { min-width:0; width:100%; padding:10px; }.sw-editor-bar { padding:14px; }.sw-enquiry { padding:45px 0; }.sw-enquiry h2 { font-size:30px; }.sw-scope-note { padding:24px; }.sw-model-scope th,.sw-model-scope td { padding:14px 12px; font-size:15px; }.sw-doc-grid article { display:grid; grid-template-columns:100px minmax(0,1fr); gap:20px; }.sw-doc-cover { height:150px; padding:8px; }.sw-doc-grid h3 { margin-top:0; font-size:17px; }
}
.sw-router-art { display:block; border:1px solid #d8dadd; box-shadow:0 14px 40px #20242b0b; }.sw-router-art img { width:100%; height:auto; }.sw-router-art>span { display:block; padding:16px 20px; font-size:17px; font-weight:600; background:#f3f4f6; }
.sw-ui-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px; }.sw-ui-grid h3 { font-size:24px; line-height:1.35; margin:24px 0 14px; }.sw-ui-grid p { font-size:17px; line-height:1.8; }.sw-ui-thumb { height:230px; display:flex; align-items:center; border:1px solid #ddd; background:#f4f5f6; padding:12px; }.sw-ui-thumb img { width:100%; height:100%; object-fit:contain; }.sw-platform-image>a { display:block; border:1px solid #d8dadd; padding:14px; background:#f4f5f6; }.sw-platform-image img { display:block; max-width:100%; height:auto; margin:auto; }.sw-platform-image>p { line-height:1.8; }
@media(max-width:760px) { .sw-ui-grid { grid-template-columns:minmax(0,1fr); gap:36px; }.sw-ui-thumb { height:220px; } }

/* Node-RED learning centre: original diagrams and a persistent reading directory. */
.nr-layout { display:grid; grid-template-columns:230px minmax(0,1fr); gap:48px; align-items:start; padding-block:52px 80px; }
.nr-sidebar { position:sticky; top:132px; max-height:calc(100dvh - 150px); overflow:auto; padding-right:18px; border-right:1px solid var(--line); }
.nr-sidebar summary { font-size:17px; font-weight:600; padding:0 0 18px; cursor:pointer; }
.nr-sidebar nav>a { display:block; padding:10px 12px; font-size:15px; line-height:1.5; border-left:2px solid transparent; }
.nr-sidebar nav>a[aria-current] { border-color:var(--brand); color:var(--brand); background:#f6f6f7; font-weight:600; }
.nr-node-links { padding:2px 0 12px 16px; }.nr-node-links a { display:block; font-size:13px; line-height:1.5; padding:6px 10px; color:#616874; }
.nr-sidebar a:hover,.nr-node-links a:focus-visible { color:var(--brand); background:#f4f5f6; }
.nr-content { min-width:0; }.nr-heading { margin-bottom:34px; }.nr-heading h1 { font-size:clamp(34px,3.8vw,54px); line-height:1.12; margin:16px 0 24px; letter-spacing:-.035em; }.nr-heading .lede { font-size:19px; line-height:1.75; max-width:780px; }
.nr-content h2 { font-size:28px; line-height:1.3; margin:0 0 18px; }.nr-content h3 { font-size:20px; line-height:1.4; }.nr-content p { line-height:1.8; }.nr-section { padding-block:28px; }.nr-note { border-left:3px solid var(--brand); padding:22px 26px; background:#f4f5f6; margin-block:30px; }.nr-note h3 { margin:0 0 12px; }.nr-note p { margin:0; font-size:16px; }
.nr-node.function,.nr-mini.function { background:#f2dfb3; border-color:#c3a05e; }.nr-node.output,.nr-mini.output { background:#dce9da; border-color:#96af90; }.nr-node.input,.nr-mini.input { background:#dce6f4; border-color:#98adca; }
.nr-start-grid,.nr-concepts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:25px; margin-block:34px; }.nr-start-grid article,.nr-concepts article { padding-top:25px; border-top:1px solid #d7dbe0; }.nr-start-grid h2,.nr-concepts h2 { font-size:22px; margin-top:16px; }.nr-start-grid p,.nr-concepts p { font-size:16px; }
.nr-steps { counter-reset:lesson; list-style:none; padding:0; margin:28px 0; }.nr-steps li { counter-increment:lesson; position:relative; padding:22px 0 22px 52px; border-bottom:1px solid #e1e3e7; }.nr-steps li::before { content:counter(lesson,decimal-leading-zero); position:absolute; left:0; top:25px; color:var(--brand); font-weight:600; font-size:16px; }.nr-steps h3 { margin:0 0 12px; }.nr-steps p { font-size:17px; margin:0; }
.nr-pager { display:flex; flex-wrap:wrap; justify-content:space-between; gap:24px; border-top:1px solid #d6d9dd; padding-top:26px; margin-top:40px; }.nr-pager a { max-width:46%; }.nr-inline-links,.nr-download-row { display:flex; flex-wrap:wrap; gap:18px 28px; margin-block:24px; }.nr-file-list { display:grid; gap:20px; margin-block:26px; }
.nr-content .section.wrap { width:100%; padding-block:38px; }.nr-content .sw-doc-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.nr-content .split-heading { display:block; }
.nr-code { background:#202936; color:#e4eaf1; padding:22px; border-radius:6px; overflow:auto; font-size:13px; line-height:1.8; }.nr-lab { background:#f3f5f7; padding:28px; border:1px solid #d6dce3; border-radius:7px; margin-block:32px; }.nr-lab-controls { display:flex; gap:14px; margin-block:12px 24px; }.nr-lab-controls input { flex:1; min-width:0; background:white; }.nr-lab-controls button { flex-shrink:0; }.nr-lab-results { background:white; border-left:3px solid var(--brand); padding:18px; min-height:100px; }.nr-lab-results>span { font-weight:600; font-size:15px; }.nr-lab-results pre { white-space:pre-wrap; overflow-wrap:anywhere; font-size:14px; }.nr-lab [data-nr-invalid] { color:#b21d30; }
.nr-category-jumps { display:flex; flex-wrap:wrap; gap:10px; padding:18px 0; }.nr-category-jumps a { font-size:14px; border:1px solid #d9dde2; border-radius:4px; padding:8px 12px; }.nr-category { scroll-margin-top:135px; border-bottom:1px solid #d8dde3; padding-block:32px; }.nr-category-heading .meta { font-size:11px; color:#6a7481; display:block; margin-bottom:10px; }.nr-node-samples { display:flex; flex-wrap:wrap; gap:14px; padding-block:12px; }.nr-check { font-size:15px; color:#5c6775; }.nr-example-grid>article { padding-block:28px; border-top:1px solid #d9dde2; }.nr-example-grid h2 { font-size:26px; }
@media(max-width:1100px){.nr-layout{grid-template-columns:200px minmax(0,1fr);gap:28px}.nr-editor-grid{grid-template-columns:105px minmax(0,1fr)}.nr-inspector{grid-column:1/-1;border-top:1px solid #d9dde3}.nr-inspector strong{margin-bottom:10px}.nr-start-grid,.nr-concepts{grid-template-columns:1fr}.nr-wire-flow{padding:32px 18px;gap:24px}.nr-node{padding:12px 10px}.nr-node:not(:last-child)::after{right:-24px;width:24px}}
@media(max-width:760px){.nr-layout{display:block;padding-top:28px}.nr-sidebar{position:static;max-height:none;border:1px solid #d9dde2;padding:16px;margin-bottom:32px;background:#f7f8f9}.nr-sidebar details:not([open]) summary{padding-bottom:0}.nr-heading h1{font-size:36px}.nr-node-links{display:none}.nr-sidebar nav{display:grid;grid-template-columns:1fr 1fr;gap:4px}.nr-sidebar nav>a{font-size:14px;padding:10px}.nr-wire-flow{flex-direction:column;gap:25px}.nr-node{width:100%;max-width:290px;flex:none;padding:14px 18px}.nr-node:not(:last-child)::after{content:'↓';top:auto;bottom:-26px;right:auto;left:50%;width:auto;transform:translateX(-50%)}.nr-editor-grid{grid-template-columns:90px minmax(0,1fr)}.nr-palette,.nr-workspace{padding:15px 10px}.nr-lab{padding:20px}.nr-lab-controls{flex-direction:column}.nr-content .sw-doc-grid{grid-template-columns:1fr}.nr-note{padding:20px}.nr-content h2{font-size:25px}.nr-code{padding:16px;font-size:12px}}

/* Native editor captures are publication assets, not HTML imitations of nodes. */
.nr-native { margin:28px 0 38px; border:1px solid #d6dce3; border-radius:6px; overflow:hidden; background:#fff; }
.nr-native>a { position:relative; display:block; overflow:hidden; background:#f5f6f8; }
.nr-native img { display:block; width:100%; height:auto; }
.nr-native figcaption { padding:16px 20px; font-size:14px; line-height:1.7; border-top:1px solid #dce1e6; }
.nr-native figcaption strong { display:block; font-weight:600; color:#263446; }
.nr-native figcaption>span { display:block; margin-top:5px; color:#687381; font-size:12px; }
.nr-capabilities { display:grid; grid-template-columns:1fr 1fr; gap:0 28px; }
.nr-capabilities article { padding:24px 0; border-top:1px solid #dde2e7; }
.nr-capabilities h3 { font-size:21px; margin:0 0 12px; }
.nr-capabilities p { font-size:15px; line-height:1.75; }
.nr-node-samples>span { padding:6px 10px; border-bottom:1px solid #dce1e6; color:#324457; font-size:13px; }
@media(max-width:760px){.nr-capabilities{grid-template-columns:1fr}.nr-native figcaption{padding:13px 15px}.nr-native .zoom-label{font-size:11px;padding:6px 9px}}

/* Current M2M console walkthrough: real captures and a single product-role handoff. */
.m2m-platform-hero { background: #f5f5f6; border-bottom: 1px solid var(--line); padding: 62px 0 54px; }
.m2m-platform-lead { display: grid; grid-template-columns: .87fr 1.13fr; gap: 50px; align-items: center; }
.m2m-platform-lead h1 { font-size: clamp(34px, 3.4vw, 49px); max-width: 19ch; }
.m2m-platform-lead .lede { font-size: 18px; }
.m2m-actions { display: flex; gap: 22px; flex-wrap: wrap; align-items: center; margin-top: 28px; }
.m2m-hero-screen { margin: 0; border: 1px solid #dddde1; background: #fff; box-shadow: 0 16px 40px #17171d0a; }
.m2m-hero-screen img { display: block; width: 100%; height: auto; }
.m2m-hero-screen figcaption { border-top: 1px solid var(--line); padding: 12px 16px; font-size: 13px; color: var(--muted); }
.m2m-value-strip { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); padding-block: 28px; border-bottom: 1px solid var(--line); }
.m2m-value-strip > div { display: flex; gap: 15px; padding: 0 22px; align-items: baseline; border-left: 1px solid var(--line); }
.m2m-value-strip > div:first-child { padding-left: 0; border-left: 0; }
.m2m-value-strip span { color: var(--accent); font-size: 13px; }
.m2m-value-strip strong { min-width: 0; overflow-wrap: anywhere; font-size: 16px; font-weight: 600; line-height: 1.5; }
.m2m-capture-note { margin: 14px 0 28px; }
.m2m-tour-nav { display: none; }
.m2m-tour-panels { border: 1px solid var(--line); }
.m2m-tour-panel { display: grid; grid-template-columns: .7fr 1.3fr; align-items: start; padding: 32px; gap: 32px; background: #fafafa; }
.m2m-tour-panel + .m2m-tour-panel { border-top: 1px solid var(--line); }
.m2m-panel-copy { padding-top: 8px; }
.m2m-panel-copy h3 { font-size: 28px; margin: 15px 0 17px; }
.m2m-panel-copy p { font-size: 16px; }
.m2m-panel-copy ol { padding-left: 21px; margin: 23px 0; }
.m2m-panel-copy li { padding-left: 5px; margin-bottom: 12px; }
.m2m-panel-copy .fine-print { font-size: 13px; margin-bottom: 0; }
.m2m-panel-screen { margin: 0; background: #fff; border: 1px solid #dddde1; min-width: 0; }
.m2m-panel-screen a { display: block; cursor: zoom-in; }
.m2m-panel-screen img { width: 100%; height: auto; display: block; }
.m2m-panel-screen figcaption { color: var(--muted); font-size: 13px; padding: 12px 16px; border-top: 1px solid var(--line); }
/* The real firmware library was empty; show its actual upper view without invented records. */
.m2m-screen-firmware img { aspect-ratio: 16/6; object-fit: cover; object-position: top; }
.is-enhanced .m2m-tour-nav { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 0; border: 1px solid var(--line); border-bottom: 0; }
.m2m-tour-nav button { background: #fff; text-align: left; border: 0; border-bottom: 3px solid transparent; padding: 20px; display: flex; gap: 12px; align-items: baseline; font-size: 16px; line-height: 1.5; font-weight: 600; }
.m2m-tour-nav button > span { min-width: 0; overflow-wrap: anywhere; }
.m2m-tour-nav button > span:first-child { color: var(--accent); font-size: 12px; }
.m2m-tour-nav button[aria-selected=true] { background: #fdf0f1; border-bottom-color: var(--accent); }
.m2m-tour-nav button:hover { background: #f6f6f7; }
.m2m-handoff { background: #f4f4f5; }
.m2m-handoff-heading { display: flex; align-items: center; justify-content: space-between; gap: 40px; }
.m2m-handoff-heading .section-heading { max-width: 760px; }
.m2m-handoff-heading .button { flex-shrink: 0; max-width: 300px; }
.m2m-workflow { padding: 0; list-style: none; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 40px; margin: 42px 0 0; }
.m2m-workflow li { padding-top: 20px; border-top: 1px solid #ccccd1; }
.m2m-workflow li > span { display: block; color: var(--accent); font-size: 14px; margin-bottom: 20px; }
.m2m-workflow h3 { font-size: 23px; }
.m2m-workflow p { font-size: 16px; margin: 0; }
.m2m-platform-faq { display: grid; grid-template-columns: .65fr 1.35fr; gap: 65px; }
.m2m-platform-faq details { border-bottom: 1px solid var(--line); padding: 20px 0; }
.m2m-platform-faq details:first-child { border-top: 1px solid var(--line); }
.m2m-platform-faq summary { font-size: 18px; font-weight: 600; padding-right: 15px; }
.m2m-platform-faq details p { margin: 16px 0 0; font-size: 16px; }
@media(max-width:1100px) {
  .m2m-platform-lead { gap: 30px; }
  .m2m-tour-panel { grid-template-columns: minmax(0,1fr); }
  .m2m-panel-copy { max-width: 800px; }
  .m2m-panel-copy ol { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 25px; }
  .m2m-handoff-heading { flex-direction: column; align-items: flex-start; gap: 24px; }
  .m2m-platform-faq { gap: 30px; }
}
@media(max-width:768px) {
  .m2m-platform-hero { padding: 38px 0; }
  .m2m-platform-lead { grid-template-columns: minmax(0,1fr); }
  .m2m-platform-lead h1 { max-width: 20ch; font-size: 36px; }
  .m2m-value-strip { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 22px 10px; }
  .m2m-value-strip > div { padding: 0 10px; border-left: 0; }
  .m2m-value-strip > div:first-child { padding-left: 10px; }
  .m2m-value-strip strong { min-width: 0; overflow-wrap: anywhere; font-size: 15px; }
  .is-enhanced .m2m-tour-nav { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .m2m-tour-nav button { padding: 15px 12px; font-size: 15px; }
  .m2m-tour-panel { padding: 22px 16px; gap: 22px; }
  .m2m-panel-copy h3 { font-size: 27px; }
  .m2m-panel-copy ol { display: block; }
  .m2m-workflow { grid-template-columns: minmax(0,1fr); gap: 25px; }
  .m2m-platform-faq { grid-template-columns: minmax(0,1fr); }
}

/* Existing model documents and application facts, exposed at the buyer's entry. */
.model-document-access { margin-top:24px; padding:16px 0; border-block:1px solid var(--line); }
.model-document-label { display:flex; align-items:baseline; flex-wrap:wrap; gap:8px 16px; }
.model-document-label>span { font-size:14px; color:var(--muted); }
.model-document-links { display:flex; flex-wrap:wrap; gap:10px 22px; margin-top:10px; }
.model-document-links a { font-size:15px; padding-block:4px; }
.application-summary { padding-block:30px; border-bottom:1px solid var(--line); }
.application-summary-heading { display:flex; align-items:center; justify-content:space-between; gap:14px 24px; flex-wrap:wrap; }
.application-summary h2 { margin:0; font-size:24px; }
.application-summary dl { display:grid; grid-template-columns:1fr 1.1fr 1fr; gap:32px; margin:24px 0 0; }
.application-summary dl>div { min-width:0; }
.application-summary dt { color:var(--muted); font-size:14px; margin-bottom:10px; }
.application-summary dd { margin:0; font-size:18px; line-height:1.55; overflow-wrap:anywhere; }
.application-summary dd a { display:inline-block; color:var(--brand); margin-right:15px; padding-block:3px; }
.support-task-section { padding-top:20px; padding-bottom:35px; }
.support-task-section>h2 { font-size:28px; margin:0 0 28px; }
.support-task-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0 36px; }
.support-task { display:flex; flex-direction:column; align-items:flex-start; min-width:0; padding:26px 0 30px; border-top:2px solid var(--ink); text-decoration:none; }
.support-task-number { color:var(--brand); font-size:14px; font-weight:700; }
.support-task h3 { font-size:24px; line-height:1.3; margin:16px 0 12px; }
.support-task p { color:var(--muted); margin:0 0 22px; }
.support-task-link { color:var(--brand); font-weight:600; margin-top:auto; }
.support-task:hover .support-task-link,.support-task:focus-visible .support-task-link { text-decoration:underline; }
.support-directories { display:flex; flex-wrap:wrap; gap:18px 30px; padding-block:22px; border-block:1px solid var(--line); }
.support-directories a { padding-block:4px; }
.support-help { display:flex; align-items:center; justify-content:space-between; gap:28px 50px; padding-block:55px; }
.support-help h2 { font-size:28px; margin:0 0 14px; }
.support-help p { max-width:70ch; color:var(--muted); margin:0; }
.support-help .button { flex-shrink:0; }
@media(max-width:1000px) {
 .support-task-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 28px; }
 .support-help { align-items:flex-start; flex-direction:column; gap:25px; }
}
@media(max-width:600px) {
 .application-summary dl { grid-template-columns:minmax(0,1fr); gap:22px; }
 .support-task-grid { grid-template-columns:minmax(0,1fr); }
 .support-task h3 { font-size:23px; }
 .model-document-links { gap:10px 18px; }
 .support-help { padding-block:38px; }
}

/* Custom engineering: a short buyer entry followed by evidence and project scope. */
.custom-entry { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); gap:64px; padding-top:56px; padding-bottom:56px; border-bottom:1px solid var(--line); }
.custom-entry h2 { font-size:clamp(28px,2.3vw,38px); line-height:1.18; margin:0 0 16px; }
.custom-entry p:not(.eyebrow) { max-width:62ch; color:var(--muted); }
.custom-entry-links { display:grid; align-content:center; }
.custom-entry-links a { display:grid; grid-template-columns:1fr auto; gap:4px 20px; padding:20px 0; border-bottom:1px solid var(--line); text-decoration:none; }
.custom-entry-links a:first-child { border-top:1px solid var(--line); }
.custom-entry-links strong { font-size:20px; }
.custom-entry-links span { grid-column:1; color:var(--muted); font-size:15px; }
.custom-entry-links b { grid-column:2; grid-row:1 / 3; align-self:center; color:var(--brand); font-size:24px; }
.custom-cloud-scope { padding-block: 36px; border-bottom: 1px solid var(--line); }
.custom-cloud-scope p { max-width: 88ch; color: var(--muted); }
.sw-cloud-service { margin: 32px 0 0; padding-top: 24px; border-top: 1px solid var(--line); }
.custom-project-hero { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); align-items:center; gap:55px; padding-top:64px; padding-bottom:64px; }
.custom-project-hero h1 { font-size:clamp(34px,4vw,58px); line-height:1.1; letter-spacing:-.025em; margin:0 0 24px; }
.custom-project-hero .lede { max-width:60ch; }
.custom-project-hero figure { margin:0; min-width:0; text-align:center; }
.custom-project-hero img { width:100%; height:auto; max-height:390px; object-fit:contain; }
.custom-project-hero figcaption { margin-top:16px; }
.custom-audience { margin-top:26px; font-size:15px; color:var(--muted); }
.custom-usecases { margin-top:38px; }
.custom-usecases article { display:grid; grid-template-columns:48px minmax(0,1fr) minmax(0,1fr); gap:30px; padding:32px 0; border-top:1px solid var(--line); scroll-margin-top:180px; }
.custom-step { font-size:20px; color:var(--brand); font-weight:700; }
.custom-usecases h3 { font-size:26px; line-height:1.2; margin:0 0 16px; }
.custom-usecases p { max-width:53ch; margin-top:0; }
.custom-proof-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:30px; margin-top:36px; }
.custom-proof-grid article { min-width:0; }
.custom-proof-art { display:flex; height:235px; background:#f4f5f6; align-items:center; justify-content:center; overflow:hidden; }
.custom-proof-art img { width:100%; height:100%; object-fit:contain; }
.custom-proof-grid article:first-child img { object-fit:cover; }
.custom-proof-grid article>div { padding-top:24px; }
.custom-proof-grid h3 { font-size:25px; line-height:1.25; margin:0 0 14px; }
.custom-proof-grid p:not(.eyebrow) { color:var(--muted); }
.custom-project-review { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:70px; }
.custom-project-review dl { margin:0; }
.custom-project-review dl>div { padding:20px 0; border-top:1px solid var(--line); }
.custom-project-review dt { font-size:20px; font-weight:700; margin-bottom:8px; }
.custom-project-review dd { margin:0; color:var(--muted); }
.custom-questions { padding-top:0; }
.custom-questions>div:not(.section-heading) { margin:30px 0; }
.custom-questions details { border-top:1px solid var(--line); padding:20px 0; }
.custom-questions details:last-child { border-bottom:1px solid var(--line); }
.custom-questions summary { font-size:21px; font-weight:600; cursor:pointer; }
.custom-questions details p { max-width:85ch; color:var(--muted); }
@media(max-width:1000px) {
 .custom-entry { gap:35px; }
 .custom-project-hero { gap:28px; }
 .custom-proof-grid { gap:22px; }
 .custom-proof-art { height:190px; }
 .custom-usecases article { gap:22px; }
 .custom-project-review { gap:35px; }
}
@media(max-width:700px) {
 .custom-entry,.custom-project-hero,.custom-project-review { grid-template-columns:minmax(0,1fr); gap:30px; padding-top:36px; padding-bottom:36px; }
 .custom-project-hero img { max-height:270px; }
 .custom-entry-links strong { font-size:19px; }
 .custom-usecases article { grid-template-columns:32px minmax(0,1fr); gap:16px; padding:28px 0; }
 .custom-usecases article>div:last-child { grid-column:2; }
 .custom-proof-grid { grid-template-columns:minmax(0,1fr); gap:38px; }
 .custom-proof-art { height:240px; }
 .custom-project-review dd,.custom-usecases p { overflow-wrap:anywhere; }
}
