:root {
  --ink: #0d1b2a;
  --ink-soft: #344454;
  --paper: #f5f7f8;
  --white: #ffffff;
  --line: #ccd6dc;
  --teal: #08a8a7;
  --teal-dark: #087b80;
  --blue: #dcecf2;
  --amber: #e8b15a;
  --max: 1240px;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ink);
  background: var(--paper);
  font-synthesis: none;
  text-rendering: optimizeLegibility;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); }
img { display: block; width: 100%; height: auto; object-fit: contain; object-position: center; }
[hidden] { display: none !important; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
.page-shell { width: min(var(--max), calc(100% - 64px)); margin-inline: auto; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; left: 16px; top: -100px; z-index: 20; padding: 10px 14px; background: var(--amber); color: var(--ink); }
.skip-link:focus { top: 16px; }

.site-header { position: fixed; inset: 0 0 auto; z-index: 20; background: rgba(245, 247, 248, .96); border-bottom: 1px solid rgba(13, 27, 42, .12); backdrop-filter: blur(14px); transition: background .25s ease, border-color .25s ease, color .25s ease, box-shadow .25s ease; }
.has-hero .site-header { background: transparent; border-bottom-color: transparent; backdrop-filter: none; }
.has-hero:not(.is-scrolled) .site-header { color: var(--white); }
.has-hero:not(.is-scrolled) .brand-copy span,
.has-hero:not(.is-scrolled) .site-nav > .nav-link,
.has-hero:not(.is-scrolled) .site-nav .nav-group-trigger { color: var(--white); }
.has-hero:not(.is-scrolled) .brand-copy strong { color: var(--white); }
.has-hero:not(.is-scrolled) .brand-mark { background: rgba(13, 27, 42, .72); }
.has-hero:not(.is-scrolled) .site-nav .nav-group-trigger span { color: #8ff1e8; }
.has-hero:not(.is-scrolled) .site-nav .nav-contact { background: var(--teal); color: var(--white); }
.has-hero.is-scrolled .site-header { background: rgba(255, 255, 255, .97); border-bottom-color: var(--line); box-shadow: 0 8px 22px rgba(13, 27, 42, .08); backdrop-filter: blur(14px); }
.nav-shell { width: min(var(--max), calc(100% - 64px)); min-height: 78px; margin-inline: auto; display: flex; align-items: center; justify-content: space-between; gap: 32px; }
.brand { display: inline-flex; align-items: center; gap: 12px; min-width: 220px; }
.brand-mark { display: grid; place-items: center; width: 36px; height: 36px; background: var(--ink); color: var(--teal); font-weight: 800; font-size: 19px; }
.brand-copy { display: grid; gap: 2px; }
.brand-copy strong { font-size: 13px; letter-spacing: .18em; }
.brand-copy span { color: var(--ink-soft); font-size: 11px; }
.site-nav { display: flex; align-items: center; gap: clamp(16px, 2.3vw, 34px); font-size: 13px; font-weight: 650; }
.site-nav a { padding-block: 8px; border-bottom: 2px solid transparent; }
.site-nav a:hover, .site-nav a:focus-visible { border-color: var(--teal); }
.site-nav .nav-contact { padding: 11px 15px; border: 1px solid var(--ink); background: var(--ink); color: var(--white); }
.site-nav .nav-contact:hover, .site-nav .nav-contact:focus-visible { border-color: var(--teal); background: var(--teal-dark); }
.menu-toggle { display: none; border: 0; background: transparent; color: var(--ink); padding: 10px; }

.hero { position: relative; min-height: 670px; display: grid; align-items: end; overflow: hidden; background: var(--ink); color: var(--white); }
.hero-overlay { position: absolute; inset: 0; background: rgba(7, 20, 33, .42); }
.hero-content { position: relative; z-index: 1; padding-block: 110px 82px; max-width: 980px; }
.eyebrow { margin: 0 0 21px; color: var(--teal); font-size: 12px; font-weight: 750; letter-spacing: .18em; }
.eyebrow-dark { color: var(--teal-dark); }
h1, h2, h3, p { margin-top: 0; }
h1 { max-width: 820px; margin-bottom: 22px; font-size: clamp(40px, 4.7vw, 68px); line-height: 1.02; letter-spacing: 0; }
.hero-lede { max-width: 620px; margin-bottom: 28px; color: #d9e3e8; font-size: 17px; line-height: 1.55; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 48px; padding: 13px 19px; border: 1px solid transparent; font-weight: 750; font-size: 13px; cursor: pointer; }
.button-primary { background: var(--teal); color: var(--ink); }
.button-primary:hover, .button-primary:focus-visible { background: #35c2bd; }
.button-quiet { border-color: rgba(255, 255, 255, .65); color: var(--white); }
.button-quiet:hover, .button-quiet:focus-visible { background: rgba(255, 255, 255, .12); }
.hero-footnote { margin: 55px 0 0; color: #b9c8d0; font-size: 12px; }

.capability-rail { border-bottom: 1px solid var(--line); background: var(--white); }
.rail-grid { display: grid; grid-template-columns: 1.5fr repeat(4, 1fr); align-items: stretch; }
.rail-grid > * { min-height: 103px; padding: 23px 18px; border-right: 1px solid var(--line); display: flex; align-items: center; }
.rail-grid > *:last-child { border-right: 0; }
.rail-intro { margin: 0; color: var(--ink-soft); font-size: 13px; line-height: 1.5; }
.rail-grid a { align-items: flex-start; justify-content: center; font-size: 14px; font-weight: 700; }
.rail-grid a:hover, .rail-grid a:focus-visible { color: var(--teal-dark); background: #f0f7f7; }

.section { padding-block: 114px; }
.section-light { background: var(--paper); }
.section-paper { background: var(--white); }
.section-blue { background: var(--blue); }
.section-ink { background: var(--ink); color: var(--white); }
.section-contact { background: #123d50; color: var(--white); }
.split-layout { display: grid; grid-template-columns: minmax(0, .84fr) minmax(0, 1.16fr); align-items: start; gap: clamp(44px, 8vw, 120px); }
.split-reverse { grid-template-columns: minmax(0, 1.06fr) minmax(0, .94fr); }
.section-intro { max-width: 540px; }
h2 { margin-bottom: 20px; font-size: clamp(30px, 3.3vw, 48px); line-height: 1.08; }
.section-intro > p:not(.eyebrow) { color: var(--ink-soft); font-size: 16px; line-height: 1.62; }
.section-ink .section-heading-row h2, .section-ink .section-intro > p:not(.eyebrow) { color: var(--white); }
.section-ink .section-heading-note { color: #b8c9d1; }
.text-link { display: inline-flex; gap: 11px; margin-top: 22px; color: var(--teal-dark); font-weight: 780; font-size: 14px; }
.section-ink .text-link { color: #5ce4dd; }

.split-layout .section-intro h2 { max-width: 480px; font-size: clamp(32px, 3vw, 43px); }
.engineering-overview { display: block; }
.engineering-overview .section-intro { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, .72fr); column-gap: clamp(42px, 7vw, 96px); align-items: start; max-width: none; }
.engineering-overview .section-intro h2 { grid-column: 1; }
.engineering-overview .section-intro > p:not(.eyebrow) { grid-column: 1; }
.engineering-overview .section-intro .image-panel-engineering { grid-column: 2; grid-row: 1 / span 4; width: min(100%, 440px); justify-self: end; margin-top: 0; }
.engineering-overview .section-intro .text-link { grid-column: 1; }
.service-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.engineering-overview .service-list { grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 48px; }
.service-row { display: grid; grid-template-rows: auto 1fr; gap: 0; padding: 0; border: 1px solid var(--line); background: var(--white); }
.service-row img { display: block; width: 100%; height: auto; object-fit: contain; object-position: center; background: #eef4f6; border-bottom: 1px solid var(--line); }
.service-row > div { padding: 16px 17px 18px; }
.service-row h3 { margin-bottom: 7px; font-size: 17px; line-height: 1.25; }
.service-row p { margin-bottom: 0; color: var(--ink-soft); font-size: 14px; line-height: 1.55; }
.service-arrow { color: var(--teal-dark); font-size: 19px; }

.legacy-specs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-top: 88px; }
.legacy-heading { grid-column: 1 / -1; display: flex; align-items: baseline; justify-content: space-between; gap: 30px; margin-bottom: 0; border-bottom: 1px solid var(--line); }
.legacy-heading p:last-child { max-width: 430px; margin: 0 0 18px; color: var(--ink-soft); font-size: 13px; line-height: 1.5; }
.legacy-detail { align-self: start; border: 1px solid var(--line); background: var(--white); padding: 0 18px; }
.legacy-detail summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 23px 0; cursor: pointer; list-style: none; font-size: 20px; font-weight: 750; }
.legacy-detail summary::-webkit-details-marker { display: none; }
.legacy-detail summary::after { content: "+"; color: var(--teal-dark); font-size: 25px; font-weight: 400; }
.legacy-detail[open] summary::after { content: "−"; }
.legacy-body { max-width: none; padding: 0 0 25px; color: var(--ink-soft); font-size: 14px; line-height: 1.6; }
.legacy-body p { margin-bottom: 15px; }
.legacy-body ul { margin: 0 0 18px; padding-left: 21px; }
.legacy-body li { margin: 3px 0; }
.legacy-body strong { color: var(--ink); }
.legacy-detail-media { width: 100%; margin: 0 0 18px; border: 1px solid var(--line); background: #eef4f6; }
.legacy-detail-media img { display: block; width: 100%; height: auto; object-fit: contain; object-position: center; background: #eef4f6; }
.legacy-about { border-top: 1px solid var(--line); }
.legacy-about-grid { display: block; }
.legacy-about-grid > .section-intro { max-width: 700px; margin-bottom: 58px; }
.legacy-about-copy { width: 100%; }
.legacy-about-copy .legacy-detail:first-child { border-top: 1px solid var(--line); }
.who-we-do-rail { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin-bottom: 38px; background: var(--line); border: 1px solid var(--line); }
.who-we-do-rail article { min-height: 190px; padding: 22px; background: var(--white); }
.who-we-do-rail h3 { margin-bottom: 11px; font-size: 18px; }
.who-we-do-rail p { margin: 0; color: var(--ink-soft); font-size: 14px; line-height: 1.55; }
.legacy-card-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-bottom: 38px; }
.legacy-card { overflow: hidden; background: var(--white); border: 1px solid var(--line); }
.legacy-card > img { width: 100%; height: auto; object-fit: contain; }
.legacy-card-body { padding: 21px 22px 24px; }
.legacy-card-body h3 { margin-bottom: 14px; font-size: 23px; font-weight: 500; }
.legacy-card-body p, .legacy-card-body li { color: var(--ink-soft); font-size: 13px; line-height: 1.58; }
.legacy-card-body p { margin-bottom: 14px; }
.legacy-card-body ul { margin: 0 0 16px; padding-left: 20px; }
.legacy-card-body li { margin: 4px 0; }
.legacy-card-body strong { color: var(--ink); }
.who-technology-strip { margin: 42px 0 38px; padding-top: 25px; border-top: 1px solid var(--line); }
.who-technology-heading { display: grid; grid-template-columns: .75fr 1.25fr; gap: 30px; align-items: end; margin-bottom: 20px; }
.who-technology-heading p:last-child { max-width: 390px; margin: 0; color: var(--ink-soft); font-size: 14px; line-height: 1.5; }
.who-technology-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.who-technology-grid article { overflow: hidden; background: var(--white); border: 1px solid var(--line); }
.who-technology-grid img { width: 100%; height: auto; aspect-ratio: auto; object-fit: contain; }
.who-technology-grid article > div { padding: 14px 15px 17px; }
.who-technology-grid h3 { margin-bottom: 7px; font-size: 16px; }
.who-technology-grid p { margin: 0; color: var(--ink-soft); font-size: 14px; line-height: 1.48; }

/* Preserve the complete engineering visual inside every content card. */
.legacy-card > img { height: auto; aspect-ratio: 3 / 2; object-fit: contain; background: #eef4f6; }
.who-technology-grid img,
.service-visual-card img,
.industrial-evidence img,
.building-evidence img,
.vision-evidence-grid img,
.catalog-card img,
.technology-grid img,
.evidence-grid img { object-fit: contain; background: #eef4f6; }
.who-technology-grid img,
.technology-grid img { aspect-ratio: 1; }
.who-process { border-top: 1px solid var(--line); margin-bottom: 30px; }
.who-process > p { padding-top: 22px; }
.who-process > div:not(:first-child) { display: grid; grid-template-columns: minmax(180px, .7fr) 1fr; gap: 20px; padding: 16px 0; border-bottom: 1px solid var(--line); }
.who-process strong { font-size: 14px; }
.who-process span { color: var(--ink-soft); font-size: 14px; line-height: 1.5; }
.original-copy summary { font-size: 16px; }

.section-heading-row { display: flex; justify-content: space-between; gap: 48px; margin-bottom: 55px; }
.section-heading-row > div { max-width: 760px; }
.section-heading-note { max-width: 270px; margin: 13px 0 0; font-size: 14px; line-height: 1.6; }
.industrial-grid { display: grid; grid-template-columns: minmax(260px, .68fr) minmax(0, 1.32fr); gap: clamp(34px, 7vw, 110px); align-items: stretch; }
.image-panel { margin: 0; background: #183747; }
.image-panel img { width: 100%; height: auto; object-fit: contain; background: #eef4f6; }
.image-panel-tall, .image-panel-wide, .image-panel-building, .image-panel-engineering { min-height: 0; }
.image-panel figcaption { padding: 13px 15px; color: #b8c9d1; background: #183747; font-size: 11px; letter-spacing: .05em; }
.industrial-copy { display: grid; align-content: center; }
.lead-on-ink { max-width: 580px; margin-bottom: 36px; font-size: clamp(23px, 2.4vw, 33px); line-height: 1.24; }
.feature-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; background: #37505d; border: 1px solid #37505d; }
.feature-list > div { min-height: 190px; padding: 23px; background: var(--ink); }
.feature-list h3 { margin-bottom: 10px; color: #5ce4dd; font-size: 16px; }
.feature-list p { margin-bottom: 0; color: #b8c9d1; font-size: 14px; line-height: 1.55; }

.visual-stack { display: grid; gap: 13px; }
.signal-note { display: flex; align-items: center; gap: 10px; color: var(--ink-soft); font-size: 13px; }
.signal-dot { width: 9px; height: 9px; background: var(--teal); border-radius: 50%; }
.inspection-track { display: grid; gap: 0; margin-top: 33px; border-top: 1px solid var(--line); }
.inspection-track > div { display: grid; grid-template-columns: 60px 100px 1fr; gap: 12px; align-items: baseline; padding: 14px 0; border-bottom: 1px solid var(--line); }
.inspection-track span { color: var(--teal-dark); font-size: 11px; font-weight: 750; }
.inspection-track strong { font-size: 14px; }
.inspection-track small { color: var(--ink-soft); font-size: 13px; line-height: 1.45; }
.vision-evidence { margin-top: 72px; padding-top: 28px; border-top: 1px solid var(--line); }
.vision-evidence-heading { display: grid; grid-template-columns: .75fr 1.25fr; gap: 30px; align-items: end; margin-bottom: 24px; }
.vision-evidence-heading h3 { max-width: 560px; font-size: 23px; font-weight: 500; line-height: 1.25; }
.vision-evidence-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.vision-evidence-grid article { overflow: hidden; background: var(--white); border: 1px solid var(--line); }
.vision-evidence-grid img { width: 100%; height: auto; aspect-ratio: auto; object-fit: contain; background: #eef4f6; }
.vision-evidence-grid article > div { padding: 17px 17px 20px; }
.vision-evidence-grid h3 { margin-bottom: 8px; font-size: 16px; }
.vision-evidence-grid p { margin: 0; color: var(--ink-soft); font-size: 14px; line-height: 1.5; }

.building-grid { display: grid; grid-template-columns: minmax(0, .85fr) minmax(300px, 1.15fr); gap: 55px clamp(44px, 8vw, 116px); align-items: start; }
.image-panel-building { min-height: 390px; }
.building-topics { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid #afcbd4; border-bottom: 1px solid #afcbd4; }
.building-topics > div { display: grid; gap: 8px; padding: 21px 20px; border-right: 1px solid #afcbd4; }
.building-topics > div:last-child { border-right: 0; }
.building-topics strong { font-size: 15px; }
.building-topics span { color: var(--ink-soft); font-size: 13px; line-height: 1.5; }
.building-evidence { display: grid; grid-column: 1 / -1; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-top: 2px; }
.building-evidence article { overflow: hidden; background: rgba(255,255,255,.72); border: 1px solid #b7cbd3; }
.building-evidence img { width: 100%; height: auto; aspect-ratio: auto; object-fit: contain; background: #eef4f6; }
.building-evidence article > div { padding: 15px 16px 18px; }
.building-evidence h3 { margin-bottom: 7px; font-size: 16px; }
.building-evidence p { margin: 0; color: var(--ink-soft); font-size: 14px; line-height: 1.48; }

.process-section { border-top: 1px solid var(--line); }
.process-layout { display: grid; grid-template-columns: .75fr 1.25fr; gap: clamp(44px, 9vw, 140px); }
.process-list { border-top: 1px solid var(--line); }
.process-list > div { display: grid; grid-template-columns: 64px 1fr; gap: 18px; padding: 20px 0; border-bottom: 1px solid var(--line); }
.process-list span { color: var(--teal-dark); font-size: 11px; font-weight: 760; padding-top: 3px; }
.process-list h3 { margin-bottom: 7px; font-size: 18px; }
.process-list p { margin-bottom: 0; color: var(--ink-soft); font-size: 14px; line-height: 1.5; }

.contact-layout { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(44px, 10vw, 160px); }
.contact-copy { max-width: 430px; color: #c6d9df; font-size: 16px; line-height: 1.6; }
.contact-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 14px; }
.contact-form label { display: grid; gap: 8px; color: #d9e6ea; font-size: 12px; font-weight: 700; }
.contact-form label:nth-of-type(3), .contact-form label:nth-of-type(4), .contact-form button, .form-status { grid-column: 1 / -1; }
.contact-form input, .contact-form select, .contact-form textarea { width: 100%; border: 1px solid #567380; border-radius: 0; padding: 12px 13px; background: #173f50; color: var(--white); outline: 0; }
.contact-form textarea { resize: vertical; }
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus { border-color: var(--teal); box-shadow: 0 0 0 2px rgba(8, 168, 167, .22); }
.contact-form button { justify-self: start; margin-top: 4px; }
.form-status { min-height: 20px; margin: 0; color: #8de9e2; font-size: 13px; }

.site-footer { background: #081521; color: #d5e0e5; padding-block: 42px; }
.footer-grid { display: grid; grid-template-columns: 1.2fr .8fr 1fr; gap: 40px; }
.footer-grid strong { color: var(--white); font-size: 13px; letter-spacing: .18em; }
.footer-grid p { max-width: 280px; margin: 12px 0 0; color: #9fb2bc; font-size: 13px; line-height: 1.5; }
.footer-grid nav { display: grid; gap: 8px; align-content: start; font-size: 13px; }
.footer-grid nav a:hover, .footer-grid nav a:focus-visible { color: #5ce4dd; }
.footer-note { justify-self: end; text-align: right; }

/* Light enterprise visual system: image evidence first, copy on a calm surface. */
:root {
  --ink: #122235;
  --ink-soft: #536474;
  --paper: #f4f7f9;
  --white: #ffffff;
  --line: #d8e1e7;
  --teal: #0b9f9c;
  --teal-dark: #087572;
  --blue: #e7f1f5;
  --amber: #e2ad52;
}

body { background: var(--paper); }
.site-header { background: rgba(255, 255, 255, .97); border-bottom-color: var(--line); }
.nav-shell { min-height: 70px; }
.brand { min-width: 200px; }
.brand-mark { width: 35px; height: 35px; padding: 0; object-fit: contain; background: transparent; border: 0; }
.brand-copy strong { font-size: 12px; }
.brand-copy span { color: var(--ink-soft); }
.site-nav { color: var(--ink); font-size: 12px; letter-spacing: .06em; text-transform: uppercase; }
.site-nav .nav-contact { background: var(--ink); color: var(--white); border-color: var(--ink); letter-spacing: .05em; }
.site-nav .nav-contact:hover, .site-nav .nav-contact:focus-visible { background: var(--teal-dark); border-color: var(--teal-dark); }

.hero { position: relative; width: 100%; min-height: 100svh; margin: 0; display: block; overflow: hidden; background: #e6f2f7; color: var(--ink); }
.hero-visual { position: relative; min-height: 100svh; overflow: hidden; background: #e6f2f7; }
.hero-visual img { width: 100%; height: 100%; object-fit: contain; object-position: center; }
.hero-visual-label { position: absolute; left: 24px; bottom: 20px; padding: 8px 10px; background: rgba(255,255,255,.88); color: var(--ink); font-size: 10px; font-weight: 750; letter-spacing: .14em; }
.hero-overlay { display: none; }
.hero-content { position: absolute; z-index: 1; inset: 0 0 0 auto; width: min(36%, 465px); display: flex; flex-direction: column; justify-content: center; padding: 52px clamp(28px, 4vw, 62px); background: rgba(247, 250, 251, .24); border-left: 1px solid rgba(255,255,255,.62); backdrop-filter: blur(2px); }
.hero-content .eyebrow { color: var(--teal-dark); margin-bottom: 20px; }
.hero-content h1 { max-width: 540px; margin-bottom: 18px; font-family: Baskerville, "Iowan Old Style", Georgia, "Times New Roman", serif; font-size: clamp(27px, 2.2vw, 34px); font-weight: 400; line-height: 1.16; letter-spacing: 0; }
.hero-lede { max-width: 500px; margin-bottom: 24px; color: #435564; font-size: 13px; line-height: 1.58; }
.hero-actions { gap: 10px; }
.button { min-height: 45px; padding: 12px 17px; font-size: 12px; letter-spacing: .02em; }
.button-primary { background: var(--teal); color: var(--white); }
.button-primary:hover, .button-primary:focus-visible { background: var(--teal-dark); }
.button-secondary { border-color: var(--ink); color: var(--ink); }
.button-secondary:hover, .button-secondary:focus-visible { background: var(--ink); color: var(--white); }
.hero-footnote { margin-top: 44px; color: #6a7a87; font-size: 11px; line-height: 1.5; }

.capability-rail { background: var(--white); border-top: 1px solid var(--line); }
.rail-grid > * { min-height: 96px; }
.rail-grid a:hover, .rail-grid a:focus-visible { color: var(--teal-dark); background: #f1f8f8; }

.home-overview { padding-block: 96px 110px; background: var(--white); }
.home-overview-intro { display: grid; grid-template-columns: minmax(0, .75fr) minmax(260px, .45fr); gap: clamp(46px, 9vw, 140px); align-items: end; }
.home-overview-intro h2 { max-width: 560px; margin-bottom: 0; font-size: clamp(29px, 3vw, 43px); }
.home-overview-intro > p { max-width: 390px; margin: 0 0 3px; color: var(--ink-soft); font-size: 14px; line-height: 1.55; }
.home-overview-grid { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(46px, 9vw, 140px); align-items: start; }
.home-overview h2 { max-width: 540px; margin-bottom: 0; }
.home-overview-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.home-overview-links a { position: relative; display: grid; gap: 9px; min-height: 155px; padding: 23px 34px 23px 22px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.home-overview-links a:hover, .home-overview-links a:focus-visible { background: #f4f9fa; }
.home-overview-links strong { font-size: 17px; }
.home-overview-links span:not([aria-hidden]) { color: var(--ink-soft); font-size: 13px; line-height: 1.5; }
.home-overview-links span[aria-hidden] { position: absolute; top: 23px; right: 16px; color: var(--teal-dark); font-size: 18px; }

.section { padding-block: 100px; }
.section-light, .section-paper { background: var(--white); }
.section-blue { background: var(--blue); }
.section-ink, .section-contact { background: var(--paper); color: var(--ink); }
.section-ink .section-heading-row h2, .section-ink .section-intro > p:not(.eyebrow) { color: var(--ink); }
.section-ink .section-heading-note { color: var(--ink-soft); }
.section-ink .text-link { color: var(--teal-dark); }
.section-heading-row { margin-bottom: 48px; }
.section-heading-note { color: var(--ink-soft); }
.image-panel { background: #eaf1f4; border: 1px solid var(--line); }
.image-panel-tall { min-height: 390px; }
.image-panel-wide { min-height: 300px; }
.image-panel-engineering { min-height: 238px; margin: 26px 0 0; }
.image-panel-building { min-height: 300px; }
.image-panel figcaption { background: var(--white); color: var(--ink-soft); border-top: 1px solid var(--line); }
.feature-list { background: var(--line); border-color: var(--line); }
.feature-list > div { background: var(--white); }
.feature-list h3 { color: var(--teal-dark); }
.feature-list p { color: var(--ink-soft); }
.industrial-evidence { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-top: 48px; }
.industrial-evidence article { overflow: hidden; background: #f2f7f8; border: 1px solid #c5d5da; color: var(--ink); }
.industrial-evidence img { width: 100%; height: auto; aspect-ratio: auto; object-fit: contain; background: #eef4f6; }
.industrial-evidence article > div { padding: 15px 16px 18px; }
.industrial-evidence h3 { margin-bottom: 7px; font-size: 16px; }
.industrial-evidence p { margin: 0; color: var(--ink-soft); font-size: 14px; line-height: 1.48; }
.signal-note { color: var(--ink-soft); }
.building-topics { border-color: #b7cbd3; }
.building-topics > div { border-color: #b7cbd3; }
.contact-copy { color: var(--ink-soft); }
.contact-channels { display: grid; gap: 12px; margin-top: 30px; padding-top: 20px; border-top: 1px solid var(--line); }
.contact-channels a { display: grid; gap: 4px; width: fit-content; }
.contact-location { display: grid; gap: 4px; width: fit-content; }
.contact-image { margin: 34px 0 0; max-width: 390px; border-top: 1px solid var(--line); }
.contact-image img { display: block; width: 100%; height: auto; object-fit: contain; background: #eef4f6; margin-top: 14px; }
.contact-image figcaption { padding-top: 9px; color: var(--ink-soft); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; }
.contact-channels span { color: var(--teal-dark); font-size: 11px; font-weight: 750; letter-spacing: .12em; text-transform: uppercase; }
.contact-channels strong { color: var(--ink); font-size: 15px; font-weight: 700; }
.contact-channels a:hover strong, .contact-channels a:focus-visible strong { color: var(--teal-dark); }
.contact-form label { color: var(--ink); }
.contact-form input, .contact-form select, .contact-form textarea { border-color: #b9c8d0; background: var(--white); color: var(--ink); }
.form-status { color: var(--teal-dark); }
.site-footer { background: #e7eef2; color: var(--ink); border-top: 1px solid var(--line); }
.footer-grid strong { color: var(--ink); }
.footer-grid p { color: var(--ink-soft); }
.footer-grid nav a:hover, .footer-grid nav a:focus-visible { color: var(--teal-dark); }

/* Expandable navigation mirrors the domestic site's grouped information architecture. */
.site-nav { gap: clamp(10px, 1.7vw, 24px); }
.nav-group { position: relative; }
.nav-group-trigger { display: inline-flex; align-items: center; gap: 7px; padding: 8px 0; border: 0; border-bottom: 2px solid transparent; background: transparent; color: var(--ink); font-size: 12px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; cursor: pointer; }
.nav-group-trigger span { color: var(--teal-dark); font-size: 15px; line-height: 1; transition: transform .2s ease; }
.nav-group:hover .nav-group-trigger, .nav-group.is-open .nav-group-trigger { border-color: var(--teal); }
.nav-group.is-open .nav-group-trigger span { transform: rotate(180deg); }
.nav-dropdown { position: absolute; top: calc(100% + 18px); right: -18px; z-index: 12; display: none; grid-template-columns: minmax(190px, .62fr) minmax(300px, 1.38fr); width: min(720px, calc(100vw - 48px)); background: rgba(255,255,255,.98); border: 1px solid var(--line); box-shadow: 0 18px 35px rgba(13, 27, 42, .12); }
.nav-group:hover .nav-dropdown, .nav-group:focus-within .nav-dropdown, .nav-group.is-open .nav-dropdown { display: grid; }
.nav-dropdown-intro { display: grid; align-content: start; gap: 11px; padding: 21px; background: #edf5f7; border-right: 1px solid var(--line); }
.nav-dropdown-intro strong { color: var(--ink); font-size: 15px; letter-spacing: .06em; text-transform: uppercase; }
.nav-dropdown-intro p { margin: 0; color: var(--ink-soft); font-size: 14px; line-height: 1.48; }
.nav-dropdown-intro a { color: var(--teal-dark); font-size: 13px; font-weight: 750; }
.nav-dropdown-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 10px; }
.nav-dropdown-links a { display: grid; gap: 5px; padding: 12px 13px; border: 0; }
.nav-dropdown-links a:hover, .nav-dropdown-links a:focus-visible { background: #f2f8f9; }
.nav-dropdown-links strong { font-size: 14px; line-height: 1.25; }
.nav-dropdown-links span { color: var(--ink-soft); font-size: 13px; line-height: 1.35; }
.catalog-page { padding-block: 92px 116px; }
.catalog-heading { display: grid; grid-template-columns: .85fr 1.15fr; gap: 40px clamp(45px, 8vw, 118px); align-items: end; padding-bottom: 42px; border-bottom: 1px solid var(--line); }
.catalog-heading h1 { max-width: 620px; margin: 0; font-family: Baskerville, "Iowan Old Style", Georgia, "Times New Roman", serif; font-size: clamp(35px, 4.2vw, 58px); font-weight: 400; line-height: 1.05; }
.catalog-heading > p:last-child { max-width: 470px; margin: 0 0 4px; color: var(--ink-soft); font-size: 16px; line-height: 1.6; }
.catalog-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin-top: 34px; }
.catalog-card { display: grid; grid-template-rows: auto 1fr; overflow: hidden; background: var(--white); border: 1px solid var(--line); color: var(--ink); }
.catalog-card img { width: 100%; height: 220px; object-fit: contain; background: #eef4f6; }
.catalog-card > div { display: grid; align-content: start; gap: 10px; padding: 19px 20px 21px; }
.catalog-card span { color: var(--teal-dark); font-size: 12px; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
.catalog-card h2 { margin: 0; font-size: 22px; line-height: 1.2; }
.catalog-card p { margin: 0; color: var(--ink-soft); font-size: 14px; line-height: 1.5; }
.catalog-card b { margin-top: 7px; color: var(--teal-dark); font-size: 13px; }
.catalog-card:hover, .catalog-card:focus-visible { border-color: #86b1b8; box-shadow: 0 12px 24px rgba(24, 55, 71, .08); }
.product-page { padding-block: 0 112px; }
.product-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .9fr); min-height: 0; gap: clamp(36px, 7vw, 88px); align-items: center; padding-block: 72px 70px; border-bottom: 1px solid var(--line); }
.product-hero-copy { max-width: 560px; }
.product-hero-copy h1 { max-width: 620px; margin-bottom: 18px; font-family: Baskerville, "Iowan Old Style", Georgia, "Times New Roman", serif; font-size: clamp(39px, 5vw, 68px); font-weight: 400; line-height: 1.03; }
.product-statement { max-width: 540px; margin-bottom: 16px; font-size: clamp(21px, 2.4vw, 31px); line-height: 1.25; }
.product-description { max-width: 500px; margin-bottom: 27px; color: var(--ink-soft); font-size: 15px; line-height: 1.6; }
.product-hero-image { width: min(100%, 480px); justify-self: end; margin: 0; background: #edf4f6; border: 1px solid var(--line); }
.product-hero-image img { width: 100%; height: 310px; object-fit: contain; background: #eef4f6; }
.product-detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; margin-top: 58px; background: var(--line); border: 1px solid var(--line); }
.product-detail-grid article:last-child { grid-column: 1 / -1; }
.product-detail-grid article { min-height: 255px; padding: 27px 25px 30px; background: var(--white); }
.product-detail-media, .solution-detail-media { margin: -27px -25px 22px; border-bottom: 1px solid var(--line); background: #eef4f6; }
.product-detail-media img, .solution-detail-media img { display: block; width: 100%; height: auto; object-fit: contain; object-position: center; }
.product-detail-grid h2 { margin-bottom: 19px; font-size: 22px; font-weight: 500; }
.product-list { display: grid; gap: 9px; margin: 0; padding: 0; list-style: none; }
.product-list li { position: relative; padding-left: 17px; color: var(--ink-soft); font-size: 14px; line-height: 1.45; }
.product-list li::before { position: absolute; left: 0; top: .54em; width: 6px; height: 6px; background: var(--teal); border-radius: 50%; content: ""; }
.product-evidence { margin-top: 66px; padding-top: 26px; border-top: 1px solid var(--line); }
.product-evidence-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.product-evidence-grid article { min-height: 150px; padding: 24px; background: var(--paper); }
.product-evidence-grid h3 { margin-bottom: 9px; font-size: 20px; font-weight: 500; }
.product-evidence-grid p { max-width: 520px; margin: 0; color: var(--ink-soft); font-size: 14px; line-height: 1.55; }
.solution-page { padding-bottom: 112px; }
.solution-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .9fr); min-height: 0; gap: clamp(36px, 7vw, 88px); align-items: center; padding-block: 72px 70px; border-bottom: 1px solid var(--line); }
.solution-hero-copy { max-width: 560px; }
.solution-hero h1 { max-width: 640px; margin-bottom: 18px; font-family: Baskerville, "Iowan Old Style", Georgia, "Times New Roman", serif; font-size: clamp(39px, 5vw, 68px); font-weight: 400; line-height: 1.03; }
.solution-statement { max-width: 540px; margin-bottom: 16px; font-size: clamp(21px, 2.4vw, 31px); line-height: 1.25; }
.solution-challenge { max-width: 500px; margin-bottom: 27px; color: var(--ink-soft); font-size: 15px; line-height: 1.6; }
.solution-hero-image { width: min(100%, 480px); justify-self: end; margin: 0; border: 1px solid var(--line); background: #edf4f6; }
.solution-hero-image img { width: 100%; height: 310px; object-fit: contain; background: #eef4f6; }
.solution-detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; margin-top: 58px; background: var(--line); border: 1px solid var(--line); }
.solution-detail-grid article:last-child { grid-column: 1 / -1; }
.solution-detail-grid article { min-height: 235px; padding: 27px 25px 30px; background: var(--white); }
.solution-detail-media { margin-top: -27px; }
.solution-detail-grid h2 { margin-bottom: 19px; font-size: 22px; font-weight: 500; }
.solution-next { max-width: 340px; color: var(--ink-soft); font-size: 14px; line-height: 1.55; }

/* Homepage preview: image evidence first, concise copy below. */
.home-preview { margin-top: 78px; }
.home-preview-heading { display: flex; align-items: end; justify-content: space-between; gap: 32px; padding-bottom: 20px; border-bottom: 1px solid var(--line); }
.home-preview-heading p:last-child { max-width: 390px; margin: 0; color: var(--ink-soft); font-size: 14px; line-height: 1.5; }
.home-preview-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-top: 18px; }
.preview-card { display: grid; grid-template-rows: auto 1fr; overflow: hidden; background: var(--white); border: 1px solid var(--line); color: var(--ink); }
.preview-card img { width: 100%; height: auto; aspect-ratio: auto; object-fit: contain; background: #eef4f6; }
.preview-card > div { position: relative; display: grid; align-content: start; gap: 9px; min-height: 142px; padding: 18px 34px 19px 18px; }
.preview-card strong { font-size: 15px; line-height: 1.25; }
.preview-card span { color: var(--ink-soft); font-size: 14px; line-height: 1.48; }
.preview-card b { position: absolute; top: 18px; right: 14px; color: var(--teal-dark); font-size: 18px; font-weight: 400; }
.preview-card:hover, .preview-card:focus-visible { border-color: #8ab5bd; box-shadow: 0 10px 22px rgba(24, 55, 71, .08); }
.home-method { display: grid; grid-template-columns: .75fr 1.25fr; gap: clamp(44px, 9vw, 140px); margin-top: 82px; padding-top: 25px; border-top: 1px solid var(--line); }
.home-method h3 { max-width: 390px; font-size: 22px; font-weight: 500; line-height: 1.28; }
.home-method-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.home-method-list > div { display: grid; gap: 9px; min-height: 140px; padding: 18px; background: var(--paper); }
.home-method-list strong { color: var(--teal-dark); font-size: 14px; }
.home-method-list span { color: var(--ink-soft); font-size: 14px; line-height: 1.48; }
.service-visual-section { margin-top: 72px; padding-top: 28px; border-top: 1px solid var(--line); }
.service-visual-intro { display: grid; grid-template-columns: .75fr 1.25fr; gap: 30px; align-items: end; margin-bottom: 24px; }
.service-visual-intro h3 { max-width: 560px; font-size: 23px; font-weight: 500; line-height: 1.25; }
.service-visual-intro p:last-child { max-width: 390px; margin: 0; color: var(--ink-soft); font-size: 14px; line-height: 1.5; }
.service-visual-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.service-visual-card { overflow: hidden; background: var(--paper); border: 1px solid var(--line); }
.service-visual-card img { width: 100%; height: auto; aspect-ratio: auto; object-fit: contain; background: #eef4f6; }
.service-visual-card > div { padding: 17px 17px 20px; }
.service-visual-card h3 { margin-bottom: 8px; font-size: 16px; line-height: 1.3; }
.service-visual-card p { margin: 0; color: var(--ink-soft); font-size: 14px; line-height: 1.5; }

/* Technology uses an engineering blueprint rhythm: layers first, then the tools that support each layer. */
.technology-page, .applications-page { padding-block: 92px 116px; }
.technology-layers { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; margin-top: 46px; background: var(--line); border: 1px solid var(--line); }
.technology-layers article { min-height: 176px; display: grid; align-content: start; gap: 13px; padding: 24px 22px 27px; background: var(--paper); border-top: 3px solid var(--teal); }
.technology-layers article:nth-child(2) { border-top-color: #4d9bb0; }
.technology-layers article:nth-child(3) { border-top-color: #5f819b; }
.technology-layers article:nth-child(4) { border-top-color: var(--amber); }
.technology-layers strong { font-family: Baskerville, "Iowan Old Style", Georgia, "Times New Roman", serif; font-size: 27px; font-weight: 400; }
.technology-layers span { color: var(--ink-soft); font-size: 14px; line-height: 1.55; }
.technology-heading, .evidence-heading { margin-top: 86px; padding-top: 26px; border-top: 1px solid var(--line); }
.technology-heading h2, .evidence-heading h2 { max-width: 660px; margin: 0; font-family: Baskerville, "Iowan Old Style", Georgia, "Times New Roman", serif; font-size: clamp(30px, 3.2vw, 44px); font-weight: 400; line-height: 1.1; }
.technology-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-top: 28px; }
.technology-grid article { overflow: hidden; background: var(--paper); border: 1px solid var(--line); }
.technology-grid img { width: 100%; height: auto; aspect-ratio: auto; object-fit: contain; background: #eef4f6; }
.technology-grid article > div { padding: 16px 17px 19px; }
.technology-grid h3 { margin-bottom: 8px; font-size: 17px; font-weight: 650; }
.technology-grid p { margin: 0; color: var(--ink-soft); font-size: 14px; line-height: 1.5; }
.validation-phases { display: grid; gap: 1px; margin-top: 46px; background: var(--line); border: 1px solid var(--line); }
.validation-phases article { display: grid; grid-template-columns: minmax(0, .93fr) minmax(0, 1.07fr); min-height: 290px; background: var(--paper); }
.validation-phases article:nth-child(even) { grid-template-columns: minmax(0, 1.07fr) minmax(0, .93fr); }
.validation-phases article:nth-child(even) img { order: 2; }
.validation-phases img { width: 100%; height: auto; min-height: 290px; object-fit: contain; background: #eef4f6; }
.validation-phases article > div { display: grid; align-content: center; gap: 12px; padding: 34px clamp(24px, 4vw, 54px); }
.validation-phases article > div > span { color: var(--teal-dark); font-size: 12px; font-weight: 750; letter-spacing: .13em; text-transform: uppercase; }
.validation-phases h2 { max-width: 420px; margin: 0; font-family: Baskerville, "Iowan Old Style", Georgia, "Times New Roman", serif; font-size: clamp(26px, 3vw, 38px); font-weight: 400; line-height: 1.08; }
.validation-phases p { max-width: 470px; margin: 0; color: var(--ink-soft); font-size: 14px; line-height: 1.6; }
.evidence-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 28px; }
.evidence-grid article { overflow: hidden; background: var(--paper); border: 1px solid var(--line); }
.evidence-grid img { width: 100%; height: auto; aspect-ratio: auto; object-fit: contain; background: #eef4f6; }
.evidence-grid h3 { margin: 16px 17px 8px; font-size: 17px; font-weight: 650; }
.evidence-grid p { margin: 0; padding: 0 17px 20px; color: var(--ink-soft); font-size: 14px; line-height: 1.55; }

@media (max-width: 980px) {
  .hero { min-height: 570px; }
  .hero-visual { min-height: 570px; }
  .hero-content { width: min(42%, 430px); padding-inline: 30px; }
  .home-overview-grid { grid-template-columns: 1fr; gap: 44px; }
  .home-overview-intro { grid-template-columns: 1fr; gap: 18px; }
  .catalog-heading { grid-template-columns: 1fr; gap: 18px; }
  .catalog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .product-hero { grid-template-columns: 1fr; min-height: 0; gap: 36px; }
  .product-detail-grid { grid-template-columns: 1fr; }
  .solution-hero { grid-template-columns: 1fr; min-height: 0; gap: 36px; }
  .solution-detail-grid { grid-template-columns: 1fr; }
  .home-preview-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-method { grid-template-columns: 1fr; gap: 30px; }
  .service-visual-intro { grid-template-columns: 1fr; gap: 14px; }
  .service-visual-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .technology-layers { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .technology-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .validation-phases article, .validation-phases article:nth-child(even) { grid-template-columns: 1fr; }
  .validation-phases article:nth-child(even) img { order: 0; }
  .validation-phases img { min-height: 250px; max-height: 340px; }
  .evidence-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .industrial-evidence { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .vision-evidence-heading { grid-template-columns: 1fr; gap: 14px; }
  .vision-evidence-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 720px) {
  .hero { width: calc(100% - 36px); margin-top: 14px; min-height: 0; }
  .hero-visual { height: auto; min-height: 0; aspect-ratio: 16 / 9; }
  .hero-content { position: relative; inset: auto; width: 100%; min-height: 0; padding: 30px 22px 28px; background: rgba(247,250,251,.68); border-left: 0; border-top: 1px solid rgba(255,255,255,.72); }
  .home-overview { padding-block: 70px 78px; }
  .home-overview-links { grid-template-columns: 1fr; }
  .home-overview-intro h2 { font-size: clamp(28px, 7vw, 35px); }
  .catalog-page { padding-block: 72px 84px; }
  .catalog-heading h1 { font-size: clamp(34px, 10vw, 45px); }
  .catalog-heading > p:last-child { font-size: 14px; }
  .catalog-grid { grid-template-columns: 1fr; gap: 14px; }
  .catalog-card { display: grid; grid-template-columns: 1fr; grid-template-rows: auto 1fr; }
  .catalog-card img { height: 190px; min-height: 0; }
  .catalog-card > div { padding: 16px 15px 17px; }
  .catalog-card h2 { font-size: 19px; }
  .product-page { padding-bottom: 82px; }
  .product-hero { padding-block: 54px 58px; }
  .product-hero-image { width: min(100%, 360px); justify-self: start; }
  .product-hero-image img { height: 250px; }
  .product-hero-copy h1 { font-size: clamp(37px, 11vw, 52px); }
  .product-statement { font-size: 21px; }
  .product-description { font-size: 14px; }
  .product-detail-grid { margin-top: 48px; }
  .product-detail-grid article { min-height: 0; padding: 22px 20px 25px; }
  .product-detail-media, .solution-detail-media { margin: -22px -20px 19px; }
  .product-detail-media img, .solution-detail-media img { height: 160px; }
  .product-evidence { margin-top: 48px; }
  .product-evidence-grid { grid-template-columns: 1fr; }
  .solution-page { padding-bottom: 82px; }
  .solution-hero { padding-block: 54px 58px; }
  .solution-hero-image { width: min(100%, 360px); justify-self: start; }
  .solution-hero-image img { height: 250px; }
  .solution-hero h1 { font-size: clamp(37px, 11vw, 52px); }
  .solution-statement { font-size: 21px; }
  .solution-challenge { font-size: 14px; }
  .solution-detail-grid { margin-top: 48px; }
  .solution-detail-grid article { min-height: 0; padding: 22px 20px 25px; }
  .home-preview { margin-top: 62px; }
  .home-preview-heading { display: block; }
  .home-preview-heading p:last-child { margin-top: 12px; }
  .home-preview-grid { grid-template-columns: 1fr; gap: 14px; }
  .preview-card { grid-template-columns: 1fr; grid-template-rows: auto 1fr; }
  .preview-card img { height: 180px; min-height: 0; }
  .preview-card > div { min-height: 0; padding: 16px 30px 16px 15px; }
  .preview-card strong { font-size: 14px; }
  .preview-card span { font-size: 14px; }
  .home-method { margin-top: 62px; }
  .home-method-list { grid-template-columns: 1fr; }
  .home-method-list > div { min-height: 0; }
  .service-list { grid-template-columns: 1fr; gap: 14px; }
  .engineering-overview .section-intro { display: block; }
  .engineering-overview .section-intro .image-panel-engineering { width: 100%; max-width: 520px; margin-top: 22px; justify-self: start; }
  .engineering-overview .service-list { grid-template-columns: 1fr; margin-top: 30px; }
  .service-row img { height: 170px; }
  .service-visual-section { margin-top: 56px; }
  .service-visual-grid { grid-template-columns: 1fr; gap: 14px; }
  .service-visual-card { display: block; }
  .service-visual-card img { height: auto; aspect-ratio: auto; min-height: 0; }
  .service-visual-card > div { padding: 15px; }
  .legacy-specs { grid-template-columns: 1fr; gap: 14px; margin-top: 62px; }
  .legacy-heading { display: block; }
  .legacy-heading p:last-child { max-width: 360px; margin-top: 10px; }
  .legacy-detail { padding-inline: 15px; }
  .legacy-detail summary { padding-block: 18px; font-size: 17px; }
  .legacy-detail-media { width: 100%; }
  .legacy-detail-media img { height: 170px; }
  .technology-page, .applications-page { padding-block: 72px 84px; }
  .technology-layers { grid-template-columns: 1fr; margin-top: 34px; }
  .technology-layers article { min-height: 0; padding: 20px 18px 22px; }
  .technology-layers strong { font-size: 24px; }
  .technology-heading, .evidence-heading { margin-top: 62px; }
  .technology-grid { grid-template-columns: 1fr; gap: 14px; margin-top: 20px; }
  .technology-grid article { display: grid; grid-template-columns: 42% 58%; }
  .technology-grid img { height: 100%; aspect-ratio: auto; min-height: 150px; }
  .technology-grid article > div { padding: 15px; }
  .validation-phases { margin-top: 34px; gap: 14px; background: transparent; border: 0; }
  .validation-phases article, .validation-phases article:nth-child(even) { display: grid; grid-template-columns: 42% 58%; min-height: 0; background: var(--paper); border: 1px solid var(--line); }
  .validation-phases article:nth-child(even) img { order: 0; }
  .validation-phases img { min-height: 175px; max-height: none; }
  .validation-phases article > div { gap: 8px; padding: 15px; }
  .validation-phases article > div > span { font-size: 11px; letter-spacing: .09em; }
  .validation-phases h2 { font-size: 21px; }
  .validation-phases p { font-size: 14px; line-height: 1.48; }
  .evidence-grid { grid-template-columns: 1fr; gap: 14px; margin-top: 20px; }
  .evidence-grid article { display: grid; grid-template-columns: 42% 58%; }
  .evidence-grid img { height: 100%; aspect-ratio: auto; min-height: 150px; }
  .evidence-grid h3 { margin: 15px 15px 7px; font-size: 16px; }
  .evidence-grid p { padding: 0 15px 15px; }
  .industrial-evidence { grid-template-columns: 1fr; gap: 14px; margin-top: 36px; }
  .industrial-evidence article { display: grid; grid-template-columns: 42% 58%; }
  .industrial-evidence img { height: 100%; aspect-ratio: auto; min-height: 140px; }
  .vision-evidence { margin-top: 56px; }
  .vision-evidence-grid { grid-template-columns: 1fr; gap: 14px; }
  .vision-evidence-grid article { display: grid; grid-template-columns: 42% 58%; }
  .vision-evidence-grid img { height: 100%; aspect-ratio: auto; min-height: 150px; }
  .vision-evidence-grid article > div { padding: 15px; }
  .hero-content h1 { max-width: 300px; margin-bottom: 14px; font-size: clamp(24px, 6.5vw, 30px); line-height: 1.16; }
  .hero-lede { max-width: 320px; margin-bottom: 18px; font-size: 12.5px; line-height: 1.55; }
  .hero-actions { display: grid; grid-template-columns: 1fr; }
  .hero-actions .button { width: 100%; }
  .hero-footnote { margin-top: 30px; }
  .section { padding-block: 74px; }
}

/* Full-bleed hero pages place the navigation over the opening image. The header
   returns to a quiet, readable surface once the visitor starts scrolling. */
.site-header { position: fixed; inset: 0 0 auto; }

/* The homepage owns the full-bleed opening. Inner business pages use a
   measured, image-led header so their content arrives sooner and stays calm. */
.home-page .hero-content { background: rgba(247, 250, 251, .14); border-left-color: rgba(255, 255, 255, .38); backdrop-filter: blur(7px) saturate(112%); }

/* Technology keeps one visual anchor beside each capability without turning
   the page into a repeated image wall. */
.technology-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 18px; border-block: 1px solid var(--line); }
.technology-grid article,
.technology-grid article:nth-child(4n),
.technology-grid article:nth-last-child(-n + 4) {
  min-height: 116px;
  display: grid;
  grid-template-columns: 124px minmax(0, 1fr);
  align-items: stretch;
  gap: 16px;
  border: 0;
  border-bottom: 1px solid var(--line);
  background: var(--white);
}
.technology-grid article:nth-child(odd) { border-right: 1px solid var(--line); padding-right: 18px; }
.technology-grid article:nth-child(even) { padding-left: 18px; }
.technology-grid article:nth-last-child(-n + 2) { border-bottom: 0; }
.technology-grid img {
  display: block;
  width: 124px;
  height: 84px;
  align-self: center;
  object-fit: contain;
  background: #eef4f6;
  border: 1px solid var(--line);
}
.technology-grid article > div { padding: 18px 0; }
.technology-grid article h3 { margin-bottom: 7px; font-size: 16px; line-height: 1.25; }
.technology-grid article p { margin: 0; color: var(--ink-soft); font-size: 13px; line-height: 1.5; }
.home-page:not(.is-scrolled) .site-header { background: linear-gradient(180deg, rgba(7, 20, 33, .24), rgba(7, 20, 33, .06) 70%, transparent); border-bottom-color: transparent; box-shadow: none; backdrop-filter: none; }

/* The home navigation shares the hero canvas until the user scrolls. This
   removes the visible horizontal band between the opening image and header. */
.home-page:not(.is-scrolled) .site-header { background: transparent; border-bottom-color: transparent; }

/* Inner pages use the generated ultra-wide banners as a quiet evidence strip;
   copy follows below instead of competing beside an oversized image. */
.has-hero:not(.home-page) .hero {
  display: block;
  width: min(1120px, calc(100% - 64px));
  min-height: 0;
  margin: 94px auto 0;
  background: transparent;
  color: var(--ink);
}
.has-hero:not(.home-page) .hero-visual {
  width: 100%;
  height: auto;
  min-height: 0;
  aspect-ratio: auto;
  background: transparent;
}
.has-hero:not(.home-page) .hero-visual img {
  width: 100%;
  height: auto;
  object-fit: contain;
}
.has-hero:not(.home-page) .hero-content {
  position: relative;
  inset: auto;
  width: 100%;
  max-width: 760px;
  padding: 36px 0 42px;
  background: transparent;
  border: 0;
  backdrop-filter: none;
}
.has-hero:not(.home-page) .hero-content h1 { max-width: 720px; }
.has-hero:not(.home-page) .hero-content .hero-lede { max-width: 640px; color: var(--ink-soft); }
.has-hero:not(.home-page) .hero-content .hero-footnote { color: var(--ink-soft); }

@media (max-width: 720px) {
  .has-hero:not(.home-page) .hero { width: calc(100% - 36px); margin-top: 84px; }
  .has-hero:not(.home-page) .hero-content { padding: 28px 0 32px; }
}

/* Final navigation cascade: grouped links remain easy to scan on desktop. */
.site-nav .nav-dropdown { top: 70px; left: 50%; right: auto; transform: translateX(-50%); width: min(540px, calc(100vw - 32px)); grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 16px; background: #071421; border: 1px solid rgba(92, 228, 221, .34); border-top: 3px solid var(--teal); }
.site-nav .nav-dropdown .nav-link { min-height: 76px; padding: 16px; border: 1px solid rgba(92, 228, 221, .34); color: var(--white); font-size: 14px; }
.site-nav .nav-dropdown .nav-link:hover, .site-nav .nav-dropdown .nav-link:focus-visible { border-color: var(--teal); background: rgba(8, 168, 167, .18); }
.site-nav .nav-dropdown .nav-link[aria-current="page"] { background: var(--teal); border-color: var(--teal); color: var(--ink); }

@media (max-width: 1120px) {
  .site-nav .nav-dropdown { top: 70px; grid-template-columns: 1fr; }
}

/* Last-cascade guards: preserve source pixels and the compact About composition. */
.hero-visual img { object-fit: contain; }
.about-page .capability-rail,
.about-page .process-section { display: none; }
.about-page .legacy-card-grid { display: grid; grid-template-columns: 1fr; gap: 0; margin-bottom: 56px; }
.about-page .legacy-card { display: grid; grid-template-columns: minmax(190px, 27%) minmax(0, 1fr); gap: clamp(26px, 5vw, 76px); align-items: start; padding: 28px 0 34px; border: 0; border-top: 1px solid var(--line); background: transparent; }
.about-page .legacy-card:last-child { border-bottom: 1px solid var(--line); }
.about-page .legacy-card > img { width: 100%; height: auto; margin: 0; object-fit: contain; background: transparent; }
.about-page .legacy-card-body { padding: 0; }
.about-page .legacy-card-body h2 { margin-bottom: 14px; font-size: clamp(25px, 2.4vw, 34px); font-weight: 500; }
.about-page .legacy-card-body p, .about-page .legacy-card-body li { font-size: 14px; line-height: 1.62; }
.about-page .who-we-do-rail { gap: 0; border: 0; background: transparent; }
.about-page .who-we-do-rail article { min-height: 0; padding: 24px 24px 20px 0; border-top: 1px solid var(--line); background: transparent; }
.about-page .who-we-do-rail article + article { padding-left: 24px; border-left: 1px solid var(--line); }
.about-page .legacy-detail { border-left: 0; border-right: 0; padding-inline: 0; background: transparent; }
.about-page .legacy-detail summary { font-size: 17px; font-weight: 650; }
.about-page .who-technology-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 40px; }
.about-page .who-technology-grid article { display: grid; grid-template-columns: minmax(170px, 42%) minmax(0, 1fr); gap: 20px; align-items: center; border-top: 1px solid var(--line); padding-top: 18px; }
.about-page .who-technology-grid img { width: 100%; height: auto; margin: 0; object-fit: contain; background: transparent; }
.about-page .who-technology-grid article > div { padding: 0; }

/* Keep Engineering's primary visual comfortably proportioned when its page
   gets a route-specific treatment later, without changing the full-bleed hero. */
.engineering-page .engineering-overview .image-panel-engineering {
  width: min(100%, 440px);
}

/* About discipline summary: whitespace separates the three disciplines more
   quietly than visible divider rules. */
.about-page .who-we-do-rail { column-gap: clamp(28px, 5vw, 72px); }
.about-page .who-we-do-rail article,
.about-page .who-we-do-rail article + article { padding-inline: 0; border-left: 0; border-top: 0; }

/* Careers openings use native disclosure rows so the page stays compact until
   a visitor chooses a role direction. */
.career-openings { margin-top: 78px; }
.career-openings-heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, .55fr); gap: 48px; align-items: end; margin-bottom: 30px; }
.career-openings-heading h2 { max-width: 520px; margin-bottom: 0; }
.career-openings-heading > p { max-width: 390px; margin: 0; color: var(--ink-soft); font-size: 14px; line-height: 1.58; }
.career-opening-list { border-top: 1px solid var(--line); }
.career-opening-list details { border-bottom: 1px solid var(--line); }
.career-opening-list summary { display: grid; grid-template-columns: minmax(130px, .35fr) minmax(260px, 1fr) auto; align-items: center; gap: 24px; padding: 21px 0; cursor: pointer; list-style: none; }
.career-opening-list summary::-webkit-details-marker { display: none; }
.career-opening-list summary span { color: var(--teal-dark); font-size: 11px; font-weight: 750; letter-spacing: .12em; text-transform: uppercase; }
.career-opening-list summary strong { font-size: 18px; line-height: 1.25; }
.career-opening-list summary em { color: var(--ink-soft); font-size: 12px; font-style: normal; }
.career-opening-list summary::after { content: "+"; margin-left: 12px; color: var(--teal-dark); font-size: 22px; font-weight: 400; }
.career-opening-list details[open] summary::after { content: "−"; }
.career-opening-list details > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; padding: 0 0 24px clamp(154px, 16vw, 250px); }
.career-opening-list details > div p { margin: 0; color: var(--ink-soft); font-size: 14px; line-height: 1.58; }
.career-opening-list details > div strong { color: var(--ink); }

@media (max-width: 720px) {
  .career-openings { margin-top: 58px; }
  .career-openings-heading { grid-template-columns: 1fr; gap: 12px; }
  .career-opening-list summary { grid-template-columns: 1fr auto; gap: 7px 14px; }
  .career-opening-list summary span { grid-column: 1 / -1; }
  .career-opening-list summary strong { font-size: 16px; }
  .career-opening-list summary em { display: none; }
  .career-opening-list details > div { grid-template-columns: 1fr; gap: 12px; padding: 0 0 20px; }
}

/* Match the reference navigation's open-panel rhythm while retaining the
   required REMP destinations. */
.site-nav .nav-dropdown { top: 70px; left: 50%; right: auto; transform: translateX(-50%); width: min(540px, calc(100vw - 32px)); grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 16px; background: #071421; border: 1px solid rgba(92, 228, 221, .34); border-top: 3px solid var(--teal); }
.site-nav .nav-dropdown .nav-link { min-height: 76px; padding: 16px; border: 1px solid rgba(92, 228, 221, .34); color: var(--white); font-size: 14px; }
.site-nav .nav-dropdown .nav-link:hover, .site-nav .nav-dropdown .nav-link:focus-visible { border-color: var(--teal); background: rgba(8, 168, 167, .18); }
.site-nav .nav-dropdown .nav-link[aria-current="page"] { background: var(--teal); border-color: var(--teal); color: var(--ink); }
.home-overview h2 { font-size: clamp(30px, 3vw, 42px); }

@media (max-width: 1120px) {
  .site-nav .nav-dropdown { top: 70px; grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
  .about-page .legacy-card { grid-template-columns: 1fr; gap: 20px; padding-block: 24px 30px; }
  .about-page .legacy-card > img { width: min(220px, 100%); }
  .about-page .who-we-do-rail { grid-template-columns: 1fr; }
  .about-page .who-we-do-rail article + article { padding-left: 0; border-left: 0; }
  .about-page .who-technology-grid { grid-template-columns: 1fr; gap: 22px; }
  .about-page .who-technology-grid article { grid-template-columns: minmax(130px, 38%) minmax(0, 1fr); gap: 16px; }
}

/* The global navigation follows the compact iENSO pattern: a quiet white bar,
   restrained labels, and a single dark panel for grouped destinations. */
.site-nav { gap: clamp(12px, 1.8vw, 26px); font-size: 12px; }
.nav-group { position: relative; }
.nav-group-trigger { display: inline-flex; align-items: center; gap: 7px; padding: 8px 0; border: 0; border-bottom: 2px solid transparent; background: transparent; color: inherit; font-size: inherit; font-weight: 650; cursor: pointer; }
.nav-group-trigger:hover, .nav-group-trigger:focus-visible, .nav-group.is-open .nav-group-trigger { border-color: var(--teal); }
.nav-group-trigger span { color: var(--teal-dark); font-size: 15px; line-height: 1; }
.nav-dropdown { position: absolute; top: calc(100% + 1px); left: 50%; transform: translateX(-50%); display: none; grid-template-columns: repeat(2, minmax(190px, 1fr)); width: min(510px, 76vw); padding: 18px; background: #071421; border-top: 3px solid var(--teal); box-shadow: 0 18px 34px rgba(7, 20, 33, .2); }
.nav-group:hover .nav-dropdown, .nav-group:focus-within .nav-dropdown, .nav-group.is-open .nav-dropdown { display: grid; }
.nav-dropdown .nav-link { display: grid; gap: 6px; min-height: 78px; padding: 15px 16px; border: 1px solid rgba(92, 228, 221, .38); color: var(--white); font-size: 14px; font-weight: 650; }
.nav-dropdown .nav-link:hover, .nav-dropdown .nav-link:focus-visible { background: rgba(8, 168, 167, .18); border-color: var(--teal); }
.nav-dropdown .nav-link[aria-current="page"] { background: var(--teal); border-color: var(--teal); color: var(--ink); }
.site-nav .nav-contact { padding: 11px 14px; }

/* About is an editorial company page, not a second homepage. */
.about-page .about-intro { padding-block: 104px 76px; }
.about-page .legacy-about { padding-block: 64px 110px; }
.about-page .legacy-about-copy { max-width: 1080px; margin-inline: auto; }
.about-page .legacy-detail { border-left: 0; border-right: 0; padding-inline: 0; background: transparent; }
.about-page .legacy-detail summary { font-size: 17px; font-weight: 650; }
.about-page .who-we-do-rail { gap: 0; border: 0; background: transparent; }
.about-page .who-we-do-rail article { min-height: 0; padding: 24px 24px 20px 0; border-top: 1px solid var(--line); background: transparent; }
.about-page .who-we-do-rail article + article { padding-left: 24px; border-left: 1px solid var(--line); }

@media (max-width: 720px) {
  .nav-dropdown { width: calc(100vw - 36px); grid-template-columns: 1fr; left: 0; transform: none; }
  .about-page .who-we-do-rail { grid-template-columns: 1fr; }
  .about-page .who-we-do-rail article + article { padding-left: 0; border-left: 0; }
}

/* Refinement pass: let whitespace, image evidence, and short baselines carry
   hierarchy instead of stacking boxed panels. */
.home-preview-grid { gap: 30px; border: 0; }
.preview-card { min-height: 0; border: 0; border-right: 0; background: transparent; }
.preview-card > div { min-height: 0; padding: 0 28px 0 0; }
.preview-card:hover, .preview-card:focus-visible { background: transparent; box-shadow: none; }
.home-method { margin-top: 76px; }
.home-method-list { gap: 0 30px; background: transparent; border: 0; }
.home-method-list > div { min-height: 0; padding: 0 24px 0 0; background: transparent; border-right: 1px solid var(--line); }
.home-method-list > div:last-child { border-right: 0; }
.home-field-notes { margin-top: 82px; padding-top: 26px; border-top: 1px solid var(--line); }
.home-field-heading { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 24px; }
.home-field-heading p:last-child { max-width: 410px; margin: 0 0 3px; color: var(--ink-soft); font-size: 14px; line-height: 1.5; }
.home-field-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.home-field-grid figure { margin: 0; }
.home-field-grid img { width: 100%; height: auto; object-fit: contain; }
.home-field-grid figcaption { display: grid; gap: 7px; padding-top: 13px; }
.home-field-grid strong { font-size: 15px; }
.home-field-grid span { color: var(--ink-soft); font-size: 13px; line-height: 1.5; }

.technology-grid { gap: 0; border: 0; }
.technology-grid article,
.technology-grid article:nth-child(4n),
.technology-grid article:nth-last-child(-n + 4) { border: 0; border-bottom: 1px solid var(--line); background: transparent; }
.technology-grid article:nth-child(odd), .technology-grid article:nth-child(even) { padding-inline: 0 24px; }
.technology-grid article:nth-child(even) { padding-left: 24px; }
.technology-grid article:nth-last-child(-n + 2) { border-bottom: 0; }
.technology-grid img { background: transparent; border: 0; }
.technology-grid article > div { padding-block: 18px; }

.industrial-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr); gap: clamp(36px, 6vw, 76px); align-items: start; }
.industrial-grid .image-panel-tall { width: 100%; min-height: 0; aspect-ratio: 3 / 2; background: transparent; border: 0; }
.industrial-grid .image-panel-tall img { width: 100%; height: auto; object-fit: contain; }
.industrial-copy { margin-top: 0; }
.industrial-copy .lead-on-ink { margin-bottom: 27px; }
.industrial-copy .feature-list { display: grid; gap: 0; background: transparent; border: 0; }
.industrial-copy .feature-list > div { padding: 17px 0; background: transparent; border-top: 1px solid var(--line); }
.industrial-copy .feature-list > div:last-child { border-bottom: 1px solid var(--line); }
.industrial-evidence { gap: 28px; border: 0; background: transparent; }
.industrial-evidence article { border: 0; background: transparent; }
.industrial-evidence article > div { padding: 13px 0 0; }
.industrial-evidence img { background: transparent; }

.about-intro { padding-block: 92px 70px; }
.about-intro-grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(260px, .65fr); gap: clamp(42px, 8vw, 120px); align-items: end; }
.about-intro h1 { max-width: 720px; margin: 0; font-family: Baskerville, "Iowan Old Style", Georgia, "Times New Roman", serif; font-size: clamp(34px, 3.5vw, 48px); font-weight: 400; line-height: 1.08; }
.about-intro-grid > p { max-width: 390px; margin: 0 0 5px; color: var(--ink-soft); font-size: 16px; line-height: 1.6; }
.about-page .legacy-about { padding-top: 82px; }
.about-page .process-layout h2 { max-width: 430px; font-size: clamp(30px, 3vw, 40px); }
.about-page .legacy-about-grid > .section-intro { display: none; }
.about-page .legacy-about { padding-top: 70px; }
.about-page .legacy-detail-media { display: none; }
.about-page .legacy-card-grid { display: grid; grid-template-columns: 1fr; gap: 0; margin-bottom: 56px; }
.about-page .legacy-card { display: grid; grid-template-columns: minmax(190px, 27%) minmax(0, 1fr); gap: clamp(26px, 5vw, 76px); align-items: start; padding: 28px 0 34px; border: 0; border-top: 1px solid var(--line); background: transparent; }
.about-page .legacy-card:last-child { border-bottom: 1px solid var(--line); }
.about-page .legacy-card > img { width: 100%; height: auto; margin: 0; object-fit: contain; background: transparent; }
.about-page .legacy-card-body { padding: 0; }
.about-page .legacy-card-body h2 { margin-bottom: 14px; font-size: clamp(25px, 2.4vw, 34px); font-weight: 500; }
.about-page .legacy-card-body p, .about-page .legacy-card-body li { font-size: 14px; line-height: 1.62; }
.about-page .who-technology-grid { gap: 24px; }
.about-page .who-technology-grid article { border: 0; background: transparent; }
.about-page .who-technology-grid img { width: 96px; height: auto; margin-bottom: 12px; }

/* About technology evidence is intentionally larger than an icon: it should
   read as a paired visual reference beside the capability copy. */
.about-page .who-technology-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 40px; }
.about-page .who-technology-grid article { display: grid; grid-template-columns: minmax(170px, 42%) minmax(0, 1fr); gap: 20px; align-items: center; border-top: 1px solid var(--line); padding-top: 18px; }
.about-page .who-technology-grid img { width: 100%; height: auto; margin: 0; object-fit: contain; background: transparent; }
.about-page .who-technology-grid article > div { padding: 0; }
@media (max-width: 720px) {
  .about-page .who-technology-grid { grid-template-columns: 1fr; gap: 22px; }
  .about-page .who-technology-grid article { grid-template-columns: minmax(130px, 38%) minmax(0, 1fr); gap: 16px; }
}

/* Process labels use verbs and role names; ordinal badges are visual noise. */
.who-process > div > span:first-child { display: none; }
.who-process > div:not(:first-child) { grid-template-columns: 1fr; }
.inspection-track > div > span { color: var(--teal-dark); font-size: 11px; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }

@media (max-width: 720px) {
  .home-field-heading { display: grid; gap: 14px; }
  .home-field-grid { grid-template-columns: 1fr; gap: 30px; }
  .home-method-list { grid-template-columns: 1fr; gap: 22px; }
  .home-method-list > div { padding: 0 0 22px; border-right: 0; border-bottom: 1px solid var(--line); }
  .home-method-list > div:last-child { padding-bottom: 0; border-bottom: 0; }
  .technology-grid article:nth-child(odd), .technology-grid article:nth-child(even) { padding-inline: 0; }
  .technology-grid article:nth-last-child(-n + 2) { border-bottom: 1px solid var(--line); }
  .technology-grid article:last-child { border-bottom: 0; }
  .industrial-grid { grid-template-columns: 1fr; gap: 30px; }
  .industrial-grid .image-panel-tall { aspect-ratio: 3 / 2; }
  .industrial-copy .feature-list { grid-template-columns: 1fr; gap: 0; }
  .industrial-evidence { grid-template-columns: 1fr 1fr; gap: 24px 18px; }
  .about-intro { padding-block: 68px 52px; }
  .about-intro-grid { grid-template-columns: 1fr; gap: 20px; }
  .about-intro h1 { font-size: clamp(32px, 9vw, 46px); }
  .about-page .legacy-card-grid { grid-template-columns: 1fr; }
  .about-page .legacy-card { grid-template-columns: 1fr; gap: 20px; padding-block: 24px 30px; }
  .about-page .legacy-card > img { width: min(220px, 100%); }
}

/* Final visibility guard: the technology index keeps its paired thumbnails
   visible after the compact-gallery rules above. */
.technology-grid img { display: block; width: 124px; height: 84px; object-fit: contain; }
@media (max-width: 720px) {
  .technology-grid img { width: 104px; height: 72px; }
}
.has-hero:not(.home-page) .site-header { background: rgba(255, 255, 255, .97); border-bottom-color: var(--line); box-shadow: 0 8px 22px rgba(13, 27, 42, .06); backdrop-filter: blur(14px); }
.has-hero:not(.home-page) .site-nav > .nav-link,
.has-hero:not(.home-page) .site-nav .nav-group-trigger,
.has-hero:not(.home-page) .brand-copy strong { color: var(--ink); text-shadow: none; }
.has-hero:not(.home-page) .brand-copy span { color: var(--ink-soft); text-shadow: none; }
.has-hero:not(.home-page) .brand-mark { filter: none; background: transparent; }
.has-hero:not(.home-page) .site-nav .nav-group-trigger span { color: var(--teal-dark); }
.has-hero:not(.home-page) .hero { width: min(1120px, calc(100% - 64px)); min-height: 440px; margin: 94px auto 0; }
.has-hero:not(.home-page) .hero-visual { height: 440px; min-height: 0; aspect-ratio: auto; }
.has-hero:not(.home-page) .hero-content { width: min(42%, 440px); padding: 42px clamp(28px, 4vw, 54px); }

@media (max-width: 720px) {
  .has-hero:not(.home-page) .hero { width: calc(100% - 36px); min-height: 0; margin: 84px auto 0; }
  .has-hero:not(.home-page) .hero-visual { min-height: 0; }
  .has-hero:not(.home-page) .hero-content { width: 100%; padding: 30px 22px 28px; }
}

.home-page:not(.is-scrolled) .site-header { background: linear-gradient(180deg, rgba(7, 20, 33, .24), rgba(7, 20, 33, .06) 70%, transparent); border-bottom-color: transparent; box-shadow: none; backdrop-filter: none; }
.has-hero:not(.is-scrolled) .site-nav > .nav-link,
.has-hero:not(.is-scrolled) .site-nav .nav-group-trigger,
.has-hero:not(.is-scrolled) .brand-copy strong,
.has-hero:not(.is-scrolled) .brand-copy span { text-shadow: 0 1px 12px rgba(7, 20, 33, .55); }
.has-hero .hero,
.has-hero .hero-visual { width: 100%; min-height: 100svh; margin-top: 0; }
.has-hero:not(.is-scrolled) .site-header { background: linear-gradient(180deg, rgba(7, 20, 33, .52), rgba(7, 20, 33, .16) 64%, transparent); }
body:not(.has-hero) main { padding-top: 70px; }

@media (max-width: 720px) {
  .has-hero .hero,
  .has-hero .hero-visual { min-height: 0; }
  body:not(.has-hero) main { padding-top: 70px; }
}

/* The primary navigation is intentionally flat and limited to the approved site scope. */
.site-nav {
  text-transform: none;
  letter-spacing: 0;
  align-items: center;
  gap: 0;
  font-size: 12px;
}

.brand { min-width: 180px; }

.site-nav > .nav-link,
.site-nav .nav-group-trigger {
  display: inline-flex;
  align-items: center;
  min-height: 70px;
  padding: 0 15px;
  border: 0;
  border-bottom: 4px solid transparent;
  background: transparent;
  color: var(--ink);
  font-size: 12px;
  font-weight: 650;
  letter-spacing: 0;
  text-transform: none;
  white-space: nowrap;
  cursor: pointer;
}

.site-nav > .nav-link:hover,
.site-nav > .nav-link:focus-visible,
.site-nav .nav-group-trigger:hover,
.site-nav .nav-group-trigger:focus-visible,
.site-nav .nav-group.is-open .nav-group-trigger,
.site-nav .nav-group.is-current .nav-group-trigger {
  border-bottom-color: var(--teal);
}

.site-nav .nav-group-trigger span {
  margin-left: 7px;
  color: var(--teal-dark);
  font-size: 15px;
  line-height: 1;
  transition: transform .2s ease;
}

.site-nav .nav-group.is-open .nav-group-trigger span {
  transform: rotate(180deg);
}

.site-nav .nav-dropdown {
  position: absolute;
  top: 70px;
  left: 50%;
  right: auto;
  transform: translateX(-50%);
  z-index: 12;
  display: none;
  width: min(420px, calc(100vw - 32px));
  min-width: 0;
  grid-template-columns: 1fr;
  padding: 10px;
  background: var(--ink);
  border: 1px solid rgba(255, 255, 255, .16);
  box-shadow: 0 18px 35px rgba(13, 27, 42, .18);
}

.site-nav .nav-group:hover .nav-dropdown,
.site-nav .nav-group:focus-within .nav-dropdown,
.site-nav .nav-group.is-open .nav-dropdown {
  display: grid;
  gap: 2px;
}

.site-nav .nav-dropdown .nav-link {
  display: block;
  padding: 15px 16px;
  border: 1px solid transparent;
  color: var(--white);
  font-size: 13px;
  line-height: 1.35;
  white-space: normal;
}

.site-nav .nav-dropdown .nav-link:hover,
.site-nav .nav-dropdown .nav-link:focus-visible,
.site-nav .nav-dropdown .nav-link[aria-current="page"] {
  border-color: var(--teal);
  background: rgba(8, 168, 167, .16);
  color: var(--white);
}

.site-nav .nav-contact {
  min-height: 70px;
  padding-inline: 21px;
  border: 0;
  border-bottom-color: var(--teal);
  background: var(--teal);
  color: var(--white);
}

.site-nav .nav-contact:hover,
.site-nav .nav-contact:focus-visible {
  border-bottom-color: var(--teal-dark);
  background: var(--teal-dark);
  color: var(--white);
}

.site-nav > a {
  white-space: nowrap;
}

#unmanned-factory,
#remote-control {
  scroll-margin-top: 96px;
}

@media (max-width: 980px) {
  .site-nav { gap: 14px; font-size: 12px; }
  .rail-grid { grid-template-columns: repeat(2, 1fr); }
  .rail-grid > *:nth-child(2n) { border-right: 0; }
  .rail-intro { grid-column: 1 / -1; border-bottom: 1px solid var(--line); }
  .split-layout, .split-reverse, .industrial-grid, .building-grid, .process-layout, .contact-layout { grid-template-columns: 1fr; }
  .who-technology-heading { grid-template-columns: 1fr; gap: 14px; }
  .who-technology-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .section-intro { max-width: 700px; }
  .building-topics { grid-column: auto; }
  .building-evidence { grid-column: auto; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-note { grid-column: 1 / -1; justify-self: start; text-align: left; }
}

@media (max-width: 720px) {
  .page-shell, .nav-shell { width: min(100% - 36px, var(--max)); }
  .site-header { position: relative; }
  .nav-shell { min-height: 70px; }
  .menu-toggle { display: block; }
  .site-nav { display: none; position: absolute; top: 70px; left: 0; right: 0; padding: 12px 18px 20px; background: var(--white); border-bottom: 1px solid var(--line); box-shadow: 0 10px 20px rgba(13, 27, 42, .08); }
  .site-nav.is-open { display: grid; }
  .site-nav a { padding: 12px 0; }
  .site-nav .nav-contact { padding: 12px 14px; }
  .nav-group-trigger { width: 100%; justify-content: space-between; padding: 14px 0; border-bottom: 1px solid var(--line); }
  .nav-dropdown { position: static; left: auto; right: auto; transform: none; width: auto; display: none; grid-template-columns: 1fr; border: 0; border-bottom: 1px solid var(--line); box-shadow: none; }
  .nav-group:hover .nav-dropdown, .nav-group:focus-within .nav-dropdown { display: none; }
  .nav-group.is-open .nav-dropdown { display: grid; }
  .nav-dropdown-intro { padding: 15px 0 13px; background: transparent; border-right: 0; }
  .nav-dropdown-intro p { max-width: 350px; }
  .nav-dropdown-links { grid-template-columns: 1fr; padding: 0 0 8px 12px; }
  .nav-dropdown-links a { padding: 10px 0; }
  .nav-dropdown-links a strong { font-size: 14px; }
  .nav-dropdown-links a span { font-size: 13px; }
  .brand { min-width: auto; }
  .hero { min-height: 0; }
  .hero-content { padding-block: 30px 28px; }
  .hero-footnote { margin-top: 30px; }
  .section { padding-block: 78px; }
  .rail-grid > * { min-height: 92px; padding: 18px 14px; }
  .section-heading-row { display: block; margin-bottom: 38px; }
  .legacy-heading { display: block; }
  .legacy-heading p:last-child { margin-top: -8px; }
  .legacy-body { padding-right: 0; }
  .who-we-do-rail { grid-template-columns: 1fr; }
  .legacy-card-grid { grid-template-columns: 1fr; gap: 20px; }
  .legacy-card > img { height: auto; aspect-ratio: 3 / 2; object-fit: contain; }
  .who-technology-grid { grid-template-columns: 1fr; gap: 14px; }
  .who-technology-grid article { display: block; }
  .who-technology-grid img { height: auto; aspect-ratio: auto; object-fit: contain; }
  .who-technology-grid article > div { padding: 15px; }
  .who-process > div:not(:first-child) { grid-template-columns: 1fr; gap: 5px; }
  .section-heading-note { margin-top: 0; }
  .feature-list { grid-template-columns: 1fr; }
  .image-panel-tall, .image-panel-wide, .image-panel-building { min-height: 0; }
  .image-panel-engineering { min-height: 0; margin-top: 22px; }
  .inspection-track > div { grid-template-columns: 60px 1fr; }
  .inspection-track small { grid-column: 2; }
  .building-topics { grid-template-columns: 1fr; }
  .building-topics > div { border-right: 0; border-bottom: 1px solid #afcbd4; }
  .building-topics > div:last-child { border-bottom: 0; }
  .building-evidence { grid-template-columns: 1fr; gap: 14px; }
  .building-evidence article { display: block; }
  .building-evidence img { height: auto; aspect-ratio: auto; min-height: 0; }
  .building-evidence article > div { padding: 15px; }
  .contact-form { grid-template-columns: 1fr; }
  .contact-form label:nth-of-type(3), .contact-form label:nth-of-type(4), .contact-form button, .form-status { grid-column: auto; }
  .contact-form button { width: 100%; }
  .footer-grid { grid-template-columns: 1fr; gap: 25px; }
}

/* Keep the grouped navigation usable on tablets before the content grids collapse. */
@media (max-width: 1120px) {
  .site-header { position: relative; }
  .menu-toggle { display: block; }
  .site-nav { display: none; position: absolute; top: 70px; left: 0; right: 0; z-index: 15; padding: 12px 18px 20px; background: var(--white); border-bottom: 1px solid var(--line); box-shadow: 0 10px 20px rgba(13, 27, 42, .08); }
  .site-nav.is-open { display: grid; }
  .site-nav a { padding: 12px 0; }
  .site-nav .nav-contact { padding: 12px 14px; }
  .nav-group-trigger { width: 100%; justify-content: space-between; padding: 14px 0; border-bottom: 1px solid var(--line); }
  .nav-dropdown { position: static; left: auto; right: auto; transform: none; width: auto; display: none; grid-template-columns: 1fr; border: 0; border-bottom: 1px solid var(--line); box-shadow: none; }
  .nav-group:hover .nav-dropdown, .nav-group:focus-within .nav-dropdown { display: none; }
  .nav-group.is-open .nav-dropdown { display: grid; }
  .nav-dropdown-intro { padding: 15px 0 13px; background: transparent; border-right: 0; }
  .nav-dropdown-intro p { max-width: 350px; }
  .nav-dropdown-links { grid-template-columns: 1fr; padding: 0 0 8px 12px; }
  .nav-dropdown-links a { padding: 10px 0; }
  .nav-dropdown-links a strong { font-size: 14px; }
  .nav-dropdown-links a span { font-size: 13px; }
}

/* Source-preserving image policy: CSS may resize images to fit the layout, but never crops or distorts them. */
img,
.service-row img,
.legacy-detail-media img,
.legacy-card > img,
.who-technology-grid img,
.catalog-card img,
.product-hero-image img,
.product-detail-media img,
.solution-hero-image img,
.solution-detail-media img,
.preview-card img,
.service-visual-card img,
.technology-grid img,
.validation-phases img,
.evidence-grid img,
.industrial-evidence img,
.vision-evidence-grid img,
.building-evidence img,
.contact-image img {
  height: auto;
  max-height: none;
  min-height: 0;
  aspect-ratio: auto;
  object-fit: contain;
  object-position: center;
}

/* The 16:9 source defines the hero frame, so its complete image remains visible at every width. */
.hero-visual {
  height: auto;
  min-height: 0;
  aspect-ratio: 16 / 9;
}

.hero-visual img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
}

/* Keep repeated card frames aligned while preserving every source pixel inside the frame. */
.service-row img,
.legacy-card > img,
.catalog-card img,
.preview-card img,
.product-detail-media img,
.solution-detail-media img {
  height: auto;
  min-height: 0;
  aspect-ratio: auto;
  object-fit: contain;
  background: #eef4f6;
}

/* Detail-page evidence stays legible without becoming a full-width billboard. */
.product-detail-media,
.solution-detail-media {
  display: grid;
  place-items: center;
  min-height: 230px;
  overflow: hidden;
}

.product-detail-media img,
.solution-detail-media img {
  width: auto;
  max-width: 100%;
  max-height: 230px;
  margin-inline: auto;
}

@media (max-width: 720px) {
  .product-detail-media,
  .solution-detail-media {
    min-height: 170px;
  }

  .product-detail-media img,
  .solution-detail-media img {
    max-height: 170px;
  }
}

/* Final cascade guard: mobile breakpoint rules above must not push the
   full-bleed opening image below the navigation. */
.site-header { position: fixed; inset: 0 0 auto; }

/* Brand mark variants: transparent on the opening image, full colour after
   the header settles onto its readable white surface. */
.brand-mark { background: transparent; }
.has-hero:not(.is-scrolled) .brand-mark {
  background: transparent;
  filter: grayscale(1) brightness(0) invert(1);
}
.has-hero.is-scrolled .brand-mark { filter: none; }
.hero-visual img { object-fit: contain; }
.hero-content { background: rgba(247, 250, 251, .78); }

/* Keep the homepage index useful without repeating four large images already
   used as evidence on the destination pages. */
.home-preview-grid { gap: 30px; border: 0; }
.preview-card { min-height: 0; border: 0; border-right: 0; background: transparent; }
.preview-card:last-child { border-right: 0; }
.preview-card img { display: none; }
.preview-card > div { min-height: 0; padding: 0 28px 0 0; }

/* The technology index is an information matrix, not a gallery. */
.technology-grid { gap: 0; border: 0; }
.technology-grid article { min-height: 116px; border: 0; border-bottom: 1px solid var(--line); background: transparent; }
.technology-grid article:nth-child(4n) { border-right: 0; }
.technology-grid article:nth-last-child(-n + 4) { border-bottom: 1px solid var(--line); }
.technology-grid img { display: block; width: 124px; height: 84px; aspect-ratio: auto; object-fit: contain; }
.technology-grid article > div { padding: 18px 0; }

/* Industrial evidence reads as one composed sequence instead of a tall right
   hand stack of cards. */
.industrial-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr); gap: clamp(36px, 6vw, 76px); align-items: start; }
.industrial-grid .image-panel-tall { width: 100%; min-height: 0; aspect-ratio: 3 / 2; background: transparent; border: 0; }
.industrial-grid .image-panel-tall img { width: 100%; height: auto; object-fit: contain; object-position: center; }
.industrial-copy { display: block; margin-top: 0; }
.industrial-copy .lead-on-ink { max-width: 760px; margin: 0 0 30px; }
.industrial-copy .feature-list { display: grid; grid-template-columns: 1fr 1fr; column-gap: 24px; gap: 0 24px; margin: 0; background: transparent; border: 0; }
.industrial-copy .feature-list > div { padding: 17px 0; background: transparent; border-top: 1px solid var(--line); }
.industrial-copy .feature-list > div:last-child { grid-column: auto; min-height: 0; border-bottom: 1px solid var(--line); }

/* One industrial image carries the visual evidence; the supporting points stay
   as a quiet reference row instead of another gallery. */
.industrial-evidence { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px; border: 0; background: transparent; }
.industrial-evidence article { border: 0; background: transparent; }
.industrial-evidence article:last-child { border-right: 0; }
.industrial-evidence img { display: none; }
.industrial-evidence article > div { padding: 13px 0 0; }

@media (max-width: 720px) {
  .preview-card { border-right: 0; border-bottom: 1px solid var(--line); }
  .preview-card:last-child { border-bottom: 0; }
  .technology-grid article,
  .technology-grid article:nth-child(4n),
  .technology-grid article:nth-last-child(-n + 4) { border-right: 0; border-bottom: 1px solid var(--line); }
  .technology-grid article:last-child { border-bottom: 0; }
  .industrial-grid { grid-template-columns: 1fr; gap: 30px; }
  .industrial-grid .image-panel-tall { aspect-ratio: 3 / 2; }
  .industrial-evidence { grid-template-columns: 1fr 1fr; gap: 24px 18px; }
  .industrial-evidence article { border: 0; }
  .industrial-evidence article:last-child { border-bottom: 0; }
  .technology-grid { grid-template-columns: 1fr; gap: 0; }
  .technology-grid article,
  .technology-grid article:nth-child(4n),
  .technology-grid article:nth-last-child(-n + 4),
  .technology-grid article:nth-last-child(-n + 2) {
    grid-template-columns: 104px minmax(0, 1fr);
    min-height: 104px;
    padding-inline: 0;
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }
  .technology-grid article:last-child { border-bottom: 0; }
  .technology-grid img { width: 104px; height: 72px; }
  .technology-grid article > div { padding-block: 15px; }
}

/* Final cascade for the requested page hierarchy. */
.home-page .hero,
.home-page .hero-visual { width: 100%; min-height: 100svh; margin-top: 0; }
.has-hero:not(.home-page) .site-header { background: rgba(255, 255, 255, .97); border-bottom-color: var(--line); box-shadow: 0 8px 22px rgba(13, 27, 42, .06); backdrop-filter: blur(14px); }
.has-hero:not(.home-page) .site-nav > .nav-link,
.has-hero:not(.home-page) .site-nav .nav-group-trigger,
.has-hero:not(.home-page) .brand-copy strong { color: var(--ink); text-shadow: none; }
.has-hero:not(.home-page) .brand-copy span { color: var(--ink-soft); text-shadow: none; }
.has-hero:not(.home-page) .brand-mark { filter: none; background: transparent; }
.has-hero:not(.home-page) .site-nav .nav-group-trigger span { color: var(--teal-dark); }
.has-hero:not(.home-page) .hero { width: min(1120px, calc(100% - 64px)); min-height: 440px; margin: 94px auto 0; }
.has-hero:not(.home-page) .hero-visual { height: 440px; min-height: 0; aspect-ratio: auto; }
.has-hero:not(.home-page) .hero-content { width: min(42%, 440px); padding: 42px clamp(28px, 4vw, 54px); }
.home-page .hero-content { background: rgba(247, 250, 251, .14); border-left-color: rgba(255, 255, 255, .38); backdrop-filter: blur(7px) saturate(112%); }

@media (max-width: 720px) {
  .home-page .hero,
  .home-page .hero-visual { min-height: 0; }
  .has-hero:not(.home-page) .hero { width: calc(100% - 36px); min-height: 0; margin: 84px auto 0; }
  .has-hero:not(.home-page) .hero-visual { height: auto; min-height: 0; aspect-ratio: 16 / 9; }
  .has-hero:not(.home-page) .hero-content { width: 100%; padding: 30px 22px 28px; }
}

.home-page:not(.is-scrolled) .site-header { background: linear-gradient(180deg, rgba(7, 20, 33, .24), rgba(7, 20, 33, .06) 70%, transparent); border-bottom-color: transparent; box-shadow: none; backdrop-filter: none; }

/* Final home override: the hero image continues directly behind the header. */
.home-page:not(.is-scrolled) .site-header { background: transparent; border-bottom-color: transparent; box-shadow: none; backdrop-filter: none; }

/* Ensure the compact grouped menu wins over the historical cascade above. */
.site-nav .nav-dropdown { top: 70px; left: 50%; right: auto; transform: translateX(-50%); width: min(540px, calc(100vw - 32px)); grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 16px; background: #071421; border: 1px solid rgba(92, 228, 221, .34); border-top: 3px solid var(--teal); }
.site-nav .nav-dropdown .nav-link { min-height: 76px; padding: 16px; border: 1px solid rgba(92, 228, 221, .34); color: var(--white); font-size: 14px; }
.site-nav .nav-dropdown .nav-link:hover, .site-nav .nav-dropdown .nav-link:focus-visible { border-color: var(--teal); background: rgba(8, 168, 167, .18); }
.site-nav .nav-dropdown .nav-link[aria-current="page"] { background: var(--teal); border-color: var(--teal); color: var(--ink); }
@media (max-width: 1120px) { .site-nav .nav-dropdown { top: 70px; grid-template-columns: 1fr; } }

/* Generated long-form evidence uses the source image's complete aspect ratio. */
.technology-hero-image { margin-top: 42px; margin-bottom: 58px; }
.technology-hero-image img { width: 100%; height: auto; object-fit: contain; background: transparent; }
.technology-hero-image figcaption { margin-top: 12px; color: var(--ink-soft); font-size: 12px; letter-spacing: .04em; }
.remote-control-visual { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; margin: 58px 0 0; background: transparent; }
.remote-control-visual img { width: 100%; height: auto; object-fit: contain; }
.remote-control-visual figcaption { padding-top: 12px; color: #b8c9d1; font-size: 12px; letter-spacing: .04em; }
@media (max-width: 720px) {
  .technology-hero-image { margin-top: 28px; margin-bottom: 40px; }
  .remote-control-visual { margin-top: 38px; }
}

/* Inner-page banners keep the homepage relationship between image and copy:
   the complete wide image remains visible while the light copy panel sits on
   top of its quiet right side. */
.has-hero:not(.home-page) .hero {
  position: relative;
  display: block;
  min-height: 0;
  overflow: hidden;
}
.has-hero:not(.home-page) .hero-visual {
  position: relative;
  width: 100%;
  height: auto;
  min-height: 0;
  aspect-ratio: auto;
}
.has-hero:not(.home-page) .hero-visual img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}
.has-hero:not(.home-page) .hero-content {
  position: absolute;
  inset: 0 0 0 auto;
  z-index: 1;
  width: min(39%, 430px);
  max-width: none;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 34px clamp(24px, 3vw, 48px);
  background: rgba(247, 250, 251, .78);
  border-left: 1px solid rgba(255,255,255,.68);
  backdrop-filter: blur(5px) saturate(108%);
}
.has-hero:not(.home-page) .hero-content h1 { max-width: 390px; }
.has-hero:not(.home-page) .hero-content .hero-lede { max-width: 390px; color: #435564; }
.has-hero:not(.home-page) .hero-content .hero-footnote { color: #6a7a87; }

/* The capability matrix is evidence, so its image column should read at a
   glance instead of appearing as a row of tiny thumbnails. */
.technology-grid article,
.technology-grid article:nth-child(4n),
.technology-grid article:nth-last-child(-n + 4) {
  grid-template-columns: 180px minmax(0, 1fr);
  min-height: 154px;
}
.technology-grid img { width: 180px; height: 122px; }
.technology-hero-image figcaption,
.remote-control-visual figcaption { display: none; }

/* Navigation uses a restrained grotesk with enough size and weight to remain
   legible over the home hero while keeping the overall header compact. */
.site-nav,
.site-nav > .nav-link,
.site-nav .nav-group-trigger {
  font-family: "Avenir Next", "Helvetica Neue", Arial, sans-serif;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .01em;
}
.site-nav > .nav-link,
.site-nav .nav-group-trigger { padding-inline: 14px; }
.site-nav .nav-contact { font-size: 14px; }

@media (max-width: 720px) {
  .has-hero:not(.home-page) .hero-content {
    position: relative;
    inset: auto;
    width: 100%;
    display: block;
    padding: 28px 22px 32px;
    background: rgba(247, 250, 251, .92);
    border-left: 0;
    border-top: 1px solid rgba(255,255,255,.74);
    backdrop-filter: none;
  }
  .technology-grid article,
  .technology-grid article:nth-child(4n),
  .technology-grid article:nth-last-child(-n + 4) {
    grid-template-columns: 150px minmax(0, 1fr);
    min-height: 128px;
  }
  .technology-grid img { width: 150px; height: 102px; }
  .site-nav,
  .site-nav > .nav-link,
  .site-nav .nav-group-trigger,
  .site-nav .nav-contact { font-size: 14px; }
}

/* Opening navigation: a thin, sky-blue veil keeps the hero continuous while
   giving the dark type enough contrast to read without a white text block. */
.home-page:not(.is-scrolled) .site-header {
  background: rgba(170, 215, 233, .44);
  border-bottom-color: rgba(255, 255, 255, .22);
  box-shadow: none;
  backdrop-filter: blur(8px) saturate(106%);
}
.home-page:not(.is-scrolled) .nav-shell { min-height: 68px; }
.home-page:not(.is-scrolled) .site-header,
.home-page:not(.is-scrolled) .site-nav > .nav-link,
.home-page:not(.is-scrolled) .site-nav .nav-group-trigger,
.home-page:not(.is-scrolled) .brand-copy strong,
.home-page:not(.is-scrolled) .brand-copy span {
  color: var(--ink);
  text-shadow: 0 1px 10px rgba(255, 255, 255, .44);
}
.home-page:not(.is-scrolled) .brand-copy span { color: var(--ink-soft); }
.home-page:not(.is-scrolled) .site-nav .nav-group-trigger span { color: var(--teal-dark); }
.home-page:not(.is-scrolled) .brand-mark {
  background: transparent;
  filter: none;
}

/* Inner-page banners use the same image-led proportion as the opening hero,
   while remaining a compact wide band instead of a second full-screen hero. */
.has-hero:not(.home-page) .hero {
  width: min(var(--max), calc(100% - 36px));
}
.has-hero:not(.home-page) .hero-content {
  background: rgba(247, 250, 251, .58);
  border-left-color: rgba(255, 255, 255, .48);
  backdrop-filter: blur(10px) saturate(110%);
}

@media (max-width: 720px) {
  .has-hero:not(.home-page) .hero { width: calc(100% - 36px); }
}

/* All hero pages share one continuous opening frame: the image begins at the
   viewport edge and the navigation rests lightly over its upper edge. */
.has-hero:not(.home-page):not(.is-scrolled) .site-header {
  background: rgba(170, 215, 233, .30);
  border-bottom-color: rgba(255, 255, 255, .20);
  box-shadow: none;
  backdrop-filter: blur(8px) saturate(106%);
}
.has-hero:not(.home-page):not(.is-scrolled) .nav-shell { min-height: 68px; }
.has-hero:not(.home-page):not(.is-scrolled) .site-header,
.has-hero:not(.home-page):not(.is-scrolled) .site-nav > .nav-link,
.has-hero:not(.home-page):not(.is-scrolled) .site-nav .nav-group-trigger,
.has-hero:not(.home-page):not(.is-scrolled) .brand-copy strong,
.has-hero:not(.home-page):not(.is-scrolled) .brand-copy span {
  color: var(--ink);
  text-shadow: 0 1px 10px rgba(255, 255, 255, .44);
}
.has-hero:not(.home-page):not(.is-scrolled) .brand-copy span { color: var(--ink-soft); }
.has-hero:not(.home-page):not(.is-scrolled) .site-nav .nav-group-trigger span { color: var(--teal-dark); }
.has-hero:not(.home-page):not(.is-scrolled) .brand-mark {
  background: transparent;
  filter: none;
}

/* Remove the old white spacer above inner heroes so the first image and
   navigation read as one composition before scrolling begins. */
.has-hero:not(.home-page) .hero {
  width: 100%;
  margin-top: 0;
}

@media (max-width: 720px) {
  .has-hero:not(.home-page) .hero {
    width: 100%;
    margin-top: 0;
  }
}

/* Home-only navigation scale: the opening headline can breathe without
   changing typography on the inner pages. */
.home-page:not(.is-scrolled) .site-nav,
.home-page:not(.is-scrolled) .site-nav > .nav-link,
.home-page:not(.is-scrolled) .site-nav .nav-group-trigger,
.home-page:not(.is-scrolled) .site-nav .nav-contact { font-size: 15px; }

/* Give the technology evidence enough physical size to inspect at a glance. */
.technology-grid article,
.technology-grid article:nth-child(4n),
.technology-grid article:nth-last-child(-n + 4) {
  grid-template-columns: 240px minmax(0, 1fr);
  min-height: 188px;
}
.technology-grid img { width: 240px; height: 162px; }

/* Contact uses a contained, quieter consultation image so the page feels
   precise rather than like another full-screen campaign hero. */
.contact-page .hero {
  min-height: 0;
  height: 560px;
}
.contact-page .hero-visual {
  height: 560px;
  min-height: 0;
  background: #eaf2f5;
}
.contact-page .hero-visual img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: left center;
  background: #eaf2f5;
}
.contact-page .hero-content {
  height: 100%;
  background: rgba(247, 250, 251, .24);
  border-left-color: rgba(255, 255, 255, .22);
  backdrop-filter: blur(7px) saturate(104%);
}

@media (max-width: 980px) and (min-width: 721px) {
  .technology-grid article,
  .technology-grid article:nth-child(4n),
  .technology-grid article:nth-last-child(-n + 4) {
    grid-template-columns: 210px minmax(0, 1fr);
    min-height: 170px;
  }
  .technology-grid img { width: 210px; height: 142px; }
}

@media (max-width: 720px) {
  .home-page:not(.is-scrolled) .site-nav,
  .home-page:not(.is-scrolled) .site-nav > .nav-link,
  .home-page:not(.is-scrolled) .site-nav .nav-group-trigger,
  .home-page:not(.is-scrolled) .site-nav .nav-contact { font-size: 15px; }
  .technology-grid article,
  .technology-grid article:nth-child(4n),
  .technology-grid article:nth-last-child(-n + 4) {
    grid-template-columns: 160px minmax(0, 1fr);
    min-height: 138px;
  }
  .technology-grid img { width: 160px; height: 108px; }
  .contact-page .hero { height: auto; }
  .contact-page .hero-visual { height: auto; }
  .contact-page .hero-visual img { height: auto; object-position: center; }
  .contact-page .hero-content { height: auto; }
}

/* Win the historical `.has-hero:not(.home-page)` image rule so Contact keeps
   the complete consultation frame inside its shorter hero band. */
.has-hero.contact-page .hero-visual { height: 560px; }
.has-hero.contact-page .hero-visual img {
  height: 100%;
  object-fit: contain;
  object-position: left center;
}
@media (max-width: 720px) {
  .has-hero.contact-page .hero-visual { height: auto; }
  .has-hero.contact-page .hero-visual img { height: auto; object-position: center; }
}

/* Let the opening image pass visibly through the navigation. The tint is only
   a colour cue; it is intentionally too light to read as a separate bar. */
.has-hero:not(.is-scrolled) .site-header {
  background: rgba(170, 215, 233, .08);
  border-bottom-color: transparent;
  box-shadow: none;
  backdrop-filter: none;
}
.has-hero:not(.is-scrolled) .nav-shell { min-height: 62px; }
.has-hero:not(.is-scrolled) .site-nav .nav-contact { min-height: 62px; }
.has-hero:not(.is-scrolled) .site-nav > .nav-link,
.has-hero:not(.is-scrolled) .site-nav .nav-group-trigger { min-height: 62px; }
.has-hero:not(.is-scrolled) .site-nav > .nav-link,
.has-hero:not(.is-scrolled) .site-nav .nav-group-trigger,
.has-hero:not(.is-scrolled) .brand-copy strong,
.has-hero:not(.is-scrolled) .brand-copy span {
  color: var(--ink);
  text-shadow: 0 1px 9px rgba(255, 255, 255, .48);
}
.has-hero:not(.is-scrolled) .brand-copy span { color: var(--ink-soft); }
.has-hero:not(.is-scrolled) .site-nav .nav-group-trigger span { color: var(--teal-dark); }
.has-hero:not(.is-scrolled) .brand-mark {
  background: transparent;
  filter: none;
}
.has-hero:not(.is-scrolled) .site-nav .nav-dropdown { top: 62px; }

/* Match the more specific inner-page cascade so no earlier white/blue veil
   can reintroduce a visible strip above the image. */
.has-hero:not(.home-page):not(.is-scrolled) .site-header {
  background: rgba(170, 215, 233, .08);
  border-bottom-color: transparent;
  box-shadow: none;
  backdrop-filter: none;
}
.has-hero:not(.home-page):not(.is-scrolled) .nav-shell { min-height: 62px; }
.has-hero:not(.home-page):not(.is-scrolled) .site-nav .nav-dropdown { top: 62px; }

/* The opening navigation should be visually absent: only the image and its
   own colour remain behind the type until the user scrolls. */
.has-hero:not(.is-scrolled) .site-header {
  background: transparent;
  border-bottom-color: transparent;
  box-shadow: none;
  backdrop-filter: none;
}
.has-hero:not(.home-page):not(.is-scrolled) .site-header {
  background: transparent;
  border-bottom-color: transparent;
  box-shadow: none;
  backdrop-filter: none;
}

/* Inner hero copy sits over the image as a translucent reading surface, not a
   solid card. Keep a little more opacity on small screens after the copy
   stacks below the image so body text remains comfortable to read. */
.has-hero:not(.home-page) .hero-content {
  isolation: isolate;
  background: rgba(247, 250, 251, .30);
  border-left-color: rgba(255, 255, 255, .24);
  backdrop-filter: blur(8px) saturate(104%);
}
.has-hero:not(.home-page) .hero-content::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  opacity: .13;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='160' viewBox='0 0 220 160'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='.42' stroke-width='1.2'%3E%3Cpath d='M-20 38 C18 14 52 62 90 38 S162 14 240 38'/%3E%3Cpath d='M-20 82 C18 58 52 106 90 82 S162 58 240 82'/%3E%3Cpath d='M-20 126 C18 102 52 150 90 126 S162 102 240 126'/%3E%3C/g%3E%3C/svg%3E");
  background-size: 220px 160px;
  mix-blend-mode: soft-light;
}
@media (max-width: 720px) {
  .has-hero:not(.home-page) .hero-content {
    background: rgba(247, 250, 251, .58);
    border-top-color: rgba(255, 255, 255, .42);
    backdrop-filter: none;
  }
  .has-hero:not(.home-page) .hero-content::before { opacity: .09; }
}

/* Home hero copy is part of the photograph, not a separate right-hand card.
   Let the sky and waterfront remain visible behind the type and controls. */
.home-page .hero-content {
  background: transparent;
  border-left-color: transparent;
  backdrop-filter: none;
}
@media (max-width: 720px) {
  .home-page .hero-content {
    background: transparent;
    border-top-color: transparent;
  }
}

/* Keep a small glimpse of the next section on desktop so Home feels sized to
   the viewport rather than oversized, while preserving the complete hero
   image and its original aspect treatment. */
@media (min-width: 721px) {
  .home-page .hero,
  .home-page .hero-visual {
    height: calc(100svh - 40px);
    min-height: 0;
  }
}

/* Final image scale pass: give the evidence room to read beside its copy. */
.about-page .legacy-card {
  grid-template-columns: minmax(320px, 36%) minmax(0, 1fr);
  gap: clamp(32px, 4vw, 56px);
}
.about-page .who-technology-grid article {
  grid-template-columns: minmax(250px, 1.15fr) minmax(0, .85fr);
  gap: 20px;
}
@media (max-width: 720px) {
  .about-page .legacy-card { grid-template-columns: 1fr; gap: 20px; }
  .about-page .legacy-card > img { width: min(420px, 100%); }
  .about-page .who-technology-grid article {
    grid-template-columns: minmax(150px, 48%) minmax(0, 1fr);
    gap: 16px;
  }
}

/* Use the available canvas for the technology matrix: larger evidence,
   quieter spacing, and no rigid rule lines between every row. */
.technology-page .technology-grid {
  width: calc(100% - 64px);
  max-width: none;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(28px, 3.5vw, 54px) clamp(34px, 4.5vw, 72px);
  border: 0;
}
.technology-page .technology-grid article,
.technology-page .technology-grid article:nth-child(odd),
.technology-page .technology-grid article:nth-child(even),
.technology-page .technology-grid article:nth-child(4n),
.technology-page .technology-grid article:nth-last-child(-n + 4),
.technology-page .technology-grid article:nth-last-child(-n + 2) {
  grid-template-columns: minmax(320px, 46%) minmax(0, 1fr);
  min-height: 0;
  padding: 0;
  border: 0;
  background: transparent;
}
.technology-page .technology-grid img {
  width: 100%;
  height: auto;
  max-width: none;
  border: 0;
  background: transparent;
}
.technology-page .technology-grid article > div { padding: 8px 0; }

@media (max-width: 720px) {
  .technology-page .technology-grid {
    width: calc(100% - 36px);
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .technology-page .technology-grid article,
  .technology-page .technology-grid article:nth-child(odd),
  .technology-page .technology-grid article:nth-child(even) {
    grid-template-columns: minmax(150px, 48%) minmax(0, 1fr);
    gap: 16px;
  }
}

/* About editorial blocks: establish a calm 40/60 rhythm so the image and
   long-form service copy read as one composition instead of two loose rails. */
.about-page .legacy-card {
  grid-template-columns: minmax(360px, 40%) minmax(0, 1fr);
  gap: clamp(42px, 5vw, 72px);
  align-items: start;
}
.about-page .legacy-card > img {
  width: 100%;
  max-width: 460px;
  justify-self: start;
}
.about-page .legacy-card-body {
  max-width: 700px;
  padding-top: 2px;
}
.about-page .legacy-card-body h2 {
  max-width: 680px;
  margin-bottom: 16px;
  line-height: 1.12;
}
.about-page .legacy-card-body p,
.about-page .legacy-card-body li {
  max-width: 700px;
  line-height: 1.58;
}
.about-page .legacy-card-body ul { margin-bottom: 19px; }

@media (max-width: 960px) and (min-width: 721px) {
  .about-page .legacy-card {
    grid-template-columns: minmax(300px, 36%) minmax(0, 1fr);
    gap: 34px;
  }
  .about-page .legacy-card > img { max-width: 380px; }
}

@media (max-width: 720px) {
  .about-page .legacy-card { grid-template-columns: 1fr; gap: 22px; }
  .about-page .legacy-card > img { width: min(460px, 100%); max-width: none; }
  .about-page .legacy-card-body { max-width: none; }
}

/* Technology cards carry short labels, so the clearest reading order is
   image first and copy directly below it. Keep a calm four-column rhythm on
   wide screens, then reduce to two and one columns at smaller widths. */
.technology-page .technology-grid {
  width: min(1520px, calc(100% - 64px));
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 42px 26px;
  border: 0;
}
.technology-page .technology-grid article,
.technology-page .technology-grid article:nth-child(odd),
.technology-page .technology-grid article:nth-child(even),
.technology-page .technology-grid article:nth-child(4n),
.technology-page .technology-grid article:nth-last-child(-n + 4),
.technology-page .technology-grid article:nth-last-child(-n + 2) {
  display: block;
  min-height: 0;
  padding: 0;
  border: 0;
  background: transparent;
}
.technology-page .technology-grid img {
  display: block;
  width: 100%;
  max-width: none;
  height: auto;
  border: 0;
  background: transparent;
}
.technology-page .technology-grid article > div { padding: 15px 0 0; }
.technology-page .technology-grid article h3 { margin-bottom: 7px; }
.technology-page .technology-grid article p { max-width: 32ch; }

/* About's two long-form blocks need a visibly weighted image column. */
.about-page .legacy-card {
  grid-template-columns: minmax(360px, 42%) minmax(0, 1fr);
  gap: clamp(44px, 5vw, 68px);
}
.about-page .legacy-card > img { max-width: 500px; }

@media (max-width: 960px) and (min-width: 721px) {
  .technology-page .technology-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .about-page .legacy-card {
    grid-template-columns: minmax(320px, 38%) minmax(0, 1fr);
    gap: 34px;
  }
}

@media (max-width: 720px) {
  .technology-page .technology-grid {
    width: calc(100% - 36px);
    grid-template-columns: 1fr;
    gap: 30px;
  }
  .technology-page .technology-grid article > div { padding-top: 12px; }
}

/* Final card composition for the requested six-plus-two technology rhythm. */
@media (min-width: 961px) {
  .technology-page .technology-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 44px clamp(28px, 3vw, 54px);
  }
  .technology-page .technology-grid article:nth-child(1) { order: 7; }
  .technology-page .technology-grid article:nth-child(8) { order: 8; }
}

/* About technology evidence reads as clean image-over-copy cards; the old
   rules made four faint rails compete with the content. */
.about-page .who-technology-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 42px clamp(34px, 4vw, 58px);
}
.about-page .who-technology-grid article,
.about-page .who-technology-grid article:nth-child(odd),
.about-page .who-technology-grid article:nth-child(even) {
  display: block;
  padding: 0;
  border: 0;
  background: transparent;
}
.about-page .who-technology-grid img {
  display: block;
  width: 100%;
  height: auto;
  margin: 0;
  background: transparent;
}
.about-page .who-technology-grid article > div { padding: 15px 0 0; }

/* The two About overview blocks are deliberate card faces: visual first,
   then the preserved long-form wording below. */
.about-page .legacy-card-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(36px, 5vw, 64px);
}
.about-page .legacy-card {
  display: block;
  padding: 0;
  border: 0;
  background: transparent;
}
.about-page .legacy-card > img {
  display: block;
  width: 100%;
  max-width: none;
  margin: 0;
}
.about-page .legacy-card-body {
  max-width: none;
  padding: 20px 0 0;
}

@media (max-width: 960px) and (min-width: 721px) {
  .about-page .legacy-card-grid { grid-template-columns: 1fr; gap: 44px; }
}

@media (max-width: 720px) {
  .about-page .who-technology-grid { grid-template-columns: 1fr; gap: 30px; }
  .about-page .legacy-card-grid { grid-template-columns: 1fr; gap: 38px; }
}

/* Home's opening image should reach both viewport edges. Cover preserves the
   source proportions while removing the pale letterbox around the canvas. */
.home-page .hero-visual img { object-fit: cover; }

/* About dropdown: a single dark information panel with four clear next
   steps, following the compact reference pattern without adding a new nav
   level. */
.site-nav .nav-dropdown-about {
  left: auto;
  right: 0;
  transform: none;
  width: min(920px, calc(100vw - 32px));
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  padding: 24px;
  background: #050809;
  border: 1px solid rgba(65, 220, 171, .48);
  border-top: 3px solid #42d9a1;
  box-shadow: 0 22px 46px rgba(4, 10, 12, .28);
}
.site-nav .nav-dropdown-about .nav-card {
  display: grid;
  align-content: space-between;
  gap: 16px;
  min-height: 188px;
  padding: 22px 20px 20px;
  border: 1px solid rgba(65, 220, 171, .72);
  color: #f2fffb;
  background: transparent;
}
.site-nav .nav-dropdown-about .nav-card:hover,
.site-nav .nav-dropdown-about .nav-card:focus-visible,
.site-nav .nav-dropdown-about .nav-card[aria-current="page"] {
  border-color: #42d9a1;
  background: #42d9a1;
  color: #06110f;
}
.nav-card-icon { display: block; width: 46px; height: 46px; color: #42d9a1; }
.nav-card-icon svg { display: block; width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.nav-dropdown-about .nav-card:hover .nav-card-icon,
.nav-dropdown-about .nav-card:focus-visible .nav-card-icon,
.nav-dropdown-about .nav-card[aria-current="page"] .nav-card-icon { color: #06110f; }
.site-nav .nav-dropdown-about .nav-card strong { display: block; font-size: 15px; line-height: 1.25; }
.site-nav .nav-dropdown-about .nav-card > span:last-child { display: block; color: rgba(242, 255, 251, .72); font-size: 12px; line-height: 1.42; }
.site-nav .nav-dropdown-about .nav-card:hover > span:last-child,
.site-nav .nav-dropdown-about .nav-card:focus-visible > span:last-child,
.site-nav .nav-dropdown-about .nav-card[aria-current="page"] > span:last-child { color: rgba(6, 17, 15, .76); }

@media (max-width: 1120px) {
  .site-nav .nav-dropdown-about { width: min(680px, calc(100vw - 32px)); grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
  .site-nav .nav-dropdown-about { width: auto; grid-template-columns: 1fr; gap: 10px; padding: 12px 0 14px 12px; background: transparent; border: 0; border-bottom: 1px solid var(--line); box-shadow: none; }
  .site-nav .nav-dropdown-about .nav-card { min-height: 126px; padding: 16px; background: #050809; border-color: rgba(65, 220, 171, .72); color: #f2fffb; }
  .site-nav .nav-dropdown-about .nav-card:hover,
  .site-nav .nav-dropdown-about .nav-card:focus-visible,
  .site-nav .nav-dropdown-about .nav-card[aria-current="page"] { background: #42d9a1; color: #06110f; }
}

/* New company surfaces keep the same quiet editorial language as the rest of
   the international site while preserving the verified domestic content. */
.careers-section, .news-section { padding-block: 92px 112px; }
.careers-heading, .news-heading { align-items: end; }
.careers-heading h2, .news-heading h2 { max-width: 650px; }
.careers-heading .section-heading-note, .news-heading .section-heading-note { max-width: 380px; }
.careers-role-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; margin-top: 44px; }
.careers-role-grid article { min-height: 238px; padding: 20px 20px 22px; border-top: 2px solid var(--teal); background: #f1f6f7; }
.careers-role-grid article:nth-child(2) { border-top-color: #42d9a1; }
.careers-role-grid article:nth-child(3) { border-top-color: #5d9fc2; }
.careers-role-grid article:nth-child(4) { border-top-color: var(--amber); }
.careers-role-grid h3 { margin-bottom: 12px; font-size: 20px; line-height: 1.18; }
.careers-role-grid article > p:not(.eyebrow) { color: var(--ink-soft); font-size: 14px; line-height: 1.55; }
.careers-role-grid article > span { display: block; margin-top: 28px; color: var(--teal-dark); font-size: 11px; font-weight: 750; letter-spacing: .12em; text-transform: uppercase; }
.careers-process-grid { display: grid; grid-template-columns: minmax(0, .8fr) minmax(460px, 1.2fr); gap: clamp(42px, 8vw, 120px); align-items: start; }
.careers-process-grid > div p:last-child { max-width: 470px; color: var(--ink-soft); line-height: 1.6; }
.process-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.process-list li { display: flex; align-items: baseline; gap: 16px; padding: 17px 0; border-bottom: 1px solid var(--line); }
.process-list strong { color: var(--teal-dark); font-size: 11px; letter-spacing: .1em; }
.process-list span { font-size: 15px; font-weight: 650; }
.careers-contact { border-top: 1px solid var(--line); }
.careers-contact-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(340px, .72fr); gap: 48px; align-items: end; }
.careers-contact-grid > div p:last-child { max-width: 500px; color: var(--ink-soft); line-height: 1.6; }
.contact-callout { display: grid; gap: 8px; padding: 24px; border-left: 3px solid var(--teal); background: #edf5f7; }
.contact-callout span { color: var(--teal-dark); font-size: 11px; font-weight: 750; letter-spacing: .12em; text-transform: uppercase; }
.contact-callout strong { font-size: 20px; }
.contact-callout small { color: var(--ink-soft); font-size: 12px; line-height: 1.45; }
.news-status { display: grid; grid-template-columns: minmax(170px, .3fr) minmax(0, 1fr); gap: 24px; padding: 18px 0; border-block: 1px solid var(--line); color: var(--ink-soft); font-size: 14px; line-height: 1.5; }
.news-status strong { color: var(--ink); }
.news-category-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 18px; margin-top: 44px; }
.news-category-grid article { background: #f1f6f7; }
.news-category-grid img { width: 100%; height: auto; object-fit: contain; }
.news-category-grid article > div { padding: 16px 16px 20px; }
.news-category-grid article > div .eyebrow { margin-bottom: 12px; }
.news-category-grid h3 { margin-bottom: 9px; font-size: 18px; }
.news-category-grid article > div > p:last-child { margin: 0; color: var(--ink-soft); font-size: 13px; line-height: 1.5; }

@media (max-width: 980px) {
  .careers-role-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .careers-process-grid, .careers-contact-grid { grid-template-columns: 1fr; gap: 34px; }
  .news-category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
  .careers-section, .news-section { padding-block: 68px 82px; }
  .careers-role-grid, .news-category-grid { grid-template-columns: 1fr; gap: 14px; margin-top: 30px; }
  .careers-role-grid article { min-height: 0; }
  .process-list { grid-template-columns: 1fr; }
  .news-status { grid-template-columns: 1fr; gap: 8px; }
  .careers-contact-grid { grid-template-columns: 1fr; }
}

/* Final editorial cleanup for the About and Contact surfaces. */
@media (min-width: 961px) {
  .about-page .who-technology-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px; }
}
.about-page .who-technology-grid article,
.about-page .who-technology-grid article + article { border: 0; }
.about-page .who-we-do-rail { gap: clamp(28px, 5vw, 72px); }
.about-page .who-we-do-rail article,
.about-page .who-we-do-rail article + article { padding: 0; border: 0; }
.contact-page #contact { padding-block: 92px 100px; }
.contact-page .contact-layout { grid-template-columns: minmax(260px, .72fr) minmax(0, 1.28fr); gap: clamp(48px, 8vw, 112px); }
.contact-page .contact-layout h2 { max-width: 440px; font-size: clamp(32px, 3.6vw, 48px); line-height: 1.08; }
.contact-page .contact-image { max-width: 320px; margin-top: 30px; border-top: 0; }
.contact-page .contact-image img { margin-top: 0; }

@media (max-width: 720px) {
  .contact-page #contact { padding-block: 68px 78px; }
  .contact-page .contact-layout { grid-template-columns: 1fr; gap: 40px; }
  .contact-page .contact-image { max-width: 100%; }
}

/* Technology follows the same compact reference panel as About, with two
   image-led destinations instead of a plain text list. */
.site-nav .nav-dropdown-technology {
  left: 50%;
  right: auto;
  transform: translateX(-50%);
  width: min(620px, calc(100vw - 32px));
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  padding: 24px;
  background: #050809;
  border: 1px solid rgba(65, 220, 171, .48);
  border-top: 3px solid #42d9a1;
  box-shadow: 0 22px 46px rgba(4, 10, 12, .28);
}
.site-nav .nav-dropdown-technology .nav-card {
  display: grid;
  align-content: space-between;
  gap: 16px;
  min-height: 188px;
  padding: 22px 20px 20px;
  border: 1px solid rgba(65, 220, 171, .72);
  color: #f2fffb;
  background: transparent;
}
.site-nav .nav-dropdown-technology .nav-card:hover,
.site-nav .nav-dropdown-technology .nav-card:focus-visible,
.site-nav .nav-dropdown-technology .nav-card[aria-current="page"] {
  border-color: #42d9a1;
  background: #42d9a1;
  color: #06110f;
}
.nav-dropdown-technology .nav-card:hover .nav-card-icon,
.nav-dropdown-technology .nav-card:focus-visible .nav-card-icon,
.nav-dropdown-technology .nav-card[aria-current="page"] .nav-card-icon { color: #06110f; }
.site-nav .nav-dropdown-technology .nav-card strong { display: block; font-size: 15px; line-height: 1.25; }
.site-nav .nav-dropdown-technology .nav-card > span:last-child { display: block; color: rgba(242, 255, 251, .72); font-size: 12px; line-height: 1.42; }
.site-nav .nav-dropdown-technology .nav-card:hover > span:last-child,
.site-nav .nav-dropdown-technology .nav-card:focus-visible > span:last-child,
.site-nav .nav-dropdown-technology .nav-card[aria-current="page"] > span:last-child { color: rgba(6, 17, 15, .76); }

@media (max-width: 720px) {
  .site-nav .nav-dropdown-technology { left: auto; right: auto; transform: none; width: 100%; grid-template-columns: 1fr; gap: 10px; padding: 12px 0 14px 12px; background: transparent; border: 0; border-bottom: 1px solid var(--line); box-shadow: none; }
  .site-nav .nav-dropdown-technology .nav-card { min-height: 126px; padding: 16px; background: #050809; border-color: rgba(65, 220, 171, .72); color: #f2fffb; }
  .site-nav .nav-dropdown-technology .nav-card:hover,
  .site-nav .nav-dropdown-technology .nav-card:focus-visible,
  .site-nav .nav-dropdown-technology .nav-card[aria-current="page"] { background: #42d9a1; color: #06110f; }
}

/* Inner-page hero copy remains visibly part of the photograph. The reading
   surface is intentionally light and transparent, with dark type for clear
   contrast instead of a solid white panel. */
.has-hero:not(.home-page) .hero-content {
  background: rgba(247, 250, 251, .06);
  border-left-color: rgba(255, 255, 255, .18);
  backdrop-filter: blur(4px) saturate(118%);
  color: #12354a;
}
.has-hero:not(.home-page) .hero-content h1 { color: #12354a; text-shadow: 0 1px 12px rgba(255,255,255,.18); }
.has-hero:not(.home-page) .hero-content .hero-lede { color: #294b5e; }
.has-hero:not(.home-page) .hero-content::before { opacity: .04; }
@media (max-width: 720px) {
  .has-hero:not(.home-page) .hero-content {
    background: rgba(247, 250, 251, .18);
    border-top-color: rgba(255, 255, 255, .28);
    backdrop-filter: blur(8px) saturate(112%);
  }
}

/* About-linked inner pages use a taller, image-first opening frame. The
   2:1 canvas keeps the generated long images complete while the copy floats
   over the right side, matching the engineering reference composition. */
@media (min-width: 721px) {
  .has-hero:not(.home-page) .hero,
  .has-hero:not(.home-page) .hero-visual {
    min-height: 0;
    height: auto;
  }
  .has-hero:not(.home-page) .hero-visual {
    aspect-ratio: 2 / 1;
  }
  .has-hero:not(.home-page) .hero-visual img {
    width: 100%;
    height: auto;
    object-fit: contain;
  }
}

/* Give the About menu destinations a little more vertical presence without
   making the dropdown wider or introducing another navigation level. */
@media (min-width: 721px) {
  .site-nav .nav-dropdown-about .nav-card { min-height: 220px; padding-block: 24px 22px; }
}
@media (max-width: 720px) {
  .site-nav .nav-dropdown-about .nav-card { min-height: 150px; }
}

/* Restore the original compact frame for every non-About page. Their source
   banners are already wide, so a fixed 440px visual keeps the complete image
   visible without the empty lower band introduced by the About sizing pass. */
@media (min-width: 721px) {
  .has-hero:not(.home-page):not(.about-page) .hero,
  .has-hero:not(.home-page):not(.about-page) .hero-visual {
    min-height: 0;
    height: 440px;
    aspect-ratio: auto;
  }
  .has-hero:not(.home-page):not(.about-page) .hero-visual img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
  }
  .has-hero.contact-page:not(.home-page):not(.about-page) .hero,
  .has-hero.contact-page:not(.home-page):not(.about-page) .hero-visual { height: 440px; }
}

/* Small pages keep their original compact height, but the opening image now
   runs edge to edge like the reference: no centered frame or side gutters. */
@media (min-width: 721px) {
  .has-hero:not(.home-page):not(.about-page) .hero {
    width: 100%;
    margin-left: 0;
    margin-right: 0;
  }
}

/* Technology's evidence row reads better with slightly smaller image tiles;
   the surrounding page layout and every other small page remain unchanged. */
@media (min-width: 981px) {
  .technology-page .technology-grid article,
  .technology-page .technology-grid article:nth-child(odd),
  .technology-page .technology-grid article:nth-child(even) {
    grid-template-columns: minmax(280px, 42%) minmax(0, 1fr);
  }
  .technology-page .technology-grid img { width: 100%; height: auto; }
}

/* About is the one expanded information surface: give its introduction and
   two image-led sections more vertical breathing room than the small pages. */
.about-page .about-intro { padding-block: 128px 96px; }
.about-page .legacy-about { padding-block: 84px 132px; }
@media (max-width: 720px) {
  .about-page .about-intro { padding-block: 86px 66px; }
  .about-page .legacy-about { padding-block: 64px 96px; }
}

/* Keep the technology evidence row compact without cropping its source
   images: four columns reduce each tile by roughly one quarter on wide
   screens while preserving the complete aspect ratio. */
@media (min-width: 961px) {
  .technology-page .technology-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 36px 28px;
  }
}

/* Inner-page banners are full-bleed bands; the body itself supplies the
   horizontal canvas so no legacy max-width gutter can reappear. */
@media (min-width: 721px) {
  .has-hero:not(.home-page):not(.about-page) .hero {
    width: 100%;
    max-width: none;
    margin-left: 0;
    margin-right: 0;
  }
}

/* Keep the opening band full-width even before script.js adds body state.
   This prevents a cached or slow script from briefly restoring the old
   centered frame during a page load. */
@media (min-width: 721px) {
  main > .hero {
    width: 100%;
    max-width: none;
    margin-left: 0;
    margin-right: 0;
  }
}

/* Careers role directions follow a compact recruitment-list hierarchy: the
   section title is restrained, rows are lighter, and the job name remains the
   primary scan target. */
.careers-page .careers-heading h2 { font-size: clamp(28px, 2.5vw, 34px); line-height: 1.12; font-weight: 550; }
.careers-page .careers-heading .section-heading-note { font-size: 13px; line-height: 1.5; }
.careers-page .careers-role-grid { gap: 14px; margin-top: 36px; }
.careers-page .careers-role-grid article { min-height: 206px; padding: 17px 18px 19px; }
.careers-page .careers-role-grid h3 { margin-bottom: 10px; font-size: 17px; line-height: 1.2; }
.careers-page .careers-role-grid article > p:not(.eyebrow) { font-size: 13px; line-height: 1.48; }
.careers-page .careers-role-grid article > span { margin-top: 22px; font-size: 10px; }
.careers-page .career-openings { margin-top: 62px; }
.careers-page .career-openings-heading { gap: 34px; margin-bottom: 22px; }
.careers-page .career-openings-heading h2 { max-width: 520px; font-size: clamp(30px, 3vw, 40px); line-height: 1.08; }
.careers-page .career-openings-heading > p { font-size: 13px; line-height: 1.5; }
.careers-page .career-opening-list summary { grid-template-columns: minmax(140px, .32fr) minmax(0, 1fr) auto; gap: 18px; padding: 16px 0; }
.careers-page .career-opening-list summary span { font-size: 10px; }
.careers-page .career-opening-list summary strong { font-size: 16px; line-height: 1.22; }
.careers-page .career-opening-list summary em { font-size: 11px; }
.careers-page .career-opening-list summary::after { margin-left: 8px; font-size: 18px; }
.careers-page .career-opening-list details > div { gap: 22px; padding: 0 0 20px clamp(158px, 17vw, 240px); }
.careers-page .career-opening-list details > div p { font-size: 13px; line-height: 1.52; }
@media (max-width: 720px) {
  .careers-page .careers-heading h2 { font-size: 28px; font-weight: 550; }
  .careers-page .careers-role-grid article { min-height: 0; }
  .careers-page .career-openings { margin-top: 48px; }
  .careers-page .career-openings-heading h2 { font-size: 30px; }
  .careers-page .career-opening-list summary { padding-block: 14px; }
  .careers-page .career-opening-list summary strong { font-size: 15px; }
  .careers-page .career-opening-list details > div { padding-bottom: 17px; }
}

/* Careers directory: a quiet, searchable long-term talent list. */
.career-directory { margin-top: 34px; }
.career-directory-toolbar { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(260px, .65fr); gap: 12px; }
.career-search, .career-filter { display: flex; align-items: center; gap: 12px; min-height: 48px; padding: 0 16px; border: 1px solid var(--line); background: var(--white); color: var(--ink-soft); }
.career-search > span:not(.sr-only), .career-filter > span:not(.sr-only) { color: var(--teal-dark); font-size: 20px; line-height: 1; }
.career-search input, .career-filter select { width: 100%; min-width: 0; border: 0; outline: 0; background: transparent; color: var(--ink); font-size: 14px; }
.career-filter select { cursor: pointer; }
.career-directory-count { margin: 16px 0 12px; color: var(--ink-soft); font-size: 13px; }
.career-directory-list { border-top: 1px solid var(--line); }
.career-directory-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(220px, .42fr) 24px; align-items: center; gap: 24px; padding: 20px 4px; border-bottom: 1px solid var(--line); color: var(--ink); }
.career-directory-row:hover, .career-directory-row:focus-visible { background: rgba(8, 168, 167, .06); outline: 0; }
.career-directory-title { font-size: 16px; font-weight: 650; line-height: 1.3; }
.career-directory-meta { color: var(--ink-soft); font-size: 12px; line-height: 1.4; }
.career-directory-arrow { color: var(--teal-dark); font-size: 20px; text-align: right; }
.career-directory-empty { margin: 20px 0 0; color: var(--ink-soft); font-size: 14px; }

/* Role detail: the same restrained directory rhythm, with a focused reading
   column and a small related-roles rail. */
.career-detail-page-section { padding-top: 118px; }
.career-detail-wrap { width: min(1180px, calc(100% - 64px)); margin-inline: auto; }
.career-back-link { display: inline-flex; margin-bottom: 18px; color: var(--teal-dark); font-size: 13px; font-weight: 650; }
.career-detail-layout { display: grid; grid-template-columns: minmax(0, 1fr) 260px; gap: 24px; align-items: start; }
.career-detail-card, .career-related { border: 1px solid var(--line); background: var(--white); }
.career-detail-card { padding: clamp(28px, 4vw, 44px); }
.career-detail-header { display: flex; justify-content: space-between; gap: 28px; align-items: start; }
.career-detail-header h1 { max-width: 650px; margin-bottom: 18px; color: var(--ink); font-size: clamp(30px, 3.5vw, 46px); font-weight: 500; line-height: 1.08; }
.career-detail-meta { display: flex; flex-wrap: wrap; gap: 8px 22px; color: var(--ink-soft); font-size: 13px; }
.career-detail-meta span + span::before { content: ""; display: inline-block; width: 4px; height: 4px; margin: 0 10px 2px 0; border-radius: 50%; background: var(--teal); }
.career-detail-actions { display: grid; gap: 10px; min-width: 170px; }
.button-quiet-dark { border: 1px solid var(--line); background: var(--white); color: var(--ink); }
.button-quiet-dark:hover, .button-quiet-dark:focus-visible { border-color: var(--teal); background: rgba(8, 168, 167, .06); }
.career-detail-rule { height: 1px; margin: 28px 0 26px; background: var(--line); }
.career-detail-intro h2, .career-detail-columns h2, .career-detail-contact h2, .career-related h2 { margin-bottom: 12px; font-size: 20px; font-weight: 600; line-height: 1.25; }
.career-detail-intro p, .career-detail-columns li, .career-detail-contact p { color: var(--ink-soft); font-size: 14px; line-height: 1.65; }
.career-detail-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; margin-top: 32px; padding-top: 26px; border-top: 1px solid var(--line); }
.career-detail-columns ul { margin: 0; padding-left: 18px; }
.career-detail-columns li + li { margin-top: 12px; }
.career-detail-contact { display: grid; grid-template-columns: minmax(0, 1fr) minmax(250px, .7fr); gap: 32px; margin-top: 36px; padding: 26px; background: #edf5f7; }
.career-detail-contact h2 { font-size: 24px; font-weight: 500; }
.career-detail-contact p { margin-bottom: 0; }
.career-related { padding: 24px 20px; }
.career-related h2 { padding-bottom: 18px; border-bottom: 1px solid var(--line); }
.career-related a { display: block; padding: 17px 0; border-bottom: 1px solid var(--line); }
.career-related a:hover strong, .career-related a:focus-visible strong { color: var(--teal-dark); }
.career-related a strong { display: block; color: var(--ink); font-size: 14px; font-weight: 650; line-height: 1.4; }
.career-related a span { display: block; margin-top: 7px; color: var(--ink-soft); font-size: 12px; }
.career-related-all { display: flex !important; justify-content: space-between; color: var(--teal-dark); font-size: 13px; font-weight: 700; }

@media (max-width: 720px) {
  .career-directory-toolbar, .career-directory-row, .career-detail-layout, .career-detail-columns, .career-detail-contact { grid-template-columns: 1fr; }
  .career-directory-row { gap: 7px; padding: 17px 2px; }
  .career-directory-meta { grid-row: 2; }
  .career-directory-arrow { grid-column: 1; grid-row: 1 / span 2; align-self: center; justify-self: end; }
  .career-detail-page-section { padding-top: 94px; }
  .career-detail-wrap { width: calc(100% - 36px); }
  .career-detail-header { display: block; }
  .career-detail-actions { grid-template-columns: 1fr 1fr; margin-top: 24px; }
  .career-detail-card { padding: 24px 20px; }
  .career-detail-header h1 { font-size: 31px; }
  .career-detail-contact { padding: 20px; }
  .career-detail-card, .career-related { min-width: 0; width: 100%; max-width: 100%; }
}

/* Final recruitment list pass: compact sans-serif hierarchy and a dedicated
   action column keep the plus control aligned with each role row. */
.careers-page .career-openings-heading h2 {
  font-size: clamp(27px, 2.5vw, 34px);
  line-height: 1.12;
  font-weight: 550;
}
.careers-page .career-opening-list summary {
  grid-template-columns: minmax(140px, .32fr) minmax(0, 1fr) auto 24px;
  gap: 18px;
  padding-block: 15px;
}
.careers-page .career-opening-list summary strong {
  font-size: 15px;
  line-height: 1.28;
  font-weight: 700;
}
.careers-page .career-opening-list summary::after {
  grid-column: 4;
  margin-left: 0;
  text-align: right;
  font-size: 18px;
}

/* Full-bleed inner hero is structural, so it remains edge-to-edge even when
   an older body class or cached script is present during page startup. */
@media (min-width: 721px) {
  main > section.hero {
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
}

@media (max-width: 720px) {
  .careers-page .career-openings-heading h2 { font-size: 28px; }
  .careers-page .career-opening-list summary {
    grid-template-columns: minmax(0, 1fr) 24px;
    padding-block: 14px;
  }
  .careers-page .career-opening-list summary span { grid-column: 1 / -1; }
  .careers-page .career-opening-list summary strong { grid-column: 1; font-size: 15px; }
  .careers-page .career-opening-list summary::after { grid-column: 2; grid-row: 2; }
}

/* Wide banners keep their complete source frame while filling the viewport.
   Matching the generated 2048x704 canvas prevents contain-mode letterboxing
   on wide screens and avoids stretching or cropping the image. */
@media (min-width: 721px) {
  .has-hero:not(.home-page) main > section.hero {
    width: 100% !important;
    max-width: none !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
  }
  .has-hero:not(.home-page) main > section.hero .hero-visual {
    width: 100%;
    height: auto !important;
    min-height: 0 !important;
    aspect-ratio: 2048 / 704;
  }
  .has-hero:not(.home-page) main > section.hero .hero-visual img {
    width: 100%;
    height: 100%;
    object-fit: contain;
  }
}
