/* DataStack V4.7 — constrained corrections to V4.6 visual feedback.
   Exact user-supplied 1672×941 PNG. All other functions/pages stay intact. */

/* The hero begins exactly at the header border. Its image is pinned to the
   stage's TOP rather than bottom: no uncovered full-width white strip. */
.v4-home main#main,
.v4-home .static-hero {
  margin-top:0;
  padding-top:0;
}
.v4-home .static-hero .video-hero-stage {
  position:relative;
  margin:0;
  padding:0;
  min-height:clamp(590px,42vw,650px);
  overflow:hidden;
}
.v4-home .static-hero .video-hero-content {
  padding-top:clamp(32px,4vw,56px);
  padding-bottom:28px;
}
.v4-home .static-hero .video-hero-visual {
  position:absolute;
  top:0;
  right:0;
  bottom:0;
  left:auto;
  transform:none;
  width:min(1150px,78vw);
  height:100%;
  aspect-ratio:auto;
  margin:0;
  border:0;
  background-color:#eaf3ff;
  background-image:none;
  /* Blend the image's light left edge into the white typography area. */
  -webkit-mask-image:linear-gradient(to right, transparent 0%, #000 26%);
  mask-image:linear-gradient(to right, transparent 0%, #000 26%);
}
.v4-home .static-hero .video-hero-visual .static-hero-image {
  display:block;
  width:100%;
  height:100%;
  aspect-ratio:auto;
  object-fit:cover;
  object-position:center center;
  opacity:1;
}
.v4-home .static-hero .video-hero-stats {
  margin:0;
}
/* Colour semantics: hover and keyboard-focus should use the actual brand blue. */
.v4-home .video-hero-actions a.video-hero-primary:hover,
.v4-home .video-hero-actions a.video-hero-primary:focus-visible {
  background-color:#0000ff;
  border-color:#0000ff;
  color:#fff;
}

/* Link treatment: no decorative underline at rest OR on hover.
   Focus remains a visible outline; the active navigation indicator and real
   component borders are deliberately left intact. Do not touch button borders. */
a.v4-inline-link,
a.inline-link,
a.inline-link:hover,
a.text-link,
a.text-link:hover,
a.contact-link,
a.contact-link:hover,
a.v4-inline-link:hover,
a.v4-inline-link:focus-visible,
a.ds-link-arrow:not(.button),
a.ds-link-arrow:not(.button):hover,
a.ds-link-arrow:not(.button):focus-visible,
a.ds-link-external:not(.button):not(.v42-project-cta),
a.ds-link-external:not(.button):not(.v42-project-cta):hover,
a.ds-link-external:not(.button):not(.v42-project-cta):focus-visible,
.v4-feature-deeplinks a,
.v4-feature-deeplinks a:hover,
.v4-publications-note a,
.v4-publications-note a:hover,
.feature-heading-line > a,
.feature-heading-line > a:hover,
.v4-frame-loading a,
.v4-frame-loading a:hover,
.site-footer .footer-inner>div a,
.site-footer .footer-inner>div a:hover {
  text-decoration:none;
  text-decoration-line:none;
  border-bottom:0;
  box-shadow:none;
}
/* Override the legacy underline created with pseudo-elements only on text CTAs,
   not on arrow glyphs, active navigation, or other component affordances. */
a.v4-inline-link::before,
.v4-feature-deeplinks a::before,
.v4-publications-note a::before { border-bottom:0; }

@media (max-width:790px) {
  .v4-home .static-hero .video-hero-stage { min-height:580px; }
  .v4-home .static-hero .video-hero-content { padding-top:34px; }
  .v4-home .static-hero .video-hero-visual { width:81vw; }
}
@media (max-width:640px) {
  /* Mobile is content-first and the image follows text by design; neither
     element has a separate section-level gutter beneath the navigation. */
  .v4-home .static-hero .video-hero-stage {
    display:flex;
    flex-direction:column;
    height:auto;
    min-height:0;
    padding:0;
    overflow:visible;
  }
  .v4-home .static-hero .video-hero-content {
    padding-top:24px;
    padding-bottom:0;
  }
  .v4-home .static-hero .video-hero-visual {
    position:relative;
    top:auto;
    bottom:auto;
    left:auto;
    right:auto;
    width:calc(100% - 32px);
    height:auto;
    aspect-ratio:1672/941;
    margin:22px auto 0;
    border:0;
    -webkit-mask-image:none;
    mask-image:none;
  }
  .v4-home .static-hero .video-hero-visual .static-hero-image {
    width:100%;
    height:auto;
    aspect-ratio:1672/941;
    object-fit:contain;
  }
}
