:root {
  color-scheme: dark;
  --navy: #0b1a2b;
  --navy-deep: #071321;
  --navy-light: #112438;
  --panel: #0d1e30;
  --ivory: #f1ede6;
  --blue: #a3c7e6;
  --blue-muted: #8fa9bf;
  --text: #bccbd8;
  --line: #294054;
  --button: #b5d4ee;
  --button-ink: #102337;
  --focus: #cce7ff;
  --error: #ffc2b4;
  --serif: var(--font-brand-serif,"Playfair Display"),"Iowan Old Style",Baskerville,Georgia,"Times New Roman",serif;
  --sans: var(--font-brand-sans,"Inter"),"Segoe UI",Arial,sans-serif;
  --s1: 4px;
  --s2: 8px;
  --s3: 12px;
  --s4: 16px;
  --s5: 20px;
  --s6: 24px;
  --s8: 32px;
  --s10: 40px;
  --s12: 48px;
  --s16: 64px;
  --s20: 80px;
  --s24: 96px;
  --s30: 120px;
  --gutter: clamp(24px,4.5vw,80px);
  --container: 1440px;
  --header-height: 100px;
  --radius: 2px;
  --ease: cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--header-height) + 24px);
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
  background: var(--navy-deep);
  color: var(--text);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}

body:has(dialog[open]) {
  overflow: hidden;
}

h1,h2,h3,h4,p,figure {
  margin: 0;
}

h1,h2,h3,h4 {
  color: var(--ivory);
  font-weight: 400;
}

h1,h2 {
  font-family: var(--serif);
  line-height: 1.12;
  letter-spacing: -.025em;
}

h3 {
  font-family: var(--serif);
  font-size: 27px;
  line-height: 1.2;
}

a {
  color: inherit;
  text-decoration: none;
}

button,input,select,textarea {
  font: inherit;
}

button,a {
  -webkit-tap-highlight-color: transparent;
}

button {
  cursor: pointer;
}

button:disabled {
  cursor: wait;
  opacity: .6;
}

button {
  color: inherit;
}

button svg,a svg {
  flex-shrink: 0;
}

img {
  display: block;
  max-width: 100%;
  height: auto;
}

address {
  font-style: normal;
}

ul,ol {
  margin: 0;
  padding: 0;
  list-style: none;
}

button {
  border: 0;
  background: transparent;
}

button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible {
  outline: 2px solid var(--focus);
  outline-offset: 5px;
}

[hidden] {
  display: none !important;
}

::selection {
  background: #346084;
  color: #fff;
}

main:focus {
  outline: none;
}

.container {
  width: min(var(--container),calc(100% - var(--gutter)*2));
  margin-inline: auto;
}

.eyebrow {
  font-size: 11px;
  line-height: 1.6;
  letter-spacing: .17em;
  text-transform: uppercase;
  color: var(--blue-muted);
  font-weight: 500;
}

.display-title {
  font-size: clamp(36px,3.5vw,55px);
  line-height: 1.16;
  max-width: 100%;
  text-wrap: balance;
}

.display-title .accent,h1 .accent {
  display: block;
  color: var(--blue);
}

.icon {
  display: inline-block;
  vertical-align: middle;
  flex-shrink: 0;
}

.muted {
  color: var(--text);
}

.button {
  min-height: 52px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 32px;
  padding: 14px 24px;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.5;
  border-radius: var(--radius);
  border: 1px solid transparent;
  transition: background .2s,color .2s,border-color .2s;
  max-width: 100%;
  text-align: left;
}

.button svg {
  width: 19px;
  height: 19px;
}

.button-primary {
  background: var(--button);
  color: var(--button-ink);
  border-color: var(--button);
}

.button-primary:hover {
  background: #d2e6f6;
  border-color: #d2e6f6;
}

.button-secondary {
  border-color: #627c91;
  color: var(--ivory);
}

.button-secondary:hover {
  background: #1c344a;
  border-color: #aac4d9;
}

.text-link {
  display: inline-flex;
  align-items: center;
  gap: 20px;
  color: var(--ivory);
  font-size: 14px;
  line-height: 1.5;
  min-height: 44px;
  border-bottom: 1px solid #71889b;
  padding: 10px 0;
  transition: color .2s,border-color .2s;
  max-width: 100%;
  text-align: left;
}

.text-link:hover {
  color: var(--blue);
  border-color: var(--blue);
}

.text-link svg {
  width: 18px;
  height: 18px;
}

.inline-link {
  text-decoration: underline;
  text-underline-offset: 4px;
}

.section {
  padding-block: var(--s30);
}

.section-heading {
  margin-bottom: var(--s12);
}

.section-heading .eyebrow {
  margin-bottom: var(--s6);
}

.section-lead {
  font-size: 16px;
  line-height: 1.8;
  max-width: 520px;
}

.row-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 40px;
}

.row-heading .text-link {
  flex-shrink: 0;
}

.split-heading {
  display: grid;
  grid-template-columns: 1.6fr 1fr;
  gap: 80px;
  align-items: end;
}

.skip-link {
  position: fixed;
  left: 24px;
  top: -100px;
  background: var(--button);
  color: var(--button-ink);
  padding: 12px 20px;
  z-index: 1000;
}

.skip-link:focus {
  top: 16px;
}

.site-header {
  position: absolute;
  inset: 0 0 auto;
  z-index: 30;
  height: var(--header-height);
  background: linear-gradient(180deg,rgba(7,19,33,.88),transparent);
}

.header-inner {
  display: flex;
  align-items: center;
  height: 100%;
  gap: 28px;
}

.wordmark {
  font-family: var(--serif);
  font-size: 34px;
  letter-spacing: .07em;
  line-height: 1;
  color: var(--ivory);
  flex-shrink: 0;
  padding-block: 8px;
}

.brand-descriptor {
  font-size: 10px;
  line-height: 1.65;
  letter-spacing: .09em;
  color: var(--blue-muted);
  border-left: 1px solid #506479;
  padding-left: 24px;
  max-width: 190px;
}

.desktop-nav {
  display: flex;
  align-items: center;
  gap: 32px;
  margin-left: auto;
}

.nav-link {
  font-size: 13px;
  line-height: 1.5;
  position: relative;
  display: flex;
  align-items: center;
  min-height: 44px;
  color: #dce3e8;
}

.nav-link::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 5px;
  height: 1px;
  background: var(--blue);
  width: 100%;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .2s;
}

.nav-link:hover::after,.nav-link.is-active::after {
  transform: scaleX(1);
}

.header-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  padding-left: 24px;
  border-left: 1px solid #34495c;
}

.language-link {
  font-size: 12px;
  min-width: 40px;
  min-height: 44px;
  display: grid;
  place-items: center;
  letter-spacing: .08em;
  color: var(--ivory);
}

.menu-toggle {
  display: none;
  width: 44px;
  height: 44px;
  align-items: center;
  justify-content: center;
}

.icon-button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  flex-shrink: 0;
  border: 1px solid var(--line);
  border-radius: var(--radius);
}

.icon-button:hover {
  background: var(--navy-light);
}

.home-hero {
  position: relative;
  isolation: isolate;
  min-height: 780px;
  height: 100svh;
  max-height: 1040px;
  background: radial-gradient(ellipse at 67% 22%,#213e59 0,rgba(20,45,67,.5) 23%,transparent 55%),var(--navy-deep);
}

.hero-art {
  position: absolute;
  z-index: -2;
  inset: auto 0 0;
  width: 100%;
  height: 88%;
  animation: materialise 1.8s var(--ease) both;
  overflow: hidden;
}

.hero-art img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center bottom;
}

.hero-shade {
  position: absolute;
  z-index: -1;
  inset: 0;
  background: linear-gradient(90deg,rgba(7,19,33,.95) 0%,rgba(7,19,33,.82) 23%,rgba(7,19,33,.32) 47%,rgba(7,19,33,.02) 73%),linear-gradient(180deg,#071321 0%,rgba(7,19,33,.25) 30%,transparent 63%,rgba(7,19,33,.45) 82%,#071321 100%);
}

.hero-layout {
  height: 100%;
  min-height: inherit;
  position: relative;
  padding-top: 172px;
  padding-bottom: 100px;
  display: flex;
  flex-direction: column;
}

.hero-copy {
  max-width: 680px;
  width: 54%;
  position: relative;
}

.hero-copy .eyebrow {
  margin-bottom: 32px;
}

.hero-copy h1 {
  font-size: clamp(46px,4.5vw,72px);
  line-height: 1.08;
  letter-spacing: -.03em;
  text-wrap: balance;
}

.hero-intro {
  font-size: 16px;
  line-height: 1.8;
  max-width: 490px;
  margin-top: 24px;
  color: #cad7e1;
}

.hero-actions {
  display: flex;
  gap: 32px;
  align-items: center;
  margin-top: 32px;
  flex-wrap: wrap;
}

.hero-caption {
  position: absolute;
  right: 0;
  bottom: 100px;
  display: flex;
  flex-wrap: wrap;
  max-width: 220px;
  align-items: center;
  gap: 8px 14px;
  color: #d2e0e9;
  font-size: 12px;
  line-height: 1.5;
  letter-spacing: .03em;
}

.caption-cross {
  font-size: 28px;
  color: var(--blue);
  font-weight: 200;
}

.hero-image-note {
  flex-basis: 100%;
  font-size: 10px;
  color: var(--blue-muted);
  padding-left: 30px;
}

.hero-scroll {
  position: absolute;
  left: 0;
  bottom: 44px;
  display: flex;
  gap: 20px;
  align-items: center;
  color: var(--blue-muted);
  font-size: 10px;
  letter-spacing: .13em;
  text-transform: uppercase;
  min-height: 44px;
}

.scroll-line {
  width: 48px;
  height: 1px;
  background: var(--blue-muted);
}

@keyframes materialise {
  from {
    opacity: .35;
    filter: saturate(.5);
  }

  to {
    opacity: 1;
    filter: saturate(1);
  }
}

.approach-section {
  background: var(--navy-deep);
  padding-top: 96px;
}

.approach-section .display-title {
  font-size: clamp(35px,3.15vw,50px);
}

.capability-grid {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  border-top: 1px solid var(--line);
}

.capability {
  padding: 32px 32px 8px 0;
}

.capability+.capability {
  border-left: 1px solid var(--line);
  padding-left: 32px;
}

.capability-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 30px;
  color: var(--blue-muted);
}

.capability-top svg {
  width: 32px;
  height: 32px;
}

.capability h3 {
  max-width: 300px;
  min-height: 64px;
  margin-bottom: 16px;
}

.capability p {
  font-size: 14px;
  line-height: 1.8;
  max-width: 340px;
}

.selected-section {
  background: linear-gradient(180deg,#0e2033,var(--navy));
  border-block: 1px solid #20364a;
}

.product-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 24px;
}

.product-card {
  border: 1px solid var(--line);
  background: rgba(8,22,36,.32);
  position: relative;
  isolation: isolate;
  transition: border-color .25s,background .25s;
  min-width: 0;
}

.product-card:hover,.product-card:focus-within {
  border-color: #7895ad;
  background: #11283e;
}

.card-hit {
  position: absolute;
  inset: 0;
  z-index: 4;
}

.card-hit:focus-visible {
  outline-offset: 5px;
}

.card-top {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 24px 24px 0;
}

.card-index {
  font-family: var(--serif);
  font-size: 21px;
  color: var(--blue-muted);
}

.card-top .eyebrow {
  font-size: 9px;
  letter-spacing: .11em;
  margin-left: auto;
}

.status-dot {
  display: inline-block;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--blue-muted);
  flex-shrink: 0;
}

.card-art {
  padding: 0 16px;
  height: 236px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}

.card-art::before {
  content: "";
  position: absolute;
  inset: 20% 15%;
  background: radial-gradient(ellipse,rgba(96,144,181,.08),transparent 67%);
  z-index: -1;
}

.card-art img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  mix-blend-mode: screen;
  transition: transform .55s var(--ease);
  opacity: .92;
}

.product-card:hover .card-art img {
  transform: translateY(-4px);
  opacity: 1;
}

.card-content {
  padding: 0 24px 24px;
}

.card-heading {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
}

.card-heading h3 {
  font-family: var(--serif);
  font-size: 27px;
  letter-spacing: .01em;
  overflow-wrap: anywhere;
}

.card-heading svg {
  width: 18px;
  height: 18px;
  color: var(--blue);
}

.card-subtitle {
  font-size: 14px;
  color: #d5e0e8;
  margin-top: 10px;
}

.card-description {
  font-size: 12px;
  line-height: 1.75;
  color: var(--blue-muted);
  margin-top: 12px;
  max-width: 340px;
}

.card-status {
  display: inline-block;
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--blue-muted);
  border-top: 1px solid var(--line);
  padding-top: 12px;
  margin-top: 22px;
  width: 100%;
}

.note-grid {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 100px;
  align-items: center;
}

.engineering-note .eyebrow {
  margin-bottom: 24px;
}

.note-content {
  max-width: 430px;
  justify-self: end;
}

.note-content p {
  font-size: 17px;
  line-height: 1.9;
  margin-bottom: 24px;
}

.contact-band {
  border-top: 1px solid var(--line);
  padding-block: 64px;
  background: linear-gradient(110deg,#10263b,#0b1a2b);
}

.contact-band-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 40px;
}

.contact-band .eyebrow {
  margin-bottom: 18px;
}

.contact-band h2 {
  font-size: clamp(30px,2.8vw,42px);
}

.contact-band .button {
  flex-shrink: 0;
}

.site-footer {
  padding-block: 72px 24px;
  background: #071321;
}

.footer-grid {
  display: grid;
  grid-template-columns: 1.25fr 1.2fr 1fr;
  gap: 80px;
  padding-bottom: 56px;
}

.footer-brand p {
  font-size: 14px;
  line-height: 1.8;
  margin-top: 24px;
  color: var(--blue-muted);
}

.footer-grid .eyebrow {
  margin-bottom: 20px;
}

.footer-grid address {
  font-size: 13px;
  line-height: 1.9;
  max-width: 320px;
}

.registration {
  font-size: 11px;
  line-height: 1.7;
  color: var(--blue-muted);
  margin-top: 12px;
}

.footer-contact {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.footer-contact a {
  font-size: 15px;
  line-height: 1.6;
  min-height: 40px;
  overflow-wrap: anywhere;
}

.footer-contact a:hover {
  color: var(--blue);
}

.footer-bottom {
  border-top: 1px solid var(--line);
  padding-top: 24px;
  display: flex;
  gap: 32px;
  font-size: 10px;
  line-height: 1.7;
  color: var(--blue-muted);
  align-items: center;
}

.footer-line {
  margin-right: auto;
  letter-spacing: .07em;
}

.footer-bottom>a {
  min-height: 32px;
  display: inline-flex;
  align-items: center;
}

.back-top {
  gap: 12px;
}

.back-top svg {
  transform: rotate(-90deg);
  width: 15px;
  height: 15px;
}

.inner-page {
  padding-top: calc(var(--header-height) + 56px);
  background: radial-gradient(ellipse at 88% 5%,rgba(45,81,113,.28),transparent 38%),var(--navy-deep);
}

.page-heading {
  max-width: 850px;
  margin-bottom: 56px;
}

.page-heading .eyebrow {
  margin-bottom: 24px;
}

.page-heading .display-title {
  font-size: clamp(46px,5.2vw,78px);
}

.page-intro {
  font-size: 18px;
  max-width: 740px;
  line-height: 1.8;
  margin-top: 24px;
}

.catalog-section {
  padding-bottom: 96px;
}

.catalog-toolbar {
  border-bottom: 1px solid var(--line);
  padding-bottom: 24px;
  margin-bottom: 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.filter-list {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.filter-button {
  min-height: 44px;
  padding: 10px 14px;
  border: 1px solid transparent;
  font-size: 12px;
  line-height: 1.5;
  color: #b7cbdb;
  transition: background .2s,border-color .2s;
}

.filter-button[aria-pressed=true] {
  background: #213c54;
  border-color: #526f88;
  color: var(--ivory);
}

.filter-button:hover {
  border-color: var(--line);
}

.result-count {
  font-size: 11px;
  color: var(--blue-muted);
  white-space: nowrap;
}

.catalog-note {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  font-size: 12px;
  line-height: 1.8;
  color: var(--blue-muted);
  margin-top: 32px;
  max-width: 800px;
}

.catalog-note .icon {
  width: 19px;
  height: 19px;
  margin-top: 2px;
}

.breadcrumbs {
  display: flex;
  gap: 12px;
  align-items: center;
  font-size: 11px;
  line-height: 1.5;
  color: var(--blue-muted);
  margin-bottom: 32px;
}

.breadcrumbs a {
  min-height: 32px;
  display: flex;
  align-items: center;
}

.product-page {
  padding-top: calc(var(--header-height) + 24px);
}

.product-hero {
  display: grid;
  grid-template-columns: 1fr 1.08fr;
  align-items: center;
  gap: 48px;
  padding: 12px 0 72px;
}

.product-copy .eyebrow {
  margin-bottom: 24px;
}

.product-name {
  font-size: clamp(36px,5vw,76px);
  line-height: 1.1;
  letter-spacing: -.02em;
  overflow-wrap: anywhere;
}

.product-tagline {
  font-family: var(--serif);
  font-size: clamp(24px,2.1vw,34px);
  line-height: 1.3;
  color: var(--blue);
  margin-top: 16px;
}

.product-intro {
  font-size: 15px;
  line-height: 1.85;
  margin-top: 24px;
  max-width: 570px;
}

.product-actions {
  display: flex;
  align-items: center;
  gap: 24px;
  margin-top: 32px;
  flex-wrap: wrap;
}

.product-actions .text-link {
  font-size: 12px;
}

.product-status {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: .11em;
  color: var(--blue-muted);
  margin-top: 28px;
}

.product-visual {
  position: relative;
  border: 1px solid #294358;
  background: radial-gradient(ellipse at center,#19334b55,transparent 65%);
  min-width: 0;
}

.product-visual::before,.product-visual::after {
  content: "+";
  position: absolute;
  color: var(--blue-muted);
  font-size: 21px;
  font-weight: 200;
}

.product-visual::before {
  top: 12px;
  left: 16px;
}

.product-visual::after {
  bottom: 45px;
  right: 16px;
}

.product-visual img {
  mix-blend-mode: screen;
  width: 100%;
  aspect-ratio: 1.3;
  object-fit: contain;
  padding: 24px 12px 0;
}

.product-visual figcaption {
  padding: 16px 24px;
  font-size: 9px;
  color: var(--blue-muted);
  letter-spacing: .08em;
  border-top: 1px solid #294358;
  line-height: 1.8;
}

.product-details {
  border-top: 1px solid var(--line);
}

.product-story {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 96px;
  padding-block: 72px;
}

.product-story .eyebrow {
  margin-bottom: 24px;
}

.product-story h2 {
  font-size: clamp(30px,2.7vw,42px);
  line-height: 1.3;
}

.product-story p {
  font-size: 15px;
  line-height: 1.9;
}

.product-story p+p {
  margin-top: 20px;
}

.product-info-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
}

.info-panel {
  border: 1px solid var(--line);
  padding: 40px;
  background: rgba(14,33,51,.4);
}

.info-panel .eyebrow {
  margin-bottom: 20px;
}

.info-panel h2 {
  font-size: 32px;
  margin-bottom: 28px;
}

.plain-list {
  display: grid;
  gap: 16px;
}

.plain-list li {
  display: flex;
  gap: 14px;
  font-size: 14px;
  align-items: flex-start;
  line-height: 1.75;
}

.plain-list .icon {
  margin-top: 3px;
  width: 17px;
  height: 17px;
  color: var(--blue-muted);
}

.integration-details {
  margin-top: 32px;
  border-block: 1px solid var(--line);
  padding: 0 0 24px;
}

.integration-details summary {
  cursor: pointer;
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 28px 0;
  font-family: var(--serif);
  font-size: 29px;
  line-height: 1.3;
  color: var(--ivory);
  gap: 20px;
}

.integration-details summary::-webkit-details-marker {
  display: none;
}

.integration-details[open] summary .icon {
  transform: rotate(180deg);
}

.integration-details:not([open]) {
  padding-bottom: 0;
}

.integration-details p {
  font-size: 14px;
  line-height: 1.9;
  max-width: 1000px;
}

.product-contact {
  padding: 64px 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 64px;
}

.product-contact h2 {
  font-size: 34px;
  line-height: 1.25;
  margin-bottom: 18px;
}

.product-contact p {
  font-size: 14px;
  max-width: 730px;
  line-height: 1.85;
}

.product-contact .button {
  flex-shrink: 0;
}

.product-bottom-nav {
  border-top: 1px solid var(--line);
  display: flex;
  justify-content: space-between;
  gap: 32px;
  padding-block: 24px 48px;
}

.product-bottom-nav .text-link {
  font-size: 12px;
  border: 0;
}

.company-hero {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 72px;
  align-items: center;
  padding-bottom: 88px;
}

.company-copy .eyebrow {
  margin-bottom: 24px;
}

.company-copy .display-title {
  font-size: clamp(40px,4vw,62px);
}

.company-lead {
  font-size: 17px;
  line-height: 1.8;
  margin-top: 28px;
  color: #d3dfe8;
}

.company-copy>p:not(.eyebrow):not(.company-lead) {
  font-size: 14px;
  line-height: 1.9;
  margin-top: 20px;
}

.company-copy .text-link {
  margin-top: 28px;
}

.company-visual {
  position: relative;
}

.company-visual img {
  width: 100%;
  aspect-ratio: 1.02;
  object-fit: cover;
  object-position: center;
  border: 1px solid var(--line);
  filter: saturate(.65);
}

.company-visual figcaption {
  font-size: 10px;
  color: var(--blue-muted);
  padding: 12px 0;
  letter-spacing: .08em;
}

.company-capabilities {
  background: #0d1f31;
  border-block: 1px solid var(--line);
}

.competency-grid {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 40px;
}

.competency .capability-top {
  margin-bottom: 28px;
}

.competency {
  min-width: 0;
  overflow-wrap: anywhere;
  border-top: 1px solid #426079;
  padding-top: 24px;
}

.competency h3 {
  font-size: 26px;
  min-height: 62px;
  margin-bottom: 18px;
}

.competency p {
  font-size: 13px;
  line-height: 1.9;
}

.cycle-section .eyebrow {
  margin-bottom: 20px;
}

.cycle-list {
  display: grid;
  grid-template-columns: repeat(7,minmax(0,1fr));
  margin-top: 52px;
}

.cycle-list li {
  min-width: 0;
  overflow-wrap: anywhere;
  position: relative;
  padding-top: 28px;
  padding-right: 16px;
  border-top: 1px solid #527087;
}

.cycle-dot {
  position: absolute;
  top: -5px;
  left: 0;
  border: 1px solid var(--blue);
  background: var(--navy-deep);
  width: 9px;
  height: 9px;
  border-radius: 50%;
}

.cycle-list .eyebrow {
  font-size: 10px;
  margin-bottom: 16px;
}

.cycle-list h3 {
  font-family: var(--sans);
  font-size: 14px;
  color: #dce5ec;
}

.sectors-section {
  border-block: 1px solid var(--line);
  padding-block: 72px;
}

.sectors-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 96px;
  align-items: center;
}

.sectors-layout h2 {
  font-size: 36px;
  max-width: 510px;
}

.sector-list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px 24px;
  font-size: 13px;
  color: #c4d5e3;
}

.sector-list li {
  padding-bottom: 12px;
  border-bottom: 1px solid var(--line);
}

.contacts-section {
  background: radial-gradient(ellipse at 10% 70%,rgba(44,78,108,.23),transparent 70%);
}

.contacts-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 120px;
}

.contacts-layout .eyebrow {
  margin-bottom: 24px;
}

.contacts-layout .section-lead {
  margin: 28px 0 32px;
  font-size: 15px;
  max-width: 440px;
}

.contact-details {
  padding-top: 8px;
}

.contact-detail {
  padding-bottom: 28px;
  margin-bottom: 28px;
  border-bottom: 1px solid var(--line);
}

.contact-detail:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: 0;
}

.contact-detail .eyebrow {
  margin-bottom: 12px;
  font-size: 10px;
}

.contact-detail a {
  display: flex;
  align-items: center;
  gap: 20px;
  min-height: 36px;
  font-size: 14px;
  overflow-wrap: anywhere;
  max-width: 100%;
}

.contact-detail .large-contact {
  font-size: clamp(22px,2.2vw,32px);
  color: var(--ivory);
}

.large-contact svg {
  width: 22px;
  height: 22px;
}

.contact-person {
  font-family: var(--serif);
  font-size: 25px;
  color: var(--ivory);
  margin-bottom: 10px;
}

.contact-detail address {
  font-size: 14px;
  line-height: 1.9;
  margin-top: 12px;
  max-width: 410px;
}

.prose {
  max-width: 850px;
  padding-bottom: 96px;
}

.prose .eyebrow {
  margin-bottom: 24px;
}

.prose section {
  margin-top: 48px;
}

.prose h2 {
  font-size: 29px;
  margin-bottom: 16px;
}

.prose p {
  line-height: 1.9;
  font-size: 15px;
}

.prose .text-link {
  margin-top: 40px;
}

.error-page {
  min-height: 70svh;
  padding-bottom: 100px;
}

.error-page .eyebrow {
  margin-bottom: 24px;
}

.error-page p {
  margin: 24px 0 32px;
}

dialog {
  padding: 0;
  color: var(--text);
  background: var(--navy);
  border: 1px solid #3c586e;
  border-radius: var(--radius);
  max-height: calc(100dvh - 48px);
  overscroll-behavior: contain;
}

dialog::backdrop {
  background: rgba(1,9,16,.82);
  backdrop-filter: blur(8px);
}

.mobile-menu {
  width: 100vw;
  max-width: none;
  height: 100dvh;
  max-height: none;
  margin: 0;
  border: 0;
  background: radial-gradient(ellipse at 90% 15%,#213b53,transparent 65%),var(--navy-deep);
  padding: 0 var(--gutter) 36px;
}

.mobile-menu-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 84px;
}

.mobile-menu nav {
  display: grid;
  margin-top: 32px;
}

.mobile-nav-link {
  font-family: var(--serif);
  font-size: 34px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 0;
  border-bottom: 1px solid var(--line);
}

.mobile-nav-link svg {
  width: 24px;
  height: 24px;
  color: var(--blue-muted);
}

.mobile-menu-foot {
  display: grid;
  gap: 12px;
  margin-top: 48px;
}

.mobile-menu-foot>a:not(.text-link) {
  font-size: 15px;
  min-height: 32px;
}

.mobile-menu-foot .text-link {
  width: max-content;
  margin-top: 8px;
}

.enquiry-dialog {
  width: min(720px,calc(100% - 40px));
}

.enquiry-heading {
  padding: 20px 32px;
  border-bottom: 1px solid var(--line);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  position: sticky;
  top: 0;
  background: var(--navy);
  z-index: 2;
}

.enquiry-body {
  padding: 32px 40px 40px;
}

.dialog-title {
  font-family: var(--serif);
  font-size: 36px;
  line-height: 1.15;
  max-width: 540px;
  margin-bottom: 16px;
}

.enquiry-body>.muted {
  font-size: 14px;
  margin-bottom: 24px;
}

.form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 20px;
}

.form-field {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 16px;
}

.form-field label {
  font-size: 12px;
  color: #dce5ed;
  line-height: 1.6;
}

.optional {
  font-size: 10px;
  color: var(--blue-muted);
}

.required {
  color: var(--blue);
}

.form-field input,.form-field select,.form-field textarea {
  width: 100%;
  border: 1px solid #526a7e;
  background: #081726;
  min-height: 48px;
  color: var(--ivory);
  padding: 12px 14px;
  border-radius: 2px;
  font-size: 16px;
  line-height: 1.5;
  transition: border-color .2s;
  box-shadow: none;
}

.form-field textarea {
  resize: vertical;
  min-height: 112px;
}

.form-field select {
  padding-right: 28px;
}

.form-field input:focus,.form-field textarea:focus,.form-field select:focus {
  border-color: var(--blue);
}

.form-field ::placeholder {
  color: #8199ad;
  font-size: 13px;
  opacity: 1;
}

.form-field [aria-invalid=true] {
  border-color: var(--error);
}

.field-error {
  font-size: 12px;
  line-height: 1.5;
  color: var(--error);
}

.field-error:empty {
  display: none;
}

.consent-label {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  font-size: 12px;
  line-height: 1.7;
  margin-top: 8px;
  cursor: pointer;
}

.consent-label input {
  width: 20px;
  height: 20px;
  accent-color: var(--button);
  flex-shrink: 0;
  margin: 3px 0;
}

.form-disclosure {
  font-size: 11px;
  line-height: 1.8;
  margin-top: 20px;
  color: var(--blue-muted);
}

.form-submit {
  width: 100%;
  margin-top: 20px;
}

.form-status {
  font-size: 12px;
  color: var(--error);
  line-height: 1.8;
  margin-top: 12px;
}

.form-status:empty {
  display: none;
}

.honeypot {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.form-success>.icon {
  width: 44px;
  height: 44px;
  color: var(--blue);
  margin-bottom: 24px;
}

.form-success h3 {
  font-size: 32px;
  margin-bottom: 16px;
}

.form-success p {
  font-size: 14px;
  line-height: 1.8;
}

.form-success .button {
  margin-top: 20px;
}

.prepared-message {
  resize: vertical;
  width: 100%;
  border: 1px solid var(--line);
  padding: 16px;
  margin-top: 24px;
  background: #081726;
  color: var(--text);
  font-size: 13px;
  line-height: 1.7;
}

@media (min-width:1700px) {
  .hero-copy {
    width: 53%;
    max-width: 750px;
  }

  .hero-copy h1 {
    font-size: 78px;
  }

  .hero-layout {
    padding-top: 185px;
  }

  .hero-art {
    height: 94%;
  }

  .hero-shade {
    background: linear-gradient(90deg,rgba(7,19,33,.95),rgba(7,19,33,.7) 25%,transparent 57%),linear-gradient(180deg,#071321,transparent 27%,transparent 80%,#071321);
  }
}

@media (max-width:1199px) {
  :root {
    --header-height: 88px;
  }

  .brand-descriptor {
    font-size: 9px;
    padding-left: 20px;
  }

  .header-inner {
    gap: 20px;
  }

  .desktop-nav {
    gap: 22px;
  }

  .header-actions {
    padding-left: 16px;
  }

  .hero-copy {
    width: 60%;
    max-width: 630px;
  }

  .hero-copy h1 {
    font-size: clamp(48px,5vw,64px);
  }

  .hero-layout {
    padding-top: 148px;
  }

  .home-hero {
    min-height: 740px;
  }

  .split-heading {
    gap: 48px;
    grid-template-columns: 1.4fr 1fr;
  }

  .note-grid {
    gap: 64px;
  }

  .card-art {
    height: 208px;
  }

  .card-top {
    padding: 20px 20px 0;
  }

  .card-content {
    padding: 0 20px 24px;
  }

  .card-heading h3 {
    font-size: 25px;
  }

  .card-top .eyebrow {
    font-size: 8px;
  }

  .card-description {
    min-height: 42px;
  }

  .company-hero {
    gap: 48px;
  }

  .competency-grid {
    gap: 28px;
  }

  .contacts-layout {
    gap: 72px;
  }

  .product-hero {
    gap: 32px;
  }

  .product-story {
    gap: 64px;
  }

  .footer-grid {
    gap: 56px;
  }

  .filter-list {
    gap: 4px;
  }

  .filter-button {
    padding: 10px;
    font-size: 11px;
  }

  .result-count {
    font-size: 10px;
  }
}

@media (max-width:959px) {
  :root {
    --header-height: 84px;
    --s30: 88px;
  }

  .desktop-nav {
    display: none;
  }

  .header-actions {
    margin-left: auto;
    border: 0;
    padding: 0;
  }

  .menu-toggle {
    display: flex;
  }

  .brand-descriptor {
    display: block;
  }

  .hero-copy {
    width: 65%;
  }

  .hero-copy h1 {
    font-size: 54px;
  }

  .hero-intro {
    max-width: 430px;
    font-size: 15px;
  }

  .home-hero {
    min-height: 760px;
    max-height: 940px;
  }

  .hero-layout {
    padding-top: 144px;
  }

  .hero-art {
    height: 68%;
    width: 119%;
    max-width: none;
    right: -8%;
  }

  .hero-shade {
    background: linear-gradient(90deg,rgba(7,19,33,.8),rgba(7,19,33,.7) 16%,rgba(7,19,33,.2) 48%,transparent 70%),linear-gradient(180deg,#071321,rgba(7,19,33,.25) 40%,transparent 62%,#071321 100%);
  }

  .hero-caption {
    bottom: 92px;
  }

  .split-heading {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .section-lead {
    max-width: 650px;
  }

  .capability {
    padding-right: 24px;
  }

  .capability+.capability {
    padding-left: 24px;
  }

  .capability h3 {
    font-size: 24px;
  }

  .capability p {
    font-size: 13px;
  }

  .product-grid {
    gap: 20px;
  }

  .catalog-grid {
    grid-template-columns: repeat(2,minmax(0,1fr));
  }

  .featured-grid .card-art {
    height: 170px;
  }

  .featured-grid .card-top .eyebrow {
    display: none;
  }

  .featured-grid .card-description {
    display: none;
  }

  .featured-grid .card-heading h3 {
    font-size: 22px;
  }

  .featured-grid .card-subtitle {
    font-size: 12px;
    min-height: 44px;
  }

  .card-art {
    height: 235px;
  }

  .card-top .eyebrow {
    font-size: 9px;
  }

  .note-grid {
    grid-template-columns: 1fr 1fr;
    gap: 48px;
  }

  .note-content p {
    font-size: 15px;
  }

  .contact-band-inner {
    gap: 32px;
  }

  .contact-band h2 {
    font-size: 32px;
  }

  .footer-grid {
    gap: 40px;
  }

  .footer-bottom {
    gap: 20px;
  }

  .footer-line {
    display: none;
  }

  .footer-bottom>a:first-of-type {
    margin-left: auto;
  }

  .product-hero {
    grid-template-columns: 1fr 1fr;
    gap: 32px;
    align-items: start;
  }

  .product-copy .eyebrow {
    font-size: 9px;
  }

  .product-name {
    font-size: 44px;
  }

  .product-intro {
    font-size: 14px;
  }

  .product-actions {
    gap: 12px;
  }

  .product-visual {
    margin-top: 30px;
  }

  .product-visual img {
    aspect-ratio: 1;
  }

  .product-story {
    gap: 40px;
  }

  .product-contact {
    gap: 40px;
  }

  .product-contact h2 {
    font-size: 30px;
  }

  .info-panel {
    padding: 28px;
  }

  .info-panel h2 {
    font-size: 28px;
  }

  .company-hero {
    grid-template-columns: 1.15fr 1fr;
    gap: 32px;
  }

  .company-copy .display-title {
    font-size: 42px;
  }

  .company-lead {
    font-size: 15px;
  }

  .company-visual img {
    aspect-ratio: .72;
  }

  .competency-grid {
    grid-template-columns: repeat(2,1fr);
    gap: 40px;
  }

  .competency h3 {
    min-height: unset;
  }

  .cycle-list {
    grid-template-columns: repeat(3,1fr);
    row-gap: 40px;
  }

  .cycle-list h3 {
    font-size: 13px;
  }

  .sectors-layout {
    gap: 48px;
  }

  .contacts-layout {
    gap: 48px;
  }

  .contact-details .large-contact {
    font-size: 24px;
  }

  .contacts-layout .display-title {
    font-size: 42px;
  }

  .catalog-toolbar {
    align-items: flex-end;
  }

  .filter-list {
    gap: 6px;
  }

  .filter-button {
    font-size: 11px;
  }

  .result-count {
    padding-bottom: 12px;
  }
}

@media (max-width:759px) {
  :root {
    --gutter: 24px;
    --s30: 72px;
    --header-height: 80px;
  }

  .wordmark {
    font-size: 29px;
  }

  .brand-descriptor {
    font-size: 9px;
    padding-left: 18px;
  }

  .hero-layout {
    padding-top: 132px;
  }

  .home-hero {
    height: auto;
    min-height: 960px;
    max-height: none;
    overflow: clip;
  }

  .hero-copy {
    width: 100%;
    max-width: 610px;
  }

  .hero-copy h1 {
    font-size: clamp(43px,7vw,58px);
    max-width: 570px;
  }

  .hero-intro {
    font-size: 15px;
    max-width: 500px;
  }

  .hero-copy .eyebrow {
    font-size: 9px;
    margin-bottom: 24px;
  }

  .hero-actions {
    margin-top: 28px;
    gap: 24px;
  }

  .hero-art {
    height: 440px;
    width: 120%;
    right: -10%;
    bottom: 22px;
  }

  .hero-art img {
    object-fit: contain;
    object-position: center bottom;
  }

  .hero-shade {
    background: linear-gradient(180deg,#071321 0%,#071321 34%,rgba(7,19,33,.9) 48%,rgba(7,19,33,.1) 65%,transparent 83%,#071321 98%);
  }

  .hero-caption {
    bottom: 68px;
    right: 0;
    max-width: 190px;
  }

  .hero-scroll {
    bottom: 12px;
    font-size: 8px;
    letter-spacing: .07em;
    gap: 12px;
  }

  .hero-scroll .scroll-line {
    width: 28px;
  }

  .approach-section {
    padding-top: 56px;
  }

  .display-title,.approach-section .display-title {
    font-size: 36px;
  }

  .section-heading {
    margin-bottom: 36px;
  }

  .row-heading {
    align-items: flex-start;
    flex-direction: column;
    gap: 20px;
  }

  .row-heading .text-link {
    margin-top: 0;
  }

  .capability-grid {
    grid-template-columns: 1fr;
  }

  .capability,.capability+.capability {
    padding: 28px 0;
    display: grid;
    grid-template-columns: 50px 1fr;
    column-gap: 24px;
    border-left: 0;
    border-bottom: 1px solid var(--line);
  }

  .capability-top {
    grid-row: 1/3;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 22px;
    margin: 0;
  }

  .capability-top svg {
    width: 28px;
    height: 28px;
  }

  .capability h3 {
    font-size: 27px;
    min-height: unset;
    margin-bottom: 12px;
    max-width: 100%;
  }

  .capability p {
    font-size: 14px;
    max-width: 100%;
  }

  .featured-grid {
    grid-template-columns: 1fr;
  }

  .featured-grid .card-top .eyebrow {
    display: block;
    font-size: 9px;
  }

  .featured-grid .card-art {
    height: 250px;
  }

  .featured-grid .card-heading h3 {
    font-size: 32px;
  }

  .featured-grid .card-subtitle {
    font-size: 15px;
    min-height: unset;
  }

  .featured-grid .card-description {
    display: block;
    font-size: 13px;
    min-height: unset;
  }

  .featured-grid .card-content {
    padding: 0 28px 28px;
  }

  .featured-grid .card-top {
    padding: 24px 28px 0;
  }

  .featured-grid .card-status {
    font-size: 9px;
  }

  .featured-card {
    max-width: 600px;
    width: 100%;
    margin: auto;
  }

  .note-grid {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .note-content {
    justify-self: start;
    max-width: 600px;
  }

  .contact-band-inner {
    flex-direction: column;
    align-items: flex-start;
    gap: 28px;
  }

  .contact-band {
    padding-block: 48px;
  }

  .contact-band h2 {
    font-size: 32px;
  }

  .footer-grid {
    grid-template-columns: 1fr 1fr;
    gap: 40px 32px;
    padding-bottom: 40px;
  }

  .footer-brand {
    grid-column: 1/-1;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 32px;
  }

  .footer-brand p {
    margin: 0;
    font-size: 12px;
  }

  .footer-grid address {
    font-size: 12px;
  }

  .footer-contact a {
    font-size: 13px;
  }

  .site-footer {
    padding-top: 48px;
  }

  .footer-bottom {
    flex-wrap: wrap;
    font-size: 9px;
    gap: 12px 16px;
  }

  .footer-bottom .back-top {
    margin-left: auto;
  }

  .footer-bottom>a:first-of-type {
    margin-left: auto;
  }

  .inner-page {
    padding-top: calc(var(--header-height) + 44px);
  }

  .page-heading .display-title {
    font-size: 52px;
  }

  .page-heading {
    margin-bottom: 36px;
  }

  .page-intro {
    font-size: 16px;
    margin-top: 20px;
  }

  .catalog-toolbar {
    flex-direction: column;
    align-items: stretch;
    gap: 16px;
  }

  .result-count {
    padding-bottom: 0;
    align-self: flex-end;
  }

  .catalog-grid {
    gap: 16px;
  }

  .catalog-grid .card-top {
    padding: 16px 16px 0;
    gap: 8px;
  }

  .catalog-grid .card-top .eyebrow {
    font-size: 7px;
    letter-spacing: .06em;
  }

  .catalog-grid .card-art {
    height: 160px;
    padding: 0 4px;
  }

  .catalog-grid .card-content {
    padding: 0 16px 20px;
  }

  .catalog-grid .card-heading h3 {
    font-size: 23px;
  }

  .catalog-grid .card-heading svg {
    width: 15px;
  }

  .catalog-grid .card-subtitle {
    font-size: 12px;
    min-height: 42px;
  }

  .catalog-grid .card-description {
    display: none;
  }

  .catalog-grid .card-status {
    font-size: 8px;
  }

  .product-page {
    padding-top: calc(var(--header-height) + 20px);
  }

  .product-hero {
    grid-template-columns: 1fr;
    gap: 32px;
    padding-bottom: 48px;
  }

  .product-copy .eyebrow {
    font-size: 9px;
  }

  .product-name {
    font-size: clamp(38px,8.8vw,60px);
  }

  .product-tagline {
    font-size: 29px;
    margin-top: 12px;
  }

  .product-intro {
    font-size: 15px;
    margin-top: 20px;
  }

  .product-actions {
    gap: 24px;
  }

  .product-visual {
    margin-top: 0;
  }

  .product-visual img {
    aspect-ratio: 1.5;
    max-height: 470px;
  }

  .product-visual figcaption {
    font-size: 9px;
  }

  .product-story {
    grid-template-columns: 1fr;
    gap: 24px;
    padding-block: 48px;
  }

  .product-story h2 {
    font-size: 34px;
  }

  .product-story p {
    font-size: 14px;
  }

  .product-info-grid {
    gap: 20px;
  }

  .plain-list li {
    font-size: 13px;
  }

  .info-panel {
    padding: 24px;
  }

  .info-panel h2 {
    font-size: 26px;
  }

  .info-panel .eyebrow {
    font-size: 8px;
  }

  .product-contact {
    flex-direction: column;
    align-items: flex-start;
    gap: 24px;
    padding-block: 48px;
  }

  .product-bottom-nav {
    padding-bottom: 24px;
  }

  .product-bottom-nav .text-link {
    font-size: 11px;
    gap: 12px;
  }

  .company-hero {
    grid-template-columns: 1fr;
    gap: 36px;
    padding-bottom: 56px;
  }

  .company-copy .display-title {
    font-size: 46px;
  }

  .company-lead {
    font-size: 16px;
  }

  .company-copy .text-link {
    margin-top: 20px;
  }

  .company-visual img {
    aspect-ratio: 1.55;
    max-height: 430px;
    object-position: center 60%;
  }

  .competency-grid {
    gap: 40px 24px;
  }

  .competency h3 {
    font-size: 24px;
  }

  .competency p {
    font-size: 13px;
  }

  .cycle-list {
    margin-top: 40px;
  }

  .sectors-layout {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .sectors-layout h2 {
    font-size: 34px;
    max-width: 490px;
  }

  .sector-list {
    gap: 16px 24px;
  }

  .contacts-layout {
    grid-template-columns: 1fr;
    gap: 48px;
  }

  .contacts-layout .display-title {
    font-size: 46px;
  }

  .contacts-layout .section-lead {
    max-width: 600px;
  }

  .contacts-layout .eyebrow {
    margin-bottom: 20px;
  }

  .contact-details {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 32px;
  }

  .contact-detail {
    margin: 0;
    padding: 0 0 20px;
  }

  .contact-detail:first-child {
    grid-column: 1/-1;
  }

  .contact-detail:last-child {
    border-bottom: 1px solid var(--line);
    padding-bottom: 20px;
  }

  .contact-detail:nth-child(3) {
    grid-column: 1/-1;
    grid-row: 3;
  }

  .contact-detail a {
    font-size: 14px;
  }

  .contact-detail .large-contact {
    font-size: 30px;
  }

  .contact-detail address {
    font-size: 12px;
  }

  .contact-detail:nth-child(4) {
    grid-row: 2;
    grid-column: 2;
  }

  .enquiry-body {
    padding: 28px;
  }

  .enquiry-heading {
    padding: 16px 24px;
  }

  .dialog-title {
    font-size: 32px;
  }

  .enquiry-dialog {
    max-height: calc(100dvh - 24px);
    width: calc(100% - 24px);
  }
}

@media (max-width:479px) {
  :root {
    --gutter: 24px;
  }

  .brand-descriptor {
    display: none;
  }

  .header-inner {
    gap: 12px;
  }

  .header-actions {
    gap: 4px;
  }

  .wordmark {
    font-size: 28px;
  }

  .hero-copy h1 {
    font-size: 44px;
    line-height: 1.1;
    text-wrap: initial;
  }

  .hero-layout {
    padding-top: 122px;
    padding-bottom: 72px;
    min-height: 850px;
  }

  .home-hero {
    min-height: 850px;
  }

  .hero-copy .eyebrow {
    font-size: 8px;
    letter-spacing: .12em;
  }

  .hero-intro {
    font-size: 14px;
    line-height: 1.8;
    max-width: 345px;
    margin-top: 24px;
  }

  .hero-actions {
    gap: 20px;
    margin-top: 28px;
  }

  .hero-actions .button {
    font-size: 12px;
    gap: 16px;
    padding-inline: 18px;
    min-height: 50px;
  }

  .hero-actions .text-link {
    font-size: 12px;
  }

  .hero-art {
    height: 330px;
    bottom: 28px;
    width: 155%;
    right: -21%;
  }

  .hero-shade {
    background: linear-gradient(180deg,#071321 0%,#071321 39%,rgba(7,19,33,.95) 53%,rgba(7,19,33,.03) 73%,transparent 83%,#071321 100%);
  }

  .hero-caption {
    bottom: 54px;
    font-size: 10px;
    max-width: 165px;
    gap: 4px 8px;
  }

  .caption-cross {
    font-size: 23px;
  }

  .hero-image-note {
    font-size: 8px;
    padding-left: 22px;
  }

  .hero-scroll {
    bottom: 6px;
    font-size: 7px;
    letter-spacing: .1em;
  }

  .hero-scroll .scroll-line {
    width: 20px;
  }

  .display-title,.approach-section .display-title {
    font-size: 33px;
  }

  .section-lead {
    font-size: 14px;
    line-height: 1.9;
  }

  .eyebrow {
    font-size: 9px;
    letter-spacing: .13em;
  }

  .featured-grid .card-art {
    height: 228px;
  }

  .featured-grid .card-heading h3 {
    font-size: 29px;
  }

  .featured-grid .card-content {
    padding-inline: 24px;
  }

  .featured-grid .card-top {
    padding-inline: 24px;
  }

  .footer-grid {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .footer-brand {
    grid-column: auto;
    gap: 24px;
  }

  .footer-brand p {
    font-size: 11px;
  }

  .footer-grid address {
    max-width: 330px;
  }

  .footer-grid .eyebrow {
    margin-bottom: 12px;
  }

  .footer-contact a {
    font-size: 14px;
  }

  .footer-bottom {
    gap: 8px 16px;
  }

  .footer-bottom .back-top {
    margin-left: 0;
  }

  .footer-bottom>a:first-of-type {
    margin-left: auto;
  }

  .footer-line {
    display: none;
  }

  .catalog-grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .catalog-grid .card-art {
    height: 230px;
  }

  .catalog-grid .card-top {
    padding: 24px 24px 0;
  }

  .catalog-grid .card-top .eyebrow {
    font-size: 8px;
    letter-spacing: .13em;
  }

  .catalog-grid .card-content {
    padding: 0 24px 24px;
  }

  .catalog-grid .card-heading h3 {
    font-size: 30px;
  }

  .catalog-grid .card-heading svg {
    width: 19px;
    height: 19px;
  }

  .catalog-grid .card-subtitle {
    font-size: 14px;
    min-height: unset;
  }

  .catalog-grid .card-description {
    display: block;
    font-size: 12px;
    min-height: unset;
  }

  .catalog-grid .card-status {
    font-size: 9px;
  }

  .filter-button {
    font-size: 10px;
    padding-inline: 11px;
    min-height: 44px;
  }

  .page-heading .display-title {
    font-size: 46px;
  }

  .product-info-grid {
    grid-template-columns: 1fr;
  }

  .product-name {
    font-size: clamp(32px,9vw,43px);
  }

  .product-tagline {
    font-size: 28px;
  }

  .product-actions {
    gap: 16px;
    align-items: flex-start;
    flex-direction: column;
  }

  .product-actions .button {
    width: 100%;
    justify-content: space-between;
  }

  .product-actions .text-link {
    font-size: 12px;
  }

  .product-visual img {
    aspect-ratio: 1.2;
  }

  .product-visual figcaption {
    font-size: 8px;
    padding: 14px 20px;
  }

  .product-bottom-nav {
    flex-wrap: wrap;
    gap: 4px 24px;
  }

  .product-story h2 {
    font-size: 31px;
  }

  .company-copy .display-title {
    font-size: 42px;
  }

  .competency-grid {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .competency h3 {
    font-size: 28px;
  }

  .competency .capability-top {
    margin-bottom: 22px;
  }

  .competency p {
    font-size: 14px;
  }

  .cycle-list {
    grid-template-columns: repeat(2,1fr);
  }

  .cycle-list h3 {
    font-size: 14px;
  }

  .contacts-layout .display-title {
    font-size: 42px;
  }

  .contact-details {
    column-gap: 24px;
  }

  .contact-detail a {
    font-size: 13px;
  }

  .contact-detail .large-contact {
    font-size: 26px;
  }

  .contact-detail address {
    font-size: 12px;
  }

  .form-grid {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .enquiry-body {
    padding: 24px;
  }

  .enquiry-heading {
    padding: 14px 20px;
  }

  .dialog-title {
    font-size: 30px;
  }

  .form-field label {
    font-size: 12px;
  }

  .consent-label {
    font-size: 11px;
  }

  .form-disclosure {
    font-size: 10px;
  }

  .enquiry-dialog {
    width: calc(100% - 16px);
    max-height: calc(100dvh - 16px);
  }

  .mobile-nav-link {
    font-size: 32px;
  }

  .mobile-menu nav {
    margin-top: 16px;
  }

  .mobile-menu-foot {
    margin-top: 32px;
  }
}

@media (max-width:359px) {
  :root {
    --gutter: 20px;
  }

  .hero-copy h1 {
    font-size: 39px;
  }

  .hero-actions {
    gap: 16px;
  }

  .hero-actions .button {
    padding-inline: 14px;
    gap: 12px;
  }

  .hero-actions .text-link {
    font-size: 11px;
  }

  .hero-copy .eyebrow {
    font-size: 7px;
  }

  .wordmark {
    font-size: 25px;
  }

  .page-heading .display-title {
    font-size: 42px;
  }

  .card-heading h3 {
    font-size: 26px;
  }

  .company-copy .display-title {
    font-size: 38px;
  }

  .contact-details {
    grid-template-columns: 1fr;
  }

  .contact-detail:nth-child(n) {
    grid-column: auto;
    grid-row: auto;
  }

  .contact-band h2 {
    font-size: 28px;
  }
}

@media (orientation:landscape) and (max-height:560px) and (min-width:600px) {
  .home-hero {
    height: auto;
    min-height: 720px;
  }

  .hero-layout {
    min-height: 720px;
    padding-top: 128px;
  }

  .hero-copy {
    width: 62%;
  }

  .hero-copy h1 {
    font-size: 46px;
  }

  .hero-intro {
    font-size: 14px;
  }

  .hero-art {
    height: 70%;
    width: 110%;
    right: -5%;
  }

  .hero-caption {
    bottom: 84px;
  }

  .hero-shade {
    background: linear-gradient(90deg,#071321e8,#071321aa 34%,transparent 66%),linear-gradient(180deg,#071321,transparent 65%,#071321);
  }

  .mobile-menu {
    overflow-y: auto;
  }

  .mobile-menu nav {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 32px;
    margin-top: 8px;
  }

  .mobile-nav-link {
    font-size: 26px;
    padding: 12px 0;
  }

  .mobile-menu-foot {
    margin-top: 24px;
  }

  .enquiry-dialog {
    max-height: calc(100dvh - 16px);
  }
}

@media (prefers-reduced-motion:reduce) {
  html {
    scroll-behavior: auto;
  }

  *,*::before,*::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }

  .hero-art {
    opacity: 1;
    filter: none;
  }
}

@media print {
  body {
    background: white;
    color: #222;
    font-size: 11pt;
  }

  body:has(dialog[open]) {
    overflow: auto;
  }

  .site-header,.site-footer,.hero-actions,.hero-scroll,.hero-caption,.contact-band,.product-actions,.product-contact,.product-bottom-nav,.skip-link,dialog,.card-hit,.breadcrumbs {
    display: none !important;
  }

  .inner-page {
    padding-top: 0;
    background: white;
  }

  .container {
    width: 100%;
    max-width: none;
  }

  .product-hero {
    gap: 24pt;
    padding-bottom: 24pt;
  }

  .product-name {
    color: #111;
    font-size: 28pt;
  }

  .product-tagline,.eyebrow,h1,h2,h3,.accent,.product-status {
    color: #333 !important;
  }

  .product-visual img {
    mix-blend-mode: normal;
  }

  .product-visual,.info-panel,.integration-details,.product-details {
    border-color: #bbb;
  }

  .product-story {
    padding-block: 24pt;
    gap: 24pt;
  }

  .product-story p,.plain-list li,.product-intro,.integration-details p {
    font-size: 11pt;
    color: #333;
  }

  .info-panel {
    padding: 20pt;
    background: white;
    break-inside: avoid;
  }

  .product-story h2,.info-panel h2 {
    font-size: 20pt;
  }

  .integration-details {
    break-inside: avoid;
  }

  .integration-details>div {
    display: block !important;
  }
}

.site-header {
  position: fixed;
  transition: background .25s,border-color .25s;
  border-bottom: 1px solid transparent;
}

.site-header.is-scrolled {
  background: rgba(7,19,33,.94);
  border-bottom-color: var(--line);
  backdrop-filter: blur(14px);
}

@media print {
  .site-header {
    position: static;
  }
}

/* Art direction: preserve the complete right-facing machine on desktop. */

.hero-art {
  left: auto;
  right: 0;
}

.hero-art img {
  object-fit: contain;
  object-position: right bottom;
}

.card-art img,.product-visual img {
  mix-blend-mode: normal;
}

@media (max-width:959px) and (min-width:760px) {
  .home-hero {
    overflow: clip;
  }

  .hero-art {
    width: 112%;
    right: -2%;
  }
}

@media (max-width:479px) {
  .hero-art {
    left: auto;
    width: 138%;
    right: -4%;
  }
}

/* Match the artwork's actual aspect ratio: a soft, continuous factory atmosphere. */

.hero-art {
  height: auto;
  aspect-ratio: 1908 / 824;
  mask-image: linear-gradient(180deg,transparent 0%,rgba(0,0,0,.6) 12%,#000 29%,#000 89%,transparent 100%);
}

.hero-art img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

@media (max-width:759px) {
  .hero-art {
    bottom: 42px;
  }

  .hero-caption {
    bottom: 24px;
  }

  .hero-scroll {
    bottom: 5px;
  }
}

@media (max-width:479px) {
  .hero-art {
    bottom: 45px;
    mask-image: linear-gradient(180deg,transparent 0%,rgba(0,0,0,.7) 14%,#000 30%,#000 88%,transparent 100%);
  }

  .hero-caption {
    bottom: 26px;
  }

  .hero-scroll {
    bottom: 6px;
  }
}

@media (orientation:landscape) and (max-height:560px) and (min-width:600px) {
  .hero-art {
    height: auto;
    bottom: 18px;
  }

  .hero-caption {
    bottom: 50px;
  }
}

/* Release 2: supplied product renders, consistent framing and readable catalogue. */
.catalog-grid .card-art,
.featured-grid .card-art {
  height: auto;
  aspect-ratio: 16 / 10;
  padding: 0;
  margin: 20px 12px 24px;
  overflow: hidden;
  background: #0a1928;
}
.card-art::before { display: none; }
.card-art img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  opacity: 1;
  mix-blend-mode: normal;
}
.product-card:hover .card-art img { transform: none; }
.catalog-grid .card-top,
.featured-grid .card-top { padding: 24px 24px 0; }
.catalog-grid .card-top .eyebrow,
.featured-grid .card-top .eyebrow { display: block; font-size: 10px; letter-spacing: .08em; }
.catalog-grid .card-content,
.featured-grid .card-content { padding: 0 24px 24px; }
.catalog-grid .card-heading h3,
.featured-grid .card-heading h3 { font-size: clamp(25px,2.1vw,32px); }
.catalog-grid .card-subtitle,
.featured-grid .card-subtitle { font-size: 15px; min-height: 0; }
.catalog-grid .card-description,
.featured-grid .card-description { display: block; font-size: 14px; line-height: 1.65; min-height: 0; }
.catalog-grid .card-status,
.featured-grid .card-status { font-size: 10px; }
.product-visual { background: #0a1928; }
.product-visual::before,.product-visual::after { display: none; }
.product-visual img {
  aspect-ratio: 16 / 10;
  object-fit: contain;
  padding: 0;
  width: 100%;
  max-height: none;
  mix-blend-mode: normal;
}
.product-visual figcaption { font-size: 11px; letter-spacing: .035em; padding: 14px 20px; }
.hero-copy .eyebrow { font-size: 10px; letter-spacing: .13em; }
.form-field label,.consent-label { font-size: 14px; }
.form-disclosure { font-size: 13px; }
.form-field input,.form-field select,.form-field textarea { font-size: 16px; }
@media (max-width:1099px) and (min-width:700px) {
  .catalog-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width:959px) and (min-width:700px) {
  .featured-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .featured-grid .featured-card:last-child { grid-column: 1 / -1; max-width: 520px; justify-self: center; }
}
@media (max-width:699px) {
  .catalog-grid,.featured-grid { grid-template-columns: 1fr; }
  .catalog-grid .card-heading h3,.featured-grid .card-heading h3 { font-size: 30px; }
  .product-visual img { aspect-ratio: 4 / 3; }
  .hero-copy .eyebrow { font-size: 10px; max-width: 30ch; }
}
@media print {
  .product-visual img { aspect-ratio: auto; max-height: 270px; }
  .product-visual figcaption { color: #344454; }
}
