/*
 * Visual direction reset.
 * Light engineering editorial system; this file intentionally follows main.css.
 */
:root {
  --ink:#1d292d;
  --muted:#58676c;
  --navy:#1a2a33;
  --navy-deep:#14232b;
  --blue:#276e96;
  --blue-light:#accbdc;
  --paper:#f5f5f2;
  --white:#fcfcfa;
  --line:#d6ddde;
}
body { background:var(--white); color:var(--ink); }
.container { width:min(100% - 72px,1280px); }
h1,h2,h3 { letter-spacing:-.045em; }
.section { padding:90px 0; }
.section-heading { margin-bottom:38px; }
.section-heading h2,.section h2,.interior-two-col h2,.quote-side h2 {
  font-size:clamp(34px,3.7vw,55px);
  line-height:1.12;
  letter-spacing:-.052em;
}
.eyebrow { margin-bottom:18px; color:var(--blue); font-size:10px; letter-spacing:.15em; }
.text-link { color:var(--blue); }
.button { min-height:50px; padding:12px 19px; letter-spacing:.055em; }
.button:hover { transform:none; }
.button-primary { background:var(--blue); }
.button-dark,.button-small { background:var(--navy); color:#fff; }
.button-line { border-color:#99abb2; color:var(--ink); }
.button-line:hover { border-color:var(--blue); color:var(--blue); }

/* Navigation is the main dark anchor. */
.site-header { background:var(--navy); color:#f3f6f5; box-shadow:none; border-bottom:1px solid #42545e; }
.header-inner { min-height:76px; }
.brand-mark span { background:#f0f4f3; }
.brand-mark span:nth-child(2) { background:#7fb4cf; }
.brand-mark span:nth-child(3) { background:#c3d7df; }
.nav-list a { color:#edf3f4; letter-spacing:.02em; }
.nav-list a:hover,.nav-list .current-menu-item>a { color:#b5d7e8; }
.nav-list .sub-menu,.nav-list .mega-menu { color:var(--ink); background:#fff; box-shadow:0 12px 30px #14232b18; }
.nav-list .sub-menu a,.nav-list .mega-menu a { color:var(--ink); }
.nav-cta { border:1px solid #7fa9ba; background:transparent; }
.nav-cta:hover { background:#2d4a59; }
.menu-toggle span { background:#fff; }

/* Homepage: editorial split hero with a real component image. */
.home-hero { background:#f0f1ee; border-bottom:1px solid var(--line); }
.home-hero-grid { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); align-items:center; gap:clamp(36px,5vw,84px); min-height:610px; padding-block:56px; }
.home-hero-copy { padding-block:35px; }
.home-hero h1 { max-width:640px; margin:0 0 26px; font-size:clamp(44px,5vw,76px); font-weight:700; line-height:1.03; letter-spacing:-.062em; }
.home-hero .hero-lead { max-width:520px; margin:0 0 32px; color:#485c64; font-size:17px; line-height:1.65; }
.home-hero-photo { display:flex; flex-direction:column; justify-content:center; min-width:0; margin:0; }
.home-hero-photo img { display:block; width:100%; max-height:520px; aspect-ratio:1.2; object-fit:contain; background:#f8f9f7; }
.home-hero-photo figcaption { padding-top:10px; color:#65757a; font-size:10px; letter-spacing:.04em; }
.home-hero .hero-actions { gap:10px; }
.home-hero .hero-actions .button { min-width:0; }
.editorial-heading { max-width:740px; margin-bottom:35px; }
.editorial-heading h2 { margin:0 0 12px; }
.editorial-heading>p:last-child { max-width:570px; margin:0; color:var(--muted); }
.editorial-heading-inline { display:flex; align-items:end; justify-content:space-between; gap:35px; max-width:none; }
.editorial-heading-inline h2 { margin-bottom:0; }
.editorial-heading-inline .text-link { margin-bottom:6px; }

/* Capabilities are an index, not four duplicated picture cards. */
.home-capabilities { background:#fcfcfa; }
.capability-rows { border-top:1px solid #adbcc0; }
.capability-row { display:grid; grid-template-columns:60px minmax(220px,.9fr) minmax(250px,1.1fr) 30px; align-items:center; gap:20px; min-height:112px; padding:19px 4px; border-bottom:1px solid var(--line); }
.capability-row:hover { color:var(--blue); }
.capability-row h3 { margin:0; font-size:clamp(21px,2vw,28px); }
.capability-row p { max-width:520px; margin:0; color:var(--muted); font-size:14px; line-height:1.55; }
.row-index { color:var(--blue); font-size:11px; font-weight:700; letter-spacing:.1em; }
.row-arrow { justify-self:end; font-size:23px; color:var(--blue); }

/* Projects become a picture-led publication once real project media is added. */
.home-projects,.projects-section,.related-section { background:#f0f2f1; color:var(--ink); }
.case-grid { gap:24px; }
.home-case-grid { display:grid; grid-template-columns:minmax(0,1.42fr) minmax(0,1fr); grid-template-rows:repeat(2,minmax(0,1fr)); }
.home-case-grid .case-card:first-child { grid-row:span 2; }
.case-card,.projects-section .case-card { border:0; border-top:1px solid #bdc9cb; background:transparent; color:var(--ink); }
.case-card-image,.projects-section .case-card-image { display:block; background:#edf0ef; }
.case-card-image img { object-fit:contain; background:#edf0ef; }
.case-card-copy,.projects-section .case-card-copy { padding:20px 0 10px; background:transparent; }
.case-card h3,.projects-section .case-card h3 { color:var(--ink); font-size:clamp(23px,2.2vw,31px); }
.case-card p,.projects-section .case-card p { min-height:0; max-width:670px; color:var(--muted); }
.case-card dl,.projects-section .case-card dl { display:flex; flex-wrap:wrap; gap:10px 28px; border:0; margin:0 0 12px; }
.case-card dl>div,.case-card dl>div+div { display:flex; gap:8px; padding:0; border:0; }
.case-kicker,.projects-section .case-kicker,.projects-section .case-card .text-link { color:var(--blue); }
.case-card.is-text-only { min-height:220px; }
.home-case-grid .case-card:first-child.has-image .case-card-image { aspect-ratio:1.35; }
.home-case-grid .case-card:not(:first-child).has-image { display:grid; grid-template-columns:42% 1fr; gap:18px; align-items:start; }
.home-case-grid .case-card:not(:first-child) .case-card-image { aspect-ratio:1; height:auto; }
.home-case-grid .case-card:not(:first-child) .case-card-copy { padding-top:7px; }
.editorial-empty { grid-column:1/-1; padding:35px 0 10px; border-top:1px solid var(--line); }
.editorial-empty>p:not(.eyebrow) { font-size:23px; color:var(--muted); }
.projects-library .case-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px; }
.projects-library .case-card:first-child.has-image { grid-column:1/-1; display:grid; grid-template-columns:1.2fr .8fr; gap:35px; align-items:center; }
.projects-library .case-card:first-child.has-image .case-card-image { aspect-ratio:1.65; }
.projects-library .case-card:first-child.has-image .case-card-copy { padding:20px 0; }
.project-filters { padding:18px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:transparent; }

/* A numbered process line and production ledger replace boxed tiles. */
.home-process { background:#fcfcfa; }
.process-steps { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:0; border:0; border-top:1px solid #9eafb3; }
.process-steps li { min-height:0; padding:25px 21px 4px 0; border:0; border-right:1px solid var(--line); }
.process-steps li:last-child { border-right:0; }
.process-steps li+li { padding-left:21px; }
.process-steps h3 { margin:24px 0 11px; font-size:19px; }
.process-steps p { font-size:13px; }
.home-production { background:#e8edec; }
.production-editorial { display:grid; grid-template-columns:.68fr 1.32fr; gap:clamp(40px,6vw,100px); align-items:start; }
.production-editorial h2 { margin:0 0 28px; }
.production-editorial .stage-grid { display:block; }
.production-editorial .stage-grid article { display:grid; grid-template-columns:46px minmax(130px,.7fr) minmax(200px,1.3fr); gap:18px; align-items:start; min-height:0; padding:19px 0; background:none; border:0; border-top:1px solid #bdc9c9; }
.production-editorial .stage-grid article:last-child { border-bottom:1px solid #bdc9c9; }
.production-editorial .stage-grid h3 { margin:0; font-size:18px; }
.production-editorial .stage-grid p { margin:0; }

/* Material and quality sections use technical lists. */
.home-materials { background:#fcfcfa; }
.material-editorial,.quality-editorial { display:grid; grid-template-columns:.82fr 1.18fr; gap:clamp(45px,7vw,110px); }
.material-editorial h2,.quality-editorial h2 { margin:0 0 18px; }
.material-editorial>div:first-child>p:not(.eyebrow),.quality-editorial>div:first-child>p:not(.eyebrow) { max-width:470px; color:var(--muted); }
.material-editorial .text-link,.quality-editorial .text-link { margin-top:16px; }
.material-columns { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.material-columns>div { border-top:1px solid #aebec1; }
.material-columns h3 { margin:16px 0; font-size:17px; }
.material-columns ul { margin:0; padding:0; list-style:none; }
.material-columns li { padding:9px 0; border-top:1px solid #e2e7e7; color:#56676d; font-size:13px; }
.home-quality { background:#e9efef; }
.quality-editorial ol { margin:0; padding:0; list-style:none; border-top:1px solid #aebec1; }
.quality-editorial li { display:grid; grid-template-columns:42px 1fr; gap:15px; padding:20px 0; border-bottom:1px solid #c9d3d4; font-size:16px; }
.quality-editorial li span { color:var(--blue); font-size:11px; font-weight:700; }

/* Resources read like a journal, including text-only articles. */
.home-resources,.resources-preview { background:#fcfcfa; }
.article-grid { gap:22px; }
.article-card { min-height:0; border:0; border-top:1px solid #b9c6c9; background:transparent; }
.article-card-image { background:#edf0ef; }
.article-card-image img { object-fit:cover; background:#edf0ef; }
.article-card-copy { padding:19px 0 0; }
.article-card h3 { font-size:clamp(21px,2vw,28px); }
.article-card p { color:var(--muted); }
.article-category { margin-bottom:14px; }
.article-card-bottom { border-color:var(--line); }
.article-card.is-text-only { min-height:220px; }
.resource-paths { background:#f0f2f1; }
.resource-path-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0; border:0; border-top:1px solid var(--line); }
.resource-path-grid a { padding:18px 8px 18px 0; border:0; border-bottom:1px solid var(--line); background:transparent; }
.resource-path-grid a:nth-child(odd) { margin-right:25px; }
.resource-path-grid a:hover { background:transparent; }

/* Light page introductions. Only the six assigned primary pages receive stock photos. */
.inner-hero { background:#eff2f0; color:var(--ink); border-bottom:1px solid var(--line); }
.inner-hero-grid { grid-template-columns:minmax(0,1fr) minmax(0,.9fr); min-height:430px; }
.inner-hero-copy { padding:70px 65px 70px 0; }
.inner-hero h1 { max-width:710px; margin-bottom:22px; font-size:clamp(42px,4.7vw,69px); letter-spacing:-.055em; }
.inner-hero-copy>p:not(.eyebrow) { color:#53656b; font-size:16px; }
.inner-hero .eyebrow { color:var(--blue); }
.inner-hero-visual { min-height:430px; margin-right:calc((min(100vw - 72px,1280px) - 100vw)/2); background:#f7f8f7; }
.inner-hero-visual img,.inner-hero .inner-hero-visual img { min-height:430px; height:430px; object-fit:contain; background:#f7f8f7; }
.inner-hero-visual::after { display:none; }
.inner-hero.is-text-only .inner-hero-grid { display:block; min-height:0; }
.inner-hero.is-text-only .inner-hero-copy { max-width:900px; padding:72px 0 76px; }
.inner-hero.is-text-only h1 { max-width:850px; }
.inner-hero.is-text-only .inner-hero-actions { margin-top:25px; }
.page-jump { background:#fcfcfa; border-color:var(--line); }

/* Capability pages: engineering notes, no repeated boxed card sections. */
.capability-page .capability-overview { background:#fcfcfa; }
.capability-page .focus-section { background:#f0f2f1; }
.focus-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:25px; }
.focus-grid article { padding:20px 0 0; border:0; border-top:1px solid #b4c3c6; background:transparent; }
.focus-grid h3 { margin:18px 0 10px; font-size:22px; }
.focus-grid p { color:var(--muted); }
.capability-page--precision-machining .focus-section { background:#263841; color:#f0f3f2; }
.capability-page--precision-machining .focus-section .eyebrow,.capability-page--precision-machining .focus-grid .row-index { color:#a4cede; }
.capability-page--precision-machining .focus-section .section-heading>p,.capability-page--precision-machining .focus-grid p { color:#cfdddf; }
.capability-page--precision-machining .focus-grid article { border-color:#70858d; }
.capability-page--custom-machined-parts .focus-grid { grid-template-columns:1fr; gap:0; }
.capability-page--custom-machined-parts .focus-grid article { display:grid; grid-template-columns:55px .55fr 1fr; gap:22px; align-items:start; padding:22px 0; }
.capability-page--custom-machined-parts .focus-grid h3 { margin:0; }
.applications-section { background:#fcfcfa; }
.application-list { margin:0; padding:0; list-style:none; border-top:1px solid var(--line); }
.application-list li { display:grid; grid-template-columns:55px 1fr; gap:15px; padding:19px 0; border-bottom:1px solid var(--line); font-size:19px; }
.application-list li span { color:var(--blue); font-size:11px; font-weight:700; }
.technical-section { background:#f1f3f1; }
.technical-layout { display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(35px,6vw,90px); }
.technical-layout h3 { font-size:19px; }
.technical-material p { max-width:520px; color:var(--muted); line-height:1.75; }
.technical-layout .numbered-list { padding:0; margin:0; list-style:none; }
.technical-layout .numbered-list li,.technical-layout .numbered-list>div { display:grid; grid-template-columns:42px 1fr; gap:14px; padding:13px 0; border-top:1px solid #c8d2d3; }
.technical-layout .numbered-list span { color:var(--blue); font-size:11px; font-weight:700; }
.technical-layout .numbered-list p { margin:0; color:var(--muted); }
.capability-quality { background:#fcfcfa; }
.technical-definitions { margin:0; border-top:1px solid var(--line); }
.technical-definitions>div { display:grid; grid-template-columns:135px 1fr; gap:22px; padding:22px 0; border-bottom:1px solid var(--line); }
.technical-definitions dt { color:var(--blue); font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.technical-definitions dd { margin:0; color:var(--muted); line-height:1.7; }
.capability-link-grid { gap:0; border-top:1px solid var(--line); }
.capability-link-card { padding:25px 28px 20px 0; border:0; border-bottom:1px solid var(--line); background:transparent; }
.capability-link-card h3 { margin:0 0 12px; }
.process-pair article { border:0; border-top:1px solid #bdc9ca; background:transparent; }

/* Materials read as comparison rows rather than four-by-four cards. */
.materials-page .info-grid { display:block; border-top:1px solid #abbcc0; }
.materials-page .info-card { display:grid; grid-template-columns:minmax(150px,.52fr) minmax(230px,1.15fr) 105px minmax(230px,1.15fr); gap:22px; align-items:start; min-height:0; padding:19px 0; border:0; border-bottom:1px solid var(--line); background:transparent; }
.materials-page .info-card h3 { margin:0; font-size:20px; }
.materials-page .info-card p { margin:0; color:var(--muted); font-size:14px; line-height:1.55; }
.materials-page .info-card strong { margin-top:3px; color:var(--blue); font-size:10px; letter-spacing:.06em; text-transform:uppercase; }
.materials-page .soft-section { background:#f0f2f1; }

/* One inspection image, then a readable QA ledger. */
.quality-checklist { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:50px; margin:0; padding:0; list-style:none; }
.quality-checklist li { display:grid; grid-template-columns:35px 1fr; gap:5px 12px; align-content:start; padding:21px 0; border-top:1px solid #becbcc; }
.quality-checklist li span { grid-row:span 2; color:var(--blue); font-size:11px; font-weight:700; }
.quality-checklist h3 { margin:0; font-size:19px; }
.quality-checklist p { grid-column:2; margin:0; color:var(--muted); font-size:14px; }
.project-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); gap:26px; }
.project-gallery figure:first-child { grid-column:1/-1; }
.project-gallery img { background:#eef1ef; }
.project-hero .inner-hero-visual img { object-fit:contain; }

/* RFQ and CTA are selected dark moments. */
.cta-band { padding:70px 0; background:#263841; }
.cta-band h2 { font-size:clamp(34px,3.8vw,56px); }
.quote-hero { background:#eff2f0; color:var(--ink); }
.quote-hero .eyebrow-light { color:var(--blue); }
.quote-hero-grid { display:block; min-height:0; }
.quote-hero-grid>div:first-child { max-width:850px; padding:65px 0; }
.quote-hero h1 { font-size:clamp(42px,5vw,70px); }
.quote-hero p:not(.eyebrow) { color:var(--muted); }
.quote-prep,.quote-prep strong { color:#3e5965; }
.quote-section .rfq-form-wrap { border:1px solid var(--line); box-shadow:none; }
.site-footer { background:#172831; }

@media (max-width:1200px) {
  .site-header .primary-navigation { background:var(--navy); box-shadow:none; }
  .site-header .nav-list>li { border-color:#40545d; }
  .site-header .nav-list a { color:#edf3f4; }
  .site-header .nav-list .sub-menu,.site-header .nav-list .mega-menu { background:transparent; box-shadow:none; }
  .site-header .nav-list .sub-menu a,.site-header .nav-list .mega-menu a { color:#d7e2e4; }
  .site-header .submenu-toggle { background:#324b58; color:#edf3f4; }
}
@media (max-width:1050px) {
  .home-hero-grid { min-height:550px; }
  .capability-row { grid-template-columns:42px minmax(190px,.8fr) minmax(230px,1.2fr) 25px; }
  .material-editorial,.quality-editorial { grid-template-columns:1fr; gap:38px; }
  .materials-page .info-card { grid-template-columns:180px 1fr; gap:10px 25px; }
  .materials-page .info-card strong { grid-column:1; }
}
@media (max-width:980px) {
  .container { width:min(100% - 44px,1280px); }
  .site-header .primary-navigation { background:var(--navy); box-shadow:none; }
  .site-header .nav-list>li { border-color:#40545d; }
  .site-header .nav-list a { color:#edf3f4; }
  .site-header .nav-list .sub-menu { background:transparent; }
  .site-header .nav-list .sub-menu a { color:#d7e2e4; }
  .home-hero-grid { grid-template-columns:1fr 1fr; gap:30px; }
  .home-hero h1 { font-size:clamp(42px,5.6vw,65px); }
  .production-editorial { grid-template-columns:1fr; gap:35px; }
  .inner-hero-visual { margin-right:-22px; }
  .focus-grid { grid-template-columns:1fr 1fr; }
}
@media (max-width:720px) {
  .container { width:min(100% - 36px,1280px); }
  .section { padding:66px 0; }
  .home-hero-grid { display:flex; flex-direction:column; align-items:stretch; gap:14px; min-height:0; padding:48px 0 25px; }
  .home-hero-copy { padding:0; }
  .home-hero h1 { font-size:clamp(42px,9vw,60px); }
  .home-hero .hero-lead { font-size:16px; }
  .home-hero-photo img { max-height:370px; }
  .editorial-heading-inline { align-items:start; flex-direction:column; gap:16px; }
  .capability-row { grid-template-columns:36px 1fr 25px; gap:12px; min-height:0; padding:19px 0; }
  .capability-row h3 { font-size:22px; }
  .capability-row p { grid-column:2; font-size:13px; }
  .capability-row .row-arrow { grid-column:3; grid-row:1; }
  .home-case-grid,.case-grid { display:grid; grid-template-columns:1fr; grid-template-rows:auto; }
  .projects-library .case-grid { grid-template-columns:1fr; }
  .projects-library .case-card:first-child.has-image { display:block; grid-column:auto; }
  .home-case-grid .case-card:first-child { grid-row:auto; }
  .home-case-grid .case-card:not(:first-child).has-image { display:block; }
  .process-steps { grid-template-columns:1fr 1fr; }
  .process-steps li,.process-steps li+li { padding:20px 15px 20px 0; border-right:0; border-bottom:1px solid var(--line); }
  .process-steps li:nth-child(odd) { border-right:1px solid var(--line); }
  .process-steps li:nth-child(even) { padding-left:15px; }
  .production-editorial .stage-grid article { grid-template-columns:36px 1fr; }
  .production-editorial .stage-grid p { grid-column:2; }
  .material-columns { gap:13px; }
  .inner-hero-grid { grid-template-columns:1fr; }
  .inner-hero-copy,.inner-hero.is-text-only .inner-hero-copy { padding:55px 0 40px; }
  .inner-hero h1 { font-size:clamp(39px,8vw,58px); }
  .inner-hero-visual,.inner-hero-visual img,.inner-hero .inner-hero-visual img { min-height:0; height:320px; }
  .inner-hero-visual { margin:0 -18px; }
  .focus-grid,.technical-layout,.quality-checklist { grid-template-columns:1fr; }
  .capability-page--custom-machined-parts .focus-grid article { grid-template-columns:35px 1fr; }
  .capability-page--custom-machined-parts .focus-grid article p { grid-column:2; }
  .materials-page .info-card { grid-template-columns:1fr; gap:8px; }
  .materials-page .info-card strong { grid-column:auto; }
  .resource-path-grid { grid-template-columns:1fr; }
  .resource-path-grid a:nth-child(odd) { margin-right:0; }
  .project-gallery { grid-template-columns:1fr; }
  .project-gallery figure:first-child { grid-column:auto; }
}
@media (max-width:520px) {
  .home-hero .hero-actions { display:grid; max-width:none; }
  .home-hero .hero-actions .button { width:100%; }
  .material-columns { grid-template-columns:1fr; }
  .material-columns>div+div { margin-top:12px; }
  .process-steps { grid-template-columns:1fr; }
  .process-steps li,.process-steps li:nth-child(even),.process-steps li+li { padding:19px 0; border-right:0; }
  .technical-definitions>div { grid-template-columns:1fr; gap:7px; }
}

/* Shared image frames: photographs fill their crop; prepared products sit on one neutral ground. */
:root { --media-hero-ratio:16/10; --media-feature-ratio:4/3; --media-project-ratio:4/3; --media-product-ratio:4/3; --media-article-ratio:16/9; --media-neutral:#f1f3f2; }
.media-frame { display:block; overflow:hidden; background:var(--media-neutral); }
.media-frame img { display:block; width:100%; height:100%; }
.media-frame--photo img { object-fit:cover !important; object-position:center; }
.media-frame--product img { object-fit:contain !important; object-position:center; background:var(--media-neutral); }
.visual-card__image { aspect-ratio:var(--media-product-ratio); }
.visual-section--feature .visual-card__image { aspect-ratio:var(--media-feature-ratio); }
.inner-hero-visual { aspect-ratio:var(--media-hero-ratio); }
.inner-hero-visual.media-frame--photo img { min-height:430px; height:430px; }
.case-card-image { background:var(--media-neutral); aspect-ratio:var(--media-project-ratio); height:auto; }
.case-card-image img { object-fit:cover; }
.quote-hero-image img { object-fit:cover; }
.materials-page .visual-section--materials:not(.visual-section--finishes) .visual-card:first-child { grid-column:span 2; display:grid; grid-template-columns:1.25fr .75fr; }
.materials-page .visual-section--materials:not(.visual-section--finishes) .visual-card:first-child .visual-card__image { aspect-ratio:var(--media-feature-ratio); }
.materials-page .visual-section--materials:not(.visual-section--finishes) .visual-card:first-child figcaption { align-content:center; border-top:0; border-left:1px solid #e0e7e9; font-size:17px; }
@media (max-width:720px) {
  .materials-page .visual-section--materials:not(.visual-section--finishes) .visual-card:first-child { grid-column:span 2; }
  .inner-hero-visual,.inner-hero-visual.media-frame--photo img { aspect-ratio:var(--media-hero-ratio); min-height:0; height:320px; }
}
@media (max-width:520px) {
  .materials-page .visual-section--materials:not(.visual-section--finishes) .visual-card:first-child { grid-template-columns:1fr; }
  .materials-page .visual-section--materials:not(.visual-section--finishes) .visual-card:first-child figcaption { border-left:0; border-top:1px solid #e0e7e9; }
}

/* Product-led visual system. Fallbacks are local development references. */
.visual-section { padding:72px 0; background:#fff; }
.visual-section:nth-of-type(even) { background:#f2f5f5; }
.visual-section .section-heading { margin-bottom:28px; }
.visual-section .section-heading h2 { max-width:790px; }
.visual-section .section-heading>p { max-width:480px; }
.visual-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.visual-card { min-width:0; margin:0; background:#f7f9f9; border:1px solid #dce5e7; }
.visual-card__image { aspect-ratio:4/3; overflow:hidden; background:#e8eeee; }
.visual-card__image img { display:block; width:100%; height:100%; object-fit:contain; object-position:center; }
.visual-card figcaption { display:flex; justify-content:space-between; gap:12px; align-items:baseline; padding:13px 15px 15px; border-top:1px solid #e0e7e9; font-size:13px; line-height:1.35; }
.visual-card figcaption strong { font-weight:700; color:#16303c; }
.visual-card figcaption span { flex:none; color:#2a7899; font-size:10px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; text-align:right; }
.visual-section--strip { padding:17px 0 21px; background:#172e3b !important; }
.visual-section--strip .visual-grid { grid-template-columns:repeat(5,minmax(0,1fr)); gap:9px; }
.visual-section--strip .visual-card { background:#edf2f2; border:0; }
.visual-section--strip .visual-card__image { aspect-ratio:1.28; }
.visual-section--strip .visual-card figcaption { display:block; padding:10px 12px; }
.visual-section--strip .visual-card figcaption strong { display:none; }
.visual-section--strip .visual-card figcaption span { display:block; text-align:left; color:#174c68; font-size:10px; }
.visual-section--compact { padding:54px 0; }
.visual-section--compact .visual-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.visual-section--compact .visual-card { display:grid; grid-template-columns:46% 54%; align-items:stretch; }
.visual-section--compact .visual-card__image { aspect-ratio:1.35; }
.visual-section--compact .visual-card figcaption { flex-direction:column; justify-content:center; border-top:0; padding:24px; }
.visual-section--compact .visual-card figcaption strong { font-size:20px; letter-spacing:-.03em; }
.visual-section--feature .visual-grid { grid-template-columns:minmax(0,1fr); }
.visual-section--feature .visual-card { display:grid; grid-template-columns:1.1fr .9fr; max-width:900px; }
.visual-section--feature .visual-card__image { aspect-ratio:16/9; }
.visual-section--feature .visual-card figcaption { justify-content:center; flex-direction:column; padding:34px; border-top:0; }
.visual-section--feature .visual-card figcaption strong { font-size:24px; }
.capability-page .visual-section--products .visual-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
.capability-page--custom-machined-parts .visual-section--products .visual-card:first-child { grid-column:span 2; }
.capability-page--custom-machined-parts .visual-section--products .visual-card:first-child .visual-card__image { aspect-ratio:2.05; }
.visual-section--materials .visual-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.visual-section--materials .visual-card__image { aspect-ratio:1.5; }
.visual-section--quality .visual-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.home-capabilities { padding-bottom:42px; }
.home-capabilities+.visual-section { padding-top:32px; }
.home-hero-grid { grid-template-columns:minmax(0,.48fr) minmax(0,.52fr); }
.home-hero-photo img { aspect-ratio:1.15; }
.inner-hero.is-text-only .inner-hero-grid { min-height:390px; }
.quote-hero-image { margin:0; background:#e8eeee; }
.quote-hero-image img { display:block; width:100%; height:100%; object-fit:contain; }
@media (max-width:1000px) {
  .visual-grid,.capability-page .visual-section--products .visual-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .visual-section--strip .visual-grid { grid-template-columns:repeat(5,minmax(0,1fr)); }
  .visual-card figcaption { flex-direction:column; }
  .visual-card figcaption span { text-align:left; }
}
@media (max-width:720px) {
  .visual-section { padding:55px 0; }
  .visual-section--strip { padding:12px 0; }
  .visual-grid,.capability-page .visual-section--products .visual-grid,.visual-section--quality .visual-grid,.visual-section--materials .visual-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .visual-section--strip .visual-grid { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; }
  .visual-section--strip .visual-card { flex:0 0 145px; scroll-snap-align:start; }
  .visual-section--compact .visual-grid { grid-template-columns:1fr; }
  .visual-section--compact .visual-card { grid-template-columns:42% 58%; }
  .visual-section--feature .visual-card { grid-template-columns:1fr; }
  .visual-section--feature .visual-card figcaption { padding:18px; }
  .capability-page--custom-machined-parts .visual-section--products .visual-card:first-child { grid-column:span 2; }
  .home-hero-grid { grid-template-columns:1fr; }
}
@media (max-width:520px) {
  .visual-card figcaption { padding:10px 11px; font-size:12px; }
  .visual-card figcaption span { font-size:9px; }
  .visual-section--compact .visual-card figcaption { padding:12px; }
  .visual-section--compact .visual-card figcaption strong { font-size:16px; }
}

/* Focused homepage: four illustrated routes, proof-led projects, one quality feature. */

/* Content-aware visual density for the cross-page image plan. */
.capability-page .visual-section--count-1 .visual-grid{grid-template-columns:minmax(0,1fr)}
.capability-page .visual-section--count-1 .visual-card{display:grid;grid-template-columns:1.1fr .9fr}
.capability-page .visual-section--count-1 .visual-card__image{aspect-ratio:1.65}
.capability-page .visual-section--count-1 .visual-card figcaption{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;border-top:0;padding:30px}
.capability-page .visual-section--count-1 .visual-card figcaption p,.capability-page .visual-section--count-5.visual-section--products .visual-card:first-child figcaption p{margin:12px 0 0;color:#586a73;font-size:14px;line-height:1.6}
.capability-page .visual-section--products .visual-card__image{aspect-ratio:4/3}
.capability-page .visual-section--count-2 .visual-grid,.article-grid--count-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.capability-page .visual-section--count-3 .visual-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.capability-page--custom-machined-parts .visual-section--count-4 .visual-card:first-child{grid-column:auto}
.capability-page--custom-machined-parts .visual-section--count-4 .visual-card:first-child .visual-card__image{aspect-ratio:4/3}
.case-grid--count-1{display:block}
.case-grid--count-1 .case-card{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr)}
.case-grid--count-1 .case-card-image{height:100%;min-height:340px}
.case-grid--count-1 .case-card-copy{padding:32px}
.case-grid--count-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.process-pair{gap:22px;border:0}
.process-pair article{padding:0;border:1px solid var(--line);background:#fff}
.process-pair__image{height:260px;overflow:hidden;background:#dce5e8}
.process-pair__image img{display:block;width:100%;height:100%;object-fit:cover}
.process-pair__copy{padding:26px 30px 32px}
.process-pair__copy>span{display:block;margin-bottom:20px;color:#367e9f;font-size:10px;font-weight:800;letter-spacing:.15em}
.capability-page .visual-section--count-5.visual-section--products .visual-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.capability-page .visual-section--count-5.visual-section--products .visual-card:first-child{grid-column:span 2;display:grid;grid-template-columns:1.1fr .9fr}
.capability-page .visual-section--count-5.visual-section--products .visual-card:first-child .visual-card__image{aspect-ratio:auto;height:100%}
.capability-page .visual-section--count-5.visual-section--products .visual-card:first-child .visual-card__image img{object-fit:cover}
.capability-page .visual-section--count-5.visual-section--products .visual-card:first-child figcaption{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;border-top:0;padding:25px}
@media(max-width:720px){
 .capability-page .visual-section--count-1 .visual-card,.case-grid--count-1 .case-card{display:block}
 .case-grid--count-1 .case-card-image{height:auto;min-height:0;aspect-ratio:1.5}
 .capability-page .visual-section--count-1 .visual-card figcaption{padding:16px}
 .capability-page .visual-section--count-2 .visual-grid,.capability-page .visual-section--count-3 .visual-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .article-grid--count-2,.case-grid--count-2{grid-template-columns:1fr}
 .process-pair__image{height:210px}
}
@media(max-width:600px){
 .capability-page .visual-section--products .visual-grid,.capability-page .visual-section--count-5.visual-section--products .visual-grid{grid-template-columns:1fr}
 .capability-page .visual-section--products .visual-card,.capability-page .visual-section--count-5.visual-section--products .visual-card:first-child{grid-column:auto;display:grid;grid-template-columns:44% 56%}
 .capability-page .visual-section--products .visual-card__image,.capability-page .visual-section--count-5.visual-section--products .visual-card:first-child .visual-card__image{aspect-ratio:1.18}
 .capability-page .visual-section--products .visual-card figcaption,.capability-page .visual-section--count-5.visual-section--products .visual-card:first-child figcaption{padding:12px;border-top:0;align-content:center}
 .capability-page .visual-section--count-5.visual-section--products .visual-card:first-child{display:block}
 .capability-page .visual-section--count-5.visual-section--products .visual-card:first-child .visual-card__image{height:auto;aspect-ratio:1.5}
 .capability-page .visual-section--count-5.visual-section--products .visual-card:first-child figcaption{display:block;border-top:1px solid #e0e7e9}
}
.home-hero { min-height:0; }
.home-hero-grid { min-height:520px; gap:clamp(25px,4vw,60px); padding-block:42px; }
.home-hero h1 { font-size:clamp(42px,4.5vw,66px); line-height:1.04; }
.home-hero-photo img { max-height:450px; aspect-ratio:1.65; }
.home-capabilities { padding:72px 0; }
.home-capability-layout { display:grid; grid-template-columns:minmax(0,1.13fr) minmax(0,1fr); gap:12px 25px; }
.home-capability-entry { display:grid; grid-template-columns:38% 1fr; min-width:0; min-height:132px; gap:0; color:var(--ink); background:#f1f4f3; border:1px solid var(--line); }
.home-capability-entry--lead { grid-row:span 3; display:flex; flex-direction:column; }
.home-capability-image { display:block; min-width:0; overflow:hidden; background:#e6eceb; }
.home-capability-image img { display:block; width:100%; height:100%; object-fit:cover; }
.home-capability-entry--lead .home-capability-image { height:310px; }
.home-capability-entry--lead .home-capability-image img { object-fit:cover; }
.home-capability-copy { display:flex; flex-direction:column; align-items:flex-start; gap:7px; padding:16px 18px; }
.home-capability-entry--lead .home-capability-copy { padding:25px 26px 28px; }
.home-capability-copy .eyebrow { margin:0; }
.home-capability-copy strong { font-size:clamp(17px,1.45vw,23px); line-height:1.18; letter-spacing:-.035em; }
.home-capability-entry--lead strong { font-size:clamp(23px,2vw,31px); }
.home-capability-description { color:var(--muted); font-size:12px; line-height:1.45; }
.home-capability-copy .text-link { margin-top:auto; font-size:11px; font-weight:700; }
.home-capability-entry:hover .text-link { text-decoration:underline; }
.home-projects { padding:75px 0; }
.home-case-grid { align-items:stretch; gap:14px 27px; }
.home-case-grid .case-card:first-child { display:flex; flex-direction:column; }
.home-case-grid .case-card:first-child .case-card-image { height:auto; aspect-ratio:1.72; }
.home-case-grid .case-card:not(:first-child) { min-height:0; }
.home-case-grid .case-card:not(:first-child).has-image { display:flex; flex-direction:column; gap:0; }
.home-case-grid .case-card:not(:first-child) .case-card-image { height:auto; min-height:0; aspect-ratio:2.3; }
.home-case-grid .case-card-image { min-width:0; }
.home-case-grid .case-card:not(:first-child) .case-card-copy { padding-top:12px; }
.home-case-grid .case-card:not(:first-child) h3 { font-size:clamp(19px,1.7vw,25px); margin-bottom:7px; }
.home-case-grid .case-card:not(:first-child) p { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; margin-bottom:8px; }
.home-case-grid .case-card:not(:first-child) dl { margin-bottom:7px; }
.home-case-grid .case-card:first-child .case-card-copy { padding-top:19px; }
.case-card-image img { display:block; width:100%; height:100%; object-fit:contain; }
.case-reference-note { display:block; margin:-6px 0 11px; color:#6e7b7e; font-size:11px; }
.project-reference-note { max-width:530px; font-size:12px !important; }
.project-story { margin-top:28px; border-top:1px solid var(--line); }
.project-story>div { display:grid; grid-template-columns:130px 1fr; gap:20px; padding:19px 0; border-bottom:1px solid var(--line); }
.project-story h3 { margin:0; color:var(--blue); font-size:11px; letter-spacing:.09em; text-transform:uppercase; }
.project-story p { margin:0; color:var(--muted); line-height:1.6; }
.home-process { padding:66px 0; }
.home-quick-links { background:#e9efee; border-block:1px solid var(--line); }
.home-quick-links .container { display:grid; grid-template-columns:1.3fr 1fr 1fr; }
.home-quick-links a { display:grid; grid-template-columns:1fr 18px; align-content:center; gap:5px 15px; min-height:108px; padding:18px 24px; border-right:1px solid #c6d2d3; color:var(--ink); }
.home-quick-links a:first-child { padding-left:0; }
.home-quick-links a:last-child { border-right:0; }
.home-quick-links a strong { font-size:16px; letter-spacing:-.02em; }
.home-quick-links a span:nth-child(2) { grid-column:1; color:var(--muted); font-size:11px; line-height:1.4; }
.home-quick-links a span:last-child { grid-column:2; grid-row:1; color:var(--blue); font-size:19px; }
.home-quality { padding:70px 0; background:#263841; color:#f4f7f6; }
.home-quality-layout { display:grid; grid-template-columns:1.05fr .95fr; align-items:stretch; gap:clamp(36px,6vw,85px); }
.home-quality-photo { min-height:370px; background:#e8eeee; }
.home-quality-photo img { display:block; width:100%; height:100%; max-height:450px; object-fit:cover; }
.home-quality-copy { align-self:center; }
.home-quality-copy .eyebrow { color:#9acde4; }
.home-quality-copy h2 { margin:0 0 16px; }
.home-quality-copy>p:not(.eyebrow) { max-width:440px; color:#c8d7dc; }
.home-quality-copy ol { display:grid; grid-template-columns:1fr 1fr; gap:0 20px; list-style:none; margin:25px 0 24px; padding:0; }
.home-quality-copy li { padding:12px 0; border-top:1px solid #72858b; font-size:13px; }
.home-quality-copy .text-link { color:#a8d9ee; }
.home-resources { padding:73px 0; }
@media (max-width:900px) {
  .home-capability-layout { grid-template-columns:1fr 1fr; }
  .home-capability-entry--lead { grid-row:auto; }
  .home-capability-entry { display:flex; flex-direction:column; }
  .home-capability-image,.home-capability-entry--lead .home-capability-image { height:190px; }
  .home-capability-copy,.home-capability-entry--lead .home-capability-copy { padding:18px; flex:1; }
  .home-quick-links .container { grid-template-columns:1fr; }
  .home-quick-links a,.home-quick-links a:first-child { min-height:72px; padding:15px 0; border-right:0; border-bottom:1px solid #c6d2d3; }
  .home-quick-links a:last-child { border-bottom:0; }
}
@media (max-width:720px) {
  .home-hero-grid { padding-block:35px 20px; }
  .home-hero-photo img { max-height:310px; aspect-ratio:1.55; }
  .home-capabilities,.home-projects,.home-process,.home-quality,.home-resources { padding:55px 0; }
  .home-case-grid .case-card:first-child { display:block; }
  .home-case-grid .case-card:not(:first-child).has-image { display:flex; flex-direction:column; }
  .home-quality-layout { grid-template-columns:1fr; gap:24px; }
  .home-quality-photo { min-height:0; height:265px; }
  .home-quality-photo img { max-height:none; }
}
@media (max-width:520px) {
  .home-capability-layout { grid-template-columns:1fr; }
  .home-capability-entry { display:grid; grid-template-columns:38% 1fr; min-height:145px; }
  .home-capability-image,.home-capability-entry--lead .home-capability-image { height:100%; }
  .home-capability-copy,.home-capability-entry--lead .home-capability-copy { padding:14px; }
  .home-capability-copy strong,.home-capability-entry--lead strong { font-size:19px; }
  .home-capability-description { font-size:11px; }
  .home-case-grid .case-card:not(:first-child).has-image { grid-template-columns:minmax(0,1fr); }
  .home-case-grid .case-card:not(:first-child) .case-card-image { aspect-ratio:1.7; }
  .home-quality-copy ol { grid-template-columns:1fr; }
  .project-story>div { grid-template-columns:1fr; gap:7px; }
}

/* Final frame rules after legacy page styles. */
.case-card-image img { object-fit:cover; }
.case-card-image { background:var(--media-neutral); }
.visual-card__image.media-frame--asset-31 { aspect-ratio:1; }
.inner-hero-visual.media-frame { position:relative; }
.inner-hero-visual.media-frame { margin-right:0; min-width:0; width:100%; aspect-ratio:auto; }
.inner-hero-visual.media-frame img { position:absolute; inset:0; width:100%; height:100% !important; min-height:100% !important; }
.materials-page .visual-section--materials:not(.visual-section--finishes) .visual-card:first-child { grid-column:span 2; display:grid; grid-template-columns:1.25fr .75fr; }
.materials-page .visual-section--materials:not(.visual-section--finishes) .visual-card:first-child .visual-card__image { aspect-ratio:var(--media-feature-ratio); }
.materials-page .visual-section--materials:not(.visual-section--finishes) .visual-card:last-child { grid-column:span 3; display:grid; grid-template-columns:42% 58%; max-height:300px; }
.materials-page .visual-section--materials:not(.visual-section--finishes) .visual-card:last-child .visual-card__image { aspect-ratio:var(--media-feature-ratio); }
.materials-page .visual-section--materials:not(.visual-section--finishes) .visual-card:last-child figcaption { display:flex; flex-direction:column; justify-content:center; align-items:flex-start; padding:35px 45px; border-top:0; border-left:1px solid #e0e7e9; font-size:19px; }
.materials-page .visual-section--materials:not(.visual-section--finishes) .visual-card:last-child figcaption p { max-width:470px; margin:12px 0 0; color:var(--muted); font-size:14px; line-height:1.55; }
@media (max-width:720px) {
  .materials-page .visual-section--materials:not(.visual-section--finishes) .visual-card:last-child { grid-column:span 2; }
}
@media (max-width:520px) {
  .materials-page .visual-section--materials:not(.visual-section--finishes) .visual-card:first-child { grid-template-columns:1fr; }
  .materials-page .visual-section--materials:not(.visual-section--finishes) .visual-card:last-child { grid-column:span 2; grid-template-columns:1fr; max-height:none; }
  .materials-page .visual-section--materials:not(.visual-section--finishes) .visual-card:last-child figcaption { border-left:0; border-top:1px solid #e0e7e9; font-size:12px; }
}


