/* Single source of layout styles. White canvas, brand CTAs, always-visible navigation. */
#njp-wireframe {
  --njp-font: "Plus Jakarta Sans", Arial, Helvetica, sans-serif;
  --njp-ink: #23282f;
  --njp-secondary: #59636e;
  --njp-brand-green: #008447;
  --njp-brand-red: #c8102e;
  --njp-brand-blue: #1e3252;
  --njp-label-accent: var(--njp-brand-red);
  --njp-gutter: clamp(16px, 3cqw, 40px);
  --njp-radius: 30px;
  --njp-surface: #f5f5f5;
  --njp-surface-strong: #eeeeee;
  --njp-surface-inset: #e6e6e6;
  --njp-surface-border: #dedede;
  color-scheme: light;
  container: njp-page / inline-size;
  width: 100%;
  max-width: 1360px;
  margin-inline: auto;
  background: #fff;
  color: var(--njp-ink);
  font: 400 16px/1.7 var(--njp-font);
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}
#njp-wireframe *, #njp-wireframe *::before, #njp-wireframe *::after { box-sizing: border-box; }
#njp-wireframe h1, #njp-wireframe h2, #njp-wireframe h3, #njp-wireframe p { margin: 0; }
#njp-wireframe h1, #njp-wireframe h2, #njp-wireframe h3 { font-family: var(--njp-font); color: var(--njp-brand-blue); text-wrap: balance; overflow-wrap: normal; word-break: normal; hyphens: none; }
#njp-wireframe h1 { font-size: clamp(32px, 4.8cqw, 62px); font-weight: 600; line-height: 1.1; letter-spacing: -.045em; }
#njp-wireframe h2 { font-size: clamp(26px, 3.1cqw, 38px); font-weight: 600; line-height: 1.24; letter-spacing: -.035em; }
#njp-wireframe h3 { font-size: clamp(22px, 2.3cqw, 27px); font-weight: 600; line-height: 1.3; letter-spacing: -.025em; }
#njp-wireframe p { text-wrap: pretty; }
#njp-wireframe a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 4px; }
#njp-wireframe img { display: block; }
#njp-wireframe button, #njp-wireframe input, #njp-wireframe select, #njp-wireframe textarea { font: inherit; }
#njp-wireframe button:disabled, #njp-wireframe input:disabled, #njp-wireframe select:disabled, #njp-wireframe textarea:disabled { opacity: 1; -webkit-text-fill-color: currentColor; cursor: default; }
#njp-wireframe button { max-width: 100%; }
#njp-wireframe .njp-content { padding-inline: var(--njp-gutter); }
#njp-wireframe .njp-review { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 24px; padding: 14px 112px 10px var(--njp-gutter); color: #737b84; font-size: 11px; line-height: 1.6; letter-spacing: .08em; text-transform: uppercase; }
#njp-wireframe .njp-review span { min-width: 0; }
#njp-wireframe .njp-header { padding-bottom: 24px; }
#njp-wireframe .njp-header-top { display: grid; grid-template-columns: 210px minmax(0,1fr); grid-template-areas: "logo contacts" "logo actions"; gap: 12px 24px; align-items: center; padding: 18px 0 25px; }
#njp-wireframe .njp-header-top > .njp-logo { grid-area: logo; }
#njp-wireframe .njp-header-right { display: contents; }
#njp-wireframe .njp-logo { position: relative; width: 206px; max-width: 100%; aspect-ratio: 670 / 340; overflow: hidden; }
#njp-wireframe .njp-logo img { position: absolute; width: 149.253732%; max-width: none; height: auto; left: -24.626866%; top: -94.117647%; }
#njp-wireframe .njp-contact-strip { grid-area: contacts; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px 22px; font-size: 12px; line-height: 1.5; color: #5b6671; }
#njp-wireframe .njp-contact-strip a { text-decoration: none; white-space: nowrap; }
#njp-wireframe .njp-header-actions { grid-area: actions; display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 12px 24px; }
#njp-wireframe .njp-text-button { appearance: none; border: 0; border-radius: 0; background: transparent; padding: 8px 0; color: #303944; text-align: left; font-size: 14px; font-weight: 600; line-height: 1.5; }
#njp-wireframe .njp-navigation { border-top: 1px solid #e8ecef; border-bottom: 1px solid #dfe5e9; }
#njp-wireframe .njp-nav { display: flex; align-items: stretch; justify-content: space-between; gap: 14px; }
#njp-wireframe .njp-nav a { position: relative; display: flex; align-items: center; flex: 0 0 auto; min-width: 0; min-height: 62px; padding: 15px 0; font-size: 16px; font-weight: 600; line-height: 1.45; white-space: nowrap; }
#njp-wireframe .njp-nav a:first-child { color: var(--njp-brand-red); }
#njp-wireframe .njp-nav a:first-child::after { content: ""; position: absolute; bottom: -1px; left: 0; width: 44px; height: 3px; border-radius: 3px 3px 0 0; background: var(--njp-brand-red); }
#njp-wireframe .njp-nav .njp-catalog-link { color: var(--njp-label-accent); }
#njp-wireframe .njp-button { appearance: none; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; gap: 9px; min-width: 0; min-height: 50px; padding: 13px 24px; border: 1px solid var(--njp-brand-blue); border-radius: 999px; background: var(--njp-brand-blue); color: #fff; font-size: 14px; font-weight: 600; line-height: 1.45; text-align: center; text-wrap: balance; box-shadow: 0 4px 12px #253c5010; }
#njp-wireframe .njp-button-primary { background: var(--njp-brand-green); color: #fff; border-color: var(--njp-brand-green); box-shadow: 0 5px 14px #00894920; white-space: nowrap; }
#njp-wireframe .njp-hero { position: relative; isolation: isolate; display: grid; border-radius: var(--njp-radius); overflow: hidden; background: #09283f; box-shadow: 0 14px 30px #1f45601a; }
#njp-wireframe .njp-hero-picture { display: block; grid-area: 1 / 1; min-width: 0; width: 100%; }
#njp-wireframe .njp-hero-image { width: 100%; height: auto; object-fit: contain; }
#njp-wireframe .njp-hero::after { content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none; background: radial-gradient(ellipse at 54% 46%, transparent 22%, #03142228 58%, #03142299 100%), linear-gradient(180deg, #061a2bbd 0%, #061a2b66 23%, transparent 43%, transparent 56%, #041727a8 80%, #041727eb 100%); }
#njp-wireframe .njp-hero-copy { grid-area: 1 / 1; align-self: start; z-index: 1; padding: 35px 38px 0; min-width: 0; }
#njp-wireframe .njp-kicker { display: flex; align-items: center; gap: 10px; margin-bottom: 18px; color: #fff; font-size: 11px; line-height: 1.5; font-weight: 600; letter-spacing: .13em; text-transform: uppercase; }
#njp-wireframe .njp-kicker::before { content: ""; flex: 0 0 7px; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
#njp-wireframe .njp-hero h1 { color: #fff; text-wrap: initial; }
#njp-wireframe .njp-hero-bottom { position: relative; grid-area: 1 / 1; align-self: end; z-index: 1; padding: 0 38px 32px; min-width: 0; }
#njp-wireframe .njp-hero-bottom > p { max-width: 495px; margin-bottom: 22px; color: #fff; font-size: 16px; line-height: 1.65; font-weight: 500; }
#njp-wireframe .njp-hero-actions { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 18px 30px; }
#njp-wireframe .njp-slogan { color: #fff; font-size: 12px; line-height: 1.7; }
#njp-wireframe .njp-intro { display: grid; grid-template-columns: minmax(270px,.85fr) minmax(0,1.65fr); gap: 40px; padding: 44px 8px; }
#njp-wireframe .njp-intro > div { min-width: 0; }
#njp-wireframe .njp-section-label { display: flex; align-items: center; gap: 8px; margin-bottom: 18px; color: var(--njp-label-accent); font-size: 11px; font-weight: 600; line-height: 1.6; text-transform: uppercase; letter-spacing: .11em; }
#njp-wireframe .njp-section-label::before { content: ""; width: 6px; height: 6px; flex: 0 0 6px; border-radius: 50%; background: currentColor; }
#njp-wireframe .njp-intro h2 { font-size: 26px; line-height: 1.32; }
#njp-wireframe .njp-brand-name { white-space: nowrap; }
#njp-wireframe .njp-intro h2 .njp-brand-name { display: block; }
#njp-wireframe .njp-about-lead { margin-bottom: 16px; font-size: 27px; line-height: 1.34; text-wrap: balance; }
#njp-wireframe .njp-intro p { font-size: 15px; line-height: 1.8; color: var(--njp-secondary); max-width: 72ch; }
#njp-wireframe .njp-supply-types { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
#njp-wireframe .njp-supply-types span { display: inline-flex; align-items: center; gap: 7px; background: #fff; border: 1px solid var(--njp-brand-red); color: var(--njp-brand-red); padding: 7px 12px; border-radius: 999px; font-size: 12px; line-height: 1.5; white-space: nowrap; }
#njp-wireframe .njp-supply-types span::before { content: "✓"; color: var(--njp-brand-red); font-weight: 600; }
#njp-wireframe .njp-rfq { padding: clamp(24px,3.6cqw,42px); border: 1px solid #aebbc4; border-radius: var(--njp-radius); background: var(--njp-surface-strong); box-shadow: 0 12px 28px #27374612; }
#njp-wireframe .njp-rfq-heading { padding-bottom: 25px; margin-bottom: 28px; border-bottom: 1px solid #c9d1d7; }
#njp-wireframe .njp-rfq .njp-section-label { color: var(--njp-brand-red); }
#njp-wireframe .njp-rfq h2 { font-size: clamp(28px,4.1cqw,46px); font-weight: 700; line-height: 1.15; letter-spacing: -.04em; color: var(--njp-brand-blue); }
#njp-wireframe .njp-rfq-heading p { margin-top: 14px; color: #3d4b57; font-size: 15px; font-weight: 500; }
#njp-wireframe fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
#njp-wireframe .njp-part-row { display: grid; grid-template-columns: minmax(0,1.7fr) minmax(100px,.55fr) minmax(140px,.9fr); gap: 18px; }
#njp-wireframe label { display: flex; flex-direction: column; min-width: 0; gap: 9px; font-size: 14px; line-height: 1.5; font-weight: 600; color: #202b35; }
#njp-wireframe input, #njp-wireframe select, #njp-wireframe textarea { appearance: none; display: block; width: 100%; min-width: 0; min-height: 56px; margin: 0; padding: 15px 19px; border: 1.5px solid #778794; border-radius: 28px; box-shadow: none; background: #fff; color: #202b35; font-size: 16px; font-weight: 500; line-height: 1.5; }
#njp-wireframe input::placeholder, #njp-wireframe textarea::placeholder { color: #566470; opacity: 1; -webkit-text-fill-color: #566470; }
#njp-wireframe textarea { min-height: 116px; border-radius: 24px; resize: vertical; }
#njp-wireframe .njp-select { position: relative; }
#njp-wireframe .njp-select select { padding-right: 36px; }
#njp-wireframe .njp-select::after { content: "⌄"; position: absolute; right: 18px; bottom: 17px; line-height: 1.4; pointer-events: none; color: #202b35; }
#njp-wireframe .njp-small-action { color: var(--njp-brand-blue); margin: 13px 0 17px; min-height: 44px; font-size: 14px; }
#njp-wireframe .njp-upload { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px 20px; padding: 17px 20px; margin-bottom: 26px; background: var(--njp-surface-inset); border: 1px dashed #9eabb5; border-radius: 24px; }
#njp-wireframe .njp-upload span { font-size: 14px; color: #33444f; }
#njp-wireframe .njp-upload .njp-button { min-height: 44px; padding: 11px 19px; font-size: 13px; border-color: var(--njp-brand-blue); box-shadow: none; }
#njp-wireframe .njp-contact-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 22px; margin-bottom: 22px; }
#njp-wireframe .njp-field-full { grid-column: 1 / -1; }
#njp-wireframe .njp-send { display: flex; align-items: center; flex-wrap: wrap; gap: 18px 22px; margin-top: 28px; }
#njp-wireframe .njp-send .njp-button { min-width: 174px; background: var(--njp-brand-red); border-color: var(--njp-brand-red); color: #fff; font-size: 15px; font-weight: 700; box-shadow: 0 5px 12px #c8102e24; }
#njp-wireframe .njp-send small { flex: 1 1 220px; color: #4c5965; font-size: 12px; line-height: 1.6; }
#njp-wireframe .njp-catalog { display: grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); gap: 0; align-items: stretch; overflow: hidden; margin-top: 36px; border: 1px solid var(--njp-surface-border); border-radius: var(--njp-radius); background: var(--njp-surface); }
#njp-wireframe .njp-catalog > div { min-width: 0; }
#njp-wireframe .njp-catalog h2 { font-size: 28px; }
#njp-wireframe .njp-catalog p { margin-top: 12px; font-size: 15px; color: var(--njp-secondary); }
#njp-wireframe .njp-catalog-actions { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; margin-top: 24px; }
#njp-wireframe .njp-catalog-domain { font-size: 13px; color: var(--njp-label-accent); }
#njp-wireframe .njp-service { padding: 64px 0; border-bottom: 1px solid #e7ecef; }
#njp-wireframe .njp-service-summary { display: grid; grid-template-columns: minmax(0,1.05fr) minmax(0,1fr); align-items: center; gap: 44px; }
#njp-wireframe .njp-service-summary > div { min-width: 0; }
#njp-wireframe .njp-service-summary p { max-width: 60ch; margin: 20px 0 24px; font-size: 15px; color: var(--njp-secondary); }
#njp-wireframe .njp-facts { display: grid; gap: 0; margin: 0 0 26px; padding: 0; list-style: none; background: transparent; }
#njp-wireframe .njp-facts li { position: relative; padding: 12px 0 12px 21px; border-bottom: 1px solid #e0e6eb; font-size: 14px; line-height: 1.7; color: #4f5d69; }
#njp-wireframe .njp-facts li:last-child { border: 0; }
#njp-wireframe .njp-facts li::before { content: ""; position: absolute; left: 0; top: 22px; width: 6px; height: 6px; border-radius: 50%; background: var(--njp-brand-red); }
#njp-wireframe .njp-section-title { margin-bottom: 28px; }
#njp-wireframe .njp-products { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
#njp-wireframe .njp-product { position: relative; display: flex; flex-direction: column; align-items: stretch; min-width: 0; padding: 0; overflow: hidden; border: 1px solid var(--njp-surface-border); border-radius: var(--njp-radius); background: var(--njp-surface); box-shadow: 0 8px 25px #00000006; }
#njp-wireframe .njp-product-type { display: inline-flex; max-width: 100%; align-items: center; padding: 7px 12px; margin-bottom: 24px; border: 1px solid var(--njp-brand-red); border-radius: 999px; background: #fff; color: var(--njp-label-accent); font-size: 11px; font-weight: 600; line-height: 1.6; text-transform: uppercase; letter-spacing: .07em; }
#njp-wireframe .njp-product p { margin-top: 18px; font-size: 15px; color: #505d69; }
#njp-wireframe .njp-product .njp-detail { margin: 11px 0 27px; font-size: 13px; line-height: 1.8; color: #606d79; }
#njp-wireframe .njp-product .njp-button { margin-top: auto; }
#njp-wireframe .njp-tooling { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px 24px; margin-top: 20px; font-size: 13px; color: #5b6874; }
#njp-wireframe .njp-certificates { padding: 46px 8px; }
#njp-wireframe .njp-certificates-intro { margin: 16px 0 30px; max-width: 65ch; font-size: 15px; color: var(--njp-secondary); }
#njp-wireframe .njp-certificate-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); align-items: start; gap: 42px; }
#njp-wireframe .njp-certificate { min-width: 0; }
#njp-wireframe .njp-certificate h3 { font-size: 23px; }
#njp-wireframe .njp-certificate p { margin-top: 8px; color: var(--njp-secondary); font-size: 14px; }
#njp-wireframe .njp-document-toggle { display: block; appearance: none; width: 100%; margin: 22px 0 0; padding: 0; border: 0; background: transparent; color: #303b46; text-align: left; font-size: 14px; }
#njp-wireframe .njp-document-mat { display: flex; align-items: center; justify-content: flex-start; height: 310px; }
#njp-wireframe .njp-document-mat img { width: auto; height: auto; max-width: 100%; max-height: 100%; object-fit: contain; border: 1px solid #e2e6ea; box-shadow: 0 3px 8px #152c3c0b; }
#njp-wireframe .njp-document-caption { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-top: 16px; font-size: 13px; font-weight: 600; }
#njp-wireframe .njp-document-caption span:last-child { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 36px; width: 36px; height: 36px; border: 1px solid #e0e5e9; border-radius: 50%; background: #f2f4f6; font-size: 21px; }
#njp-wireframe .njp-certificate.is-expanded { grid-column: 1 / -1; }
#njp-wireframe .njp-certificate.is-expanded .njp-document-mat { height: auto; }
#njp-wireframe .njp-certificate.is-expanded img { width: auto; max-width: 100%; max-height: 1100px; }
#njp-wireframe .njp-footer { padding: 38px var(--njp-gutter) 26px; border-radius: 0; isolation: isolate; background: #2e3239; color: #fff; }
#njp-wireframe .njp-footer-grid { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(0,1fr) minmax(0,1fr); align-items: start; gap: 35px; }
#njp-wireframe .njp-footer-grid > div { min-width: 0; }
#njp-wireframe .njp-footer .njp-logo { width: 196px; margin: 0 0 25px; background: transparent; border-radius: 0; box-shadow: none; }
#njp-wireframe .njp-footer .njp-logo img { filter: contrast(1.3); mix-blend-mode: lighten; }
#njp-wireframe .njp-footer h3 { color: #fff; font-size: 16px; line-height: 1.5; margin: 6px 0 17px; }
#njp-wireframe .njp-footer-contact { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; margin-bottom: 19px; font-size: 14px; line-height: 1.6; }
#njp-wireframe .njp-footer-contact a { overflow-wrap: anywhere; }
#njp-wireframe .njp-footer-phone { color: #d1d8df; white-space: nowrap; }
#njp-wireframe .njp-footer p, #njp-wireframe .njp-footer address { font-size: 13px; line-height: 1.9; font-style: normal; color: #c0c8d2; }
#njp-wireframe .njp-footer .njp-text-button { display: block; margin-bottom: 4px; padding: 6px 0; color: #cbd3dc; font-size: 13px; font-weight: 500; }
#njp-wireframe .njp-footer .njp-button-primary { margin-top: 21px; font-size: 13px; }
#njp-wireframe .njp-footer-bottom { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 14px 28px; padding-top: 23px; margin-top: 33px; border-top: 1px solid #ffffff20; color: #b0bac7; font-size: 12px; line-height: 1.7; }
#njp-wireframe .njp-visual { position: relative; width: 100%; min-width: 0; margin: 0; overflow: hidden; aspect-ratio: 3 / 2; background: #e9ecef; }
#njp-wireframe .njp-visual img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
#njp-wireframe .njp-catalog-copy { align-self: center; padding: 34px; }
#njp-wireframe .njp-catalog-visual { height: 100%; min-height: 300px; }
#njp-wireframe .njp-repair-visual { border-radius: var(--njp-radius); box-shadow: 0 12px 32px #1221370c; }
#njp-wireframe .njp-logistics { padding: 40px 0; }
#njp-wireframe .njp-logistics-layout { display: grid; grid-template-columns: minmax(0,.95fr) minmax(0,1.05fr); align-items: center; gap: 32px; }
#njp-wireframe .njp-logistics-copy { min-width: 0; }
#njp-wireframe .njp-logistics-copy p { max-width: 54ch; margin-top: 14px; color: var(--njp-secondary); font-size: 15px; }
#njp-wireframe .njp-logistics-visual { aspect-ratio: 3 / 2; border-radius: var(--njp-radius); }
#njp-wireframe .njp-logistics-points { display: grid; gap: 10px; margin: 20px 0 24px; padding: 0; list-style: none; }
#njp-wireframe .njp-logistics-points li { padding-left: 13px; border-left: 2px solid var(--njp-brand-red); color: #4f5d69; font-size: 14px; line-height: 1.6; }
#njp-wireframe .njp-product-body { display: flex; flex-direction: column; align-items: flex-start; flex: 1; min-width: 0; padding: 30px; }
#njp-wireframe .njp-training-layout { display: grid; gap: 24px; }
#njp-wireframe .njp-simulator-feature { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(0,1fr); }
#njp-wireframe .njp-aircraft-feature { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(0,1fr); background: #fff; }
#njp-wireframe .njp-simulator-feature .njp-product-visual, #njp-wireframe .njp-aircraft-feature .njp-product-visual { align-self: center; height: auto; min-height: 0; aspect-ratio: 3 / 2; }
#njp-wireframe .njp-aircraft-feature .njp-product-body { padding: 32px; }
#njp-wireframe .njp-aircraft-feature .njp-product-type { margin-bottom: 16px; }
@container njp-page (max-width: 1119px) {
  #njp-wireframe .njp-intro { grid-template-columns: minmax(250px,.95fr) minmax(0,1.45fr); gap: 30px; }
  #njp-wireframe .njp-footer-grid { grid-template-columns: minmax(0,1.15fr) minmax(0,1fr) minmax(0,1fr); gap: 24px; }
  #njp-wireframe .njp-footer .njp-logo { width: 174px; }
}
@container njp-page (max-width: 879px) {
  #njp-wireframe .njp-catalog-copy { padding: 30px; }
  #njp-wireframe .njp-catalog-visual { height: auto; min-height: 0; aspect-ratio: 2 / 1; }
  #njp-wireframe .njp-simulator-feature, #njp-wireframe .njp-aircraft-feature { grid-template-columns: minmax(0,1fr); }
  #njp-wireframe .njp-simulator-feature .njp-product-visual, #njp-wireframe .njp-aircraft-feature .njp-product-visual { height: auto; min-height: 0; aspect-ratio: 3 / 2; }
  #njp-wireframe .njp-aircraft-feature .njp-product-visual { grid-row: 1; }
  #njp-wireframe .njp-repair-visual { max-height: 480px; }
  #njp-wireframe .njp-nav a { font-size: 14px; }
  #njp-wireframe .njp-hero-bottom > p { color: #fff; }
  #njp-wireframe .njp-slogan { color: #fff; }
  #njp-wireframe .njp-hero { display: flex; flex-direction: column; }
  #njp-wireframe .njp-hero-copy { order: 0; padding: 30px 28px 12px; }
  #njp-wireframe .njp-hero-picture { order: 1; aspect-ratio: 2 / 1; overflow: hidden; }
  #njp-wireframe .njp-hero-image { width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; mask-image: linear-gradient(180deg,transparent,#000 12%,#000 85%,transparent); }
  #njp-wireframe .njp-hero h1 { font-size: clamp(32px,5.7cqw,49px); }
  #njp-wireframe .njp-hero-bottom { order: 2; align-self: stretch; padding: 8px 28px 30px; }
  #njp-wireframe .njp-hero-actions { justify-content: flex-start; }
  #njp-wireframe .njp-intro { grid-template-columns: 1fr; gap: 22px; }
  #njp-wireframe .njp-intro h2 .njp-brand-name { display: inline; }
  #njp-wireframe .njp-intro p { max-width: 75ch; }
  #njp-wireframe .njp-part-row { grid-template-columns: repeat(2,minmax(0,1fr)); }
  #njp-wireframe .njp-part-row label:first-child { grid-column: 1 / -1; }
  #njp-wireframe .njp-catalog { grid-template-columns: 1fr; gap: 0; }
  #njp-wireframe .njp-service-summary { grid-template-columns: 1fr; gap: 28px; }
  #njp-wireframe .njp-footer-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 30px; }
  #njp-wireframe .njp-footer-grid > div:first-child { grid-column: 1 / -1; }
}
@container njp-page (max-width: 699px) {
  #njp-wireframe .njp-logistics-layout { grid-template-columns: minmax(0,1fr); gap: 24px; }
  #njp-wireframe .njp-catalog-copy, #njp-wireframe .njp-product-body, #njp-wireframe .njp-aircraft-feature .njp-product-body { padding: 26px; }
  #njp-wireframe .njp-catalog-visual, #njp-wireframe .njp-logistics-visual { aspect-ratio: 3 / 2; }
  #njp-wireframe .njp-header-top { grid-template-columns: minmax(0,1fr); grid-template-areas: "logo" "contacts" "actions"; gap: 16px; padding-top: 12px; }
  #njp-wireframe .njp-header-top .njp-logo { width: 186px; }
  #njp-wireframe .njp-contact-strip, #njp-wireframe .njp-header-actions { justify-content: flex-start; }
  #njp-wireframe .njp-header-actions { gap: 12px 22px; }
  #njp-wireframe .njp-header-actions .njp-button { margin-left: auto; }
  #njp-wireframe .njp-review { font-size: 10px; letter-spacing: .06em; padding-right: 96px; }
  #njp-wireframe .njp-review span:last-child { display: none; }
  #njp-wireframe .njp-hero-copy { padding: 27px 24px 9px; }
  #njp-wireframe .njp-hero-bottom { padding: 8px 24px 28px; }
  #njp-wireframe .njp-hero-bottom > p { font-size: 15px; }
  #njp-wireframe .njp-hero-actions { flex-direction: column; align-items: flex-start; gap: 20px; }
  #njp-wireframe .njp-intro { padding: 34px 0; }
  #njp-wireframe .njp-intro h2 { font-size: 24px; }
  #njp-wireframe .njp-about-lead { font-size: 25px; }
  #njp-wireframe .njp-contact-fields, #njp-wireframe .njp-products, #njp-wireframe .njp-certificate-grid { grid-template-columns: minmax(0,1fr); }
  #njp-wireframe .njp-products { gap: 22px; }
  #njp-wireframe .njp-service, #njp-wireframe .njp-certificates { padding: 36px 0; }
  #njp-wireframe .njp-certificate-grid { gap: 36px; }
  #njp-wireframe .njp-document-mat { height: 285px; }
  #njp-wireframe .njp-footer-grid { grid-template-columns: minmax(0,1fr); gap: 29px; }
}
@container njp-page (max-width: 639px) {
  #njp-wireframe .njp-nav { flex-direction: column; gap: 0; }
  #njp-wireframe .njp-nav a { width: 100%; min-height: 44px; padding: 11px 4px; font-size: 15px; border-bottom: 1px solid #edf0f2; }
  #njp-wireframe .njp-nav a:last-child { border-bottom: 0; }
  #njp-wireframe .njp-nav a:first-child::after { display: none; }
  #njp-wireframe .njp-nav a:first-child { padding-left: 14px; border-left: 3px solid var(--njp-brand-red); background: #fcf0f2; }
}
@container njp-page (max-width: 399px) {
  #njp-wireframe .njp-catalog-copy, #njp-wireframe .njp-product-body, #njp-wireframe .njp-aircraft-feature .njp-product-body { padding: 24px 20px; }
  #njp-wireframe .njp-header-actions { gap: 10px 16px; }
  #njp-wireframe .njp-header-actions .njp-button { padding: 12px 16px; font-size: 13px; }
  #njp-wireframe .njp-hero { border-radius: 25px; }
  #njp-wireframe .njp-hero-copy { padding-inline: 20px; }
  #njp-wireframe .njp-hero h1 { font-size: 30px; }
  #njp-wireframe .njp-hero-bottom { padding-inline: 20px; }
  #njp-wireframe .njp-rfq { padding: 24px 18px; border-radius: 26px; }
  #njp-wireframe .njp-part-row { gap: 14px; }
  #njp-wireframe label { font-size: 13px; }
  #njp-wireframe input, #njp-wireframe select, #njp-wireframe textarea { padding-inline: 15px; }
  #njp-wireframe .njp-select select { padding-right: 31px; }
  #njp-wireframe .njp-select::after { right: 13px; }
  #njp-wireframe .njp-upload { padding: 17px; }
  #njp-wireframe .njp-catalog { padding: 0; }
  #njp-wireframe .njp-catalog .njp-button { padding-inline: 16px; font-size: 13px; }
  #njp-wireframe .njp-product .njp-button { padding-inline: 17px; font-size: 13px; }
  #njp-wireframe .njp-supply-types span { font-size: 11px; }
}
@media (pointer: coarse) {
  #njp-wireframe .njp-contact-strip a, #njp-wireframe .njp-footer-contact a, #njp-wireframe .njp-text-button { min-height: 44px; display: inline-flex; align-items: center; }
  #njp-wireframe .njp-footer .njp-text-button { display: flex; }
}


/* Progressive fallback for browsers without container queries. */
@supports not (container-type: inline-size) {
  #njp-wireframe { --njp-gutter: 20px; }
  #njp-wireframe h1 { font-size: 48px; }
  #njp-wireframe h2 { font-size: 30px; }
  #njp-wireframe h3 { font-size: 24px; }
  #njp-wireframe .njp-rfq { padding: 28px; }
  #njp-wireframe .njp-rfq h2 { font-size: 34px; }
@media (max-width: 1119px) {
  #njp-wireframe .njp-intro { grid-template-columns: minmax(250px,.95fr) minmax(0,1.45fr); gap: 30px; }
  #njp-wireframe .njp-footer-grid { grid-template-columns: minmax(0,1.15fr) minmax(0,1fr) minmax(0,1fr); gap: 24px; }
  #njp-wireframe .njp-footer .njp-logo { width: 174px; }
}
@media (max-width: 879px) {
  #njp-wireframe .njp-catalog-copy { padding: 30px; }
  #njp-wireframe .njp-catalog-visual { height: auto; min-height: 0; aspect-ratio: 2 / 1; }
  #njp-wireframe .njp-simulator-feature, #njp-wireframe .njp-aircraft-feature { grid-template-columns: minmax(0,1fr); }
  #njp-wireframe .njp-simulator-feature .njp-product-visual, #njp-wireframe .njp-aircraft-feature .njp-product-visual { height: auto; min-height: 0; aspect-ratio: 3 / 2; }
  #njp-wireframe .njp-aircraft-feature .njp-product-visual { grid-row: 1; }
  #njp-wireframe .njp-repair-visual { max-height: 480px; }
  #njp-wireframe .njp-nav a { font-size: 14px; }
  #njp-wireframe .njp-hero-bottom > p { color: #fff; }
  #njp-wireframe .njp-slogan { color: #fff; }
  #njp-wireframe .njp-hero { display: flex; flex-direction: column; }
  #njp-wireframe .njp-hero-copy { order: 0; padding: 30px 28px 12px; }
  #njp-wireframe .njp-hero-picture { order: 1; aspect-ratio: 2 / 1; overflow: hidden; }
  #njp-wireframe .njp-hero-image { width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; mask-image: linear-gradient(180deg,transparent,#000 12%,#000 85%,transparent); }
  #njp-wireframe .njp-hero h1 { font-size: 36px; }
  #njp-wireframe .njp-hero-bottom { order: 2; align-self: stretch; padding: 8px 28px 30px; }
  #njp-wireframe .njp-hero-actions { justify-content: flex-start; }
  #njp-wireframe .njp-intro { grid-template-columns: 1fr; gap: 22px; }
  #njp-wireframe .njp-intro h2 .njp-brand-name { display: inline; }
  #njp-wireframe .njp-intro p { max-width: 75ch; }
  #njp-wireframe .njp-part-row { grid-template-columns: repeat(2,minmax(0,1fr)); }
  #njp-wireframe .njp-part-row label:first-child { grid-column: 1 / -1; }
  #njp-wireframe .njp-catalog { grid-template-columns: 1fr; gap: 0; }
  #njp-wireframe .njp-service-summary { grid-template-columns: 1fr; gap: 28px; }
  #njp-wireframe .njp-footer-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 30px; }
  #njp-wireframe .njp-footer-grid > div:first-child { grid-column: 1 / -1; }
}
@media (max-width: 699px) {
  #njp-wireframe .njp-logistics-layout { grid-template-columns: minmax(0,1fr); gap: 24px; }
  #njp-wireframe .njp-catalog-copy, #njp-wireframe .njp-product-body, #njp-wireframe .njp-aircraft-feature .njp-product-body { padding: 26px; }
  #njp-wireframe .njp-catalog-visual, #njp-wireframe .njp-logistics-visual { aspect-ratio: 3 / 2; }
  #njp-wireframe .njp-header-top { grid-template-columns: minmax(0,1fr); grid-template-areas: "logo" "contacts" "actions"; gap: 16px; padding-top: 12px; }
  #njp-wireframe .njp-header-top .njp-logo { width: 186px; }
  #njp-wireframe .njp-contact-strip, #njp-wireframe .njp-header-actions { justify-content: flex-start; }
  #njp-wireframe .njp-header-actions { gap: 12px 22px; }
  #njp-wireframe .njp-header-actions .njp-button { margin-left: auto; }
  #njp-wireframe .njp-review { font-size: 10px; letter-spacing: .06em; padding-right: 96px; }
  #njp-wireframe .njp-review span:last-child { display: none; }
  #njp-wireframe .njp-hero-copy { padding: 27px 24px 9px; }
  #njp-wireframe .njp-hero-bottom { padding: 8px 24px 28px; }
  #njp-wireframe .njp-hero-bottom > p { font-size: 15px; }
  #njp-wireframe .njp-hero-actions { flex-direction: column; align-items: flex-start; gap: 20px; }
  #njp-wireframe .njp-intro { padding: 34px 0; }
  #njp-wireframe .njp-intro h2 { font-size: 24px; }
  #njp-wireframe .njp-about-lead { font-size: 25px; }
  #njp-wireframe .njp-contact-fields, #njp-wireframe .njp-products, #njp-wireframe .njp-certificate-grid { grid-template-columns: minmax(0,1fr); }
  #njp-wireframe .njp-products { gap: 22px; }
  #njp-wireframe .njp-service, #njp-wireframe .njp-certificates { padding: 36px 0; }
  #njp-wireframe .njp-certificate-grid { gap: 36px; }
  #njp-wireframe .njp-document-mat { height: 285px; }
  #njp-wireframe .njp-footer-grid { grid-template-columns: minmax(0,1fr); gap: 29px; }
}
@media (max-width: 639px) {
  #njp-wireframe .njp-nav { flex-direction: column; gap: 0; }
  #njp-wireframe .njp-nav a { width: 100%; min-height: 44px; padding: 11px 4px; font-size: 15px; border-bottom: 1px solid #edf0f2; }
  #njp-wireframe .njp-nav a:last-child { border-bottom: 0; }
  #njp-wireframe .njp-nav a:first-child::after { display: none; }
  #njp-wireframe .njp-nav a:first-child { padding-left: 14px; border-left: 3px solid var(--njp-brand-red); background: #fcf0f2; }
}
@media (max-width: 399px) {
  #njp-wireframe .njp-catalog-copy, #njp-wireframe .njp-product-body, #njp-wireframe .njp-aircraft-feature .njp-product-body { padding: 24px 20px; }
  #njp-wireframe .njp-header-actions { gap: 10px 16px; }
  #njp-wireframe .njp-header-actions .njp-button { padding: 12px 16px; font-size: 13px; }
  #njp-wireframe .njp-hero { border-radius: 25px; }
  #njp-wireframe .njp-hero-copy { padding-inline: 20px; }
  #njp-wireframe .njp-hero h1 { font-size: 30px; }
  #njp-wireframe .njp-hero-bottom { padding-inline: 20px; }
  #njp-wireframe .njp-rfq { padding: 24px 18px; border-radius: 26px; }
  #njp-wireframe .njp-part-row { gap: 14px; }
  #njp-wireframe label { font-size: 13px; }
  #njp-wireframe input, #njp-wireframe select, #njp-wireframe textarea { padding-inline: 15px; }
  #njp-wireframe .njp-select select { padding-right: 31px; }
  #njp-wireframe .njp-select::after { right: 13px; }
  #njp-wireframe .njp-upload { padding: 17px; }
  #njp-wireframe .njp-catalog { padding: 0; }
  #njp-wireframe .njp-catalog .njp-button { padding-inline: 16px; font-size: 13px; }
  #njp-wireframe .njp-product .njp-button { padding-inline: 17px; font-size: 13px; }
  #njp-wireframe .njp-supply-types span { font-size: 11px; }
}
}

/* Standalone navigation and functional component enquiry preview. */
#njp-wireframe .njp-button, #njp-wireframe .njp-text-button { text-decoration: none; }
#njp-wireframe .njp-logo { display: block; }
#njp-wireframe #component-rows > .njp-part-row + .njp-part-row { margin-top: 22px; }
#njp-wireframe .component-remove-part { grid-column: 1 / -1; justify-self: start; color: var(--njp-brand-red); }
#njp-wireframe #component-file-list { flex-basis: 100%; padding-left: 20px; margin: 0; font-size: 14px; overflow-wrap: anywhere; }
#njp-wireframe #component-form-status { padding: 18px 20px; margin-top: 20px; border: 1px solid #9aa4af; border-radius: 18px; background: #fff; font-size: 14px; color: #1e3252; }

/* A single APU offering fills the equipment section without an empty column. */
#njp-wireframe .njp-test-products { grid-template-columns: minmax(0,1fr); }
#njp-wireframe .njp-apu-feature { display: grid; grid-template-columns: minmax(0,1.12fr) minmax(0,1fr); align-items: center; }
#njp-wireframe .njp-apu-feature .njp-product-visual { height: auto; min-height: 0; aspect-ratio: 3 / 2; }
@container njp-page (max-width: 799px) {
  #njp-wireframe .njp-apu-feature { grid-template-columns: minmax(0,1fr); }
}
@media (max-width: 799px) {
  #njp-wireframe .njp-apu-feature { grid-template-columns: minmax(0,1fr); }
}

#njp-wireframe .njp-upload .njp-button { flex-shrink: 1; max-width: 100%; }
