.elementor-6779 .elementor-element.elementor-element-9a1d568{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-6779 .elementor-element.elementor-element-ff72fe3{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--overlay-opacity:1;--margin-top:0rem;--margin-bottom:0rem;--margin-left:0rem;--margin-right:0rem;--padding-top:5rem;--padding-bottom:5rem;--padding-left:0rem;--padding-right:0rem;}.elementor-6779 .elementor-element.elementor-element-ff72fe3:not(.elementor-motion-effects-element-type-background), .elementor-6779 .elementor-element.elementor-element-ff72fe3 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#00485D;}.elementor-6779 .elementor-element.elementor-element-ff72fe3::before, .elementor-6779 .elementor-element.elementor-element-ff72fe3 > .elementor-background-video-container::before, .elementor-6779 .elementor-element.elementor-element-ff72fe3 > .e-con-inner > .elementor-background-video-container::before, .elementor-6779 .elementor-element.elementor-element-ff72fe3 > .elementor-background-slideshow::before, .elementor-6779 .elementor-element.elementor-element-ff72fe3 > .e-con-inner > .elementor-background-slideshow::before, .elementor-6779 .elementor-element.elementor-element-ff72fe3 > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{--background-overlay:'';}.elementor-6779 .elementor-element.elementor-element-435e17e{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:space-between;--align-items:flex-start;--gap:32px 0px;--row-gap:32px;--column-gap:0px;--flex-wrap:nowrap;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-6779 .elementor-element.elementor-element-933cc78{--display:flex;--border-radius:12px 12px 12px 12px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-6779 .elementor-element.elementor-element-933cc78:not(.elementor-motion-effects-element-type-background), .elementor-6779 .elementor-element.elementor-element-933cc78 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#00485D;}@media(min-width:768px){.elementor-6779 .elementor-element.elementor-element-9a1d568{--content-width:100%;}.elementor-6779 .elementor-element.elementor-element-435e17e{--width:100%;}}@media(max-width:1024px){.elementor-6779 .elementor-element.elementor-element-ff72fe3{--padding-top:2rem;--padding-bottom:2rem;--padding-left:2rem;--padding-right:2rem;}.elementor-6779 .elementor-element.elementor-element-933cc78{--padding-top:16px;--padding-bottom:16px;--padding-left:16px;--padding-right:16px;}}@media(max-width:767px){.elementor-6779 .elementor-element.elementor-element-ff72fe3{--padding-top:0rem;--padding-bottom:0rem;--padding-left:0rem;--padding-right:0rem;}.elementor-6779 .elementor-element.elementor-element-435e17e{--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-6779 .elementor-element.elementor-element-933cc78{--margin-top:2rem;--margin-bottom:0rem;--margin-left:0rem;--margin-right:0rem;--padding-top:0rem;--padding-bottom:0rem;--padding-left:0rem;--padding-right:0rem;}}/* Start custom CSS for html, class: .elementor-element-4b22c7b *//* ==========================================================================
   Tokens
   ========================================================================== */
:root {
  --font-heading: Montserrat, sans-serif;
  --font-body: Mulish, sans-serif;

  --bg: #FBFBFB;
  --ink: #332F2D;
  --body-text: #5C5A58;
  --muted: #7A7876;
  --muted-2: #9B9997;

  --teal: #48A5AA;
  --teal-pale: #D3E8E9;
  --navy: #00485D;
  --navy-dark: #00374A;
  --white: #FFFFFF;

  --border: #E2E0DE;
  --border-light: #EAE8E6;
  --border-input: #C4C2C0;
  --line: #DCD8D5;

  --footer-bg: #141312;
  --photo-bg: #F4F2F1;

  --ease: cubic-bezier(.4, 0, .2, 1);
}

/* ==========================================================================
   Reset & base
   ========================================================================== */
html, body { margin: 0; padding: 0; }
body { background: var(--bg); -webkit-font-smoothing: antialiased; }
::selection { background: var(--teal); color: var(--white); }
a { color: var(--navy); text-decoration: none; }
a:hover { color: var(--teal); }

/* ==========================================================================
   Keyframes
   ========================================================================== */
@keyframes webDrift { from { stroke-dashoffset: 0; } to { stroke-dashoffset: -220; } }
@keyframes webGlide { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }
@keyframes webPulse { 0%, 100% { opacity: .22; } 50% { opacity: 1; } }
@keyframes webTravel { 0% { transform: translateY(0); } 50% { transform: translateY(310px); } 100% { transform: translateY(0); } }
@keyframes webRide { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(288px); } }
@keyframes webSlideX { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(340px); } }
@keyframes webSlideY { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(340px); } }
@keyframes webBreathe { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.028); } }
@keyframes webSettle { 0%, 100% { opacity: .35; } 50% { opacity: 1; } }

@media (prefers-reduced-motion: reduce) {
  [data-figure] * { animation: none !important; }
}

/* ==========================================================================
   Page
   ========================================================================== */
.page {
  background: var(--bg);
  color: var(--ink);
  font-family: var(--font-body);
  overflow-x: hidden;
}

/* ==========================================================================
   Shared components
   ========================================================================== */
.text-accent { color: var(--teal); }

.eyebrow { display: flex; align-items: baseline; gap: 14px; margin-bottom: 20px; }
.eyebrow__mark { font: 700 11px/1 var(--font-body); color: var(--teal); letter-spacing: .2em; }
.eyebrow__label { font: 600 11px/1.4 var(--font-body); letter-spacing: .2em; text-transform: uppercase; color: var(--muted); }
.eyebrow__label--light { color: rgba(255, 255, 255, .55); }

.btn {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font: 700 12.5px/1 var(--font-body);
  letter-spacing: .08em;
  text-transform: uppercase;
}
.btn--primary {
  background: var(--navy);
  color: var(--white) !important;
  padding: 19px 30px;
  transition: background .35s ease, transform .35s ease, box-shadow .35s ease;
}
.btn--primary:hover {
  background: var(--teal);
  color: var(--white) !important;
  transform: translateY(-4px);
  box-shadow: 0 10px 24px rgba(0, 72, 93, .35);
}
.btn--primary:hover .btn__glyph { transform: rotate(135deg); }

.btn--text {
  position: relative;
  gap: 10px;
  color: var(--ink) !important;
  transition: color .3s ease;
}
.btn--text::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: -4px;
  width: 0;
  height: 1px;
  background: currentColor;
  transition: width .35s ease;
}
.btn--text:hover { color: var(--teal) !important; }
.btn--text:hover::after { width: 100%; }

.btn__glyph { display: inline-block; transition: transform .35s ease; }

.stat { font: 700 clamp(16px, 1.4vw, 21px)/1 var(--font-heading); color: var(--ink); letter-spacing: -.02em; }
.stat__label { font: 400 11px/1 var(--font-body); color: var(--muted); letter-spacing: .14em; text-transform: uppercase; }
.badge { font: 400 11px/1.5 var(--font-body); color: var(--muted); letter-spacing: .14em; text-transform: uppercase; }

/* ==========================================================================
   Hero
   ========================================================================== */
.hero {
  max-width: 1360px;
  margin: 0 auto;
  /* same top and bottom padding (2-value shorthand) so the meta row
     keeps matching breathing room below it, same as the header above */
  padding: clamp(28px, 5vh, 70px) clamp(20px, 4.5vw, 64px);
  position: relative;
  min-height: calc(100svh - var(--header-h, 72px));
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
/* grows to fill whatever space is left above the meta row, then centers
   the eyebrow/title/lead/figure inside that space — so the title block is
   centered between the header and the meta row, not the whole hero */
.hero__main {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: relative;
}

/* sits above the figure so the text and CTAs read on top of it, same as
   the animated graphic on the Operational & Strategic Vision page */
.hero__content { position: relative; z-index: 1; }

.hero__eyebrow { margin-bottom: clamp(20px, 4vh, 54px); }

.hero__title {
  font-family: var(--font-heading);
  font-weight: 700;
  /* capped by vh as well as vw: on a short viewport the title (and
     therefore the whole stack down to the meta row) shrinks so the hero
     still fits inside one screen instead of pushing the meta row below it */
  font-size: clamp(31px, min(5.1vw, 7vh), 74px);
  line-height: 1.04;
  letter-spacing: -.038em;
  color: var(--ink);
  margin: 0;
}
.hero__title-line { display: block; }
.hero__title-line--accent { color: var(--teal); }

.hero__lead {
  margin: clamp(24px, 3.4vh, 40px) 0 0;
  font: 400 clamp(14px, 1.15vw, 16.5px)/1.48 var(--font-body);
  color: var(--body-text);
  max-width: 47ch;
  text-wrap: pretty;
}

.hero__actions {
  margin-top: clamp(26px, 3.4vh, 42px);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px clamp(20px, 3vw, 36px);
}

/* decorative background composition: sits behind .hero__content (z-index
   0 vs 1) and scales fluidly so it never pushes the text around — at every
   width, including tablet/mobile, the text simply sits on top of it
   instead of the two stacking one above the other */
.hero__figure {
  position: absolute;
  top: 50%;
  right: -4%;
  transform: translateY(-50%);
  width: min(640px, 58vw);
  z-index: 0;
  pointer-events: none;
}
.hero__figure-svg { width: 100%; height: auto; display: block; overflow: visible; }
.hero__figure-lines { stroke: var(--line); stroke-width: 1; fill: none; }
.hero__figure-line { stroke-dasharray: 3 9; }
.hero__figure-row-rect { fill: var(--bg); stroke: var(--border); stroke-width: 1; }
.hero__figure-frame { fill: var(--bg); stroke: var(--teal); stroke-width: 1; }
.hero__figure-band { fill: var(--bg); stroke: var(--navy); stroke-width: 1; }
.hero__figure-node { fill: var(--teal); }

.anim-drift-1 { animation: webDrift 46s linear infinite; }
.anim-drift-2 { animation: webDrift 58s linear infinite reverse; }
.anim-drift-3 { animation: webDrift 52s linear infinite; }
.anim-glide-1 { animation: webGlide 20s ease-in-out infinite; }
.anim-glide-2 { animation: webGlide 26s ease-in-out infinite reverse; }
.anim-glide-3 { animation: webGlide 30s ease-in-out infinite; }
.anim-glide-4 { animation: webGlide 34s ease-in-out infinite reverse; }
.anim-breathe { transform-origin: 280px 212px; animation: webBreathe 24s ease-in-out infinite; }
.anim-ride-1 { animation: webRide 30s ease-in-out infinite; }
.anim-ride-2 { animation: webRide 38s ease-in-out infinite reverse; }
.anim-ride-3 { animation: webRide 34s ease-in-out infinite; }

.hero__meta-wrap { margin-top: clamp(36px, 5.5vh, 80px); border-top: 1px solid var(--border); padding-top: 4px; }
.hero__meta {
  border-top: 1px solid var(--border);
  padding-top: clamp(16px, 2vh, 24px);
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px clamp(20px, 3.4vw, 52px);
}
.hero__meta-stats { display: flex; flex-wrap: wrap; align-items: baseline; gap: 12px clamp(20px, 3.4vw, 50px); }
.hero__meta-badges { display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px clamp(16px, 2.4vw, 34px); }

/* ==========================================================================
   Moves ("What a migration really moves")
   ========================================================================== */
.moves { max-width: 1360px; margin: 0 auto; padding: clamp(60px, 8vw, 124px) clamp(20px, 4.5vw, 64px) 0; }
.moves__eyebrow { margin-bottom: clamp(22px, 3vw, 38px); }

.moves__row {
  display: grid;
  grid-template-columns: minmax(0, .3fr) minmax(0, 1fr);
  gap: clamp(12px, 4vw, 72px);
  align-items: start;
  border-top: 1px solid var(--border);
  padding: clamp(20px, 2.4vw, 30px) 0;
}
.moves__row--final { border-bottom: 1px solid var(--border); padding: clamp(24px, 3vw, 40px) 0; }
.moves__row-label { font: 600 11px/1.4 var(--font-body); letter-spacing: .2em; text-transform: uppercase; color: var(--ink); }
.moves__row-label--accent { color: var(--teal); }

.moves__tags { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0 clamp(16px, 2.4vw, 36px); }
.moves__tags--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.moves__tag { font: 400 13px/1.3 var(--font-body); color: var(--body-text); padding: 11px 0; border-top: 1px solid var(--border-light); }
.moves__tag--active { font: 600 13px/1.3 var(--font-body); color: var(--ink); border-top: 1px solid var(--teal); }

.moves__statement {
  margin: 0;
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: clamp(18px, 1.7vw, 27px);
  line-height: 1.24;
  letter-spacing: -.024em;
  color: var(--ink);
  max-width: 36ch;
  text-wrap: pretty;
}

/* ==========================================================================
   Challenge (01)
   ========================================================================== */
.challenge { max-width: 1360px; margin: 0 auto; padding: clamp(68px, 9vw, 150px) clamp(20px, 4.5vw, 64px) 0; }

.challenge__grid {
  display: grid;
  grid-template-columns: minmax(0, .36fr) minmax(0, 1fr);
  gap: clamp(30px, 5vw, 80px);
  align-items: start;
}
.challenge__sticky { position: sticky; top: 56px; }

.challenge__title {
  margin: 0;
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: clamp(26px, 2.9vw, 42px);
  line-height: 1.08;
  letter-spacing: -.032em;
  color: var(--ink);
  text-wrap: pretty;
}
.challenge__lead { margin: 20px 0 0; font: 400 13.5px/1.54 var(--font-body); color: var(--body-text); max-width: 38ch; text-wrap: pretty; }

.challenge__rail { padding-left: clamp(0px, 7vw, 120px); }
.challenge__intro { margin: 0 0 clamp(26px, 3.4vw, 46px); font: 400 clamp(15px, 1.3vw, 18.5px)/1.52 var(--font-body); color: var(--ink); max-width: 52ch; text-wrap: pretty; }

.challenge__row {
  display: flex;
  align-items: flex-start;
  gap: clamp(16px, 2vw, 30px);
  padding: clamp(18px, 2vw, 26px) 0;
  border-bottom: 1px solid var(--border);
}
.challenge__row--first { padding-top: 0; }
.challenge__row--last { border-bottom: none; }
.challenge__num {
  font: 800 clamp(24px, 2.6vw, 36px)/.85 var(--font-heading);
  color: var(--teal-pale);
  letter-spacing: -.04em;
  flex-shrink: 0;
  font-variant-numeric: tabular-nums;
  width: 2.3ch;
  transition: color .45s var(--ease);
}
.challenge__row-title {
  margin: 0;
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: clamp(16.5px, 1.45vw, 22px);
  line-height: 1.28;
  letter-spacing: -.02em;
  color: var(--ink);
  max-width: 42ch;
  text-wrap: pretty;
}

.challenge__closing { margin-top: clamp(54px, 7vw, 108px); border-top: 1px solid var(--border); padding-top: 4px; }
.challenge__closing-inner { border-top: 1px solid var(--border); padding-top: clamp(26px, 3.4vw, 46px); }
.challenge__closing-text {
  margin: 0;
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: clamp(23px, 3.3vw, 48px);
  line-height: 1.16;
  letter-spacing: -.032em;
  color: var(--ink);
  max-width: 30ch;
  text-wrap: pretty;
}

/* ==========================================================================
   Solution (02, dark)
   ========================================================================== */
.solution { margin-top: clamp(68px, 9vw, 150px); background: var(--navy); color: var(--white); }
.solution__inner { max-width: 1360px; margin: 0 auto; padding: clamp(56px, 7vw, 112px) clamp(20px, 4.5vw, 64px); }

.solution__intro {
  display: grid;
  grid-template-columns: minmax(0, .36fr) minmax(0, 1fr);
  gap: clamp(26px, 5vw, 80px);
  align-items: end;
}
.solution__title {
  margin: 0;
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: clamp(26px, 3.1vw, 44px);
  line-height: 1.06;
  letter-spacing: -.034em;
  color: var(--white);
  text-wrap: pretty;
}
.solution__lead { margin: 0; font: 400 clamp(14px, 1.2vw, 17px)/1.54 var(--font-body); color: rgba(255, 255, 255, .78); max-width: 46ch; text-wrap: pretty; }

.solution__cards {
  margin-top: clamp(38px, 5.5vw, 86px);
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(24px, 3.2vw, 54px);
}
.solution__card { border-top: 1px solid rgba(255, 255, 255, .28); padding-top: clamp(18px, 2.2vw, 28px); }
.solution__card--highlight { border-top: 1px solid var(--teal); }
.solution__card-num {
  display: block;
  font: 600 10.5px/1.4 var(--font-body);
  letter-spacing: .2em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .42);
  margin-bottom: clamp(20px, 2.6vw, 36px);
}
.solution__card-num--highlight { display: flex; align-items: baseline; gap: 12px; color: var(--teal); }
.solution__card-title { margin: 0 0 12px; font-family: var(--font-heading); font-weight: 700; font-size: clamp(19px, 1.7vw, 26px); line-height: 1.2; letter-spacing: -.024em; color: var(--white); }
.solution__card-text { margin: 0; font: 400 13.5px/1.52 var(--font-body); color: rgba(255, 255, 255, .72); max-width: 34ch; text-wrap: pretty; }
.solution__card-text--highlight { color: rgba(255, 255, 255, .82); }

/* ==========================================================================
   Process (03, "How It Works")
   ========================================================================== */
.process { max-width: 1360px; margin: 0 auto; padding: clamp(68px, 9vw, 150px) clamp(20px, 4.5vw, 64px) 0; }

.process__head {
  display: grid;
  grid-template-columns: minmax(0, .36fr) minmax(0, 1fr);
  gap: clamp(26px, 5vw, 80px);
  align-items: end;
  margin-bottom: clamp(36px, 5vw, 78px);
}
.process__title {
  margin: 0;
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: clamp(26px, 3.1vw, 44px);
  line-height: 1.06;
  letter-spacing: -.034em;
  color: var(--ink);
  text-wrap: pretty;
}
.process__intro { margin: 0; font: 400 clamp(14px, 1.2vw, 17px)/1.54 var(--font-body); color: var(--body-text); max-width: 40ch; text-wrap: pretty; }

.process__phase {
  display: grid;
  grid-template-columns: minmax(0, .36fr) minmax(0, 1fr);
  gap: clamp(18px, 5vw, 80px);
  align-items: start;
  border-top: 1px solid var(--border);
  padding: clamp(28px, 3.6vw, 56px) 0;
}
.process__phase--last { border-bottom: 1px solid var(--border); }

.process__phase-head { display: flex; align-items: flex-start; gap: clamp(14px, 1.6vw, 22px); }
.process__num {
  font: 800 clamp(34px, 4.4vw, 66px)/.8 var(--font-heading);
  color: var(--teal-pale);
  letter-spacing: -.05em;
  flex-shrink: 0;
  font-variant-numeric: tabular-nums;
  width: 2.3ch;
  transition: color .45s var(--ease);
}
.process__num--active { color: var(--teal); }
.process__phase-title {
  margin: 0;
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: clamp(19px, 1.75vw, 27px);
  line-height: 1.16;
  letter-spacing: -.026em;
  color: var(--ink);
  max-width: 20ch;
  text-wrap: pretty;
}

.process__phase-lead { margin: 0 0 clamp(22px, 2.6vw, 36px); font: 400 clamp(14px, 1.15vw, 16.5px)/1.54 var(--font-body); color: var(--ink); max-width: 52ch; text-wrap: pretty; }
.process__phase-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(18px, 2.6vw, 44px); }
.process__phase-item { border-top: 1px solid var(--border); padding-top: 14px; }
.process__phase-item-label { display: block; font: 600 11px/1.4 var(--font-body); letter-spacing: .14em; text-transform: uppercase; color: var(--teal); margin-bottom: 8px; }
.process__phase-item-text { margin: 0; font: 400 13px/1.48 var(--font-body); color: var(--body-text); text-wrap: pretty; }

/* ==========================================================================
   Benefits (04)
   ========================================================================== */
.benefits { max-width: 1360px; margin: 0 auto; padding: clamp(68px, 9vw, 150px) clamp(20px, 4.5vw, 64px) 0; }
.benefits__title {
  margin: 0 0 clamp(34px, 4.6vw, 72px);
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: clamp(26px, 3.1vw, 44px);
  line-height: 1.06;
  letter-spacing: -.034em;
  color: var(--ink);
  max-width: 22ch;
  text-wrap: pretty;
}
.benefits__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 clamp(28px, 5vw, 88px); }
.benefits__item { display: flex; align-items: flex-start; gap: clamp(16px, 2vw, 28px); border-top: 1px solid var(--border); padding: clamp(22px, 2.6vw, 34px) 0; }
.benefits__num {
  font: 800 clamp(20px, 1.9vw, 28px)/.9 var(--font-heading);
  color: var(--teal-pale);
  letter-spacing: -.04em;
  flex-shrink: 0;
  font-variant-numeric: tabular-nums;
  width: 2.3ch;
  transition: color .45s var(--ease);
}
.benefits__item-title { margin: 0 0 8px; font-family: var(--font-heading); font-weight: 700; font-size: clamp(16.5px, 1.4vw, 21px); line-height: 1.24; letter-spacing: -.02em; color: var(--ink); text-wrap: pretty; }
.benefits__item-text { margin: 0; font: 400 13.5px/1.5 var(--font-body); color: var(--body-text); max-width: 40ch; text-wrap: pretty; }

/* ==========================================================================
   Why WEB (05, dark)
   ========================================================================== */
.why { margin-top: clamp(68px, 9vw, 150px); background: var(--navy); color: var(--white); }
.why__inner { max-width: 1360px; margin: 0 auto; padding: clamp(38px, 5.5vw, 92px) clamp(24px, 4vw, 76px); }
.why__grid { display: grid; grid-template-columns: minmax(0, .4fr) minmax(0, 1fr); gap: clamp(30px, 4.5vw, 76px); align-items: start; }

.why__title {
  margin: 0 0 20px;
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: clamp(26px, 3vw, 42px);
  line-height: 1.06;
  letter-spacing: -.034em;
  color: var(--white);
  text-wrap: pretty;
}
.why__lead { margin: 0; font: 400 13.5px/1.54 var(--font-body); color: rgba(255, 255, 255, .72); max-width: 36ch; text-wrap: pretty; }

.why__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 clamp(24px, 3.4vw, 58px); }
.why__item { border-top: 1px solid rgba(255, 255, 255, .24); padding: clamp(18px, 2.2vw, 28px) 0; }
.why__item-title { margin: 0 0 8px; font-family: var(--font-heading); font-weight: 700; font-size: clamp(15.5px, 1.2vw, 18px); line-height: 1.26; letter-spacing: -.018em; color: var(--white); }
.why__item-text { margin: 0; font: 400 13px/1.5 var(--font-body); color: rgba(255, 255, 255, .66); text-wrap: pretty; }

/* ==========================================================================
   Proof (06)
   ========================================================================== */
.proof { max-width: 1360px; margin: 0 auto; padding: clamp(68px, 9vw, 150px) clamp(20px, 4.5vw, 64px) 0; }
.proof__title {
  margin: 0 0 clamp(26px, 3.4vw, 50px);
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: clamp(26px, 3.1vw, 44px);
  line-height: 1.06;
  letter-spacing: -.034em;
  color: var(--ink);
}

.proof__card { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.proof__media {
  min-height: clamp(200px, 26vw, 340px);
  border-right: 1px solid var(--border);
  background: var(--photo-bg);
  overflow: hidden;
}
.proof__media-img { display: block; width: 100%; height: 100%; object-fit: cover; }

.proof__content { padding: clamp(26px, 3.6vw, 58px); display: flex; flex-direction: column; justify-content: center; gap: 16px; }
.proof__eyebrow { font: 600 10.5px/1.4 var(--font-body); letter-spacing: .2em; text-transform: uppercase; color: var(--teal); }
.proof__heading {
  margin: 0;
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: clamp(19px, 1.9vw, 29px);
  line-height: 1.18;
  letter-spacing: -.026em;
  color: var(--ink);
  max-width: 26ch;
  text-wrap: pretty;
}
.proof__text { margin: 0; font: 400 clamp(13.5px, 1.1vw, 15.5px)/1.54 var(--font-body); color: var(--body-text); max-width: 46ch; text-wrap: pretty; }

/* ==========================================================================
   Related services (07)
   ========================================================================== */
.related { max-width: 1360px; margin: 0 auto; padding: clamp(68px, 9vw, 150px) clamp(20px, 4.5vw, 64px) 0; }
.related__head {
  display: grid;
  grid-template-columns: minmax(0, .36fr) minmax(0, 1fr);
  gap: clamp(24px, 5vw, 80px);
  align-items: end;
  margin-bottom: clamp(28px, 3.6vw, 56px);
}
.related__title {
  margin: 0;
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: clamp(26px, 3.1vw, 44px);
  line-height: 1.06;
  letter-spacing: -.034em;
  color: var(--ink);
  text-wrap: pretty;
}

.related__link {
  display: grid;
  grid-template-columns: minmax(0, .44fr) minmax(0, 1fr) auto;
  gap: clamp(10px, 3vw, 48px);
  align-items: baseline;
  border-top: 1px solid var(--border);
  padding: clamp(22px, 2.8vw, 38px) 0;
  color: var(--ink);
  transition: padding-left .45s var(--ease);
}
.related__link--last { border-bottom: 1px solid var(--border); }
.related__link-title { margin: 0; font-family: var(--font-heading); font-weight: 700; font-size: clamp(17px, 1.5vw, 23px); line-height: 1.2; letter-spacing: -.024em; color: var(--ink); transition: color .35s var(--ease); text-wrap: pretty; }
.related__link-text { margin: 0; font: 400 13.5px/1.5 var(--font-body); color: var(--body-text); max-width: 46ch; text-wrap: pretty; }
.related__link-cta { justify-self: end; display: inline-flex; align-items: baseline; gap: 9px; font: 700 11px/1 var(--font-body); letter-spacing: .14em; text-transform: uppercase; color: var(--teal); white-space: nowrap; }
.related__link-glyph { display: inline-block; font: 400 14px/1 var(--font-body); transition: transform .45s var(--ease); }

/* ==========================================================================
   Responsive fallbacks (JS overrides these via [data-cols]/[data-cols-sm]/[data-cols-md] on resize)
   ========================================================================== */
@media (max-width: 1023px) {
  /* on tablet the title scales mostly off width (min() still guards against
     a short landscape viewport), so it reads big and fills the line the
     way it does on the Operational & Strategic Vision page */
  .hero__title { font-size: clamp(30px, min(6.6vw, 8vh), 58px); }
  /* the figure sits behind noticeably bigger text now, so it comes down
     in size and fades back a touch to stay out of the text's way */
  .hero__figure { width: min(300px, 42vw); opacity: .55; }
  .moves__tags { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .challenge__grid,
  .solution__intro,
  .process__head,
  .process__phase,
  .why__grid,
  .related__head { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 719px) {
  .hero__title { font-size: clamp(30px, 9vw, 44px); }
  .hero__figure { width: min(200px, 46vw); opacity: .5; }
  .moves__tags,
  .moves__tags--4,
  .solution__cards,
  .benefits__grid,
  .why__list { grid-template-columns: minmax(0, 1fr); }
  .moves__tags { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hero__meta { flex-direction: column; align-items: flex-start; }
  .proof__card { grid-template-columns: minmax(0, 1fr); }
  .related__link { grid-template-columns: minmax(0, 1fr); }
}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-86d6dc7 */@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800&family=Mulish:wght@400;500;600;700;800&display=swap');

#web-osv, #web-osv *, #web-osv *::before, #web-osv *::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

.elementor-6779 .elementor-element.elementor-element-86d6dc7 #web-osv {
  background: transparent !important;
}

.elementor-6779 .elementor-element.elementor-element-86d6dc7 #web-osv .osv-eyebrow { display: flex; align-items: baseline; gap: 12px; }
.elementor-6779 .elementor-element.elementor-element-86d6dc7 #web-osv .osv-eyebrow--tight   { margin-bottom: clamp(24px,3vw,40px); }
.elementor-6779 .elementor-element.elementor-element-86d6dc7 #web-osv .osv-eyebrow__mark {
  font: 700 11px/1 Mulish, sans-serif;
  color: #48A5AA;
  letter-spacing: .2em;
}
.elementor-6779 .elementor-element.elementor-element-86d6dc7 #web-osv .osv-eyebrow__label {
  font: 700 11px/1.4 Mulish, sans-serif;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: #6E6862;
}
.elementor-6779 .elementor-element.elementor-element-86d6dc7 #web-osv .osv-eyebrow__label--inverse { color: rgba(255,255,255,.6); }
.elementor-6779 .elementor-element.elementor-element-86d6dc7 #web-osv .osv-accent-inline { color: #48A5AA; }

.elementor-6779 .elementor-element.elementor-element-86d6dc7 #web-osv .osv-contact__title {
  font-family: Montserrat, sans-serif;
  font-weight: 700;
  font-size: clamp(28px,4.2vw,66px);
  line-height: .98;
  letter-spacing: -.038em;
  color: #FFFFFF;
  max-width: 13ch;
}
.elementor-6779 .elementor-element.elementor-element-86d6dc7 #web-osv .osv-contact__lede {
  margin-top: clamp(24px,3vw,40px);
  font: 400 clamp(14px,1.05vw,15.5px)/1.78 Mulish, sans-serif;
  color: rgba(255,255,255,.76);
  max-width: 44ch;
  text-wrap: pretty;
}
.elementor-6779 .elementor-element.elementor-element-86d6dc7 #web-osv .osv-contact__badges {
  margin-top: clamp(28px,3.4vw,44px);
  display: flex;
  flex-wrap: wrap;
  gap: 10px 28px;
}
.elementor-6779 .elementor-element.elementor-element-86d6dc7 #web-osv .osv-contact__badge {
  font: 400 12px/1.5 Mulish, sans-serif;
  color: rgba(255,255,255,.7);
  letter-spacing: .06em;
  text-transform: uppercase;
}/* End custom CSS */
/* Start custom CSS for shortcode, class: .elementor-element-8ec0ea6 *//* ============ Gravity Forms #gform_20 — match Contact-sectie design ============ */

/* Labels: klein, hoofdletters, gedempt wit — zoals .osv-form__field-label */
#gform_20 .gfield_label {
  font: 700 10px/1 Mulish, sans-serif !important;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(255,255,255,.5) !important;
  margin-bottom: 8px !important;
}

/* Velden & textarea: transparant, alleen een onderrand, witte tekst */
#gform_20 .ginput_container input,
#gform_20 .ginput_container textarea {
  background: transparent !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(255,255,255,.28) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  outline: 0 !important;
  color: #FFFFFF !important;
  font: 400 15px/1.6 Mulish, sans-serif !important;
  padding: 10px 0 !important;
}
#gform_20 .gform-theme--foundation .gfield textarea.small {
  max-height: 100px;
  resize: vertical;
}

/* Placeholder (laat je die toch ergens staan) in dezelfde gedempte tint als het label */
#gform_20 .ginput_container input::placeholder,
#gform_20 .ginput_container textarea::placeholder {
  color: rgba(255,255,255,.45) !important;
  opacity: 1 !important;
}

/* Focus: onderrand wordt de merk-accentkleur */
#gform_20 .ginput_container input:focus,
#gform_20 .ginput_container textarea:focus {
  background: transparent !important;
  border-bottom-color: #48A5AA !important;
  box-shadow: none !important;
  outline: 0 !important;
}

/* Chrome-autofill: geen geel vlak, gewoon transparant + witte tekst */
#gform_20 .ginput_container input:-webkit-autofill,
#gform_20 .ginput_container textarea:-webkit-autofill {
  -webkit-text-fill-color: #FFFFFF !important;
  -webkit-box-shadow: 0 0 0px 1000px transparent inset !important;
  transition: background-color 9999s ease-in-out 0s !important;
}

/* Consent-checkbox: 16x16, net als .osv-form__checkbox */
#gform_20 .gfield--type-consent input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;
  width: 16px !important;
  height: 16px !important;
  background: transparent !important;
  border: 1px solid rgba(255,255,255,.5) !important;
  border-radius: 2px;
  cursor: pointer;
  position: relative;
  flex-shrink: 0;
}
#gform_20 .gfield--type-consent input[type="checkbox"]:checked {
  background: #48A5AA !important;
  border-color: #48A5AA !important;
}
#gform_20 .gfield--type-consent input[type="checkbox"]:checked::after {
  content: '';
  position: absolute;
  left: 4px;
  top: 1px;
  width: 4px;
  height: 8px;
  border: solid #00485D;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}

/* Consent-label tekst */
#gform_20 .gfield_consent_label,
#gform_20 .gfield_consent_label label {
  color: rgba(255,255,255,.72) !important;
  font: 400 13px/1.5 Mulish, sans-serif !important;
}
#gform_20 .gfield_consent_label a {
  color: rgba(255,255,255,.72) !important;
  text-decoration: underline;
}
#gform_20 .gfield_consent_label a:hover {
  color: #48A5AA !important;
  transition: color .3s ease;
}

/* Submit-knop: transparant, witte rand, hover wordt accentkleur — exact zoals .osv-form__submit / .osv-h-submit:hover */
#gform_20 #gform_submit_button_20 {
  display: inline-flex !important;
  align-items: center;
  gap: 12px;
  background: transparent !important;
  color: #FFFFFF !important;
  border: 1px solid rgba(255,255,255,.42) !important;
  border-radius: 0 !important;
  font: 700 12.5px/1 Mulish, sans-serif !important;
  letter-spacing: .1em;
  text-transform: uppercase;
  padding: 19px 30px !important;
  cursor: pointer;
  transition: background .35s ease, color .35s ease, border-color .35s ease;
}
#gform_20 #gform_submit_button_20:hover {
  background: #48A5AA !important;
  border-color: #48A5AA !important;
  color: #FFFFFF !important;
}

/* reCAPTCHA-wrapper: alleen positionering, het thema regel je in de veldinstelling zelf (zie boven) */
#gform_20 .ginput_recaptcha {
  margin-top: 8px;
}

/* reCAPTCHA en verzendknop in dezelfde rij, onderkant gelijk */
#gform_20 .gform_body,
#gform_20 .gform_fields {
  display: contents;
}
#gform_20 {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: end;
  gap: 16px;
}
#gform_20 .gfield:not(:has(.ginput_recaptcha)) {
  grid-column: 1 / -1;
}
#gform_20 .gfield:has(.ginput_recaptcha) {
  grid-column: 1;
  margin: 0 !important;
}
#gform_20 .gform_footer {
  grid-column: 2;
  justify-self: end;
  margin: 0 !important;
}

@media (max-width: 767px) {
  #gform_20 {
    grid-template-columns: 1fr;
  }
  #gform_20 .gfield:has(.ginput_recaptcha),
  #gform_20 .gform_footer {
    grid-column: 1;
    justify-self: start;
  }
  #gform_20 .gform_footer {
    margin-top: 3rem !important;
  }
}

@media (max-width: 767px) {
  #gform_20 #gform_submit_button_20 {
    margin-top: 3rem;
  }
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-933cc78 */.elementor-6779 .elementor-element.elementor-element-933cc78 {
  flex: 0 0 47.92%;
  max-width: 47.92%;
}
@media (max-width: 900px) {
  .elementor-6779 .elementor-element.elementor-element-933cc78 { flex: 0 0 100%; max-width: 100%; }
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-435e17e */.elementor-6779 .elementor-element.elementor-element-435e17e {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  max-width: 1360px;
  margin: 0 auto;
  padding: clamp(64px,9vw,150px) clamp(20px,4.5vw,64px);
  gap: clamp(36px,6vw,96px);
}
@media (max-width: 900px) {
  .elementor-6779 .elementor-element.elementor-element-435e17e { flex-direction: column; }
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-ff72fe3 */.elementor-6779 .elementor-element.elementor-element-ff72fe3 {
  color: #FFFFFF;
  position: relative;
}/* End custom CSS */