/* Content-first responsive corrections shared by both editions. */
:root { --gutter: clamp(20px, 5.416667vw, 104px); }
main, section, article, header, footer, nav, .split-heading > *,
.expertise-row > *, .expertise-bottom > *, .europe > *,
.footer-intro > *, .footer-columns > * { min-width: 0; }
h1, h2, h3, p, a, li, button, .eyebrow { overflow-wrap: anywhere; }
h1, h2, h3 { text-wrap: balance; }
.eyebrow, .header nav, .text-link, .button { line-height: 1.3; }
.text-link, .button { max-width: 100%; gap: 5px; }
.text-link { text-align: left; }
.text-link .arrow, .button .arrow { flex-shrink: 0; }
.button { flex-wrap: nowrap; height: auto; white-space: normal; }
.contact-actions { flex-wrap: wrap; }
.header > a { display: block; flex-shrink: 0; }
.header nav { align-items: flex-start; }
.nav-primary, .nav-secondary { align-items: center; }
.hero { display: grid; grid-template-rows: auto minmax(80px, 1fr) auto;
  height: auto; min-height: calc(1102 * var(--u)); }
.header { position: relative; inset: auto; grid-row: 1; }
.hero-media { position: absolute; inset: 0; pointer-events: none; }
.hero-copy { position: relative; inset: auto; grid-row: 3;
  width: min(59.1667%, 1136px); margin: 0 0 calc(178 * var(--u)) 5.416667%; }
.hero-copy h1 { line-height: 1.06; }
.hero-copy h1 span { text-wrap: initial; }
.logo-slot { --logo-size: clamp(174px, 18.125vw, 348px);
  width: var(--logo-size); height: auto; aspect-ratio: 348 / 96; }
.logo-art { width: 100%; height: 100%; transform: none !important; }
.logo-art .logo-symbol { width: 27.6375%; height: auto; left: 0; top: 0; }
.logo-art .logo-word { width: 58.8118%; height: auto; left: 39.7787%; top: 10.6042%; }
.logo-art .logo-sub { width: 47.7397%; height: auto; left: 39.7816%; top: 62.4063%; }
.footer-logo { width: clamp(177px, 14.166667vw, 272px); max-width: 100%;
  height: auto; aspect-ratio: 272 / 74; }
.footer-logo .logo-art { width: 100%; height: 100%; }
.footer-logo .logo-symbol { width: 28.0327%; }
.footer-logo .logo-word { width: 59.6526%; left: 40.35%; top: 10.6081%; }
.footer-logo .logo-sub { width: 48.4221%; left: 40.35%; top: 62.4189%; }
.split-heading { grid-template-columns: minmax(0, 848fr) minmax(0, 561fr); }
.expertise-row { grid-template-columns: minmax(0, 416fr) minmax(0, 1280fr); }
.expertise-bottom { grid-template-columns: minmax(0, 703fr) minmax(0, 521fr) 44px; }
.expertise-art { max-width: 100%; }
.expertise-bottom h3 { line-height: 1.12; }
.arrow-link { width: 44px; height: 44px; margin-top: -8px; }
.expertise-details { padding-bottom: max(24px, calc(32 * var(--u))); }
.industry-viewport { padding: 3px 0 6px; scroll-behavior: auto;
  overscroll-behavior-x: contain; scroll-snap-type: x proximity; }
.industry-viewport:focus-visible { outline: 2px solid var(--blue); outline-offset: -2px; }
.industry-track { align-items: stretch; }
.industry-card { height: auto; min-height: calc(1009 * var(--u));
  display: grid; grid-template-rows: auto minmax(140px, 1fr) auto; }
.industry-top { grid-row: 1; }
.industry-bottom { grid-row: 3; }
.industry-top h3 { line-height: 1.1; }
.tags li { max-width: 100%; line-height: 1.25; }
.industry-controls { display: flex; justify-content: flex-end; gap: 10px;
  padding: 14px var(--gutter) 0 0; }
.industry-controls button { width: 44px; height: 44px; display: grid; place-items: center;
  background: transparent; border: 1px solid #879299; border-radius: 50%; color: #000407; }
.industry-controls button img { width: 18px; height: 18px; transform: rotate(45deg); }
.industry-controls button:first-child img { transform: rotate(225deg); }
.industry-controls button:disabled { opacity: .28; cursor: default; }
.europe { grid-template-columns: minmax(0, 848fr) minmax(0, 704fr); }
.europe-image { height: auto; min-height: 0; aspect-ratio: 704 / 639; align-self: start; }
.europe-image img { object-fit: cover; }
.contact-panel { clip-path: none !important; transition: none; }
.contact-content { position: relative; z-index: 1; }
.funding { flex-wrap: wrap; justify-content: center; padding-inline: clamp(18px, 8vw, 154px);
  column-gap: clamp(24px, 4vw, 76px); row-gap: 24px; }
.funding-logo { flex-shrink: 0; }
.footer-intro { grid-template-columns: minmax(177px, 272fr) minmax(0, 775fr) minmax(0, 560fr);
  gap: clamp(24px, 5vw, 96px); }
.footer-columns { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.footer-columns ul, .footer-contact { line-height: 1.35; }
/* Pinning is enabled by measurement, never by animation preference alone. */
.motion .hero-runway { height: auto; }
.motion .hero { position: relative; }
.motion .hero-runway.hero-pinned .hero { position: sticky; top: 0; }
.motion .industry-pin { position: relative; top: auto; }
.motion .industry-runway.scroll-pinned .industry-pin { position: sticky; top: 24px; }
.motion .industry-runway:not(.scroll-pinned) .industry-viewport { scroll-snap-type: x proximity; }
.motion .reveal.pending { translate: 0 35px; filter: none; }
@media (max-width: 1100px) {
  .header { display: grid; grid-template-columns: minmax(0, 1fr) auto;
    align-items: center; gap: 20px; padding: 24px var(--gutter); }
  .header .logo-slot { width: clamp(174px, 23vw, 230px); height: auto; }
  .menu-toggle { display: grid; place-items: center; width: 44px; height: 44px;
    padding: 0; border: 1px solid #879299; background: #000407; font-size: 20px; }
  .header nav { display: none; position: static; inset: auto; grid-column: 1 / -1;
    width: 100%; background: #000407; border: 1px solid #30434e;
    padding: 24px; font-size: 15px; gap: 24px; flex-direction: column; }
  .header nav.is-open { display: flex; }
  .nav-primary { flex-direction: column; align-items: stretch; width: 100%; gap: 4px; }
  .nav-primary a { display: flex; align-items: center; min-height: 44px; }
  .nav-secondary { gap: 28px; padding: 0; min-height: 44px; flex-wrap: wrap; }
  .nav-secondary a { display: inline-flex; align-items: center; min-height: 44px; }
  .hero { min-height: max(560px, calc(1102 * var(--u))); }
  .hero-copy { width: 78%; margin-bottom: 64px; }
  .hero-copy h1 { font-size: clamp(46px, 6.25vw, 70px); }
  .hero-copy p { font-size: 16px; max-width: 600px; line-height: 1.5; }
  .expertise-bottom { grid-template-columns: minmax(0, 1fr) 44px; gap: 20px 10px; }
  .expertise-bottom h3 { grid-column: 1; grid-row: 1; }
  .expertise-bottom p { grid-column: 1 / -1; grid-row: 2; max-width: 62ch; }
  .expertise-bottom .arrow-link { grid-column: 2; grid-row: 1; }
  .expertise-details { gap: 28px; }
  .industry-card { width: min(68vw, 620px); min-height: 640px; }
  .industry-top, .industry-bottom { padding: 28px; }
  .industry-bottom > p { max-width: 38ch; }
  .footer-intro { grid-template-columns: minmax(177px, .8fr) minmax(0, 1.7fr); gap: 32px; }
  .footer-intro > div:last-child { grid-column: 2; }
  .footer-columns { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px 24px; }
}
@media (max-width: 760px) {
  .split-heading { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .europe { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .europe-content { min-height: 0; gap: 30px; }
  .europe-image { max-width: 600px; width: 100%; }
  .hero-copy { width: calc(100% - 2 * var(--gutter)); margin-left: var(--gutter); }
  .hero-media { inset: 50px -30% 70px -12%; }
  .plane-circuit { height: 85%; width: 120%; left: -5%; top: 5%; }
  .plane-mid { width: 110%; height: 75%; left: 0; top: 10%; }
  .plane-chip { width: 100%; height: 68%; left: 8%; top: 8%; }
  .hero-plane img { object-fit: contain; }
  .hero { grid-template-rows: auto minmax(260px, 1fr) auto; min-height: 700px; }
  .hero-copy { margin-bottom: 64px; }
  .hero-copy h1 { font-size: clamp(38px, 8.7vw, 62px); }
  .industry-card { width: min(82vw, 520px); min-height: 580px; }
  .industry-top, .industry-bottom { padding: 24px; }
  .footer-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .footer-columns > div:last-child { grid-column: 1 / -1; }
  .footer-intro { grid-template-columns: minmax(0, 1fr); }
  .footer-intro > div:last-child { grid-column: 1; }
  .footer-logo { width: 195px; height: auto; }
  .contact-content h2 { font-size: clamp(30px, 5vw, 40px); line-height: 1.12; }
  .funding { display: flex; padding: 24px 20px; gap: 24px 32px; }
  .industry-controls { padding-right: var(--gutter); }
}
@media (max-width: 520px) {
  .header { padding: 20px; }
  .hero-copy { margin-left: 20px; width: calc(100% - 40px); }
  .hero-copy h1 { font-size: clamp(34px, 9vw, 46px); }
  .hero-copy p { max-width: 100%; }
  .expertise-row { grid-template-columns: minmax(0, 1fr); gap: 14px; min-height: 0; }
  .expertise-art { width: min(200px, 65%); margin: 0; justify-self: center; }
  .expertise-details { padding: 8px 0 32px; gap: 20px; }
  .expertise-bottom h3 { font-size: clamp(26px, 6.5vw, 32px); }
  .expertise-list { gap: 40px; }
  .expertise-bottom p { font-size: 15px; }
  .industry-card { min-height: 570px; grid-template-rows: auto minmax(160px, 1fr) auto; }
  .industry-top, .industry-bottom { padding: 20px; }
  .industry-top h3 { font-size: clamp(25px, 6.5vw, 30px); }
  .tags { gap: 6px; }
  .contact-panel { padding: 48px 20px; }
  .contact-actions .button { min-width: 0; width: 100%; }
  .footer-intro > div > a { overflow-wrap: anywhere; }
  .footer-columns { gap: 36px 20px; }
}
@media (max-width: 350px) {
  .header nav { padding: 16px; }
  .footer-columns { grid-template-columns: minmax(0, 1fr); }
  .funding { padding: 20px 12px; gap: 24px; }
}
@media (hover: none), (pointer: coarse) {
  .motion .button:hover { transform: none; box-shadow: none; }
  .motion .expertise-row:hover .expertise-art { filter: none; }
}
@media (prefers-reduced-motion: reduce) {
  .motion .hero-runway.hero-pinned .hero,
  .motion .industry-runway.scroll-pinned .industry-pin { position: relative; top: auto; }
}
/* Intrinsic logo dimensions shrink with the available header column at high zoom. */
.header > a, .header .logo-slot { min-width: 0; max-width: 100%; }
@media (max-height: 540px) and (max-width: 1100px) {
  .hero { min-height: 560px; }
  .hero-copy { margin-bottom: 40px; }
}
/* Expressive motion restored without changing the responsive geometry. */
.motion .hero-media {
  translate: var(--pointer-x, 0px) var(--pointer-y, 0px);
  transition: translate .7s var(--ease);
}
.motion .hero-copy h1 span { animation-duration: 1.4s; }
.motion .hero-copy h1 span:nth-child(2) { animation-delay: .24s; }
.motion .plane-chip img { animation-duration: 2.1s; }
.motion .reveal { transition: opacity 1s var(--ease), translate 1.25s var(--ease); }
.motion .reveal.pending { translate: 0 65px; filter: none; }
.motion .section-heading .split-heading > *,
.motion .expertise-details > *,
.motion .contact-content > * {
  transition: opacity 1s var(--ease), translate 1.2s var(--ease);
}
.motion .section-heading.pending .split-heading > *,
.motion .expertise-row.pending .expertise-details > *,
.motion .contact-content.pending > * { opacity: 0; translate: 0 28px; }
.motion .section-heading .heading-side { transition-delay: .16s; }
.motion .expertise-details .expertise-bottom { transition-delay: .14s; }
.motion .contact-content h2 { transition-delay: .1s; }
.motion .contact-description { transition-delay: .2s; }
.motion .contact-actions { transition-delay: .3s; }
.motion .expertise-art { transition: filter .6s; }
.motion .expertise-details:after { transform: scaleX(1); }
.motion .expertise-row.pending .expertise-details:after { transform: scaleX(0); }
.motion .industry-image img { will-change: transform; }
.motion .contact-panel:before {
  content: ''; position: absolute; inset: -20%; pointer-events: none;
  background: linear-gradient(110deg, transparent 25%, #ffffff35 45%, transparent 65%);
  transform: translateX(var(--contact-glow, -70%));
}
.motion .arrow-link img { transition: transform .4s var(--ease); }
.motion .arrow-link:hover img { transform: translate(4px,-4px); }
@media(max-width:760px) {
  .motion .reveal.pending { translate: 0 42px; }
  .motion .section-heading.pending .split-heading > *,
  .motion .expertise-row.pending .expertise-details > *,
  .motion .contact-content.pending > * { translate: 0 18px; }
}
@media(prefers-reduced-motion:reduce) {
  .hero-media { translate: none !important; }
  .motion .reveal.pending,
  .motion .section-heading.pending .split-heading > *,
  .motion .expertise-row.pending .expertise-details > *,
  .motion .contact-content.pending > * { opacity:1; translate:none; }
  .motion .contact-panel:before { display:none; }
}

/* Restore the original Solutions scroll scene and contact-panel opening. */
.motion .contact-panel { background: transparent; isolation: isolate; }
.motion .contact-panel:after {
  content: ''; position: absolute; inset: 0; z-index: -1;
  background: var(--blue); border-radius: 8px; pointer-events: none;
  transform: scaleX(var(--contact-opening, 1));
  transform-origin: center; will-change: transform;
}
.motion .contact-panel:before { display: none; }
@media(prefers-reduced-motion:reduce) {
  .motion .contact-panel { background: var(--blue); }
  .motion .contact-panel:after { display: none; }
}

/* Scroll-driven Solutions: fit the scene before enabling its sticky passage. */
.motion .industry-card {
  min-height: min(calc(1009 * var(--u)), 72svh);
  grid-template-rows: auto minmax(clamp(80px, 14svh, 180px), 1fr) auto;
}
.industry-controls { align-items: center; }
.industry-controls progress {
  flex: 1; min-width: 40px; width: 0; max-width: 240px; height: 2px;
  margin-right: auto; border: 0; appearance: none;
  background: #dce4ea; color: #3e8db6; overflow: hidden;
}
.industry-controls progress::-webkit-progress-bar { background: #dce4ea; }
.industry-controls progress::-webkit-progress-value { background: #3e8db6; }
.industry-controls progress::-moz-progress-bar { background: #3e8db6; }
.motion .industry-controls button { transition: background .25s, border-color .25s; }
.motion .industry-controls button:not(:disabled):hover { background: #dfeef7; border-color: #3e8db6; }
@media(prefers-reduced-motion:reduce) {
  .motion .industry-image img { transform: none !important; }
}
