@font-face {
  font-family: "myriad_proregular";
  src: url("fonts/myriad_pro_regular-webfont.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: "myriad_prosemicondensed";
  src: url("fonts/myriad_pro_semicondensed-webfont.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

:root {
  color-scheme: light;
  --ink: #152235;
  --muted: #5e6d7f;
  --line: #d8e1eb;
  --soft: #f3f7fb;
  --blue: #0a74b9;
  --blue-deep: #075486;
  --navy: #071421;
  --gold: #f0b429;
  --shadow: 0 18px 54px rgba(8, 20, 33, 0.14);
  font-family: "Inter", "Segoe UI", Roboto, Arial, sans-serif;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  background: #eaf0f6;
  color: var(--ink);
  font-size: 16px;
  line-height: 1.5;
  overflow-x: hidden;
}

img {
  display: block;
  max-width: 100%;
}

a {
  color: inherit;
  text-decoration: none;
}

.header-wrapper {
  position: sticky;
  top: 0;
  z-index: 30;
  margin-top: 0;
  padding: 12px 0;
  background: #ffffff;
}

.container-fluid {
  width: 100%;
  padding-left: 40px;
  padding-right: 40px;
}

.flex-center {
  display: flex;
  align-items: center;
}

.justify-content-between {
  justify-content: space-between;
}

.header-wrapper .flex-center {
  gap: normal;
  min-width: 0;
}

.logo {
  width: 250px;
  flex: 0 0 250px;
}

.logo img {
  display: inline;
  width: 100%;
  height: auto;
}

.header-right {
  display: block;
  min-width: 0;
  flex: 0 0 auto;
}

.headerRightInfo {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  margin: 0;
  padding: 0;
  line-height: normal;
  list-style: none;
  width: auto;
}

.headerRightInfo li {
  margin-bottom: -8px;
}

.headerRightInfo li + li {
  margin-left: 26px;
}

.headerRightInfo a {
  display: inline-grid;
  place-items: center;
  color: #000000;
  font-size: 22px;
  line-height: normal;
}

.headerRightInfo .search a,
.headerRightInfo .email a {
  width: 22px;
  height: 22px;
}

.headerRightInfo .search span {
  position: relative;
  display: block;
  width: 19px;
  height: 19px;
  border: 3px solid #000000;
  border-radius: 50%;
}

.headerRightInfo .search span::after {
  content: "";
  position: absolute;
  width: 10px;
  height: 3px;
  right: -8px;
  bottom: -4px;
  background: #000000;
  transform: rotate(45deg);
  transform-origin: left center;
}

.headerRightInfo .email span {
  position: relative;
  display: block;
  width: 24px;
  height: 17px;
  border: 2px solid #000000;
  border-radius: 1px;
}

.headerRightInfo .email span::before,
.headerRightInfo .email span::after {
  content: "";
  position: absolute;
  top: 2px;
  width: 15px;
  height: 2px;
  background: #000000;
}

.headerRightInfo .email span::before {
  left: 1px;
  transform: rotate(32deg);
  transform-origin: left center;
}

.headerRightInfo .email span::after {
  right: 1px;
  transform: rotate(-32deg);
  transform-origin: right center;
}

.header-right_menu {
  position: relative;
  top: 10px;
  min-width: 0;
}

.main-menu > ul {
  display: block;
  margin: 0;
  padding: 0;
  list-style: none;
}

.main-menu > ul > li {
  display: inline-flex;
  margin-right: 50px;
}

.main-menu > ul > li:last-child {
  margin-right: 0;
}

.main-menu > ul > li > a {
  display: inline-block;
  padding-bottom: 10px;
  color: #000000;
  font-size: 16px;
  font-weight: 500;
  line-height: normal;
  text-transform: capitalize;
}

.main-menu > ul > li > a:hover,
.headerRightInfo a:hover {
  color: var(--blue);
}

.themeBtn.requestBtn,
.contact-strip a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 41px;
  padding: 10px 30px;
  color: #fff;
  background: #2e2564;
  border-radius: 0;
  font-weight: 900;
  line-height: normal;
  text-align: center;
  white-space: nowrap;
}

.themeBtn.requestBtn:hover,
.contact-strip a:hover {
  background: #ff8a26;
}

.header-right_actions {
  display: none;
}

.hamburger_button {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  width: 40px;
  height: 20px;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}

.hamburger_button span {
  display: block;
  width: 40px;
  height: 2px;
  background: #000000;
}

.mobile-panel {
  display: none;
}


@media only screen and (min-width: 1200px) and (max-width: 1549px) {
  .main-menu > ul > li {
    margin-right: 30px;
  }
}

@media only screen and (min-width: 992px) and (max-width: 1199px) {
  .main-menu > ul > li {
    margin-right: 25px;
  }
}

@media (max-width: 1100px) {
  .overview-grid {
    grid-template-columns: 1fr;
  }

  .preview-carousel {
    height: 245px;
  }

  .video-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 991.98px) {
  .header-wrapper {
    position: sticky;
  }

  .header-right {
    display: flex;
    justify-content: flex-end;
    margin-top: 11px;
  }

  .header-right_menu {
    display: none;
  }

  .requestDemo {
    display: none;
  }

  .header-right_actions {
    display: flex;
    margin-left: 40px;
  }

  .mobile-panel {
    position: absolute;
    top: 100%;
    right: 15px;
    z-index: 40;
    display: block;
    width: min(86vw, 380px);
    padding: 22px 24px;
    background: #ffffff;
    box-shadow: 0 18px 42px rgba(8, 20, 33, 0.2);
  }

  .mobile-panel[hidden] {
    display: none;
  }

  .mobile-menu {
    margin: 0 0 16px;
    padding: 0;
    list-style: none;
  }

  .mobile-menu a {
    display: block;
    padding: 12px 0;
    color: #000000;
    font-size: 18px;
    line-height: 1.25;
  }

  .mobile-request {
    width: 100%;
  }
}

@media (min-width: 768px) and (max-width: 991.98px) {
  .header-wrapper {
    margin-top: 20px;
  }
}

@media (max-width: 780px) {
  .hero-banner {
    min-height: 190px;
  }

  .slide-section {
    padding-inline: 10px;
  }

  .slide-frame {
    padding: 18px 12px;
  }

  .overview-grid,
  .physics-grid,
  .video-grid {
    grid-template-columns: 1fr;
  }

  .preview-carousel {
    height: 430px;
  }

  .pair-grid {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .pair-item figcaption {
    font-size: 0.82rem;
  }

  .site-footer {
    grid-template-columns: 1fr;
  }

}

@media (max-width: 767.98px) {
  .container-fluid {
    padding-left: 15px;
    padding-right: 15px;
  }

  .logo {
    width: 170px;
    flex-basis: 170px;
  }

  .header-right_actions {
    margin-top: 4px;
    margin-left: 7px;
  }
}

@media (max-width: 420px) {
  .hero-banner {
    min-height: 170px;
  }
}

body { background:#f3f7fb; overflow-x:visible; }
html { scroll-padding-top:110px; }
:focus-visible { outline:3px solid #0a74b9; outline-offset:4px; }
.screen-reader-text,.marine-skip { position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%); }
.marine-skip:focus { position:fixed;left:16px;top:16px;width:auto;height:auto;clip-path:none;background:white;padding:12px;z-index:100; }
.marine-main { font-family:'myriad_proregular','Segoe UI',Arial,sans-serif; font-size:clamp(17px,1.1vw,20px);line-height:1.65; }
.marine-main h1,.marine-main h2,.marine-main h3 { font-family:'myriad_prosemicondensed','Segoe UI',Arial,sans-serif;line-height:1.2; }
.marine-main h1 { margin:0 0 24px;color:#111;font-size:clamp(26px,2.3vw,42px);text-align:center;font-weight:600; }
.marine-main h2 { color:#213d62;font-size:clamp(28px,2.5vw,42px);margin:0 0 26px; }
.marine-main h3 { font-size:clamp(22px,1.7vw,28px);color:#213d62;margin:0 0 18px; }
.marine-main p { margin:0 0 22px; }
.marine-banner { position:relative; background:#213d62; }
.marine-banner video { display:block;width:100%;height:auto;aspect-ratio:2160/356;object-fit:contain; }
.marine-video-toggle { position:absolute;right:12px;bottom:10px;background:#071421e8;color:white;border:1px solid #ffffff80;border-radius:4px;padding:8px 12px;font:14px Arial,sans-serif;cursor:pointer; }
.marine-container { max-width:1800px;margin-inline:auto;padding-inline:clamp(20px,4vw,76px); }
.marine-section { padding-block:clamp(40px,4vw,72px);scroll-margin-top:8px; }
.marine-section--white,.marine-overview { background:white; }
.marine-lead { max-width:1300px;margin:0 auto 34px!important;text-align:center;font-size:clamp(19px,1.35vw,23px); }
.marine-grid { display:grid;gap:clamp(20px,2vw,34px); }
.marine-grid>* { min-width:0; }
.marine-grid--two { grid-template-columns:repeat(2,minmax(0,1fr)); }
.marine-grid--three { grid-template-columns:repeat(3,minmax(0,1fr)); }
.marine-card { padding:clamp(22px,2.2vw,36px);background:#fff;border:1px solid #d8e1eb;border-radius:12px;box-shadow:0 14px 40px #08142114; }
.marine-card p:last-child { margin-bottom:0; }
.marine-card ul { padding-left:23px;margin:0; }
.marine-card li { padding-block:3px; }
.marine-overview .marine-card { border-top:4px solid #0a74b9; }
.marine-jump { display:flex;justify-content:center;flex-wrap:wrap;gap:6px 14px;background:#213d62;padding:15px 20px; }
.marine-jump a { color:white;padding:7px 12px;line-height:1.2; }
.marine-jump a:hover { background:#ffffff20; }
.marine-list-card { padding:0 0 24px;overflow:hidden; }
.marine-list-card h3 { padding:18px 26px;background:#213d62;color:white; }
.marine-list-card ul { padding-inline:48px 26px; }
.marine-gallery { margin-top:34px; }
.marine-figure { margin:0;background:white;border:1px solid #d8e1eb;border-radius:10px;overflow:hidden;box-shadow:0 12px 32px #08142112; }
.marine-figure img { width:100%;height:auto;aspect-ratio:16/10;object-fit:contain;padding:12px;background:white; }
.marine-figure video { display:block;width:100%;height:auto;aspect-ratio:16/10;object-fit:contain;padding:12px;background:white; }
.marine-figure figcaption { padding:14px 20px;background:#f3f7fb;color:#213d62;font-size:18px;font-weight:600; }
.marine-design-card { display:flex;flex-direction:column; }
.marine-design-card ul { margin-bottom:24px; }
.marine-design-images { margin-top:auto;display:grid;gap:18px; }
.marine-design-images img { width:100%;height:auto;aspect-ratio:16/10;object-fit:contain;background:#f3f7fb; }
.marine-testimonials { display:grid;gap:26px; }
.marine-quote { border-left:4px solid #0a74b9; }
.marine-quote blockquote { margin:0;font-size:clamp(17px,1.05vw,19px); }
.marine-resource { padding:0 0 22px;overflow:hidden;display:block;transition:transform .2s; }
.marine-resource:hover { transform:translateY(-4px); }
.marine-resource img { width:100%;height:auto;aspect-ratio:16/9;object-fit:contain;background:#071421; }
.marine-resource-title { display:block;padding:22px 22px 8px;font-size:24px;color:#213d62;font-weight:600; }
.marine-resource-link { color:#075486;padding-inline:22px;font-size:17px;text-decoration:underline; }
.marine-contact { background:#e3e7ed;border-radius:12px;padding:clamp(24px,3vw,48px);margin-top:44px; }
.marine-eyebrow { font-size:16px;letter-spacing:1.5px;color:#213d62;margin-bottom:12px!important; }
.marine-contact h3 { max-width:1150px;font-size:clamp(24px,2.1vw,34px); }
.marine-button { display:inline-flex;justify-content:center;background:#2e2564;color:#fff;padding:12px 30px;min-height:48px; }
.marine-button:hover { background:#213d62; }
.marine-software-enquiry { max-width:1150px;margin:0 auto 22px!important;text-align:center;font-size:clamp(17px,1.1vw,20px); }
.marine-intent-links { display:flex;justify-content:center;flex-wrap:wrap;gap:14px;margin-bottom:34px; }
.homepage-footer .social-icon span { display:inline-block; }
@media (min-width:768px) and (max-width:991.98px) { .header-wrapper { margin-top:0; } }
@media (max-width:1100px) { .marine-grid--three { grid-template-columns:repeat(2,minmax(0,1fr)); } .marine-design-grid { grid-template-columns:1fr; } .marine-design-images { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:700px) { html { scroll-padding-top:90px; } .marine-grid--two,.marine-grid--three { grid-template-columns:1fr; } .marine-design-images { grid-template-columns:1fr; } .marine-jump { gap:6px 4px; } .marine-jump a { font-size:15px; } .marine-video-toggle { right:6px;bottom:4px;padding:4px 7px;font-size:11px; } }
@media (max-width:360px) { .logo { width:145px;flex-basis:145px; } .headerRightInfo li+li { margin-left:16px; } .hamburger_button,.hamburger_button span { width:30px; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } * { transition:none!important; } }
body.admin-bar .header-wrapper { top:32px; }
@media(max-width:782px) { body.admin-bar .header-wrapper { top:46px; } }
