/* DSM Industries — shared responsive design system.
   All page templates use these type, spacing, media and navigation rules. */
:root {
  --ink:#11181d; --ink-2:#202d35; --gold:#8d6f32; --gold-ink:#7d6029; --gold-soft:#e5d29c;
  --paper:#f5f7f8; --sand:#dfe5e8; --fog:#eaf0f2; --steel:#52616a;
  --line:#c7d1d6; --white:#fff; --max:1280px;
  --space-section:clamp(56px,6.4vw,96px); --gap:clamp(24px,4vw,56px);
  --shadow:0 16px 40px rgba(17,24,29,.13);
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:96px; }
body { margin:0; color:var(--ink); background:var(--paper); font:17px/1.65 Arial,Helvetica,sans-serif; }
body.menu-open { overflow:hidden; }
img { display:block; max-width:100%; }
figure { margin:0; }
a { color:inherit; text-decoration:none; }
a:hover { color:var(--gold); }
button,input,select,textarea { font:inherit; }
button { cursor:pointer; }
:focus-visible { outline:3px solid var(--gold); outline-offset:5px; }
h1,h2,h3,p { margin:0; }
h1,h2,h3 { font-weight:700; text-wrap:balance; overflow-wrap:normal; }
h1 { font-size:clamp(2.25rem,4.8vw,4.25rem); line-height:1.08; letter-spacing:-.04em; }
h2 { font-size:clamp(1.8rem,3vw,2.65rem); line-height:1.16; letter-spacing:-.03em; }
h3 { font-size:1.3rem; line-height:1.3; letter-spacing:-.02em; }
p { text-wrap:pretty; }
p+p { margin-top:16px; }
.container { width:min(calc(100% - 80px),var(--max)); margin-inline:auto; }
.container > *,[class$="-grid"] > * { min-width:0; }
.eyebrow,.kicker,.micro,.card-label,.case-study-meta {
  font-size:.75rem; font-weight:700; letter-spacing:.1em; line-height:1.5; text-transform:uppercase;
}
.eyebrow,.kicker,.card-label { color:var(--gold-ink); }
.eyebrow--light,.kicker--light { color:var(--gold-soft); }
.micro,.muted,.supporting { color:var(--steel); }
.kicker+h2,.eyebrow+h1 { margin-top:16px; }
.lead { font-size:1.15rem; line-height:1.6; }
.supporting { font-size:1rem; line-height:1.65; }
[id] { scroll-margin-top:104px; }

/* Stable, accessible navigation: present in the initial HTML. */
[data-site-header] { position:sticky; top:-32px; z-index:50; }
.topbar { background:var(--ink); color:#c5ced3; font-size:.65rem; font-weight:700; letter-spacing:.07em; text-transform:uppercase; }
.topbar-inner { display:flex; justify-content:space-between; align-items:center; min-height:32px; }
.site-header { background:rgba(245,247,248,.98); border-bottom:1px solid var(--line); }
.nav-shell { display:flex; align-items:center; gap:32px; min-height:80px; }
.brand { display:inline-flex; align-items:center; gap:14px; flex:0 0 auto; }
.brand-mark { color:var(--ink); font-size:2rem; font-weight:900; letter-spacing:-.14em; line-height:1; white-space:nowrap; }
.brand-mark::after { content:""; display:inline-block; width:7px; height:7px; background:var(--gold); margin:0 0 3px 9px; }
.brand-copy { border-left:1px solid var(--line); padding-left:14px; color:var(--steel); font-size:.6rem; letter-spacing:.08em; line-height:1.35; text-transform:uppercase; }
.brand-copy strong { display:block; color:var(--ink); font-size:.73rem; }
.brand-copy span { display:block; margin-top:4px; }
.site-nav { display:flex; align-items:center; gap:24px; margin-left:auto; }
.site-nav>a,.nav-dropdown>summary { display:flex; align-items:center; min-height:52px; font-size:.875rem; font-weight:700; color:var(--steel); white-space:nowrap; }
.site-nav [aria-current="page"] { color:var(--ink); text-decoration:underline; text-decoration-color:var(--gold); text-underline-offset:10px; text-decoration-thickness:2px; }
.nav-dropdown { position:relative; }
.nav-dropdown>summary { list-style:none; cursor:pointer; gap:8px; }
.nav-dropdown>summary::-webkit-details-marker { display:none; }
.nav-chevron { font-size:0; width:7px; height:7px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(45deg); margin-top:-4px; transition:transform .18s ease; }
.nav-dropdown[open] .nav-chevron { transform:rotate(225deg); margin-top:4px; }
.nav-menu { position:absolute; top:100%; left:-20px; min-width:238px; background:white; border:1px solid var(--line); box-shadow:var(--shadow); padding:10px; z-index:60; }
.nav-dropdown:not([open])>.nav-menu { display:none; }
.nav-menu--mega { display:grid; grid-template-columns:repeat(2,minmax(160px,1fr)); min-width:365px; }
.nav-menu a { display:block; padding:12px; min-height:44px; font-size:.9rem; line-height:1.4; color:var(--ink); }
.nav-menu a:hover { background:var(--fog); }
.site-nav .nav-cta { color:var(--white); min-height:48px; }
.menu-toggle { display:none; background:transparent; border:1px solid var(--line); min-height:44px; padding:10px 16px; color:var(--ink); font-weight:700; font-size:.875rem; }
.skip-link { position:fixed; top:-100px; left:16px; padding:12px 20px; background:white; color:var(--ink); z-index:100; }
.skip-link:focus { top:12px; }

/* Buttons are consistent and the arrow is CSS-drawn, never an iOS emoji. */
.button { display:inline-flex; align-items:center; justify-content:center; gap:12px; min-height:50px; padding:14px 22px; border:1px solid transparent; font-size:.8rem; font-weight:700; line-height:1.4; letter-spacing:.065em; text-transform:uppercase; text-align:center; transition:background .18s ease,color .18s ease; }
.button--gold { background:var(--gold); color:white; }
.button--gold:hover { background:#745a26; color:white; }
.button--outline { border-color:var(--ink); color:var(--ink); }
.button--outline:hover { background:var(--ink); color:white; }
.button--light { border-color:#a8b1b7; color:white; }
.button--light:hover { background:white; color:var(--ink); }
.button-row { display:flex; align-items:center; flex-wrap:wrap; gap:12px; }
.button:disabled { opacity:.65; cursor:wait; }
.text-link { display:inline-flex; align-items:center; gap:10px; min-height:44px; padding-block:8px; font-size:.875rem; font-weight:700; line-height:1.4; letter-spacing:0; text-transform:none; }
.text-link:hover { text-decoration:underline; text-underline-offset:4px; }
p .text-link { display:inline; min-height:0; padding:0; font-size:inherit; line-height:inherit; }
.arrow { position:relative; display:inline-block; flex:0 0 14px; width:14px; height:14px; font-size:0; line-height:0; }
.arrow::before { content:""; position:absolute; top:2px; right:1px; width:9px; height:9px; border-top:1.6px solid currentColor; border-right:1.6px solid currentColor; }
.arrow::after { content:""; position:absolute; width:14px; height:1.6px; background:currentColor; transform:rotate(-45deg); transform-origin:center; left:-1px; top:7px; }
.inline-links,.content-links { display:flex; flex-wrap:wrap; gap:8px 28px; margin-top:24px; }
.content-links .text-link { border-bottom:1px solid var(--line); }

/* Homepage: one image-led composition, no detached media panel. */
.hero--operator { color:white; background:linear-gradient(90deg,rgba(10,18,24,.88),rgba(10,18,24,.53)),url("/assets/work/welding-in-progress.jpg") center 48%/cover; }
.hero-grid { min-height:680px; display:flex; align-items:center; }
.hero-copy { max-width:790px; padding:72px 0 64px; }
.hero-copy h1 { color:white; font-size:clamp(2.35rem,5vw,4.5rem); max-width:790px; margin:20px 0 24px; }
.hero-copy h1 span { color:var(--gold-soft); }
.hero-copy .eyebrow { color:var(--gold-soft); }
.hero-lede { max-width:650px; color:#e0e5e8; font-size:1.0625rem; line-height:1.65; }
.hero-copy .button-row { margin-top:28px; }
.hero--operator .button--outline { color:white; border-color:#a8b1b7; }
.hero--operator .button--outline:hover { color:var(--ink); background:white; }
.hero-proof { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; margin-top:40px; padding-top:24px; border-top:1px solid #ffffff40; }
.hero-proof strong { display:block; font-size:.95rem; }
.hero-proof span { display:block; font-size:.8125rem; line-height:1.5; color:#ccd5da; margin-top:6px; }
.hero-media { display:none; }
.trust-strip { background:var(--ink-2); color:white; }
.trust-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); padding-block:12px; }
.trust-item { padding:24px; border-bottom:1px solid #ffffff25; border-right:1px solid #ffffff25; }
.trust-item:nth-child(3n) { border-right:0; }
.trust-item:nth-last-child(-n+3) { border-bottom:0; }
.trust-item strong { display:block; color:var(--gold-soft); font-size:1.6rem; line-height:1.2; letter-spacing:-.025em; }
.trust-item span { display:block; color:#c7d1d6; font-size:.8125rem; line-height:1.5; margin-top:10px; }
.trust-item--link:hover { background:#ffffff08; }

/* Page heroes: top-aligned columns, natural height, readable line lengths. */
.inner-hero { background:var(--ink-2); color:white; padding:32px 0 64px; }
.breadcrumbs { color:#c1ccd2; font-size:.75rem; line-height:1.5; margin-bottom:36px; }
.breadcrumbs a { display:inline-block; padding-block:6px; }
.breadcrumbs a:hover { color:var(--gold-soft); }
.inner-hero-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(260px,.42fr); align-items:start; gap:64px; }
.inner-hero-grid:not(:has(>.hero-aside)) { grid-template-columns:minmax(0,800px); }
.section-heading:not(:has(>p)) { grid-template-columns:minmax(0,1fr); }
.section-anchor { display:block; height:0; }
.inner-hero h1 { max-width:22ch; margin:16px 0 24px; font-size:clamp(2.25rem,4.25vw,3.75rem); }
.inner-hero-copy { max-width:650px; color:#d8e0e5; font-size:1.0625rem; line-height:1.65; }
.scope-note { max-width:650px; color:#d8e0e5; font-size:.9375rem; line-height:1.6; margin-top:16px; }
.inner-hero--visual { background-image:linear-gradient(90deg,rgba(12,21,27,.90),rgba(12,21,27,.57)),var(--inner-hero-image); background-size:cover; background-position:var(--hero-position,center); }
.hero-aside { align-self:start; background:#0e161dd9; padding:24px; border-left:2px solid var(--gold-soft); margin-top:0; }
.hero-aside>.micro { margin-bottom:20px; color:var(--gold-soft); }
.hero-fact+.hero-fact { border-top:1px solid #ffffff30; margin-top:18px; padding-top:18px; }
.hero-fact strong { display:block; font-size:1.3rem; line-height:1.3; letter-spacing:-.02em; }
.hero-fact p { color:#d1d9de; font-size:.9375rem; line-height:1.5; margin-top:6px; }
.inner-hero-visual { display:none; }

/* Content rhythm shared by all page families. */
.section,.industry-signal,.capacity-rail { padding:var(--space-section) 0; }
.section--paper { background:var(--paper); }
.section--fog { background:var(--fog); }
.section--sand,.industry-signal { background:var(--sand); }
.section--ink { background:var(--ink); color:white; }
.section--ink .kicker,.section--ink .text-link { color:var(--gold-soft); }
.section--ink .lead { color:#edf1f3; }
.section--ink .supporting,.section--ink .section-heading>p { color:#c4ced4; }
.section-heading,.split-heading,.content-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:var(--gap); align-items:start; }
.section-heading { margin-bottom:36px; }
.section-heading h2,.split-heading h2,.content-grid h2 { max-width:650px; }
.section-heading>p { padding-top:0; color:var(--steel); max-width:55ch; align-self:end; }
.content-grid .lead { max-width:58ch; }
.content-grid .supporting { max-width:62ch; margin-top:20px; }
.section-copy p,.split-heading p { color:var(--steel); }
.content-grid .content-links,.content-grid .inline-links { margin-top:24px; }
.detail-grid,.application-grid,.case-study-grid,.resource-grid,.principle-grid,.profile-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.detail-card,.application-card,.case-study-card,.resource-card,.principle,.profile-card { display:flex; flex-direction:column; align-items:flex-start; padding:32px; border-top:1px solid var(--line); background:white; }
.detail-card h3,.application-card h3,.case-study-card h3,.resource-card h2,.principle h3 { margin:18px 0 12px; font-size:1.4rem; line-height:1.3; letter-spacing:-.025em; }
.detail-card p,.application-card p,.resource-card p,.principle p { color:var(--steel); }
.detail-card .micro,.application-card .micro { font-size:.75rem; color:var(--gold-ink); }
.detail-card .text-link,.application-card .text-link,.case-study-card .text-link,.resource-card .text-link { margin-top:auto; padding-top:24px; }
.detail-grid:has(>.detail-card:nth-child(3):last-child),.principle-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.capabilities-overview .detail-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.capabilities-overview .detail-card h3 { font-size:2rem; margin-top:0; }
.capabilities-overview .detail-card .card-label { order:1; margin-bottom:12px; color:var(--steel); text-transform:none; letter-spacing:0; font-size:.9375rem; }
.capabilities-overview .detail-card>p:not(.card-label) { order:2; }
.capabilities-overview .detail-card>.text-link { order:3; }
.case-study-card { background:#ffffff09; border-top-color:var(--gold); }
.case-study-card p { color:#c5cfd5; }
.case-study-card .case-study-meta { color:var(--gold-soft); font-size:.75rem; }
.case-study-card p+p { margin-top:14px; }
.case-study-card--light { background:white; color:var(--ink); border-color:var(--line); }
.case-study-card--light p { color:var(--steel); }
.case-study-card--light .case-study-meta { color:var(--gold-ink); }
.case-study-card--featured { background:var(--ink-2); color:white; grid-column:1/-1; }
.case-study-card--featured p { color:#d9e1e6; max-width:75ch; }
.case-study-card--featured .case-study-meta,.case-study-card--featured .text-link { color:var(--gold-soft); }
.case-study-card .case-study-industry { font-size:.875rem; font-weight:700; margin:0 0 14px; }
.case-study-card--featured .case-study-industry { color:var(--gold-soft); }
.case-study-confidentiality,.equipment-footnote { color:var(--steel); font-size:.875rem; margin-top:24px; }
.process-list,.industry-list { border-top:1px solid var(--line); }
.process-row { display:grid; grid-template-columns:140px minmax(0,1fr); gap:32px; padding:28px 0; border-bottom:1px solid var(--line); align-items:start; }
.process-row:has(>p) { grid-template-columns:140px minmax(0,1fr) minmax(0,1fr); }
.process-row>strong { color:var(--gold-ink); font-size:1rem; line-height:1.5; }
.process-row h3 { font-size:1.15rem; line-height:1.45; letter-spacing:-.01em; }
.process-row p { color:var(--steel); font-size:1rem; }
.process-row p .text-link { min-height:0; display:inline; padding:0; }
.industry-row { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:48px; padding:40px 0; border-bottom:1px solid var(--line); }
.industry-row h2 { font-size:1.6rem; margin-top:12px; }
.industry-row p { color:var(--steel); }
.industry-row .kicker { color:var(--gold-ink); }
.industry-row .text-link { margin-top:16px; }
.application-tags { display:flex; flex-wrap:wrap; gap:8px; margin-top:20px; }
.application-tags span { padding:5px 10px; border:1px solid var(--line); font-size:.8125rem; line-height:1.5; color:var(--steel); }
.check-list,.resource-list { list-style:none; padding:0; margin:24px 0 0; }
.check-list li,.resource-list li { border-top:1px solid var(--line); padding:12px 0 12px 24px; position:relative; }
.check-list li::before,.resource-list li::before { content:"→"; position:absolute; left:0; color:var(--gold); }
.section--ink .check-list li { border-color:#ffffff25; }

/* Media blocks: reset figure margins and let captions determine the height. */
.image-overlay-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr)); gap:24px; }
.image-overlay { position:relative; display:grid; align-items:end; min-height:400px; overflow:hidden; background:var(--ink-2); isolation:isolate; }
.image-overlay img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; }
.image-overlay::after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,transparent 12%,#10191ec9 58%,#10191ef5); }
.image-overlay-copy { color:white; padding:28px; }
.image-overlay-copy strong { display:block; font-size:1.5rem; line-height:1.25; letter-spacing:-.02em; }
.image-overlay-copy span { display:block; margin-top:12px; font-size:.9375rem; line-height:1.55; color:#dbe2e6; }
.image-overlay--schematic { display:flex; flex-direction:column; justify-content:space-between; }
.image-overlay--schematic::after { display:none; }
.image-overlay--schematic img { position:static; z-index:auto; width:100%; height:auto; aspect-ratio:720/500; object-fit:contain; }
.image-overlay--schematic .image-overlay-copy { padding-top:16px; }
.schematic-label { display:block; padding:0 28px; color:#bdcbd2; font-size:.75rem; line-height:1.5; }
.media-panel { position:relative; display:grid; grid-template-columns:1.15fr 1fr; align-items:stretch; min-height:400px; overflow:hidden; background:var(--ink-2); }
.media-panel>img { position:absolute; inset:0 auto 0 0; height:100%; width:53.4884%; object-fit:cover; }
.media-panel-copy { grid-column:2; padding:clamp(28px,4vw,56px); max-width:760px; color:white; align-self:center; }
.media-panel-copy h3 { font-size:clamp(1.6rem,2.6vw,2.3rem); line-height:1.2; letter-spacing:-.025em; margin:14px 0 20px; }
.media-panel-copy p { color:#d9e2e7; }
.media-panel-copy .kicker { color:var(--gold-soft); }
.media-panel-copy .text-link { color:var(--gold-soft); }
.facility-gallery { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:24px; margin-top:36px; }
.facility-gallery figure { position:relative; isolation:isolate; display:flex; align-items:end; min-height:340px; background:var(--ink-2); overflow:hidden; }
.facility-gallery img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; }
.facility-gallery figure::after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,transparent 45%,#11181de6); }
.facility-gallery .gallery-wide { grid-column:span 8; }
.facility-gallery .gallery-tall { grid-column:span 4; }
.facility-gallery .gallery-half { grid-column:span 6; }
.facility-gallery figcaption { color:white; padding:24px; font-size:.9375rem; line-height:1.5; }
.sample-parts-strip { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; }
.sample-part { position:relative; aspect-ratio:4/3; background:var(--ink); overflow:hidden; }
.sample-part img { width:100%; height:100%; object-fit:cover; }
.sample-part figcaption { position:absolute; bottom:0; left:0; right:0; padding:36px 20px 16px; background:linear-gradient(transparent,#000c); color:white; font-size:.9375rem; line-height:1.4; }
.identity-grid { display:grid; grid-template-columns:1fr 1fr; gap:0; }
.identity-media { position:relative; min-height:400px; background:var(--ink); }
.identity-media img { position:absolute; width:100%; height:100%; object-fit:cover; }
.identity-stamp { position:absolute; bottom:0; left:0; right:0; padding:40px 28px 24px; color:white; background:linear-gradient(transparent,#11181de6); font-size:.875rem; }
.identity-copy { padding:48px; background:var(--fog); color:var(--ink); }
.identity-copy h2 { margin:16px 0 24px; }
.identity-list { display:grid; grid-template-columns:1fr 1fr; gap:0 24px; list-style:none; padding:0; margin:28px 0 0; }
.identity-list li { padding:16px 0; border-top:1px solid var(--line); }
.identity-list strong { display:block; }
.identity-list span { display:block; font-size:.875rem; color:var(--steel); margin-top:6px; }

/* Specs and process graphics retain their data without sideways reading. */
.equipment-stats,.spec-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; }
.equipment-stat,.spec { padding:28px; background:var(--fog); border-top:2px solid var(--line); }
.equipment-stat strong,.spec strong { display:block; font-size:1.6rem; line-height:1.25; letter-spacing:-.025em; }
.equipment-stat span,.spec span { display:block; color:var(--steel); font-size:.875rem; line-height:1.5; margin-top:10px; }
.spec-grid { grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:32px; }
.equipment-table { border-collapse:collapse; width:100%; table-layout:fixed; }
.equipment-table th,.equipment-table td { border-top:1px solid var(--line); padding:24px; text-align:left; vertical-align:top; }
.equipment-table th:first-child { width:22%; }
.equipment-table thead th { font-size:.8125rem; color:var(--steel); }
.equipment-table tbody th { color:var(--gold-ink); }
.equipment-table td { font-size:1rem; }
.industry-signal-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; }
.signal-visual { display:flex; flex-direction:column; align-items:center; justify-content:center; min-height:230px; padding:24px; background:var(--paper); }
.signal-visual>span { margin-top:24px; text-align:center; font-size:.875rem; font-weight:700; line-height:1.4; }
.signal-frame, .signal-box, .signal-support, .signal-assembly { height: 108px; position: relative; width: 128px; }
.signal-frame { border: 3px solid var(--ink); border-bottom: 0; display: flex; gap: 10px; padding: 14px 12px 0; }
.signal-frame::after { background: var(--gold); bottom: -3px; content: ""; height: 7px; left: -9px; position: absolute; right: -9px; }
.signal-frame i { border: 2px solid var(--steel); display: block; flex: 1; }
.signal-box { border: 3px solid var(--ink); }
.signal-box::before, .signal-box::after { border: 2px solid var(--gold); content: ""; height: 18px; position: absolute; right: 16px; width: 28px; }
.signal-box::before { top: 18px; }.signal-box::after { top: 49px; }
.signal-box i { background: var(--steel); height: 4px; left: 15px; position: absolute; width: 23px; }.signal-box i:nth-child(1) { top: 22px; }.signal-box i:nth-child(2) { top: 53px; }.signal-box i:nth-child(3) { top: 84px; }
.signal-support { border-bottom: 4px solid var(--ink); }
.signal-support::before, .signal-support::after { border-left: 4px solid var(--ink); bottom: 0; content: ""; height: 102px; position: absolute; transform: skew(-22deg); }.signal-support::before { left: 26px; }.signal-support::after { right: 26px; }
.signal-support i { background: var(--gold); height: 4px; left: 0; position: absolute; right: 0; }.signal-support i:nth-child(1) { top: 25px; }.signal-support i:nth-child(2) { top: 57px; }.signal-support i:nth-child(3) { top: 90px; }
.signal-assembly { border: 3px solid var(--ink); padding: 15px; }.signal-assembly::after { background: var(--gold); content: ""; height: 4px; left: -13px; position: absolute; right: -13px; top: 52px; }.signal-assembly i { border: 2px solid var(--steel); display: inline-block; height: 27px; margin: 0 3px; width: 16px; }


.capacity-rail { background:var(--ink-2); color:white; }
.capacity-rail-grid { display:grid; grid-template-columns:1fr 1fr; gap:var(--gap); align-items:center; }
.capacity-rail h2 { margin-top:16px; }
.capacity-rail-graphic { border-top:1px solid #ffffff35; padding-top:24px; }
.capacity-rail-scale,.capacity-rail-labels { display:flex; justify-content:space-between; gap:16px; }
.capacity-rail-scale { color:var(--gold-soft); font-size:.875rem; font-weight:700; }
.capacity-rail-track { display:flex; align-items:center; position:relative; height:60px; }
.capacity-rail-track::before { content:""; position:absolute; height:2px; background:#ffffff40; left:0; right:0; }
.capacity-rail-fill { height:4px; background:var(--gold-soft); position:absolute; left:0; right:7%; }
.capacity-rail-track i { border:2px solid var(--gold-soft); border-radius:50%; width:14px; height:14px; background:var(--ink-2); position:relative; z-index:1; }
.capacity-rail-labels span { max-width:150px; color:#ccd5da; font-size:.875rem; line-height:1.5; }
.capacity-rail-labels strong { display:block; color:white; margin-bottom:6px; }
.capacity-rail-note { color:#c4ced4; font-size:.875rem; margin-top:24px; }

/* People, forms and footer. */
.profile-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
.profile-card { padding:24px; }
.profile-photo { width:100%; aspect-ratio:1; display:grid; place-items:center; background:var(--sand); color:var(--steel); font-size:.875rem; text-align:center; }
.profile-card h2 { font-size:1.3rem; margin:20px 0 10px; }
.profile-card p { font-size:.9375rem; color:var(--steel); }
.profile-card .profile-placeholder { color:var(--steel); margin-top:12px; }
.contact-layout { display:grid; grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr); gap:32px; align-items:start; }
.contact-info { background:var(--ink); color:white; padding:36px; }
.contact-info h2 { font-size:1.8rem; margin:16px 0 24px; }
.contact-info p { color:#c4ced4; font-size:1rem; }
.contact-item { border-top:1px solid #ffffff30; padding-top:20px; margin-top:24px; }
.contact-item strong { display:block; color:var(--gold-soft); font-size:.8125rem; }
.contact-item a,.contact-item span { display:block; margin-top:6px; color:#e2e8ec; overflow-wrap:anywhere; }
.contact-item .arrow { display:inline-block; }
.contact-form { background:var(--fog); padding:36px; }
.contact-form h2 { font-size:2rem; margin:12px 0 28px; }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 20px; }
.field { display:grid; gap:8px; margin-bottom:20px; min-width:0; }
.field label { font-size:.875rem; font-weight:700; color:var(--ink); }
.field input,.field select,.field textarea { width:100%; min-width:0; max-width:100%; min-height:50px; padding:12px; border:1px solid #a7b5be; border-radius:0; background:white; color:var(--ink); font-size:1rem; }
.field textarea { min-height:160px; resize:vertical; }
.field input[type="file"] { font-size:.8125rem; padding:10px; }
.field input[type="file"]::file-selector-button { padding:8px 10px; border:0; background:var(--fog); margin-right:8px; font:inherit; cursor:pointer; }
.form-status { color:var(--ink); font-size:.9375rem; margin-top:16px; }
.cta-band { background:var(--ink-2); color:white; padding:64px 0; }
.cta-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.85fr); align-items:center; gap:var(--gap); }
.cta-band h2 { margin-top:16px; }
.cta-band p { color:#d9e1e6; }
.cta-band .eyebrow { color:var(--gold-soft); }
.cta-band .button { margin-top:24px; }
.cta-band .button-row .button { margin-top:0; }
.footer { background:var(--ink); color:white; padding:64px 0 28px; }
.footer-grid { display:grid; grid-template-columns:1.2fr repeat(3,1fr); gap:40px; }
.brand--footer .brand-mark,.brand--footer .brand-copy strong { color:white; }
.brand--footer .brand-copy { color:#bcc8cf; border-color:#ffffff30; }
.footer-brand p { color:#bdc9cf; font-size:.9375rem; margin-top:24px; }
.footer-actions { margin-top:24px; }
.footer h3 { color:var(--gold-soft); font-size:.8125rem; letter-spacing:.08em; text-transform:uppercase; margin-bottom:16px; }
.footer summary { list-style:none; }
.footer summary::-webkit-details-marker { display:none; }
.footer ul { list-style:none; margin:0; padding:0; }
.footer li a { display:inline-block; color:#c7d1d6; font-size:.9375rem; line-height:1.5; padding:7px 0; }
.footer li a:hover { color:white; text-decoration:underline; }
.footer-contact { display:flex; flex-wrap:wrap; justify-content:space-between; gap:20px; border-top:1px solid #ffffff30; margin-top:48px; padding-top:24px; color:#b6c2c9; font-size:.875rem; }
.footer-contact div { display:flex; flex-wrap:wrap; gap:12px 24px; }
.footer-contact a { color:#dbe2e7; }
.footer-bottom { display:flex; flex-wrap:wrap; gap:12px 28px; justify-content:space-between; margin-top:24px; padding-top:24px; border-top:1px solid #ffffff30; color:#9eadb6; font-size:.8125rem; }

/* Breakpoints are ordered from large to small: no page-specific overrides. */
@media(max-width:1100px) {
  .container { width:calc(100% - 56px); }
  .brand-copy span { display:none; }
  .site-nav { gap:18px; }
  .site-nav>a,.nav-dropdown>summary { font-size:.8125rem; }
  .site-nav .button { padding-inline:16px; }
  .inner-hero-grid { gap:36px; grid-template-columns:minmax(0,1fr) 270px; }
  .footer-grid { grid-template-columns:repeat(3,1fr); }
  .footer-brand { grid-column:1/-1; max-width:560px; }
  .profile-grid,.equipment-stats,.sample-parts-strip { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:860px) {
  .menu-toggle { display:block; margin-left:auto; }
  .site-nav { display:none; position:absolute; top:100%; left:0; right:0; margin:0; padding:8px 28px 24px; background:var(--paper); border-bottom:1px solid var(--line); max-height:calc(100dvh - 80px); overflow-y:auto; overscroll-behavior:contain; }
  .site-nav.is-open { display:flex; flex-direction:column; align-items:stretch; gap:0; }
  .site-nav>a,.nav-dropdown>summary { min-height:54px; font-size:1rem; padding:14px 0; border-bottom:1px solid var(--line); }
  .site-nav [aria-current="page"] { text-decoration:none; }
  .nav-dropdown>summary { justify-content:space-between; }
  .nav-menu,.nav-menu--mega { position:static; display:block; min-width:0; box-shadow:none; border:0; padding:0 0 12px 12px; background:transparent; }
  .nav-menu a { min-height:46px; padding:12px; }
  .site-nav .nav-cta { padding:14px 22px; margin-top:16px; font-size:.8125rem; }
  .inner-hero-grid { grid-template-columns:1fr; gap:32px; }
  .hero-aside { margin-top:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; padding:24px; }
  .hero-aside:has(.hero-fact:nth-of-type(3)) { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .hero-aside:has(>.hero-fact:only-of-type) { grid-template-columns:1fr; }
  .hero-aside>.micro { grid-column:1/-1; margin-bottom:0; }
  .hero-fact+.hero-fact { margin:0; padding:0; border:0; }
  .section-heading,.split-heading,.content-grid,.capacity-rail-grid,.cta-grid { grid-template-columns:1fr; gap:24px; }
  .section-heading>p { padding-top:0; max-width:62ch; }
  .content-grid .content-links { gap:6px 24px; }
  .content-grid:has(>div:first-child>.content-links),.content-grid:has(>div:first-child>.inline-links) { display:flex; flex-direction:column; gap:16px; }
  .content-grid:has(>div:first-child>.content-links)>div:first-child,.content-grid:has(>div:first-child>.inline-links)>div:first-child { display:contents; }
  .content-grid>div:first-child>.kicker { order:0; }
  .content-grid>div:first-child>h2 { order:1; }
  .content-grid:has(>div:first-child>.content-links)>div:first-child>h2,.content-grid:has(>div:first-child>.inline-links)>div:first-child>h2 { margin-top:0; }
  .content-grid>div:nth-child(2) { order:2; }
  .content-grid>div:first-child>.content-links,.content-grid>div:first-child>.inline-links { order:3; margin-top:8px; }
  .process-row:has(>p) { grid-template-columns:110px minmax(0,1fr); gap:12px 24px; }
  .process-row>p { grid-column:2; }
  .capabilities-overview .detail-grid,.detail-grid:has(>.detail-card:nth-child(3):last-child),.principle-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .identity-grid { grid-template-columns:1fr; }
  .media-panel { grid-template-columns:1fr; }
  .media-panel>img { position:static; width:100%; height:340px; min-height:0; }
  .media-panel-copy { grid-column:1; }
  .identity-media { min-height:360px; }
  .industry-signal-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .industry-row { gap:28px; }
  .contact-layout { grid-template-columns:1fr; }
  .contact-form { grid-row:1; }
  .contact-info { grid-row:2; }
  .contact-info h2 { max-width:600px; }
}
@media(max-width:600px) {
  :root { --space-section:56px; }
  html { scroll-padding-top:88px; }
  .container { width:calc(100% - 40px); }
  h1 { font-size:2.25rem; line-height:1.12; letter-spacing:-.035em; }
  h2 { font-size:1.875rem; line-height:1.2; letter-spacing:-.03em; }
  h3 { font-size:1.25rem; }
  .topbar-inner span:last-child { display:none; }
  .topbar { font-size:.6rem; letter-spacing:.045em; }
  .nav-shell { min-height:72px; }
  .brand-copy { display:block; font-size:.6rem; }
  .brand-copy span { display:none; }
  .brand-mark { font-size:1.8rem; }
  .site-nav { padding-inline:20px; max-height:calc(100dvh - 72px); }
  .hero-grid { min-height:0; }
  .hero--operator { background-position:58% center; }
  .hero-copy { padding:40px 0; }
  .hero-copy h1 { font-size:2.5rem; line-height:1.1; letter-spacing:-.035em; margin-top:16px; }
  .hero-lede { font-size:1rem; line-height:1.6; }
  .hero-copy .button-row { display:grid; grid-template-columns:1fr; }
  .hero-proof { display:none; }
  .trust-grid { grid-template-columns:repeat(2,minmax(0,1fr)); padding:8px 0; }
  .trust-item,.trust-item:nth-child(3n),.trust-item:nth-last-child(-n+3) { padding:20px 16px; border:0; border-bottom:1px solid #ffffff25; border-right:1px solid #ffffff25; }
  .trust-item:nth-child(2n) { border-right:0; }
  .trust-item:nth-last-child(-n+2) { border-bottom:0; }
  .trust-item:nth-child(2n+1) { padding-left:0; }
  .trust-item strong { font-size:1.375rem; line-height:1.25; text-wrap:balance; }
  .trust-item:nth-child(3) strong { font-size:1.125rem; }
  .trust-item span { font-size:.8125rem; line-height:1.5; }
  .inner-hero { padding:24px 0 40px; }
  .breadcrumbs { font-size:.75rem; margin-bottom:24px; }
  .inner-hero h1 { margin:14px 0 20px; }
  .inner-hero-copy { font-size:1rem; line-height:1.65; }
  .inner-hero-grid { gap:28px; }
  .hero-aside { gap:20px; padding:20px; }
  .hero-aside:has(.hero-fact:nth-of-type(3)) { grid-template-columns:1fr; }
  .hero-aside:has(.hero-fact:nth-of-type(3)) .hero-fact { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); align-items:start; gap:16px; }
  .hero-aside:has(.hero-fact:nth-of-type(3)) .hero-fact p { margin:0; }
  .hero-fact strong { font-size:1.125rem; line-height:1.35; }
  .hero-fact p { font-size:.9375rem; line-height:1.5; }
  .section-heading { margin-bottom:28px; gap:20px; }
  .lead { font-size:1.0625rem; }
  .inline-links,.content-links { flex-direction:column; align-items:flex-start; gap:4px; }
  .detail-grid,.detail-grid:has(>.detail-card:nth-child(3):last-child),.capabilities-overview .detail-grid,.application-grid,.case-study-grid,.resource-grid,.principle-grid,.profile-grid,.form-grid { grid-template-columns:1fr; gap:16px; }
  .detail-card,.application-card,.case-study-card,.resource-card,.principle,.profile-card { padding:24px; }
  .detail-card h3,.application-card h3,.case-study-card h3,.resource-card h2,.principle h3 { font-size:1.35rem; margin:16px 0 12px; }
  .case-study-card--featured { grid-column:auto; }
  .process-row,.process-row:has(>p),.industry-row { grid-template-columns:1fr; gap:12px; padding:24px 0; }
  .process-row>p { grid-column:auto; }
  .process-row h3 { font-size:1.125rem; }
  .industry-row h2 { font-size:1.5rem; }
  .image-overlay-grid { grid-template-columns:1fr; gap:20px; }
  .image-overlay { min-height:340px; }
  .image-overlay-copy { padding:24px; }
  .image-overlay-copy strong { font-size:1.4rem; }
  .media-panel { min-height:0; }
  .media-panel>img { height:240px; }
  .media-panel-copy { padding:32px 24px; }
  .media-panel-copy h3 { font-size:1.75rem; }
  .facility-gallery { grid-template-columns:1fr; gap:20px; margin-top:28px; }
  .facility-gallery .gallery-wide,.facility-gallery .gallery-tall,.facility-gallery .gallery-half { grid-column:auto; min-height:280px; }
  .facility-gallery figcaption { padding:24px; }
  .sample-parts-strip { grid-template-columns:1fr; gap:20px; }
  .identity-copy { padding:32px 24px; }
  .identity-list { grid-template-columns:1fr; }
  .equipment-stats,.spec-grid { grid-template-columns:1fr; gap:16px; }
  .equipment-table,.equipment-table tbody { display:block; }
  .equipment-table thead { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
  .equipment-table tr { display:block; padding:24px 0; border-top:1px solid var(--line); }
  .equipment-table tbody th,.equipment-table td { display:block; width:auto; border:0; padding:0; }
  .equipment-table td { padding-top:10px; }
  .equipment-table tbody th { font-size:1.125rem; }
  .signal-visual { min-height:190px; padding:20px 12px; }
  .signal-frame,.signal-box,.signal-support,.signal-assembly { transform:scale(.85); }
  .signal-visual>span { margin-top:8px; }
  .capacity-rail-labels { gap:12px; }
  .capacity-rail-labels span,.capacity-rail-scale { font-size:.8125rem; }
  .profile-photo { aspect-ratio:4/3; }
  .contact-form,.contact-info { padding:28px 20px; }
  .contact-form h2 { font-size:1.75rem; }
  .form-grid { gap:0; }
  .contact-form .button-row,.cta-band .button-row { display:grid; grid-template-columns:1fr; }
  .contact-form button,.cta-band .button { width:100%; }
  .cta-band { padding:48px 0; }
  .footer { padding:48px 0 24px; }
  .footer-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px 24px; }
  .footer-grid>details { grid-column:1/-1; border-top:1px solid #ffffff30; padding-top:16px; }
  .footer-grid>details summary { display:flex; align-items:center; justify-content:space-between; min-height:44px; cursor:pointer; }
  .footer-grid>details summary::after { content:'+'; font-size:1.25rem; color:var(--gold-soft); }
  .footer-grid>details[open] summary::after { content:'−'; }
  .footer-grid>details summary h3 { margin:0; }
  .footer-grid>details ul { padding-top:12px; }
  .footer-grid { row-gap:16px; }
  .footer-brand { margin-bottom:16px; }
  .footer-brand { max-width:none; }
  .footer li a { min-height:44px; padding-block:10px; }
  .footer-contact { margin-top:32px; }
  .footer-contact,.footer-contact div,.footer-bottom { flex-direction:column; gap:12px; }
  .footer-contact a { padding-block:6px; overflow-wrap:anywhere; }
}
@media(max-width:360px) {
  .footer-grid { grid-template-columns:1fr; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { transition:none!important; animation:none!important; }
}
.industry-detail .industry-hero-actions{margin-top:28px;gap:24px;align-items:center}
.industry-jump{color:#fff;text-decoration:underline;text-underline-offset:5px;font-size:16px}
.industry-detail h1{max-width:22ch}
.industry-detail .inner-hero-copy{max-width:57ch}
.industry-intro{max-width:700px;margin-bottom:36px}
.industry-build-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px}
.industry-build-grid article{border-top:1px solid #bcc6cc;padding-top:24px}
.industry-number{color:#756033;font-size:14px;letter-spacing:.12em;display:block;margin-bottom:20px}
.industry-detail .industry-build-grid h3{font-size:24px;line-height:1.25;margin:0 0 16px}
.industry-build-grid p,.industry-order-grid p,.industry-rfq dd,.industry-faq p,.industry-proof p{font-size:18px;line-height:1.65;margin:0;max-width:65ch}
.industry-order-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:72px;align-items:start}
.industry-order-grid h2,.industry-proof h2{margin:0 0 24px}
.industry-rfq{background:#fff;border:1px solid #ced6da;padding:32px}
.industry-rfq h3{margin:0 0 20px;font-size:24px;line-height:1.3}
.industry-rfq dl{margin:0}
.industry-rfq dl>div{padding:18px 0;border-top:1px solid #dce2e6}
.industry-rfq dt{font-weight:700;font-size:17px;margin-bottom:6px}
.industry-rfq dd{margin:0;font-size:16px;color:#43525c}
.industry-related{display:flex;flex-direction:column;align-items:flex-start;gap:14px;margin-top:28px}
.industry-related a{font-weight:650;font-size:16px;text-decoration:underline;text-underline-offset:4px;line-height:1.5}
.industry-proof{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:72px}
.industry-proof .text-link{margin-top:24px;display:inline-block}
.industry-proof .industry-note{font-size:14px;margin-top:18px;color:#c0cbd0}
.industry-faq{max-width:900px;margin:0 auto}
.industry-faq h2{margin:0 0 32px}
.industry-faq details{border-top:1px solid #c4cdd2;padding:22px 0}
.industry-faq details:last-child{border-bottom:1px solid #c4cdd2}
.industry-faq summary{font-size:20px;line-height:1.45;font-weight:650;cursor:pointer;padding-right:24px}
.industry-faq p{margin-top:18px;color:#43525c}
.industry-detail :is(.industry-jump,.industry-related a,.industry-faq summary):focus-visible{outline:3px solid #ad9051;outline-offset:5px}
@media(max-width:860px){.industry-build-grid{grid-template-columns:1fr;gap:28px}.industry-order-grid,.industry-proof{grid-template-columns:1fr;gap:36px}.industry-build-grid p{max-width:65ch}.industry-number{margin-bottom:12px}.industry-rfq{padding:24px}.industry-detail .industry-hero-actions{gap:20px}.industry-detail .industry-hero-actions .button{width:100%}.industry-detail .industry-hero-actions .industry-jump{display:block}.industry-detail .industry-build-grid h3{font-size:23px}.industry-faq summary{font-size:18px}.industry-build-grid p,.industry-order-grid p,.industry-proof p,.industry-faq p{font-size:17px}}
.site-faq summary:focus-visible{outline:3px solid #ad9051;outline-offset:5px}
.site-faq p a{font-weight:650;text-decoration:underline;text-underline-offset:3px;color:#243f50}
.site-faq summary{min-height:44px;align-content:center}
