:root {
  --ink: #222b28;
  --muted: #606d67;
  --accent: #096653;
  --accent-hover: #074d40;
  --line: #dce2de;
  --wash: #f5f7f6;
  --paper: #ffffff;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 104px; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: "Segoe UI", Arial, sans-serif; font-size: 16px; line-height: 1.6; letter-spacing: 0; }
.software-branch { --accent: #245eae; --accent-hover: #1c4885; }
a { color: var(--accent); text-underline-offset: 4px; }
a:hover { color: var(--accent-hover); }
a, button, input, select, textarea { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid var(--accent); outline-offset: 5px; }
#main-content:focus { outline: none; }
img { display: block; max-width: 100%; }
figure { margin: 0; }
p { margin: 16px 0 0; color: var(--muted); }
h1, h2, h3 { margin: 0; color: var(--ink); font-weight: 650; line-height: 1.2; letter-spacing: 0; overflow-wrap: anywhere; }
h1 { font-size: 3rem; }
h2 { font-size: 2.125rem; }
h3 { font-size: 1.375rem; }
.site-container { width: 100%; max-width: 1320px; margin-inline: auto; padding-inline: 40px; }
.skip-link { position: fixed; left: 16px; top: -100px; z-index: 100; padding: 12px 18px; background: white; border: 2px solid var(--accent); }
.skip-link:focus { top: 12px; }
.site-header { background: #fff; border-bottom: 1px solid var(--line); }
.brand-row { min-height: 88px; display: flex; align-items: center; gap: 28px; }
.brand-lockup { display: inline-flex; align-items: center; gap: 12px; color: var(--ink); text-decoration: none; flex-shrink: 0; }
.brand-lockup:hover { color: var(--ink); }
.brand-mark { width: 43px; height: 43px; display: grid; place-items: center; color: #fff; background: #263b32; font-size: 1.125rem; font-weight: 750; border-radius: 2px; }
.brand-lockup strong { display: block; font-size: 1.375rem; line-height: 1.15; }
.brand-lockup small { display: block; margin-top: 3px; font-size: .75rem; color: var(--muted); }
.branch-switch { display: flex; gap: 34px; align-self: stretch; margin-left: auto; }
.branch-switch > a { display: flex; align-items: center; gap: 10px; color: #6a746f; border-bottom: 3px solid transparent; padding: 8px 0 5px; font-weight: 650; text-decoration: none; }
.branch-switch > a:hover { color: var(--ink); }
.branch-switch > a.is-active { color: var(--ink); border-color: var(--accent); }
.branch-switch span { font-size: .75rem; font-weight: 500; color: #626c67; }
.language-switch { display: inline-flex; align-items: center; flex-shrink: 0; gap: 2px; padding: 3px; background: #f0f4f2; border: 1px solid var(--line); border-radius: 6px; }
.language-switch a { display: grid; place-items: center; min-width: 38px; min-height: 38px; font-size: .75rem; font-weight: 650; color: var(--muted); border-radius: 3px; text-decoration: none; }
.language-switch a.is-active { color: #fff; background: var(--ink); }
.language-switch a:not(.is-active):hover { color: var(--accent); background: #fff; }
.section-navigation { border-top: 1px solid var(--line); background: var(--wash); }
.section-navigation .navbar-collapse { min-height: 54px; gap: 28px; align-items: center; }
.division-label { color: var(--muted); font-size: .75rem; padding-right: 24px; border-right: 1px solid #cdd6d0; }
.section-navigation .navbar-nav { gap: 26px; }
.section-navigation .nav-link { padding: 16px 0; font-size: .875rem; color: var(--muted); line-height: 1.5; }
.section-navigation .nav-link:hover, .section-navigation .nav-link.is-active { color: var(--accent); }
.section-navigation .nav-link.is-active { font-weight: 700; text-decoration: underline; text-underline-offset: 7px; text-decoration-thickness: 2px; }
.nav-enquiry { margin-left: auto; font-size: .875rem; font-weight: 650; color: var(--ink); text-decoration: none; white-space: nowrap; }
.nav-enquiry span { margin-left: 12px; }
.menu-toggle { width: 42px; height: 42px; padding: 0; border: 1px solid var(--line); border-radius: 3px; background: #fff; color: var(--ink); font-size: 1.25rem; flex-shrink: 0; }
.eyebrow { margin: 0 0 18px; color: var(--accent); font-size: .75rem; font-weight: 650; text-transform: uppercase; }
.section { padding-block: 76px; }
.section-rule, .portfolio-category + .portfolio-category { border-top: 1px solid var(--line); }
.muted-section { background: var(--wash); }
.section-heading { max-width: 820px; margin-bottom: 38px; }
.section-heading p:not(.eyebrow) { max-width: 660px; }
.heading-row { display: flex; align-items: end; justify-content: space-between; flex-wrap: wrap; gap: 24px; max-width: none; }
.heading-row > div { min-width: 0; }
.heading-row h2 { max-width: 780px; }
.button { min-height: 48px; display: inline-flex; justify-content: center; align-items: center; gap: 20px; padding: 12px 22px; border: 1px solid transparent; border-radius: 6px; font: inherit; font-size: .9375rem; font-weight: 600; text-decoration: none; text-align: center; transition: background .18s ease, box-shadow .18s ease; }
.button-primary { color: #fff; background: var(--accent); }
.button-primary:hover, .button-primary:focus { color: #fff; background: var(--accent-hover); box-shadow: 0 4px 12px #163b2420; }
.text-link { display: inline-flex; align-items: center; gap: 16px; color: var(--accent); font-size: .875rem; font-weight: 650; text-decoration: none; }
.text-link:hover { text-decoration: underline; }
.hero-actions { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 28px; margin-top: 24px; }
.engineering-overview { padding-top: 42px; overflow: hidden; background: #fff; }
.overview-copy { position: relative; z-index: 1; max-width: 1000px; margin-inline: auto; text-align: center; }
.overview-copy .eyebrow { margin-bottom: 12px; }
.overview-copy h1 { font-size: 3.5rem; }
.overview-lead { margin-top: 16px; font-size: 1.125rem; line-height: 1.6; }
.overview-model { position: relative; width: 100%; margin: 8px auto 0; background: #fff; }
.overview-model img { width: 100%; height: 320px; object-fit: contain; }
.overview-model figcaption { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 4px 24px; padding: 12px 0 18px; font-size: .75rem; color: var(--muted); }
.overview-model figcaption span:first-child { color: var(--ink); font-weight: 650; }
.expertise-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 48px; }
.expertise-grid article { padding-top: 22px; border-top: 1px solid #b6c5bc; }
.item-number { display: block; margin-bottom: 22px; color: var(--accent); font-size: .75rem; font-weight: 650; }
.expertise-grid .text-link { margin-top: 22px; }
.expertise-support { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 20px 28px; margin-top: 36px; padding-top: 28px; border-top: 1px solid var(--line); }
.expertise-support > div { min-width: 0; max-width: 760px; }
.expertise-support p { margin-top: 10px; }
.discipline-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px; }
.discipline-item { color: var(--ink); text-decoration: none; min-width: 0; }
.discipline-item h3 { display: flex; justify-content: space-between; align-items: start; gap: 12px; margin-top: 20px; font-size: 1.25rem; }
.discipline-item h3 span { font-weight: 400; color: var(--accent); }
.discipline-item p { margin-top: 8px; font-size: .875rem; }
.discipline-item:hover h3 { color: var(--accent); }
.cad-image { display: block; position: relative; overflow: hidden; width: 100%; aspect-ratio: 3 / 2; background: #fff; border: 1px solid var(--line); border-radius: 6px; }
.cad-image img { display: block; width: 100%; height: 100%; object-fit: contain; object-position: center; background: #fff; }
/* Normalize near-white asset backgrounds at display time; preserve source files. */
.cad-image img, .overview-model img { filter: brightness(1.035); padding: 2%; }
a.cad-image { transition: border-color .2s ease; }
a.cad-image:hover, .discipline-item:hover .cad-image { border-color: #8fa59a; }
.process-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 36px; }
.process-grid article { padding-top: 20px; border-top: 1px solid #bdc9c1; }
.process-grid h3 { font-size: 1.25rem; }
.process-grid p { font-size: .9375rem; margin-top: 10px; }
.contact-band { padding-block: 60px; border-top: 1px solid var(--line); }
.contact-band h2 { font-size: 1.875rem; }
.contact-band .eyebrow { margin-bottom: 12px; }
.page-hero { padding-block: 62px; background: #fff; }
.page-hero p:not(.eyebrow) { max-width: 800px; margin-top: 20px; font-size: 1.0625rem; }
.software-hero { border-bottom: 1px solid var(--line); }
.portfolio-index { position: sticky; top: 0; z-index: 10; border-block: 1px solid var(--line); background: #fff; }
.portfolio-index .site-container { display: flex; gap: 36px; flex-wrap: wrap; align-items: center; }
.portfolio-index a { display: flex; gap: 16px; align-items: center; min-height: 66px; color: var(--ink); font-size: .875rem; text-decoration: none; font-weight: 600; }
.portfolio-index a:hover, .portfolio-index a.is-active { color: var(--accent); }
.portfolio-index a.is-active { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 7px; }
.portfolio-index small { color: var(--muted); font-size: .75rem; font-weight: 400; }
.category-heading { display: flex; align-items: start; gap: 24px; max-width: none; }
.category-number { color: var(--accent); font-size: .875rem; border-top: 2px solid var(--accent); min-width: 42px; padding-top: 10px; }
.category-heading > div { min-width: 0; }
.category-heading p { margin-top: 10px; }
.category-heading .text-link { margin-left: auto; margin-top: 10px; white-space: nowrap; }
.project-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 42px 32px; }
.project-item { min-width: 0; }
.project-copy { padding-top: 18px; }
.project-discipline { display: block; color: var(--accent); font-size: .75rem; margin-bottom: 7px; }
.project-copy h3 { font-size: 1.375rem; }
.project-copy p { max-width: 520px; margin-top: 8px; font-size: .9375rem; }
.image-open { position: absolute; bottom: 10px; right: 14px; color: #596b61; font-size: 1.5rem; line-height: 1; }
.portfolio-note { margin-top: 32px; font-size: .8125rem; padding-left: 14px; border-left: 2px solid #b2c1b7; }
.service-design-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px; }
.service-design-grid article { min-width: 0; }
.service-copy { padding-top: 24px; }
.service-copy .text-link, .service-feature .text-link { margin-top: 24px; }
.service-feature { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 64px; align-items: center; }
.service-feature h2 { max-width: 520px; }
.service-support-grid h3 { margin-top: 22px; font-size: 1.25rem; }
.service-support-grid p { font-size: .9375rem; margin-top: 12px; }
.clean-list { display: grid; gap: 10px; margin: 24px 0 0; padding: 0; list-style: none; }
.clean-list li { position: relative; padding-left: 18px; color: var(--muted); font-size: .9375rem; }
.clean-list li::before { content: ""; position: absolute; left: 0; top: .7em; width: 5px; height: 5px; background: var(--accent); }
.product-story { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 48px; align-items: start; }
.product-story h2 { font-size: 2rem; }
.status-pill { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 18px; color: var(--accent); font-size: .75rem; font-weight: 600; }
.status-pill::before { content: ""; width: 6px; height: 6px; background: currentColor; border-radius: 50%; }
.screen-frame { margin: 0; overflow: hidden; background: #fff; border: 1px solid var(--line); border-radius: 3px; }
.screen-frame img { width: 100%; height: auto; object-fit: contain; object-position: top center; }
.screen-frame a { display: block; }
.software-media { display: flex; flex-direction: column; }
.software-media figcaption { padding: 20px; color: var(--ink); background: #fff; border-bottom: 1px solid var(--line); font-size: 1.25rem; font-weight: 650; line-height: 1.3; overflow-wrap: anywhere; }
.software-media figcaption small { display: block; margin-top: 8px; color: var(--muted); font-size: .875rem; font-weight: 400; }
.focus-grid, .clip-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px; align-items: start; }
.civil-presentation-grid { display: grid; grid-template-columns: minmax(0, .96fr) minmax(0, 1.04fr); gap: 30px; align-items: start; }
.civil-presentation-grid .screen-frame { min-width: 0; }
.wide-focus { grid-column: 1 / -1; }
.gallery-section, .clip-section { padding-top: 0; }
.clip-card { min-width: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 3px; background: #fff; }
.clip-copy { padding: 22px; border-bottom: 1px solid var(--line); }
.clip-copy > span { display: block; color: var(--accent); font-size: .75rem; margin-bottom: 12px; }
.clip-copy h3 { font-size: 1.25rem; }
.clip-copy p { margin-top: 10px; font-size: .875rem; }
.video-crop-frame { position: relative; overflow: hidden; aspect-ratio: 16 / 9; background: #f4f6f7; }
.snippet-video, .feature-video { display: block; width: 100%; height: 100%; aspect-ratio: 16 / 9; object-fit: cover; object-position: top center; background: #f4f6f7; }
/* Keep the recording overlay outside the visible video frame. */
.toolbar-crop-video { height: 114%; transform: translateY(-6.2%); transform-origin: center top; }
.feature-video-frame { aspect-ratio: 16 / 8.1; }
.cad-drawn-workspace-stage { position: relative; overflow: hidden; aspect-ratio: 860 / 919; background: #fff; }
.cad-draw-canvas, .cad-draw-fallback { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: contain; object-position: center; }
.cad-draw-canvas { z-index: 2; }
.cad-draw-fallback { z-index: 1; }
.contact-grid { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 72px; align-items: start; }
.contact-panel h2 { font-size: 1.75rem; }
.contact-methods { display: grid; gap: 0; margin-top: 30px; }
.contact-methods a { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 3px 14px; color: var(--ink); padding-block: 20px; border-bottom: 1px solid var(--line); text-decoration: none; }
.contact-methods .contact-icon { grid-row: 1 / 3; align-self: center; }
.contact-methods strong { grid-column: 2; }
.contact-person { display: flex; align-items: center; gap: 14px; margin-top: 28px; }
.person-initials { flex-shrink: 0; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 6px; background: #e8f1ed; color: var(--accent); font-size: .875rem; font-weight: 650; }
.contact-person strong { display: block; font-size: .875rem; font-weight: 600; }
.contact-person div span { display: block; color: var(--muted); font-size: .8125rem; margin-top: 3px; }
.form-heading h2 { font-size: 1.375rem; }
.form-heading p { margin-top: 8px; font-size: .875rem; }
.form-status { margin: 0; padding: 14px; border-left: 3px solid var(--accent); background: #edf5f1; font-size: .875rem; color: #285342; }
.contact-methods a:hover strong { color: var(--accent); text-decoration: underline; }
.contact-methods span, .small-note { color: var(--muted); font-size: .8125rem; }
.contact-methods strong { overflow-wrap: anywhere; font-weight: 600; }
.small-note { margin-top: 22px; }
.enquiry-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; padding: 30px; border: 1px solid var(--line); border-radius: 8px; background: #fafcfb; }
.enquiry-form label { display: grid; gap: 8px; font-size: .875rem; font-weight: 600; min-width: 0; }
.enquiry-form input, .enquiry-form select, .enquiry-form textarea { width: 100%; min-width: 0; min-height: 46px; padding: 10px 12px; color: var(--ink); background: #fff; border: 1px solid #b7c3bb; border-radius: 2px; font: inherit; font-weight: 400; }
.enquiry-form select { text-overflow: ellipsis; padding-right: 20px; }
.enquiry-form textarea { resize: vertical; }
.enquiry-form input:focus, .enquiry-form textarea:focus, .enquiry-form select:focus { border-color: var(--accent); outline: 2px solid #d4e6dc; outline-offset: 1px; }
.enquiry-form input, .enquiry-form select, .enquiry-form textarea { border-radius: 4px; }
.enquiry-form textarea::placeholder { color: #738179; opacity: 1; }
.full-field { grid-column: 1 / -1; }
.enquiry-form .small-note { margin: -8px 0 0; }
.site-footer { background: #222b28; padding-block: 48px; color: #fff; }
.footer-grid { display: grid; grid-template-columns: 1.2fr .65fr .9fr 1.25fr; gap: 30px; }
.footer-grid > * { min-width: 0; }
.footer-grid strong { display: block; margin-bottom: 16px; font-size: .8125rem; font-weight: 600; color: #fff; }
.footer-brand strong { font-size: 1rem; }
.footer-brand p { color: #a9b9b0; font-size: .875rem; margin-top: 0; }
.footer-grid a { display: block; width: fit-content; margin-top: 8px; color: #c6d0ca; text-decoration: none; font-size: .8125rem; overflow-wrap: anywhere; }
.footer-grid a:hover { color: #fff; text-decoration: underline; }
.footer-bottom { display: flex; flex-wrap: wrap; gap: 12px 24px; justify-content: space-between; margin-top: 34px; padding-top: 22px; border-top: 1px solid #ffffff20; font-size: .75rem; color: #bdc9c2; }
.footer-bottom a { color: #dbe3de; text-decoration: none; }
.footer-bottom a:hover { text-decoration: underline; }
.information-content { max-width: 940px; padding-top: 0; }
.information-content h2 { font-size: 1.5rem; margin-top: 34px; }
.information-content h2:first-child { margin-top: 0; }
.information-content .text-link { margin-top: 14px; }
.error-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 20px; margin-top: 26px; }
.portfolio-lightbox .modal-content { border: 1px solid var(--line); border-radius: 8px; overflow: hidden; background: #fff; }
.gallery-toolbar, .gallery-bottom { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 18px 24px; }
.gallery-toolbar { border-bottom: 1px solid var(--line); }
.gallery-toolbar h2 { font-size: 1.375rem; margin-top: 3px; }
.gallery-counter { font-size: .75rem; color: var(--muted); }
.gallery-stage { height: min(60vh, 670px); background: #fff; }
.gallery-stage img { width: 100%; height: 100%; object-fit: contain; padding: 16px; filter: brightness(1.035); }
.gallery-bottom { border-top: 1px solid var(--line); }
.gallery-bottom p { margin: 0; font-size: .875rem; max-width: 760px; }
.gallery-buttons { display: flex; flex-shrink: 0; gap: 8px; }
.icon-button { display: grid; place-items: center; width: 44px; height: 44px; flex-shrink: 0; border: 1px solid var(--line); border-radius: 5px; background: #fff; }
.icon-button:hover:not(:disabled) { background: #edf4f0; border-color: #a1b9aa; }
.icon-button:disabled { opacity: .35; cursor: default; }
@media (max-width: 1100px) {
  .site-container { padding-inline: 28px; }
  .division-label { display: none; }
  .expertise-grid { gap: 28px; }
  .service-feature, .product-story, .contact-grid { gap: 32px; }
  .product-story { grid-template-columns: minmax(0, 1fr); }
  .product-story > div { max-width: 780px; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 32px; }
}
@media (max-width: 991.98px) {
  .brand-row { gap: 20px; min-height: 84px; }
  .branch-switch { gap: 24px; }
  .branch-switch > a { font-size: .9375rem; flex-direction: column; justify-content: center; align-items: start; gap: 1px; }
  .section-navigation .navbar-collapse { padding-block: 12px; }
  .section-navigation .navbar-nav { gap: 0; }
  .section-navigation .nav-link { padding-block: 12px; }
  .nav-enquiry { display: inline-flex; padding-block: 12px; }
  .overview-copy h1 { font-size: 3rem; }
  .overview-model img { height: 300px; }
  .discipline-grid { gap: 20px; }
  .process-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .portfolio-index .site-container { gap: 0 28px; }
  .portfolio-index a { min-height: 60px; }
  .category-heading .text-link { display: none; }
  .service-feature { gap: 32px; }
  .civil-presentation-grid, .clip-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 720px) {
  html { scroll-padding-top: 142px; }
  .site-container { padding-inline: 20px; }
  h1, .overview-copy h1 { font-size: 2.125rem; }
  h2, .product-story h2 { font-size: 1.75rem; }
  h3 { font-size: 1.25rem; }
  .brand-row { display: grid; grid-template-columns: minmax(0, 1fr) auto 42px; gap: 0 12px; padding-top: 16px; }
  .brand-mark { width: 38px; height: 38px; font-size: 1rem; }
  .brand-lockup strong { font-size: 1.25rem; }
  .brand-lockup small { font-size: .75rem; }
  .branch-switch { grid-row: 2; grid-column: 1 / -1; margin-left: 0; gap: 30px; height: 55px; }
  .branch-switch > a { font-size: .875rem; flex-direction: row; align-items: center; gap: 8px; }
  .branch-switch span { font-size: .75rem; }
  .language-switch { grid-row: 1; grid-column: 2; }
  .menu-toggle { grid-row: 1; grid-column: 3; }
  .engineering-overview { padding-top: 30px; }
  .overview-lead { font-size: 1rem; }
  .overview-lead br { display: none; }
  .hero-actions { gap: 18px; margin-top: 20px; }
  .hero-actions .button { min-height: 44px; }
  .overview-model { margin-top: 6px; }
  .overview-model img { height: 230px; }
  .overview-model figcaption { padding-bottom: 16px; font-size: .75rem; }
  .overview-model figcaption span:last-child { max-width: 190px; text-align: right; }
  .section { padding-block: 48px; }
  .section-heading { margin-bottom: 28px; }
  .heading-row { align-items: start; gap: 18px; }
  .eyebrow { margin-bottom: 12px; font-size: .75rem; }
  .expertise-grid, .discipline-grid, .project-grid, .service-design-grid, .service-feature, .contact-grid, .focus-grid { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .expertise-grid article { padding-top: 18px; }
  .item-number { margin-bottom: 16px; }
  .expertise-grid p { margin-top: 12px; }
  .expertise-grid .text-link { margin-top: 14px; }
  .discipline-item h3 { margin-top: 16px; }
  .process-grid { gap: 28px 22px; }
  .process-grid p { font-size: .875rem; }
  .page-hero { padding-block: 40px; }
  .page-hero p:not(.eyebrow) { margin-top: 16px; font-size: 1rem; }
  .page-hero br { display: none; }
  .portfolio-index .site-container { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 14px; }
  .portfolio-index a { min-height: 58px; gap: 8px; font-size: .875rem; line-height: 1.25; padding-block: 10px; }
  .portfolio-index small { margin-left: auto; }
  .category-heading { gap: 16px; }
  .category-number { min-width: 28px; padding-top: 6px; font-size: .75rem; }
  .category-heading h2 { font-size: 1.625rem; }
  .category-heading p { font-size: .875rem; }
  .project-grid { gap: 36px; }
  .project-copy { padding-top: 14px; }
  .project-copy h3 { font-size: 1.25rem; }
  .service-copy { padding-top: 18px; }
  .service-feature .cad-image { order: -1; }
  .gallery-section, .clip-section { padding-top: 0; }
  .clip-copy { padding: 18px; }
  .software-media figcaption { padding: 16px; font-size: 1.125rem; }
  .contact-band { padding-block: 40px; }
  .contact-band h2 { font-size: 1.625rem; }
  .contact-grid { gap: 36px; }
  .enquiry-form { padding: 20px; gap: 18px; grid-template-columns: minmax(0, 1fr); }
  .site-footer { padding-block: 36px; }
  .footer-grid { gap: 26px 20px; }
  .footer-brand, .footer-contact { grid-column: 1 / -1; }
  .gallery-toolbar, .gallery-bottom { padding: 14px 16px; gap: 12px; }
  .gallery-toolbar h2 { font-size: 1.125rem; }
  .gallery-stage { height: min(49vh, 430px); }
  .gallery-stage img { padding: 6px; }
  .gallery-bottom { flex-wrap: wrap; }
  .gallery-buttons { margin-left: auto; }
}
@media (max-width: 440px) {
  .brand-mark { display: none; }
  .brand-lockup strong { font-size: 1.125rem; }
  .brand-lockup small { font-size: .75rem; }
  .branch-switch { gap: 26px; }
  .branch-switch > a { gap: 6px; }
  .branch-switch span { font-size: .75rem; }
}
@media (max-width: 360px) {
  .site-container { padding-inline: 16px; }
  .branch-switch { gap: 24px; }
  .branch-switch span { max-width: 64px; line-height: 1.2; }
  .overview-copy h1 { font-size: 1.875rem; }
  .hero-actions { flex-direction: column; gap: 14px; }
  .overview-model img { height: 200px; }
  .overview-model figcaption { display: block; }
  .overview-model figcaption span { display: block; }
  .overview-model figcaption span:last-child { text-align: left; max-width: none; }
}
@media (min-width: 992px) and (max-height: 760px) {
  .engineering-overview { padding-top: 26px; }
  .overview-model img { height: 190px; }
  .overview-lead { margin-top: 12px; }
}
@media (max-width: 720px) and (max-height: 740px) {
  .engineering-overview { padding-top: 24px; }
  .overview-copy .eyebrow, .hero-actions .text-link, .overview-model figcaption { display: none; }
  .overview-model img { height: 130px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
