/* =========================
   Root variables
   ========================= */

:root {
  --color-blue-950: #0B325D;
  --color-blue-900: #0D417C;
  --color-blue-800: #055985;
  --color-blue-700: #006699;
  --color-blue-600: #0b7fa6;
  --color-blue-500: #1391b7;
  --color-blue-100: #e9f7fc;
  --color-blue-050: #f7fcff;

  --color-cyan: #47d8ff;
  --color-heading-primary: #0D417C;
  --color-heading-secondary: #0D417C;
  --color-heading-tertiary: #055985;
  --color-body-copy: #055985;
  --color-ink: #055985;
  --color-muted: #055985;
  --color-line: rgba(7, 95, 131, 0.18);
  --color-white: #ffffff;

  --font-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

  --container: 1840px;
  --container-wide: 1840px;
  --side-padding: clamp(1.25rem, 4vw, 6rem);
  --section-space-compact: clamp(3.25rem, 5.5vw, 5rem);
  --grid-gap: clamp(2rem, 4.5vw, 5rem);
  --grid-gap-tight: clamp(1.35rem, 2.7vw, 3rem);
  --copy-width: 76ch;
  --heading-width: 980px;
  --radius: 24px;
  --radius-large: 32px;
  --shadow-soft: 0 24px 70px rgba(5, 50, 74, 0.12);
  --nav-height: 76px;
  --header-content-gap: clamp(5.5rem, 8vw, 7.1rem);
}

/* =========================
   Base
   ========================= */

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

html {
  font-size: 16px;
  scroll-behavior: smooth;
  overflow-y: scroll;
  scrollbar-gutter: stable;
}

html,
body {
  width: 100%;
  max-width: 100%;
  overflow-x: clip;
}

body {
  min-height: 100svh;
  margin: 0;
  display: flex;
  flex-direction: column;
  font-family: var(--font-sans);
  color: var(--color-body-copy);
  line-height: 1.6;
  text-rendering: optimizeLegibility;
  background:
    linear-gradient(
      to bottom,
      #ffffff 0%,
      #f4fbfd 35%,
      #dff3f8 70%,
      #b8e4ee 100%
    );
  background-attachment: fixed;
}

body.nav-open {
  overflow: hidden;
}

main {
  flex: 1;
}

body.subpage main {
  padding-top: calc(var(--header-content-gap) + 3cm);
}

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

img,
video,
svg {
  display: block;
  max-width: 100%;
}

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

.skip-link {
  position: absolute;
  left: -999px;
  top: 1rem;
  z-index: 1000;
  padding: .75rem 1rem;
  background: var(--color-white);
  color: var(--color-blue-900);
  border: 1px solid var(--color-line);
}

.skip-link:focus {
  left: 1rem;
}

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


/* =========================
   Header and navigation
   ========================= */

.site-header {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 100;
  width: 100%;
  min-height: var(--nav-height);
  background: rgba(7, 108, 171, 0.88);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  border-bottom: 1px solid rgba(255, 255, 255, 0.18);
  transition: none;
}


.nav.container,
.nav {
  width: min(100% - (var(--side-padding) * 2), var(--container-wide));
  min-height: var(--nav-height);
  margin-inline: auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(1.5rem, 4vw, 3rem);
  flex-wrap: nowrap;
}

.brand {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  gap: .55rem;
  width: auto;
  height: 54px;
  min-width: max-content;
  flex: 0 0 auto;
  overflow: visible;
}

.brand-icon {
  display: block !important;
  width: auto !important;
  height: 35px !important;
  max-width: none !important;
  max-height: 35px !important;
  object-fit: contain;
  flex: 0 0 auto;
}

.brand-logo {
  display: block !important;
  width: auto !important;
  height: 23px !important;
  max-width: none !important;
  max-height: 23px !important;
  object-fit: contain;
  flex: 0 0 auto;
}

.brand img {
  width: auto !important;
  max-width: none;
  object-fit: contain;
}

.nav-menu {
  position: relative;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: flex-end;
  gap: clamp(.85rem, 1.5vw, 1.35rem);
  margin-left: auto;
  flex: 0 0 auto;
  min-width: 0;
  flex-wrap: nowrap;
}

.nav-link,
.nav-link--cta {
  position: relative;
  display: inline-flex;
  align-items: center;
  width: auto;
  margin: 0;
  padding: .45rem 0;
  color: rgba(255, 255, 255, .98);
  font-size: .95rem;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: .01em;
  white-space: nowrap;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  transform: none;
  transition:
    color 160ms ease,
    text-shadow 160ms ease,
    opacity 160ms ease;
}

.nav-link:hover,
.nav-link:focus-visible,
.nav-link--cta:hover,
.nav-link--cta:focus-visible {
  color: rgba(255, 255, 255, 1);
  text-shadow:
    0 0 8px rgba(255, 255, 255, .24),
    0 0 14px rgba(71, 216, 255, .18);
}

.nav-link.is-active,
.nav-link--cta.is-active {
  color: #ffffff;
  font-weight: 800;
}

.nav-menu:hover .nav-link,
.nav-menu:hover .nav-link--cta {
  color: rgba(255, 255, 255, .9);
}

.nav-menu:hover .nav-link:hover,
.nav-menu:hover .nav-link:focus-visible,
.nav-menu:hover .nav-link--cta:hover,
.nav-menu:hover .nav-link--cta:focus-visible {
  color: rgba(255, 255, 255, 1);
}

.nav-link.is-active::after,
.nav-link--cta.is-active::after {
  display: none;
}

.nav-indicator {
  position: absolute;
  left: 0;
  bottom: .12rem;
  width: 0;
  height: 2px;
  transform: translateX(0);
  pointer-events: none;
  opacity: 1;
  border-radius: 999px;
  background: transparent;
  transition:
    transform 160ms cubic-bezier(.22, 1, .36, 1),
    width 160ms cubic-bezier(.22, 1, .36, 1);
}

.nav-indicator::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  opacity: 0;
  background: linear-gradient(
    90deg,
    rgba(71, 216, 255, 0) 0%,
    rgba(71, 216, 255, .55) 18%,
    rgba(71, 216, 255, .55) 50%,
    rgba(71, 216, 255, .55) 82%,
    rgba(71, 216, 255, 0) 100%
  );
  box-shadow:
    0 0 8px rgba(71, 216, 255, .28),
    0 0 16px rgba(71, 216, 255, .22);
  transition:
    opacity 160ms ease-in-out,
    box-shadow 160ms ease-in-out;
}

.nav-menu:hover .nav-indicator::before,
.nav-menu:focus-within .nav-indicator::before {
  opacity: 1;
}

.nav-menu:not(:hover):not(:focus-within) .nav-indicator::before {
  opacity: 0;
}

.nav-toggle {
  display: none;
  width: 44px;
  height: 44px;
  border: 1px solid rgba(255, 255, 255, .22);
  border-radius: 999px;
  background: transparent;
  cursor: pointer;
}

.nav-toggle span {
  display: block;
  width: 18px;
  height: 1px;
  margin: 5px auto;
  background: var(--color-white);
}

/* =========================
   Shared type and sections
   ========================= */

.section {
  position: relative;
  padding-block: var(--section-space);
  background: transparent;
}

.section h2 {
  max-width: var(--heading-width);
  margin: 0 0 clamp(1rem, 2vw, 1.4rem);
  color: var(--color-heading-primary);
  font-size: clamp(2.15rem, 4.2vw, 4.6rem);
  line-height: .98;
  letter-spacing: -.055em;
  text-wrap: balance;
}

.section p,
main li,
main label,
main input,
main textarea,
main select,
main small {
  color: var(--color-body-copy);
}

.section p {
  max-width: var(--copy-width);
  margin: 0 0 1rem;
  font-size: clamp(1rem, 1.15vw, 1.13rem);
}

.eyebrow {
  max-width: none;
  margin: 0 0 1rem !important;
  color: var(--color-heading-tertiary) !important;
  font-size: .78rem !important;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.section-copy {
  min-width: 0;
}

.section-copy > :last-child {
  margin-bottom: 0;
}

.section-copy h2,
.section-heading h2 {
  max-width: 920px;
}

.section-copy p,
.section-heading p {
  max-width: 72ch;
}

/* =========================
   Buttons and links
   ========================= */

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: .85rem 1.15rem;
  border: 1px solid transparent;
  border-radius: 999px;
  font-size: .93rem;
  font-weight: 800;
  letter-spacing: -.01em;
  cursor: pointer;
  transition:
    transform .18s ease,
    background .18s ease,
    color .18s ease,
    border-color .18s ease;
}

.button:hover,
.button:focus-visible {
  transform: translateY(-1px);
}

.button--primary {
  color: var(--color-blue-950);
  background: linear-gradient(135deg, var(--color-white), var(--color-blue-100));
  border-color: rgba(255, 255, 255, .66);
}

.button--secondary {
  color: var(--color-white);
  background: rgba(255, 255, 255, .08);
  border-color: rgba(255, 255, 255, .28);
}

.button--secondary:hover,
.button--secondary:focus-visible {
  background: rgba(255, 255, 255, .14);
}

.text-link {
  color: var(--color-blue-700);
  font-weight: 800;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: .25em;
  transition: color .2s ease;
}

.text-link:hover,
.text-link:focus-visible {
  color: var(--color-blue-900);
}

/* =========================
   Index hero
   ========================= */

.hero {
  position: relative;
  min-height: auto;
  display: grid;
  align-items: start;
  padding: calc(var(--nav-height) + clamp(2.8rem, 5vw, 4.2rem)) 0 clamp(2rem, 3vw, 3rem);
  color: #05324a;
  overflow: visible;
  isolation: isolate;
}

.hero-media,
.hero-video,
.hero-overlay {
  display: none;
}

.hero-content {
  position: relative;
  z-index: 2;
  width: min(100% - (var(--side-padding) * 2), var(--container));
  margin-inline: auto;
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(560px, .9fr);
  grid-template-areas:
    "title feature"
    "subtitle feature"
    "about points"
    ". actions";
  column-gap: clamp(2.5rem, 4vw, 5rem);
  row-gap: clamp(1.4rem, 2.4vw, 2.2rem);
  align-items: start;
}

.hero-content h1,
.hero-content .hero-subtitle,
.hero-content .hero-about-inline,
.hero-content .hero-actions {
  transform: none;
}

.hero h1 {
  grid-area: title;
  max-width: 860px;
  margin: 0;
  text-wrap: balance;
}

.hero-title-brand,
.hero-title-main {
  display: block;
  color: var(--color-heading-secondary);
}

.hero-title-brand {
  margin-bottom: clamp(.6rem, 1.4vw, 1rem);
  font-family: "Nunito Sans", Arial, sans-serif;
  font-size: clamp(3rem, 6vw, 5.45rem);
  font-weight: 900;
  line-height: .92;
  letter-spacing: -.02em;
}

.hero-title-main {
  max-width: 820px;
  margin-top: clamp(.85rem, 1.7vw, 1.3rem);
  font-family: var(--font-sans);
  font-size: clamp(2rem, 3.5vw, 3.45rem);
  font-weight: 500;
  line-height: 1;
  letter-spacing: -.055em;
}

.hero-subtitle {
  grid-area: subtitle;
  max-width: 3000px;
  margin: 0 !important;
  color: var(--color-body-copy) !important;
  font-size: clamp(1rem, 1.35vw, 1.22rem) !important;
  font-weight: 400;
  line-height: 1.4;
}

.hero-about-inline {
  display: contents;
}

.hero-about-inline h2,
.hero-about-inline > p {
  grid-area: about;
  max-width: 980px;
}

.hero-about-inline h2 {
  margin: 0 0 .55rem;
  color: var(--color-heading-primary);
  font-size: clamp(1.55rem, 2.1vw, 2.25rem);
  line-height: 1.05;
  letter-spacing: -.04em;
}

.hero-about-inline > p {
  margin: 0;
  color: var(--color-body-copy) !important;
  font-size: clamp(1rem, 1.35vw, 1.22rem)!important;
  line-height: 1.45;
}

/*
  These offsets stack the current home-page about paragraphs while keeping
  the "More about us" button under the right-side hero points.
*/
.hero-about-inline > .eyebrow {
  margin-top: 3.25rem !important;
  font-size: .85rem !important;
  letter-spacing: .14em;
}

.hero-about-inline > p:nth-of-type(1) {
  margin-top: 2.65rem;
}

.hero-about-inline > p:nth-of-type(2) {
  margin-top: 5.4rem;
}

.hero-about-inline > p:nth-of-type(3) {
  margin-top: 9rem;
}

.hero-about-inline > p:nth-of-type(4) {
  margin-top: 12.75rem;
}

.hero-actions,
.official-channels li {
  display: flex;
  align-items: center;
  gap: .85rem;
  flex-wrap: wrap;
}

.hero-about-inline .hero-actions {
  grid-area: actions;
  justify-self: start;
  align-self: start;
  margin-top: -.2rem;
  transform: none;
}

.hero-about-inline .button {
  min-height: 40px;
  padding: .65rem .9rem;
  font-size: .78rem;
}

.hero .button--primary {
  color: #ffffff;
  background: linear-gradient(135deg, #2aa9d6, #1698cf);
  border-color: transparent;
  box-shadow: 0 12px 24px rgba(15, 125, 165, .18);
}

.hero .button--primary:hover,
.hero .button--primary:focus-visible {
  color: #ffffff;
  background: linear-gradient(135deg, #1698cf, #0875a8);
}

.hero-feature-card {
  grid-area: feature;
  width: 100%;
  max-width: 700px;
  margin: .25rem 0 0;
  align-self: start;
  justify-self: end;
  transform: none;
  overflow: hidden;
  border: 1px solid rgba(7, 95, 131, .14);
  border-radius: clamp(1rem, 1.6vw, 1.45rem);
  background: rgba(255, 255, 255, .78);
  box-shadow: none;
  z-index: 3;
}

.hero-feature-card__image {
  position: relative;
  height: clamp(10.5rem, 15vw, 15rem);
  min-height: 0;
  overflow: hidden;
}

.hero-feature-card__image img {
  width: 100%;
  height: 100%;
  min-height: 0;
  max-width: none;
  object-fit: cover;
  object-position: center center;
  filter: saturate(.95) contrast(1.04);
}

.hero-feature-card__image::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 52%;
  background: linear-gradient(180deg, rgba(5, 50, 74, 0), rgba(5, 50, 74, .68));
  pointer-events: none;
}

.hero-feature-card__overlay {
  position: absolute;
  left: clamp(.85rem, 1.2vw, 1.15rem);
  right: clamp(.85rem, 1.2vw, 1.15rem);
  bottom: clamp(.8rem, 1.15vw, 1.1rem);
  z-index: 2;
}

.hero-feature-card__overlay p {
  margin: 0 0 .25rem;
  color: #ffffff !important;
  font-size: clamp(.55rem, .58vw, .64rem);
  font-weight: 900;
  line-height: 1.08;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.hero-feature-card__overlay h2 {
  margin: 0;
  color: #ffffff !important;
  font-size: clamp(1.25rem, 1.6vw, 1.65rem);
  line-height: .95;
  letter-spacing: -.055em;
}

.hero-feature-card__facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  background: rgba(255, 255, 255, .92);
}

.hero-feature-card__facts div {
  min-width: 0;
  padding: .45rem .55rem;
  border-right: 1px solid rgba(7, 95, 131, .12);
}

.hero-feature-card__facts div:last-child {
  border-right: 0;
}

.hero-feature-card__facts span {
  display: block;
  margin-bottom: .22rem;
  color: #055985 !important;
  font-size: .43rem;
  font-weight: 900;
  line-height: 1.1;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.hero-feature-card__facts strong {
  display: block;
  color: #0B325D;
  font-size: .66rem;
  line-height: 1.08;
  font-weight: 900;
  letter-spacing: -.035em;
  overflow-wrap: anywhere;
}

.hero-points {
  grid-area: points;
  width: 80%;
  max-width: 560px;
  display: grid;
  gap: .75rem;
  margin: 0;
  align-self: start;
  justify-self: end;
  transform: none;
}

.hero-point {
  padding: .68rem .82rem;
  border: 1px solid rgba(10, 103, 138, .13);
  border-left: 3px solid rgba(15, 125, 165, .62);
  border-radius: 15px;
  background: linear-gradient(180deg, rgba(255, 255, 255, .78), rgba(255, 255, 255, .55));
  box-shadow: 0 18px 42px rgba(5, 50, 74, .07);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

.hero-point h3 {
  margin: 0 0 .25rem;
  color: var(--color-heading-tertiary);
  font-size: clamp(.8rem, .86vw, .92rem);
  line-height: 1.1;
  font-weight: 900;
  letter-spacing: -.035em;
}

.hero-point p {
  margin: 0;
  color: var(--color-body-copy) !important;
  font-size: clamp(.72rem, .76vw, .82rem);
  line-height: 1.34;
}


/* =========================
   Index hero refinements
   ========================= */

body:not(.subpage) .hero-content {
  grid-template-areas:
    "title feature"
    "subtitle feature"
    "about points"
    ". actions";
  row-gap: clamp(2rem, 3.2vw, 3rem);
}

body:not(.subpage) .hero-title-brand {
  font-size: clamp(calc(3rem + 1px), 6vw, calc(5.45rem + 1px));
}

body:not(.subpage) .hero-title-main {
  font-size: clamp(calc(2rem + 1px), 3.5vw, calc(3.45rem + 1px));
}

body:not(.subpage) .hero-subtitle {
  font-size: clamp(calc(1rem + 1px), 1.35vw, calc(1.22rem + 1px)) !important;
}

body:not(.subpage) .hero-about-inline h2 {
  font-size: clamp(calc(1.55rem + 1px), 2.1vw, calc(2.25rem + 1px));
}

body:not(.subpage) .hero-about-inline > .eyebrow {
  margin-top: 4.25rem !important;
  font-size: .8rem !important;
}

body:not(.subpage) .hero-about-inline > p {
  font-size: 1.05rem;
}

body:not(.subpage) .hero-about-inline > p:nth-of-type(1) {
  margin-top: 3.95rem;
}

body:not(.subpage) .hero-about-inline > p:nth-of-type(2) {
  margin-top: 7.8rem;
}

body:not(.subpage) .hero-about-inline > p:nth-of-type(3) {
  margin-top: 11.9rem;
}

body:not(.subpage) .hero-about-inline > p:nth-of-type(4) {
  margin-top: 16.1rem;
}

body:not(.subpage) .hero-about-inline .hero-actions {
  grid-area: actions;
  justify-self: start;
  align-self: start;
  margin-top: .75rem;
}

body:not(.subpage) .hero-about-inline .button {
  font-size: calc(.78rem + 1px);
}

body:not(.subpage) .hero-feature-card {
  width: 100%;
  max-width: 700px;
  justify-self: stretch;
}

body:not(.subpage) .hero-feature-card__image {
  height: clamp(14rem, 22vw, 22rem);
}

body:not(.subpage) .hero-feature-card__overlay p {
  font-size: clamp(calc(.55rem + 2px), .58vw, calc(.64rem + 2px));
}

body:not(.subpage) .hero-feature-card__overlay h2 {
  font-size: clamp(calc(1.25rem + 2px), 1.6vw, calc(1.65rem + 2px));
}

body:not(.subpage) .hero-feature-card__facts span {
  font-size: calc(.43rem + 2px);
}

body:not(.subpage) .hero-feature-card__facts strong {
  font-size: calc(.66rem + 2px);
}

body:not(.subpage) .hero-points {
  max-width: 700px;
  justify-self: stretch;
}

body:not(.subpage) .hero-point h3 {
  font-size: clamp(calc(.8rem + 1px), .86vw, calc(.92rem + 1px));
}

body:not(.subpage) .hero-point p {
  font-size: clamp(calc(.72rem + 1px), .76vw, calc(.82rem + 1px));
}

/* =========================
   Index support
   ========================= */

.index-support {
  margin-top: 0;
  padding-top: clamp(1rem, 2vw, 1.75rem);
  padding-bottom: clamp(3rem, 6vw, 5.5rem);
  background: transparent;
}

.index-support__inner {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(420px, .65fr);
  gap: clamp(1.5rem, 3vw, 3rem);
  align-items: center;
}

.index-support__bubbles {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1rem, 2vw, 1.5rem);
  width: 100%;
  transform: none;
}

.index-support__bubble {
  min-height: 100%;
  padding: clamp(1rem, 1.8vw, 1.35rem);
  border: 1px solid rgba(7, 95, 131, .16);
  border-radius: var(--radius);
  background: linear-gradient(135deg, rgba(255, 255, 255, .44), rgba(233, 247, 252, .2));
  box-shadow: 0 20px 58px rgba(5, 50, 74, .08);
}

.index-support__bubble h3 {
  margin: 0 0 .75rem;
  color: var(--color-heading-tertiary);
  font-size: clamp(.95rem, 1.1vw, 1.12rem);
  line-height: 1.15;
  font-weight: 900;
  letter-spacing: -.035em;
}

.index-support__bubble p {
  margin: 0;
  color: var(--color-body-copy);
  font-size: clamp(.82rem, .9vw, .92rem);
  line-height: 1.45;
}

.index-support__copy {
  max-width: none;
  justify-self: stretch;
}

.index-support__copy h2 {
  max-width: none;
  margin: 0 0 1.4rem;
  color: var(--color-heading-primary);
  font-size: clamp(2rem, 3.6vw, 3.9rem);
  line-height: .98;
  letter-spacing: -.055em;
  text-wrap: balance;
}

.index-support__copy p {
  max-width: none;
  margin: 0 0 1rem;
  color: var(--color-body-copy);
  font-size: clamp(.92rem, 1vw, 1.04rem);
  line-height: 1.55;
}

.index-support__actions {
  margin-top: clamp(1.25rem, 2.5vw, 2rem);
}

.index-support__button {
  color: #ffffff;
  background: linear-gradient(135deg, #2aa9d6, #1698cf);
  border-color: transparent;
  box-shadow: 0 12px 24px rgba(15, 125, 165, .18);
}

.index-support__button:hover,
.index-support__button:focus-visible {
  color: #ffffff;
  background: linear-gradient(135deg, #1698cf, #0875a8);
}


body:not(.subpage) .index-support__copy h2 {
  font-size: clamp(calc(2rem + 1px), 3.6vw, calc(3.9rem + 1px));
}

body:not(.subpage) .index-support__copy p {
  margin-bottom: 1.25rem;
  font-size: clamp(calc(.92rem + 1px), 1vw, calc(1.04rem + 1px));
}

body:not(.subpage) .index-support__bubble h3 {
  font-size: clamp(calc(.95rem + 1px), 1.1vw, calc(1.12rem + 1px));
}

body:not(.subpage) .index-support__bubble p {
  margin-bottom: 1.25rem;
  font-size: clamp(calc(.82rem + 1px), .9vw, calc(.92rem + 1px));
}

body:not(.subpage) .index-support__button {
  font-size: calc(.78rem + 1px);
}

/* =========================
   Subpage layouts
   ========================= */

.split-layout,
.contact-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(340px, .92fr);
  gap: var(--grid-gap);
  align-items: start;
}

.split-layout {
  align-items: center;
}

.section-heading {
  max-width: var(--heading-width);
  margin-bottom: clamp(2rem, 4vw, 3.2rem);
}

/* About */
.section--about .split-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.18fr) minmax(340px, .82fr);
  gap: clamp(2.5rem, 6vw, 6.5rem);
  align-items: center;
  transform: none;
}

.section--about .section-copy {
  max-width: 1149px;
}

.fact-strip {
  display: grid;
  grid-template-columns: 1fr;
  width: 100%;
  max-width: 560px;
  justify-self: end;
  border-top: 1px solid var(--color-line);
  border-bottom: 1px solid var(--color-line);
  background: linear-gradient(90deg, rgba(255, 255, 255, .42), rgba(255, 255, 255, .12));
}

.fact-item {
  display: grid;
  grid-template-columns: minmax(145px, .72fr) 1fr;
  gap: clamp(1rem, 3vw, 2rem);
  align-items: center;
  padding: clamp(1.3rem, 3vw, 2rem) 0;
  border-bottom: 1px solid var(--color-line);
}

.fact-item:last-child {
  border-bottom: 0;
}

.fact-value {
  color: var(--color-heading-tertiary);
  font-size: clamp(1.35rem, 2vw, 2rem);
  font-weight: 500;
  line-height: 1;
  letter-spacing: -.045em;
}

.fact-label {
  color: var(--color-heading-tertiary);
  font-size: clamp(1.05rem, 1.45vw, 1.35rem);
  line-height: 1.2;
  letter-spacing: -.025em;
}


body.subpage .section--about .section-copy {
  max-width: 1149px !important;
}

body.subpage .section--about .section-copy p,
body.subpage .section--about .section-copy h2,
body.subpage .section--about .section-copy .eyebrow {
  max-width: 1149px !important;
}

body.subpage .section--about .section-copy > :last-child {
  margin-bottom: clamp(2rem, 4vw, 3.5rem) !important;
}

/* Shared image treatment */
.partnership-image,
.careers-image,
.foundingvision-image {
  position: relative;
  width: 100%;
  min-width: 0;
  margin: 0;
  overflow: hidden;
  border: 1px solid rgba(7, 95, 131, .16);
  border-radius: var(--radius-large);
  background: rgba(255, 255, 255, .16);
  box-shadow: var(--shadow-soft);
}

.partnership-image::after,
.careers-image::after,
.foundingvision-image::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(255, 255, 255, .10), rgba(5, 50, 74, .08));
}

.partnership-image img,
.careers-image img {
  width: 100%;
  height: 100%;
  min-height: 320px;
  object-fit: cover;
  opacity: .82;
  filter: saturate(.88) contrast(1.04);
}

.partnership-image img {
  aspect-ratio: 4 / 3;
}

.careers-image img {
  aspect-ratio: 5 / 4;
}

.foundingvision-image {
  height: auto;
  min-height: 0;
  align-self: center;
}

.foundingvision-layout--with-image {
  display: grid;
  grid-template-columns: minmax(340px, .92fr) minmax(0, 1.08fr);
  gap: clamp(2.5rem, 5vw, 6rem);
  align-items: center;
  transform: none;
}

.foundingvision-image img {
  width: 100%;
  height: auto !important;
  min-height: 0 !important;
  aspect-ratio: auto !important;
  object-fit: contain !important;
  object-position: center center;
  opacity: .82;
  filter: saturate(.88) contrast(1.04);
}

/* Trading */

.platform-strip--trading {
  margin-top: 0;
  padding-top: .5rem;
  padding-bottom: clamp(1.5rem, 3vw, 2.5rem);
}

.platform-strip__track {
  display: flex;
  width: max-content;
  will-change: transform;
  animation: platform-scroll-reverse 52s linear infinite;
}

.platform-strip--trading .exchange-strip__group span {
  color: rgba(5, 50, 74, .34);
}

@keyframes platform-scroll-reverse {
  from { transform: translate3d(-25%, 0, 0); }
  to { transform: translate3d(0, 0, 0); }
}

.section--trading > .container {
  display: grid;
  grid-template-columns: minmax(300px, .34fr) minmax(0, .66fr);
  gap: clamp(2.5rem, 5vw, 6rem);
  align-items: start;
}

.section--trading .section-heading {
  grid-column: 1;
  max-width: 520px;
  margin-bottom: 0;
}

.section--trading .service-grid {
  grid-column: 2;
}

.service-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(min(100%, 17rem), 1fr));
  gap: clamp(1.75rem, 3vw, 3rem) clamp(2rem, 4vw, 4rem);
  background: transparent;
  border: 0;
}

.service-card {
  position: relative;
  min-height: auto;
  padding: 1.25rem 0 0;
  background: transparent;
  border: 0;
  box-shadow: none;
}

.service-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 56px;
  height: 1px;
  background: linear-gradient(90deg, var(--color-blue-900), rgba(71, 216, 255, .65));
}

.service-card h3 {
  margin: 0 0 .85rem;
  color: var(--color-heading-tertiary);
  font-size: clamp(1.1rem, 1.5vw, 1.45rem);
  letter-spacing: -.035em;
}

.service-card p {
  max-width: 44ch;
  margin: 0;
  font-size: .98rem;
}

/* Partnership */

body.subpage .section--partnership .partnership-image {
  max-width: 600px;
  justify-self: start;
}

body.subpage .section--partnership .partnership-image img {
  min-height: 260px;
  aspect-ratio: 4 / 3;
}

body.subpage .section--partnership .section-copy h2,
body.subpage .section--partnership h2 {
  max-width: none !important;
  width: max-content;
  white-space: nowrap;
  font-size: clamp(2rem, 3.2vw, 4rem);
}

body.subpage .section--partnership .capability-panel__heading {
  grid-column: 1 / -1;
  max-width: none;
  margin: 0 0 clamp(1rem, 1.8vw, 1.5rem) !important;
}

body.subpage #for-firms .section-copy {
  width: calc(100% + 50px);
  max-width: none !important;
}

body.subpage #for-firms .section-copy h2,
body.subpage #for-firms .section-copy p {
  max-width: none !important;
  text-wrap: normal !important;
}

.section--partnership {
  color: var(--color-blue-950);
  overflow: hidden;
}

.partnership-layout {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: clamp(1.75rem, 3vw, 3.25rem) clamp(2.5rem, 5vw, 6rem);
  align-items: start;
}

.partnership-layout .section-copy {
  grid-column: 1 / span 5;
  grid-row: 1;
  max-width: 620px;
  align-self: start;
  margin-top: 0;
}

.partnership-image {
  grid-column: 1 / span 5;
  grid-row: 2;
  margin-top: clamp(1.75rem, 3vw, 2.75rem);
}

.partnership-layout .capability-panel {
  grid-column: 7 / -1;
  grid-row: 1 / span 2;
  align-self: start;
}

.capability-panel {
  display: grid;
  grid-template-columns: repeat(2, minmax(260px, 1fr));
  gap: 0 clamp(1.5rem, 3vw, 2.5rem);
  width: 100%;
  border-left: 0;
  padding-left: 0;
}

.capability-panel div {
  position: relative;
  min-width: 0;
  padding: clamp(1rem, 2vw, 1.35rem) 0;
  border-bottom: 1px solid rgba(5, 50, 74, .18);
}

.capability-panel div:nth-child(5),
.capability-panel div:nth-child(6) {
  border-bottom: 0;
}

.capability-panel span {
  display: block;
  width: 100%;
  margin-bottom: .35rem;
  color: var(--color-heading-tertiary);
  font-weight: 900;
}

.capability-panel p {
  max-width: 42ch;
  margin: 0;
  color: var(--color-body-copy);
  font-size: .98rem;
}

/* Audiences */
.section--for-traders {
  padding-top: var(--section-space-compact);
  padding-bottom: clamp(3rem, 6vw, 5rem);
}

.section--for-firms {
  padding-top: clamp(2rem, 5vw, 4rem);
  padding-bottom: var(--section-space-compact);
}

.audience-section {
  display: grid;
  grid-template-columns: minmax(0, .42fr) minmax(420px, .58fr);
  gap: clamp(2rem, 5vw, 5.5rem);
  align-items: start;
}

.audience-section--firms {
  grid-template-columns: minmax(420px, .58fr) minmax(0, .42fr);
}

.audience-section--firms .section-copy {
  grid-column: 2;
}

.audience-section--firms .benefit-panel {
  grid-column: 1;
  grid-row: 1;
}

.benefit-panel {
  width: 100%;
  padding: clamp(1.75rem, 3vw, 2.5rem);
  border: 1px solid rgba(7, 95, 131, .16);
  border-radius: var(--radius-large);
  background: linear-gradient(135deg, rgba(255, 255, 255, .34), rgba(233, 247, 252, .18));
  box-shadow: 0 20px 58px rgba(5, 50, 74, .08);
}

.benefit-panel--solid {
  background: linear-gradient(135deg, rgba(233, 247, 252, .42), rgba(255, 255, 255, .2));
}

.benefit-panel__label {
  max-width: none;
  margin: 0 0 1.25rem !important;
  color: var(--color-heading-tertiary) !important;
  font-size: .78rem !important;
  font-weight: 900;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.benefit-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(.85rem, 1.6vw, 1.25rem) clamp(1.25rem, 3vw, 2.5rem);
  margin: 0;
  padding: 0;
  list-style: none;
}

.benefit-list li {
  position: relative;
  min-width: 0;
  padding-left: 1.1rem;
  color: var(--color-body-copy);
  font-size: clamp(.98rem, 1.05vw, 1.08rem);
  line-height: 1.45;
}

.benefit-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .7em;
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: var(--color-blue-700);
}

/* Careers */

body.subpage .section--careers {
  padding-bottom: 0;
  overflow: visible;
}

body.subpage .section--careers .careers-layout--with-image {
  position: relative;
  min-height: 0;
  row-gap: 0 !important;
}

body.subpage .section--careers .careers-layout--with-image .section-copy {
  grid-column: 1 / span 6;
  grid-row: 1;
  position: relative;
  z-index: 2;
}

body.subpage .section--careers .careers-layout--with-image .careers-image {
  position: absolute;
  top: 0;
  right: 0;
  grid-column: auto;
  grid-row: auto;
  width: calc((100% - clamp(2rem, 4vw, 4.5rem)) * 5 / 12);
  min-height: clamp(380px, 36vw, 640px);
  margin: 0;
  z-index: 1;
}

body.subpage .section--careers .careers-layout--with-image .careers-aside {
  grid-column: 1 / span 6;
  grid-row: 2;
  position: static;
  width: 100%;
  margin: 0 !important;
  transform: none !important;
}

body.subpage .section--careers .job-pdf-button,
body.subpage .section--open-positions .job-pdf-button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 40px !important;
  padding: .65rem .9rem !important;
  color: #ffffff !important;
  font-size: .78rem !important;
  font-weight: 800 !important;
  letter-spacing: -.01em !important;
  text-decoration: none !important;
  border: 1px solid transparent !important;
  border-radius: 999px !important;
  background: linear-gradient(135deg, #2aa9d6, #1698cf) !important;
  box-shadow: 0 12px 24px rgba(15, 125, 165, .18) !important;
}

body.subpage .section--careers .job-pdf-button:hover,
body.subpage .section--careers .job-pdf-button:focus-visible,
body.subpage .section--open-positions .job-pdf-button:hover,
body.subpage .section--open-positions .job-pdf-button:focus-visible {
  color: #ffffff !important;
  background: linear-gradient(135deg, #1698cf, #0875a8) !important;
  transform: translateY(-1px);
}

body.subpage .section--open-positions {
  position: relative;
  z-index: 3;
  padding-top: 3cm;
  padding-bottom: clamp(2.5rem, 5vw, 4rem);
}

body.subpage .section--open-positions .reveal {
  transition:
    opacity .28s ease,
    transform .28s ease;
}

body.subpage .section--open-positions .job-panel {
  column-count: 2;
  column-gap: clamp(2rem, 4vw, 4.5rem);
  column-fill: balance;
}

body.subpage .section--open-positions .job-panel.is-hidden {
  display: none;
}

body.subpage .section--open-positions .job-section {
  break-inside: avoid;
  page-break-inside: avoid;
  margin-bottom: clamp(1.5rem, 3vw, 2.5rem);
}

body.subpage .section--open-positions .job-section h3,
body.subpage .section--open-positions .job-section h4 {
  break-after: avoid;
}

body.subpage .section--open-positions .job-language-toggle {
  margin: clamp(1rem, 2vw, 1.5rem) 0;
}

body.subpage .section--open-positions .job-language-toggle .button {
  min-height: 40px;
  padding: .65rem .9rem;
  color: #ffffff;
  font-size: .78rem;
  font-weight: 800;
  border-radius: 999px;
  background: linear-gradient(135deg, #2aa9d6, #1698cf);
  border-color: transparent;
  box-shadow: 0 12px 24px rgba(15, 125, 165, .18);
}

.careers-layout--with-image {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  column-gap: clamp(2rem, 4vw, 4.5rem);
  row-gap: 0;
  align-items: start;
}

.careers-layout--with-image .section-copy,
.careers-layout--with-image .careers-aside {
  grid-column: 1 / span 6;
}

.careers-image {
  grid-column: 8 / -1;
  grid-row: 1 / span 2;
  align-self: start;
  width: 100%;
  min-height: clamp(380px, 36vw, 640px);
  aspect-ratio: 4 / 5;
  overflow: hidden;
  border-radius: clamp(1.25rem, 2vw, 2rem);
}

.careers-image img {
  width: 100%;
  height: 100%;
  border-radius: inherit;
}

.careers-layout--with-image .careers-aside {
  grid-row: 2;
  margin-top: clamp(-18rem, -18vw, -12rem);
  transform: none;
  margin-bottom: clamp(-18rem, -18vw, -12rem);
}

.careers-aside {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 clamp(1.25rem, 3vw, 2rem);
  width: 100%;
  border-left: 0;
  padding-left: 0;
}

.careers-aside p {
  max-width: none;
  margin: 0;
  padding: 1rem 0;
  color: var(--color-blue-900);
  font-weight: 850;
  border-top: 1px solid var(--color-line);
  border-bottom: 0;
}


/* Notice */
.notice-panel {
  display: grid;
  grid-template-columns: minmax(300px, .38fr) minmax(0, .62fr);
  gap: var(--grid-gap);
  align-items: start;
  padding: clamp(2.5rem, 5vw, 4rem);
  border: 1px solid rgba(255, 255, 255, .22);
  border-radius: var(--radius-large);
  background: linear-gradient(135deg, rgba(233, 247, 252, .42), rgba(255, 255, 255, .18));
  box-shadow: 0 24px 70px rgba(5, 50, 74, .08);
}

.notice-body p {
  max-width: 68ch;
}

.official-channels {
  display: grid;
  gap: .75rem;
  margin: 1.25rem 0 0;
  padding: 0;
  list-style: none;
}

.official-channels li {
  justify-content: flex-start;
  gap: .75rem 1.5rem;
  padding-top: .75rem;
  border-top: 1px solid rgba(5, 50, 74, .15);
}

.official-channels span {
  min-width: 90px;
  color: var(--color-heading-tertiary);
  font-weight: 900;
}

.official-channels a {
  color: var(--color-blue-900);
  text-decoration: underline;
  text-underline-offset: .22em;
}


/* Minimal contact-page notice */

.section--notice-minimal {
  padding-top: clamp(1.25rem, 2.5vw, 2rem);
  padding-bottom: clamp(3rem, 5vw, 4.5rem);
}

.section--notice-minimal .notice-panel {
  display: grid;
  grid-template-columns: minmax(200px, .28fr) minmax(0, .72fr);
  gap: clamp(1.25rem, 3vw, 2.25rem);
  align-items: start;
  padding: clamp(1.15rem, 2vw, 1.75rem);
  border: 1px solid rgba(7, 95, 131, .14);
  border-radius: 22px;
  background:
    linear-gradient(
      135deg,
      rgba(255, 255, 255, .34),
      rgba(233, 247, 252, .16)
    );
  box-shadow: 0 14px 42px rgba(5, 50, 74, .055);
}

.section--notice-minimal .eyebrow {
  margin-bottom: .45rem !important;
  color: #055985 !important;
  font-size: .66rem !important;
  font-weight: 800;
  letter-spacing: .14em;
}

.section--notice-minimal h2 {
  margin: 0;
  color: #0D417C !important;
  font-size: clamp(1.15rem, 1.7vw, 1.55rem);
  line-height: 1.12;
  letter-spacing: -.03em;
  font-weight: 650;
}

.section--notice-minimal .notice-body p {
  max-width: 78ch;
  margin: 0 0 .55rem;
  color: #055985 !important;
  font-size: clamp(.88rem, .95vw, .96rem);
  line-height: 1.55;
}

.section--notice-minimal .official-channels {
  display: grid;
  gap: .35rem;
  margin: .75rem 0 0;
  padding: 0;
  list-style: none;
}

.section--notice-minimal .official-channels li {
  display: flex;
  align-items: baseline;
  gap: .75rem 1.25rem;
  padding-top: .4rem;
  border-top: 1px solid rgba(5, 50, 74, .12);
}

.section--notice-minimal .official-channels span {
  min-width: 68px;
  color: #055985 !important;
  font-size: .78rem;
  font-weight: 800;
}

.section--notice-minimal .official-channels a {
  color: #0D417C;
  font-size: .9rem;
  text-decoration: underline;
  text-underline-offset: .22em;
}

/* Contact */
.section--contact {
  padding-bottom: var(--section-space-compact);
}

.contact-layout {
  grid-template-columns: minmax(300px, .42fr) minmax(420px, .58fr);
  gap: clamp(2rem, 5vw, 5.5rem);
  align-items: stretch;
  color: #063852;
}

.contact-layout h2 {
  color: #063852;
}

.contact-layout p {
  color: rgba(6, 56, 82, .78);
}

.contact-layout .eyebrow {
  color: #1698cf !important;
}

.contact-layout .text-link {
  color: #063852;
  font-weight: 800;
}

.contact-layout .text-link:hover {
  color: #0875a8;
}

.contact-form {
  display: grid;
  gap: 1rem;
  width: 100%;
  max-width: 840px;
  min-height: clamp(18rem, 32vw, 28rem);
  justify-self: end;
  padding: clamp(1.5rem, 3vw, 2.5rem);
  border: 1px solid rgba(6, 56, 82, .12);
  border-radius: 28px;
  background: rgba(255, 255, 255, .18);
  box-shadow: 0 24px 70px rgba(6, 56, 82, .08);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}

.form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem clamp(1rem, 2vw, 1.35rem);
}

.form-field {
  display: grid;
  gap: .42rem;
}

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

.contact-form label {
  color: rgba(6, 56, 82, .78);
  font-size: .85rem;
  font-weight: 800;
}

.contact-form input,
.contact-form textarea,
.contact-form select {
  width: 100%;
  padding: .85rem 0;
  color: #063852;
  background: rgba(255, 255, 255, .42);
  border: 0;
  border-bottom: 1px solid rgba(6, 56, 82, .32);
  border-radius: 0;
  outline: none;
  box-shadow: none;
}

.contact-form input::placeholder,
.contact-form textarea::placeholder {
  color: rgba(6, 56, 82, .45);
}

.contact-form input:focus,
.contact-form textarea:focus,
.contact-form select:focus {
  border-bottom-color: #0875a8;
}

.contact-form textarea {
  min-height: 140px;
  resize: vertical;
}

.contact-form select {
  appearance: none;
  cursor: pointer;
  padding-right: 2rem;
  background-image:
    linear-gradient(45deg, transparent 50%, #063852 50%),
    linear-gradient(135deg, #063852 50%, transparent 50%);
  background-position:
    calc(100% - 16px) 50%,
    calc(100% - 10px) 50%;
  background-size: 6px 6px, 6px 6px;
  background-repeat: no-repeat;
}

.contact-form button:disabled {
  cursor: not-allowed;
  opacity: .65;
}

.form-consent {
  display: flex;
  align-items: flex-start;
  gap: .7rem;
  margin-top: .35rem;
  color: rgba(6, 56, 82, .78);
  font-size: .86rem;
  line-height: 1.45;
}

.form-consent input[type="checkbox"] {
  flex: 0 0 16px;
  width: 16px;
  height: 16px;
  margin: .2rem 0 0;
  padding: 0;
  border: 0;
  accent-color: #0875a8;
}

.form-consent span {
  display: block;
  color: rgba(6, 56, 82, .78);
}

.section--contact .button--primary {
  margin-top: .3rem;
  color: #ffffff;
  background: #1698cf;
  border: 1px solid rgba(22, 152, 207, .25);
  box-shadow: 0 12px 24px rgba(15, 125, 165, .16);
}

.section--contact .button--primary:hover {
  color: #ffffff;
  background: #2aa9d6;
  border-color: rgba(42, 169, 214, .35);
}

.form-note {
  min-height: 1.5rem;
  margin: .3rem 0 0 !important;
  color: rgba(6, 56, 82, .82);
  font-size: .92rem !important;
}

.form-note.is-error {
  color: #9c1f1f;
}

.form-note.is-success {
  color: #0b6b3a;
}

.contact-map {
  width: 100%;
  margin-top: clamp(1.5rem, 3vw, 2.5rem);
  overflow: hidden;
  border: 1px solid rgba(7, 95, 131, .16);
  border-radius: var(--radius-large);
  background: rgba(255, 255, 255, .18);
  box-shadow: var(--shadow-soft);
}

.contact-map iframe {
  display: block;
  width: 100%;
  height: clamp(18rem, 32vw, 28rem);
  border: 0;
  filter: saturate(.9) contrast(1.02);
}

/* Exchange strip */
.exchange-strip {
  width: 100%;
  overflow: hidden;
  padding: clamp(2rem, 4vw, 3.5rem) 0;
  border: 0;
  background: transparent;
}

.exchange-strip--index {
  margin-top: 0;
  padding-top: .35rem;
  background: transparent;
  box-shadow: none;
}

.exchange-strip__track {
  display: flex;
  width: max-content;
  will-change: transform;
  animation: exchange-scroll 52s linear infinite;
}

.exchange-strip__group {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: clamp(3rem, 5vw, 6rem);
  padding-right: clamp(3rem, 5vw, 6rem);
}

.exchange-strip__group span {
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
  color: rgba(5, 50, 74, .28);
  font-size: clamp(calc(1rem + 1px), 1.35vw, calc(1.45rem + 1px));
  font-weight: 900;
  letter-spacing: -0.04em;
  text-transform: uppercase;
}

@keyframes exchange-scroll {
  from { transform: translate3d(0, 0, 0); }
  to { transform: translate3d(-25%, 0, 0); }
}

/* Footer */
.site-footer {
  margin-top: auto;
  padding: 32px 0;
  color: rgba(255, 255, 255, .84);
  background: #155a8a;
  border-top: 1px solid rgba(255, 255, 255, .18);
}

.footer-layout {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: clamp(1.5rem, 5vw, 4rem);
  align-items: center;
}

.footer-brand {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
}

.footer-brand img {
  display: block;
  width: auto;
  height: 46px;
  max-height: 46px;
  object-fit: contain;
}

.footer-content {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1.5rem, 4vw, 3.5rem);
  min-width: 0;
}

.footer-column {
  min-width: 0;
}

.footer-tagline {
  margin: 0 0 .55rem;
  color: rgba(255, 255, 255, .86);
  font-weight: 700;
}

.footer-legal-notice {
  max-width: 760px;
  margin: 0;
  color: rgba(255, 255, 255, .68) !important;
  font-size: .78rem !important;
  line-height: 1.45;
  text-align: left;
}

.footer-linkedin {
  display: inline-flex;
  align-items: center;
  justify-self: end;
  gap: .65rem;
  color: var(--color-white);
  font-weight: 800;
  text-decoration: none;
  white-space: nowrap;
}

.footer-linkedin span {
  border-bottom: 1px solid currentColor;
}

.footer-linkedin svg {
  width: 24px;
  height: 24px;
  fill: currentColor;
}

/* Reveals */
.reveal {
  opacity: 0;
  transform: translateY(18px);
  transition:
    opacity .7s ease,
    transform .7s ease;
}

.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Arrow */
.scroll-more-arrow {
  position: fixed;
  right: clamp(1rem, 3vw, 2rem);
  bottom: clamp(1rem, 3vw, 2rem);
  z-index: 9999;
  width: clamp(3rem, 5vw, 4.25rem);
  height: clamp(3rem, 5vw, 4.25rem);
  display: grid;
  place-items: center;
  color: #ffffff;
  background: rgba(42, 169, 214, 0.96);
  border: 1px solid rgba(255, 255, 255, 0.38);
  border-radius: 999px;
  box-shadow: 0 18px 45px rgba(6, 56, 82, 0.24);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  cursor: pointer;
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  transition:
    opacity 0.25s ease,
    visibility 0.25s ease,
    transform 0.25s ease,
    background 0.25s ease,
    box-shadow 0.25s ease;
}

.scroll-more-arrow span {
  display: block;
  font-size: clamp(1.7rem, 3vw, 2.35rem);
  line-height: 1;
  animation: scrollMoreBounce 1.4s ease-in-out infinite;
}

.scroll-more-arrow:hover {
  background: rgba(22, 152, 207, 0.98);
  box-shadow: 0 20px 48px rgba(6, 56, 82, 0.3);
}

.scroll-more-arrow.is-hidden {
  opacity: 0;
  visibility: hidden;
  transform: translateY(1rem);
  pointer-events: none;
}

@keyframes scrollMoreBounce {
  0%, 100% { transform: translateY(-2px); }
  50% { transform: translateY(4px); }
}

/* =========================
   Responsive
   ========================= */

@media (max-width: 1180px) {
  :root {
    --container: 1180px;
    --container-wide: 1180px;
    --grid-gap: clamp(1.75rem, 4vw, 3rem);
  }

  .container,
  .nav.container,
  .nav {
    width: min(100% - (var(--side-padding) * 2), var(--container));
  }


  .hero-content {
    grid-template-columns: 1fr;
    grid-template-areas:
      "title"
      "subtitle"
      "feature"
      "points"
      "actions"
      "about";
    row-gap: 1.35rem;
  }

  .hero-feature-card,
  .hero-points {
    max-width: none;
    justify-self: stretch;
  }

  .hero-about-inline {
    display: grid;
    grid-template-columns: 1fr;
    row-gap: .75rem;
  }

  .hero-about-inline h2,
  .hero-about-inline > p,
  .hero-about-inline .hero-actions,
  .hero-about-inline > .eyebrow {
    grid-area: auto;
    margin-top: 0 !important;
  }

  .hero-about-inline .hero-actions {
    justify-self: start;
  }

  .index-support {
    margin-top: 0;
  }

  .index-support__inner {
    grid-template-columns: 1fr;
  }

  .index-support__copy {
    order: 1;
    width: auto;
    max-width: 760px;
    margin-left: 0;
    margin-right: 0;
  }

  .index-support__bubbles {
    order: 2;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    transform: none;
  }

  .section--trading > .container {
    grid-template-columns: 1fr;
  }

  .section--trading .section-heading,
  .section--trading .service-grid {
    grid-column: 1;
  }

  .section--trading .section-heading {
    max-width: 860px;
  }

  .section--about .split-layout,
  .foundingvision-layout--with-image,
  .partnership-layout,
  .audience-section,
  .audience-section--firms,
  .contact-layout,
  .notice-panel {
    grid-template-columns: 1fr;
  }

  .partnership-image,
  .partnership-layout .section-copy,
  .partnership-layout .capability-panel,
  .audience-section--firms .section-copy,
  .audience-section--firms .benefit-panel {
    grid-column: auto;
    grid-row: auto;
  }

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

  .capability-panel div:nth-last-child(2) {
    border-bottom: 1px solid rgba(5, 50, 74, .18);
  }

  .contact-form {
    max-width: none;
    justify-self: stretch;
  }


  /* Index page */
  body:not(.subpage) .hero-content {
    grid-template-areas:
      "title"
      "subtitle"
      "feature"
      "points"
      "actions"
      "about";
    row-gap: 1.75rem;
  }

  body:not(.subpage) .hero-about-inline > .eyebrow,
  body:not(.subpage) .hero-about-inline > p:nth-of-type(1),
  body:not(.subpage) .hero-about-inline > p:nth-of-type(2),
  body:not(.subpage) .hero-about-inline > p:nth-of-type(3),
  body:not(.subpage) .hero-about-inline > p:nth-of-type(4) {
    margin-top: 0 !important;
  }

  body:not(.subpage) .hero-points {
    max-width: none;
    justify-self: stretch;
  }
}

@media (max-width: 980px) {
  :root {
    --side-padding: 1.25rem;
    --section-space: clamp(4.25rem, 9vw, 6rem);
  }

  .brand-icon {
    height: 32px !important;
    max-height: 32px !important;
  }

  .brand-logo {
    height: 21px !important;
    max-height: 21px !important;
  }

  .nav-toggle {
    display: block;
    flex: 0 0 44px;
  }

  .nav-menu {
    position: fixed;
    inset: var(--nav-height) 0 auto 0;
    display: grid;
    gap: 0;
    width: 100%;
    padding: 1rem var(--side-padding) 1.5rem;
    margin-left: 0;
    background: rgba(5, 50, 74, 0.72);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    border-bottom: 1px solid rgba(255, 255, 255, .14);
    transform: translateY(-120%);
    opacity: 0;
    pointer-events: none;
    transition:
      transform .25s ease,
      opacity .25s ease;
  }

  .nav-menu.is-open {
    transform: translateY(0);
    opacity: 1;
    pointer-events: auto;
  }


  .nav-indicator {
    display: none;
  }


  .hero {
    min-height: auto;
    padding-top: calc(var(--nav-height) + clamp(4.5rem, 16vw, 6rem));
  }

  .hero-feature-card {
    margin: 2rem 0 0;
  }

  .hero-feature-card__image {
    height: clamp(12rem, 52vw, 18rem);
  }

  .split-layout,
  .contact-layout,
  .foundingvision-layout--with-image,
  .notice-panel,
  .partnership-layout,
  .careers-layout--with-image,
  .section--about .split-layout {
    grid-template-columns: 1fr;
  }

  .partnership-image,
  .partnership-layout .capability-panel,
  .partnership-layout .section-copy,
  .careers-layout--with-image .section-copy,
  .careers-layout--with-image .careers-aside,
  .careers-image {
    grid-column: auto;
    grid-row: auto;
  }

  .careers-layout--with-image {
    row-gap: clamp(1.5rem, 4vw, 2.5rem);
  }

  .careers-layout--with-image .careers-aside {
    transform: none;
    margin-bottom: 0;
  }

  .partnership-layout .section-copy,
  .careers-layout--with-image .section-copy,
  .foundingvision-layout--with-image .section-copy,
  .section--about .section-copy {
    max-width: 760px;
  }

  .careers-image,
  .foundingvision-image {
    min-height: auto;
  }

  .careers-aside {
    grid-template-columns: 1fr;
  }

  .partnership-image img,
  .careers-image img,
  .foundingvision-image img {
    aspect-ratio: 16 / 10;
    min-height: 260px;
  }


  /* Navigation */
  .nav-menu .nav-link,
  .nav-menu .nav-link--cta {
    width: fit-content;
    margin: 0;
    padding: .88rem 0;
    line-height: 1.6;
    position: relative;
    transform: none;
  }

  /* Index page */
  body:not(.subpage) .hero-feature-card__image {
    height: clamp(15rem, 58vw, 24rem);
  }

  /* Careers page */
  body.subpage .section--careers .careers-layout--with-image .careers-image {
    position: relative;
    top: auto;
    right: auto;
    width: 100%;
  }

  body.subpage .section--open-positions {
    padding-top: 3cm;
  }

  body.subpage .section--open-positions .job-panel {
    column-count: 1;
  }
}

@media (max-width: 760px) {
  body.subpage main {
    padding-top: clamp(4.5rem, 16vw, 6rem);
  }

  .hero {
    padding-top: calc(var(--nav-height) + 2rem);
  }

  .service-grid,
  .benefit-list,
  .form-grid,
  .index-support__bubbles {
    grid-template-columns: 1fr;
  }

  .notice-panel,
  .benefit-panel,
  .contact-form {
    padding: clamp(1.25rem, 6vw, 2rem);
  }

  .contact-map iframe {
    height: clamp(16rem, 70vw, 24rem);
  }


  /* Minimal contact-page notice */
  .section--notice-minimal .notice-panel {
    grid-template-columns: 1fr;
  }

  .section--notice-minimal .official-channels li {
    flex-direction: column;
    align-items: flex-start;
    gap: .15rem;
  }
}

@media (max-width: 640px) {
  :root {
    --side-padding: .875rem;
    --section-space: clamp(4rem, 14vw, 5.5rem);
    --radius-large: 22px;
  }

  .brand {
    gap: .45rem;
  }

  .brand-icon {
    height: 30px !important;
    max-height: 30px !important;
  }

  .brand-logo {
    height: 19px !important;
    max-height: 19px !important;
  }

  .section h2 {
    font-size: clamp(2rem, 12vw, 3.4rem);
  }

  .hero-title-brand {
    font-size: clamp(3rem, 17vw, 4.8rem);
  }

  .hero-title-main {
    font-size: clamp(2.1rem, 11vw, 3.4rem);
  }

  .hero-subtitle {
    font-size: clamp(1.05rem, 5vw, 1.35rem) !important;
  }

  .hero-actions {
    align-items: stretch;
    flex-direction: column;
    max-width: 280px;
  }

  .fact-item {
    grid-template-columns: 1fr;
    gap: .35rem;
  }

  .fact-value,
  .fact-label {
    font-size: clamp(1.15rem, 7vw, 1.8rem);
  }

  .capability-panel,
  .careers-aside {
    display: block;
    padding-left: 0;
    border-left: 0;
  }

  .capability-panel span {
    left: 0;
    width: 100%;
  }

  .partnership-image img,
  .careers-image img,
  .foundingvision-image img {
    aspect-ratio: 4 / 3;
    min-height: 220px;
  }

  .official-channels li {
    align-items: flex-start;
    flex-direction: column;
  }

  .footer-layout {
    grid-template-columns: 1fr;
    grid-template-areas:
      "brand"
      "tagline"
      "legal"
      "linkedin";
    align-items: flex-start;
    gap: .85rem;
  }

  .footer-linkedin {
    justify-self: start;
    margin-left: 0;
  }

  .footer-legal-notice {
    max-width: none;
    text-align: left;
  }
}

/* =========================
   Legal pages
   ========================= */

body.legal-page main {
  padding-top: calc(var(--nav-height) + clamp(3rem, 5vw, 4rem));
}

.section--legal-hero {
  padding-top: clamp(2.5rem, 5vw, 4rem);
  padding-bottom: clamp(1.5rem, 3vw, 2.5rem);
}

.legal-hero__inner {
  max-width: 1040px;
}

.section--legal-hero h1 {
  max-width: 980px;
  margin: 0 0 clamp(1rem, 2vw, 1.4rem);
  color: var(--color-heading-primary);
  font-size: clamp(2.4rem, 5.2vw, 5.4rem);
  line-height: .96;
  letter-spacing: -.055em;
  text-wrap: balance;
}

.legal-intro {
  max-width: 82ch;
  margin: 0 0 1rem;
  color: var(--color-body-copy) !important;
  font-size: clamp(1rem, 1.25vw, 1.2rem) !important;
  line-height: 1.55;
}

.legal-meta {
  max-width: none;
  margin: 0;
  color: rgba(5, 89, 133, .72) !important;
  font-size: .9rem !important;
  font-weight: 800;
}

.section--legal-content {
  padding-top: clamp(1rem, 2vw, 1.5rem);
  padding-bottom: clamp(4rem, 7vw, 6rem);
}

.legal-layout {
  display: grid;
  grid-template-columns: minmax(240px, .25fr) minmax(0, .75fr);
  gap: clamp(2rem, 4vw, 4.5rem);
  align-items: start;
}

.legal-aside {
  position: sticky;
  top: calc(var(--nav-height) + 1.5rem);
  display: grid;
  gap: 1rem;
  align-self: start;
}

.legal-toc,
.legal-card,
.legal-document {
  border: 1px solid rgba(7, 95, 131, .16);
  background: linear-gradient(135deg, rgba(255, 255, 255, .58), rgba(233, 247, 252, .28));
  box-shadow: 0 20px 58px rgba(5, 50, 74, .07);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}

.legal-toc,
.legal-card {
  padding: clamp(1rem, 2vw, 1.35rem);
  border-radius: 22px;
}

.legal-toc p {
  margin: 0 0 .75rem;
  color: var(--color-heading-tertiary) !important;
  font-size: .78rem !important;
  font-weight: 900;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.legal-toc a {
  display: block;
  padding: .55rem 0;
  color: var(--color-blue-900);
  font-size: .92rem;
  font-weight: 800;
  line-height: 1.25;
  border-top: 1px solid rgba(5, 50, 74, .12);
}

.legal-toc a:hover,
.legal-toc a:focus-visible,
.legal-card a:hover,
.legal-card a:focus-visible,
.footer-legal-links a:hover,
.footer-legal-links a:focus-visible {
  text-decoration: underline;
  text-underline-offset: .22em;
}

.legal-card h2 {
  margin: 0 0 .65rem;
  color: var(--color-heading-primary);
  font-size: 1.05rem;
  line-height: 1.2;
  letter-spacing: -.025em;
}

.legal-card p {
  margin: 0 0 .65rem;
  color: var(--color-body-copy) !important;
  font-size: .9rem !important;
  line-height: 1.5;
}

.legal-card p:last-child {
  margin-bottom: 0;
}

.legal-card a {
  color: var(--color-blue-900);
  font-weight: 900;
}

.legal-document {
  overflow: hidden;
  padding: clamp(1.35rem, 3vw, 2.5rem);
  border-radius: var(--radius-large);
}

.legal-document section {
  padding: clamp(1.4rem, 2.8vw, 2.15rem) 0;
  border-bottom: 1px solid rgba(5, 50, 74, .14);
}

.legal-document section:first-child {
  padding-top: 0;
}

.legal-document section:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

.legal-document h2 {
  max-width: 880px;
  margin: 0 0 1rem;
  color: var(--color-heading-primary);
  font-size: clamp(1.45rem, 2.3vw, 2.25rem);
  line-height: 1.08;
  letter-spacing: -.04em;
}

.legal-document h3 {
  margin: 1.2rem 0 .45rem;
  color: var(--color-heading-tertiary);
  font-size: clamp(1rem, 1.25vw, 1.18rem);
  line-height: 1.18;
  letter-spacing: -.025em;
}

.legal-document p,
.legal-document li,
.legal-document td,
.legal-document th {
  color: var(--color-body-copy);
  font-size: clamp(.94rem, 1vw, 1.02rem);
  line-height: 1.58;
}

.legal-document p {
  max-width: 88ch;
  margin: 0 0 1rem;
}

.legal-list {
  display: grid;
  gap: .55rem;
  max-width: 88ch;
  margin: .75rem 0 1.2rem;
  padding: 0;
  list-style: none;
}

.legal-list li {
  position: relative;
  padding-left: 1.15rem;
}

.legal-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .72em;
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: var(--color-blue-700);
}

.legal-list--compact {
  gap: .35rem;
}

.legal-table {
  width: 100%;
  max-width: 100%;
  margin: 1rem 0 1.25rem;
  overflow-x: auto;
  border: 1px solid rgba(5, 50, 74, .14);
  border-radius: 18px;
  background: rgba(255, 255, 255, .35);
}

.legal-table table {
  width: 100%;
  min-width: 720px;
  border-collapse: collapse;
}

.legal-table th,
.legal-table td {
  padding: .85rem 1rem;
  text-align: left;
  vertical-align: top;
  border-bottom: 1px solid rgba(5, 50, 74, .12);
}

.legal-table th {
  color: var(--color-heading-tertiary);
  font-size: .82rem;
  font-weight: 900;
  letter-spacing: .06em;
  text-transform: uppercase;
  background: rgba(233, 247, 252, .52);
}

.legal-table tr:last-child td {
  border-bottom: 0;
}

.legal-note {
  max-width: 88ch;
  padding: .9rem 1rem;
  border-left: 3px solid rgba(11, 127, 166, .64);
  border-radius: 12px;
  background: rgba(255, 255, 255, .42);
  font-size: .94rem !important;
}

.footer-legal-links {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem 1rem;
  margin-top: .85rem;
}

.footer-legal-links a {
  color: rgba(255, 255, 255, .78);
  font-size: .78rem;
  font-weight: 800;
  text-decoration: none;
}

/* =========================
   Homepage compliance popup and cookie banner
   ========================= */

body.modal-open {
  overflow: hidden;
}

.compliance-modal[hidden],
.cookie-banner[hidden] {
  display: none !important;
}

.compliance-modal {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: grid;
  place-items: center;
  padding: clamp(1rem, 4vw, 2rem);
}

.compliance-modal__overlay {
  position: absolute;
  inset: 0;
  background: rgba(5, 50, 74, .62);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.compliance-modal__dialog {
  position: relative;
  width: min(100%, 720px);
  padding: clamp(1.35rem, 3vw, 2rem);
  color: var(--color-body-copy);
  border: 1px solid rgba(255, 255, 255, .56);
  border-radius: 28px;
  background: linear-gradient(135deg, rgba(255, 255, 255, .96), rgba(233, 247, 252, .9));
  box-shadow: 0 30px 90px rgba(5, 50, 74, .28);
}

.compliance-modal__close {
  position: absolute;
  top: .85rem;
  right: .85rem;
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  color: var(--color-blue-900);
  border: 1px solid rgba(5, 50, 74, .14);
  border-radius: 999px;
  background: rgba(255, 255, 255, .62);
  cursor: pointer;
}

.compliance-modal__dialog h2 {
  max-width: 620px;
  margin: 0 2.5rem 1rem 0;
  color: var(--color-heading-primary);
  font-size: clamp(1.65rem, 3.2vw, 2.65rem);
  line-height: 1;
  letter-spacing: -.045em;
}

.compliance-modal__dialog p {
  max-width: 68ch;
  margin: 0 0 .85rem;
  color: var(--color-body-copy) !important;
  font-size: clamp(.94rem, 1vw, 1.02rem) !important;
  line-height: 1.55;
}

.compliance-modal__channels {
  display: grid;
  gap: .35rem;
  margin: 1rem 0 1.25rem;
  padding: 0;
  list-style: none;
}

.compliance-modal__channels li {
  display: flex;
  gap: .75rem;
  align-items: baseline;
  padding-top: .45rem;
  border-top: 1px solid rgba(5, 50, 74, .12);
}

.compliance-modal__channels span {
  min-width: 5.4rem;
  color: var(--color-heading-tertiary);
  font-weight: 900;
}

.compliance-modal__channels a {
  color: var(--color-blue-900);
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: .22em;
}

.compliance-modal__actions,
.cookie-banner__actions {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  align-items: center;
}

.compliance-modal .button--primary,
.cookie-banner .button--primary {
  color: #ffffff;
  background: linear-gradient(135deg, #2aa9d6, #1698cf);
  border-color: transparent;
  box-shadow: 0 12px 24px rgba(15, 125, 165, .18);
}

.cookie-banner {
  position: fixed;
  left: clamp(.875rem, 2vw, 1.5rem);
  right: clamp(.875rem, 2vw, 1.5rem);
  bottom: clamp(.875rem, 2vw, 1.5rem);
  z-index: 9998;
  max-width: 980px;
  margin-inline: auto;
  padding: clamp(1rem, 2vw, 1.35rem);
  border: 1px solid rgba(255, 255, 255, .52);
  border-radius: 24px;
  background: linear-gradient(135deg, rgba(255, 255, 255, .96), rgba(233, 247, 252, .9));
  box-shadow: 0 24px 70px rgba(5, 50, 74, .22);
}

.cookie-banner h2 {
  margin: 0 0 .5rem;
  color: var(--color-heading-primary);
  font-size: clamp(1.05rem, 1.5vw, 1.35rem);
  line-height: 1.12;
  letter-spacing: -.03em;
}

.cookie-banner p {
  max-width: 84ch;
  margin: 0 0 .85rem;
  color: var(--color-body-copy) !important;
  font-size: .9rem !important;
  line-height: 1.5;
}

.cookie-banner__link {
  color: var(--color-blue-900);
  font-weight: 900;
  text-decoration: underline;
  text-underline-offset: .22em;
}

@media (max-width: 1180px) {
  .legal-layout {
    grid-template-columns: 1fr;
  }

  .legal-aside {
    position: static;
    grid-template-columns: minmax(0, 1fr) minmax(260px, .45fr);
  }
}

@media (max-width: 760px) {
  body.legal-page main {
    padding-top: calc(var(--nav-height) + 1.5rem);
  }

  .legal-aside {
    grid-template-columns: 1fr;
  }

  .legal-toc {
    display: none;
  }

  .legal-document {
    padding: clamp(1rem, 5vw, 1.35rem);
  }

  .compliance-modal__channels li {
    display: grid;
    gap: .15rem;
  }

  .compliance-modal__channels span {
    min-width: 0;
  }

  .compliance-modal__actions,
  .cookie-banner__actions {
    align-items: stretch;
    flex-direction: column;
  }

  .compliance-modal__actions .button,
  .cookie-banner__actions .button {
    width: 100%;
  }
}
