
/* Preserve the artwork aspect ratio in both header states. */
.nav .brand img { display:block; width:auto; height:58px; }
.nav.is-solid .brand img { height:54px; }
@media (max-width:1080px) {
  .nav .brand img { height:52px; }
  .nav.is-solid .brand img { height:50px; }
  .nav__in { justify-content:space-between; gap:12px; }
  .mnav { padding-bottom:max(24px, env(safe-area-inset-bottom)); overscroll-behavior:contain; }
  .mnav a.mnav__l { gap:12px; font-size:clamp(1.2rem, 5.6vw, 1.6rem); }
  .mnav__foot .lang { display:none; }
}
.cmm { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); gap:clamp(24px,4vw,64px); align-items:center; }
.cmm h2 { margin:0 0 16px; }
.cmm ol { padding-inline-start:1.35rem; margin:24px 0 0; }
.cmm li + li { margin-top:16px; }
.cmm li h3,.cmm li p { margin:0 0 4px; }
.cmm figure { margin:0; }
.cmm img { display:block; width:100%; height:auto; border-radius:8px; }
.cmm figcaption { font-size:.875rem; margin-top:8px; }
@media (max-width:800px) { .cmm { grid-template-columns:1fr; } }

/* Keep the full wing illustration and its callouts inside the hero. */
.hero__art { margin:0; }
.hero__art svg { display:block; width:100%; max-width:100%; height:auto; margin:0; transform:none; }

/* Let the drawing and its caption occupy separate rows. */
.plate--qc { aspect-ratio:auto; }
.plate--qc > svg { display:block; width:100%; height:auto; }
.plate--qc .plate__cap { position:static; gap:12px; }
.plate--qc .plate__cap span:last-child { white-space:nowrap; }

.env__fig svg { display:block; }
.env__fig .box path { vector-effect:non-scaling-stroke; }
.env__fig .box { stroke-width:1.4px; }
.env__fig .box.is-on { stroke-width:2.5px; }
.env__fig .box.is-dim { opacity:.4; }
.env__fig text { font-size:22px; }
@media (max-width:520px) {
  .env__btn { grid-template-columns:14px minmax(0,1fr); gap:4px 12px; padding:12px 14px; }
  .env__btn span { grid-column:2; }
  .env__fig { padding:8px; }
}

.env__dims { display:none; }
.env__fig .box.is-on .env__dims { display:block; }
.env__fig .env__dims text {
  fill:var(--c); fill-opacity:1; stroke:white; stroke-width:3px;
  paint-order:stroke; stroke-linejoin:round; font-size:26px; font-weight:700;
}

/* Use a quieter surface palette between the navy sections. */
:root {
  --surface:#f5f8fb;
  --tech:#eaf0f5;
  --blue-ui:#075d91;
  --r:8px;
}
body { background:var(--surface); }
.sec--tech.grid-bg {
  background-image:linear-gradient(rgba(7,23,40,.035) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(7,23,40,.035) 1px,transparent 1px);
}
.hero .grid-bg { opacity:.55; }
.nav .menu a:hover { background:rgba(255,255,255,.06); border-radius:var(--r); }
.btn:not(.btn--line):hover { --bg:#064c79; }
main a:not(.btn):focus-visible, main button:focus-visible,
main input:focus-visible, main select:focus-visible, main textarea:focus-visible {
  outline:2px solid #1686c4;
  outline-offset:3px;
}
.mcard, .sheet__media, .env__fig, .form, .posts { border-radius:var(--r); }
.posts { overflow:hidden; }
.post__meta { color:#526477; }
.post summary { min-height:44px; align-items:center; }
.mcard__img img, .sheet__media img { object-fit:contain; }
.mcard:hover .mcard__img img, .sheet__media:hover img { transform:none; }
.mcard__spec { grid-template-columns:repeat(3,minmax(0,1fr)); }
.mcard__spec dd { overflow-wrap:anywhere; }
.foot { padding-top:clamp(44px,6vw,76px); }
.foot__top { padding-bottom:36px; }

@media (max-width:760px) {
  :root { --gut:clamp(16px,4.6vw,30px); }
  .sec { padding-block:clamp(44px,9vw,68px); }
  .page-hero { padding-top:calc(var(--nav-h) + 36px); padding-bottom:40px; }
  .page-hero h1 { font-size:clamp(2rem,8vw,3.3rem); overflow-wrap:anywhere; }
  .lead { font-size:1.05rem; }
  .nav__tools .lang a, .nav__tools .lang span { min-height:40px; display:inline-grid; place-items:center; }
  .mcta {
    inset:auto max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) auto;
    visibility:hidden;
    max-width:calc(100% - 24px);
  }
  .mcta.is-on { visibility:visible; }
  .mcta .btn {
    width:auto; min-height:44px; gap:8px; padding:0 14px;
    font-size:.875rem; box-shadow:0 4px 14px rgba(7,23,40,.24);
  }
  .mcard__img { aspect-ratio:5/4; }
  .mcard__spec div { padding:12px 8px; }
  .mcard__spec dt { letter-spacing:.07em; }
}

.search { min-width:0; max-width:100%; }
.pgrid--company { grid-template-columns:repeat(2,minmax(0,1fr)); }
@media (max-width:560px) {
  .pgrid--company { grid-template-columns:minmax(0,1fr); }
}

.plate--drawing, .plate:has(> .plate__cap) { aspect-ratio:auto; }
.plate > svg { display:block; width:100%; height:auto; margin-inline:auto; }
.plate > .plate__cap { position:static; }
.plate__cap span:last-child { white-space:nowrap; }
.drawing-mark { stroke:#a9c7de; stroke-width:1.4; fill:#a9c7de; }
.drawing-dim, .rib .drawing-dim { font-family:var(--f-mono); font-size:24px; fill:#e5f3ff; }
.plate--drawing svg text:not(.drawing-dim):not(.tag) { font-size:19px; }
.cap__visual { min-width:0; display:grid; gap:16px; align-content:start; }
.cap .cap__visual .plate { position:relative; top:auto; }
.cap-photo { margin:0; }
.cap-photo img { width:100%; height:auto; border-radius:var(--r); }
.cap-photo figcaption { color:var(--ink-2); font-size:.85rem; margin-top:6px; }

/* Keep anchor headings clear of both sticky navigation rows. */
section.cap[id] { scroll-margin-top:60px; }
.drawing-open {
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  min-height:44px; padding:0 12px; margin:0 12px 8px;
  color:#e5f3ff; background:#123552; border:1px solid #476983;
  border-radius:var(--r); text-decoration:none; font-size:.85rem;
}
.hero__art .drawing-open { pointer-events:auto; margin:0; }
.drawing-open:hover { background:#18466b; }
.lb--drawing {
  width:min(94vw,1100px); max-height:90vh; background:#071728;
  border:1px solid #476983; border-radius:var(--r);
}
.lb__bar { display:flex; justify-content:flex-end; gap:8px; padding:8px; }
.lb__bar .lb__x { position:static; flex:none; }
.lb__zoom { min-height:44px; padding:0 12px; border:1px solid #476983; background:#123552; color:white; border-radius:var(--r); cursor:pointer; }
.lb__drawing-scroll { margin:0; overflow:auto; max-height:calc(90vh - 64px); }
.lb--drawing img { width:100%; max-height:calc(90vh - 112px); object-fit:contain; }
.lb--drawing.is-zoomed img { width:200%; max-width:none; max-height:none; }
.lb--drawing figcaption { padding-inline:12px; }
.machine-compare { margin-top:clamp(32px,5vw,64px); }
.machine-compare h2 { font-size:clamp(1.5rem,3vw,2.4rem); }
.machine-compare p { color:var(--ink-2); }
.machine-compare__scroll { overflow-x:auto; border:1px solid var(--line-l); border-radius:var(--r); background:#fff; }
.machine-compare table { border-collapse:collapse; width:100%; min-width:680px; font-size:.92rem; }
.machine-compare th,.machine-compare td { text-align:left; padding:12px 14px; border-bottom:1px solid var(--line-l); }
.machine-compare thead { background:#102a43; color:#fff; }
.machine-compare tbody tr:last-child > * { border-bottom:0; }
@media (max-width:900px) {
  .cap .cap__visual { order:2; }
}

.sample-gallery, .inspection-example {
  display:grid;
  gap:16px;
  margin-block:24px;
}
.sample-gallery { grid-template-columns:repeat(3,minmax(0,1fr)); }
.sample-gallery figure { margin:0; min-width:0; }
.sample-gallery img {
  display:block;
  width:100%;
  height:auto;
  border-radius:var(--r);
}
.sample-gallery figcaption { margin-top:10px; }
.sample-gallery p { margin:4px 0 0; }
.sample-links { display:flex; flex-wrap:wrap; gap:12px 24px; }
.sample-links a, .sample-gallery a, .post-related a {
  font-weight:600;
  text-decoration:underline;
  text-underline-offset:.18em;
}
.inspection-example { grid-template-columns:repeat(4,minmax(0,1fr)); }
.inspection-example div {
  padding:12px;
  border:1px solid #b5c5d3;
  border-radius:var(--r);
}
.inspection-example dd { margin:4px 0 0; font-weight:600; }
#cmm-example, #machine-compare-h { scroll-margin-top:96px; }
.post-related { padding:0 20px 16px; }
@media (max-width:600px) {
  .sample-gallery { grid-template-columns:minmax(0,1fr); max-width:420px; margin-inline:auto; }
  .sample-gallery img { max-height:400px; object-fit:contain; }
  .inspection-example { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .plate--drawing .drawing-dim, .hero__art .rib .drawing-dim { font-size:28px; }
}
.cap .plate + .cap-photo { margin-top:12px; }
.cap__visual .plate + .cap-photo { margin-top:0; }
.cap-photo--sample img { max-height:440px; object-fit:contain; }

.editorial-figure { margin: 0 0 1rem; }
.editorial-figure img { display:block; width:100%; height:auto; max-height:360px; aspect-ratio:4/3; object-fit:contain; background:#102438; border-radius:var(--r); }
.editorial-figure figcaption { padding-top:.5rem; font-size:.875rem; }
.note-answer { font-weight:600; }
.machine-quick { margin-block:0 2rem; }
.machine-quick ul { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr)); gap:.75rem; padding:0; list-style:none; }
.machine-quick a { display:grid; gap:.25rem; padding:1rem; border:1px solid #8298aa; border-radius:var(--r); color:inherit; }
.sheet[id] { scroll-margin-top:96px; }

.corporate-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr)); gap:12px; padding:0; list-style-position:inside; }
.corporate-grid > * { margin:0; padding:12px; border:1px solid #8298aa; border-radius:var(--r); }
.corporate-diagram { display:block; width:100%; max-width:520px; height:auto; margin-block:12px; background:#102438; color:#d8edff; border-radius:var(--r); }
.corporate-diagram path,.corporate-diagram circle { fill:none; stroke:currentColor; stroke-width:2; }
.corporate-diagram text { fill:currentColor; font-size:13px; }
.corporate-links { padding-block:12px; }
.corporate-links a,.corporate-detail a { text-decoration:underline; }
#sample-bracket,#engineering-workflow { scroll-margin-top:96px; }
.corporate-service dd { margin:.35rem 0 0; }

/* Keep small labels legible on white and pale blue surfaces. */
.svc__i, .proc__panel .k, .cap__no, .pgrid .mono, .post__meta {
  color:#526579;
}
.sec--dark .pgrid .mono { color:var(--on-dark-2); }

.nav .menu a[aria-current="page"],
.mnav a.mnav__l[aria-current="page"] {
  text-decoration:underline;
  text-underline-offset:.32em;
}
.nav__tools .lang a,
.nav__tools .lang span,
.mnav__foot .lang a,
.mnav__foot .lang span {
  display:inline-grid;
  place-items:center;
  min-width:36px;
  min-height:44px;
}

@media (max-width:760px) {
  .hero h1 { font-size:clamp(2rem,8vw,3.3rem); line-height:1.12; }
  .page-hero h1 { line-height:1.15; }
  .post__meta, .cap__no { font-size:.85rem; }
}

.home-services { padding-block:20px; border-bottom:1px solid var(--line-l); }
.home-services ul {
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px;
  margin:0; padding:0; list-style:none;
}
.home-services a {
  display:flex; align-items:center; justify-content:space-between; gap:8px;
  min-height:44px; height:100%; padding:8px 12px;
  border:1px solid var(--line-l); border-radius:var(--r);
  color:var(--ink); font-weight:600; line-height:1.3;
}
.home-services a:hover { border-color:var(--blue-ui); color:var(--blue-ui); }
.home-services a span { color:var(--blue-ui); }
.sample-stage__visual { display:grid; place-items:center; aspect-ratio:4/3; background:#102438; border-radius:var(--r); overflow:hidden; }
.sample-stage__visual img { width:100%; height:100%; min-height:0; object-fit:contain; }
.sample-stage__visual svg { width:100%; margin:0; }
.machine-compare p.machine-scroll-hint { color:#526579; font-size:.95rem; }
@media (min-width:800px) {
  .machine-scroll-hint { display:none; }
}
@media (max-width:760px) {
  .home-services ul { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

.axis-compare {
  margin:1rem 0; padding:12px;
  border:1px solid var(--line-l); border-radius:var(--r);
  background:#f3f7fa; color:var(--ink);
}
.axis-compare figcaption { font-size:.88rem; font-weight:600; margin-bottom:8px; }
.axis-compare__grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.axis-compare__grid strong, .axis-compare__grid > div > span {
  display:block; margin-top:4px; font-size:.85rem; line-height:1.35;
}
.axis-photo { display:block; width:100%; aspect-ratio:4/5; height:auto; object-fit:cover; border-radius:4px; }
.axis-compare__note { margin:8px 0 0; font-size:.8rem; color:var(--ink-2); }

.part-examples { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; padding:0; margin:20px 0 0; list-style:none; }
.part-examples a { display:grid; height:100%; gap:6px; padding:12px; border:1px solid var(--line-l); border-radius:var(--r); color:var(--ink); }
.part-examples img { display:block; width:100%; aspect-ratio:4/3; height:auto; object-fit:cover; border-radius:4px; }
.part-examples a span { color:var(--ink-2); font-size:.9rem; }
.inspection-visual { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.25fr); gap:20px; align-items:start; }
.inspection-visual .inspection-example { grid-template-columns:repeat(2,minmax(0,1fr)); }
.inspection-photo { margin:0; }
.inspection-photo img { display:block; width:100%; max-height:360px; height:auto; object-fit:contain; background:#102438; border-radius:var(--r); }
.inspection-photo figcaption { font-size:.875rem; margin-top:6px; }
.sheet__media picture { display:grid; width:100%; height:100%; place-items:center; }
@media (max-width:680px) {
  .part-examples,.inspection-visual { grid-template-columns:1fr; }
}

.wing-rib-photo {
  display: block;
  width: 100%;
  height: auto;
  border-radius: var(--r, 8px);
}
.hero__art--photo .wing-rib-photo {
  border: 1px solid rgba(148, 184, 211, .22);
}
.hero__art--photo .drawing-open {
  margin-top: 12px;
}

/* Keep the product imagery in a restrained blue and silver palette. */
img[src*="/assets/process/"]:not(.wing-rib-photo),
img[src*="/assets/capabilities/"],
img[src*="/assets/quality/"] {
  filter: saturate(.76);
}
.inspection-photo img {
  width: min(100%, 286px);
  max-height: none;
  margin-inline: auto;
}
.bracket-drawing rect {
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
}
.bracket-drawing .bracket-detail { opacity: .62; }

.cap__engineering > div { max-width: 760px; }
.pgrid--principles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pgrid--principles > div {
  display: grid;
  grid-template-columns: 2rem minmax(0, 1fr);
  gap: .3rem .6rem;
  padding: 1rem;
}
.pgrid--principles .mono { grid-row: span 2; padding-top: .2rem; }
.pgrid--principles h3 { margin: 0; }
.pgrid--principles p { grid-column: 2; }
.quality-quote { margin-block: 0 2rem; }
@media (max-width: 640px) {
  .pgrid--principles { grid-template-columns: minmax(0, 1fr); }
  .svc-grid .svc:not(.svc--lg):not(.svc--cta) {
    display: grid;
    grid-template-columns: 36px minmax(0, 1fr) 36px;
    align-items: center;
    gap: .35rem .65rem;
    padding: 1rem;
  }
  .svc-grid .svc__ico { width: 36px; height: 36px; margin: 0; }
  .svc-grid .svc:not(.svc--lg):not(.svc--cta) h3 { margin: 0; }
  .svc-grid .svc:not(.svc--lg):not(.svc--cta) p { grid-column: 2 / -1; }
  .svc-grid .svc:not(.svc--lg):not(.svc--cta) .svc__go {
    position: static;
    grid-area: 1 / 3;
    width: 36px;
    height: 36px;
  }
}
