/* main.css - tokens, reset, typography and every component used on 2+ pages.
   Page-specific rules live in css/<page>.css, which loads second. */

/* ======================================================================
   1. design tokens
   ====================================================================== */

:root {
  /* canvas */
  --container-max: 1400px;
  --container-narrow: 1200px;
  --container-roomy: 1400px;
  --header-h: 100px;
  --header-h-mobile: 82px;

  /* colour */
  --color-dark: #030e23;
  --color-white: #fff;
  --color-blue: #3f69dc;
  --color-green: #57fdd4;
  --color-gray: #e9edf2;
  --color-scalelab: #f5f2ef;
  --color-intense: #2f00ff;
  --color-yfy: #e9eef6;
  --color-pale: #ccf6ff;
  --color-black: #000;
  --color-ink: #212121;
  --color-ink-soft: #333;
  --color-ink-warm: #312d2d;
  --color-dark-muted: #242d36;
  --color-green-soft: #b3ffec;
  --color-surface: #f5f9fc;
  --color-border: #e3e3e8;
  --color-gray-mid: #c2c2c2;
  --color-gray-light: #f4f4f4;
  --color-slate: #8c98a4;
  --color-cyan: #52b1cd;
  --color-amber: #f7a71e;
  --color-shadow: #373235;
  --color-highlight: #ff0;
  --color-border-strong: #c0c0c0;
  --color-border-soft: #e2e2e2;
  --color-gray-dim: #999;

  /* space */
  --space-0: 0px;
  --space-1: 2px;
  --space-2: 4px;
  --space-3: 8px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;
  --space-7: 48px;
  --space-8: 62px;
  --space-9: 72px;
  --space-10: 82px;
  --space-atf-top: 148px;

  /* radius */
  --radius-large: 16px;
  --radius-medium: 10px;
  --radius-pill: 999px;

  /* type */
  --font-primary: "DM Sans", sans-serif;
  --font-secondary: "DM Sans", sans-serif;
  --font-fallback: Arial, "Helvetica Neue", Helvetica, sans-serif;
  --font-size-headline: 92px;
  --font-size-h1: 64px;
  --font-size-h2: 48px;
  --font-size-h3: 48px;
  --font-size-h4: 38px;
  --font-size-h5: 28px;
  --font-size-h6: 24px;
  --font-size-body-lg: 20px;
  --font-size-body-md: 16px;
  --font-size-body-sm: 12px;
}

/* ======================================================================
   2. fonts
   ====================================================================== */

@font-face {
  font-family: "DM Sans";
  src: url("../fonts/dm-sans-latin.woff2") format("woff2");
  font-weight: 100 1000;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: "DM Sans";
  src: url("../fonts/dm-sans-latin-ext.woff2") format("woff2");
  font-weight: 100 1000;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: "DM Sans";
  src: url("../fonts/dm-sans-latin-italic.woff2") format("woff2");
  font-weight: 100 1000;
  font-style: italic;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: "DM Sans";
  src: url("../fonts/dm-sans-latin-ext-italic.woff2") format("woff2");
  font-weight: 100 1000;
  font-style: italic;
  font-display: swap;
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: gradual;
  src: url("../fonts/BwGradual-Light.woff2") format("woff2");
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}

/* ======================================================================
   3. reset (normalize.css v3, vendor)
   ====================================================================== */

/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
/**
 * 1. Set default font family to sans-serif.
 * 2. Prevent iOS and IE text size adjust after device orientation change,
 *    without disabling user zoom.
 */
html {
  font-family: sans-serif;
  /* 1 */
  -ms-text-size-adjust: 100%;
  /* 2 */
  -webkit-text-size-adjust: 100%;
  /* 2 */
}
/**
 * Remove default margin.
 */
body {
  margin: 0;
}
/* HTML5 display definitions
   ========================================================================== */
/**
 * Correct `block` display not defined for any HTML5 element in IE 8/9.
 * Correct `block` display not defined for `details` or `summary` in IE 10/11
 * and Firefox.
 * Correct `block` display not defined for `main` in IE 11.
 */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
  display: block;
}
/**
 * 1. Correct `inline-block` display not defined in IE 8/9.
 * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
 */
audio,
canvas,
progress,
video {
  display: inline-block;
  /* 1 */
  vertical-align: baseline;
  /* 2 */
}
/**
 * Prevent modern browsers from displaying `audio` without controls.
 * Remove excess height in iOS 5 devices.
 */
audio:not([controls]) {
  display: none;
  height: 0;
}
/**
 * Address `[hidden]` styling not present in IE 8/9/10.
 * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.
 */
[hidden],
template {
  display: none;
}
/* Links
   ========================================================================== */
/**
 * Remove the gray background color from active links in IE 10.
 */
a {
  background-color: transparent;
}
/**
 * Improve readability of focused elements when they are also in an
 * active/hover state.
 */
a:active,
a:hover {
  outline: 0;
}
/* Text-level semantics
   ========================================================================== */
/**
 * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
 */
abbr[title] {
  border-bottom: 1px dotted;
}
/**
 * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
 */
b,
strong {
  font-weight: bold;
}
/**
 * Address styling not present in Safari and Chrome.
 */
dfn {
  font-style: italic;
}
/**
 * Address variable `h1` font-size and margin within `section` and `article`
 * contexts in Firefox 4+, Safari, and Chrome.
 */
h1 {
  font-size: 2em;
  margin: 0.67em 0;
}
/**
 * Address styling not present in IE 8/9.
 */
mark {
  background: var(--color-highlight);
  color: var(--color-black);
}
/**
 * Address inconsistent and variable font size in all browsers.
 */
small {
  font-size: 80%;
}
/**
 * Prevent `sub` and `sup` affecting `line-height` in all browsers.
 */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}
sup {
  top: -0.5em;
}
sub {
  bottom: -0.25em;
}
/* Embedded content
   ========================================================================== */
/**
 * Remove border when inside `a` element in IE 8/9/10.
 */
img {
  border: 0;
}
/**
 * Correct overflow not hidden in IE 9/10/11.
 */
svg:not(:root) {
  overflow: hidden;
}
/* Grouping content
   ========================================================================== */
/**
 * Address margin not present in IE 8/9 and Safari.
 */
figure {
  margin: 1em 40px;
}
/**
 * Address differences between Firefox and other browsers.
 */
hr {
  box-sizing: content-box;
  height: 0;
}
/**
 * Contain overflow in all browsers.
 */
pre {
  overflow: auto;
}
/**
 * Address odd `em`-unit font size rendering in all browsers.
 */
code,
kbd,
pre,
samp {
  font-family: monospace, monospace;
  font-size: 1em;
}
/* Forms
   ========================================================================== */
/**
 * Known limitation: by default, Chrome and Safari on OS X allow very limited
 * styling of `select`, unless a `border` property is set.
 */
/**
 * 1. Correct color not being inherited.
 *    Known issue: affects color of disabled elements.
 * 2. Correct font properties not being inherited.
 * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
 */
button,
input,
optgroup,
select,
textarea {
  color: inherit;
  /* 1 */
  font: inherit;
  /* 2 */
  margin: 0;
  /* 3 */
}
/**
 * Address `overflow` set to `hidden` in IE 8/9/10/11.
 */
button {
  overflow: visible;
}
/**
 * Address inconsistent `text-transform` inheritance for `button` and `select`.
 * All other form control elements do not inherit `text-transform` values.
 * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
 * Correct `select` style inheritance in Firefox.
 */
button,
select {
  text-transform: none;
}
/**
 * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
 *    and `video` controls.
 * 2. Correct inability to style clickable `input` types in iOS.
 * 3. Improve usability and consistency of cursor style between image-type
 *    `input` and others.
 * 4. Deviation from normalize.css: Removed the input[type="submit"] selector to reduce
 *    specificity and defer to the .w-button selector
 */
button,
html input[type="button"],
input[type="reset"] {
  -webkit-appearance: button;
  /* 2 */
  cursor: pointer;
  /* 3 */
}
/**
 * Re-set default cursor for disabled elements.
 */
button[disabled],
html input[disabled] {
  cursor: default;
}
/**
 * Remove inner padding and border in Firefox 4+.
 */
button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0;
}
/**
 * Address Firefox 4+ setting `line-height` on `input` using `!important` in
 * the UA stylesheet.
 */
input {
  line-height: normal;
}
/**
 * It's recommended that you don't attempt to style these elements.
 * Firefox's implementation doesn't respect box-sizing, padding, or width.
 *
 * 1. Address box sizing set to `content-box` in IE 8/9/10.
 * 2. Remove excess padding in IE 8/9/10.
 */
input[type='checkbox'],
input[type='radio'] {
  box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */
}
/**
 * Fix the cursor style for Chrome's increment/decrement buttons. For certain
 * `font-size` values of the `input`, it causes the cursor style of the
 * decrement button to change from `default` to `text`.
 */
input[type='number']::-webkit-inner-spin-button,
input[type='number']::-webkit-outer-spin-button {
  height: auto;
}
/**
 * 1. Deviation from normalize.css: changed from `textfield` to `none` to normalize iOS rounded input
 * 2. Deviation from normalize.css: box-sizing: content-box rule removed
 *    (similar to normalize.css >=4.0.0)
 */
input[type='search'] {
  -webkit-appearance: none;
  /* 1 */
}
/**
 * Remove inner padding and search cancel button in Safari and Chrome on OS X.
 * Safari (but not Chrome) clips the cancel button when the search input has
 * padding (and `textfield` appearance).
 */
input[type='search']::-webkit-search-cancel-button,
input[type='search']::-webkit-search-decoration {
  -webkit-appearance: none;
}
/**
 * Define consistent border, margin, and padding.
 */
fieldset {
  border: 1px solid var(--color-border-strong);
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em;
}
/**
 * 1. Correct `color` not being inherited in IE 8/9/10/11.
 * 2. Remove padding so people aren't caught out if they zero out fieldsets.
 */
legend {
  border: 0;
  /* 1 */
  padding: 0;
  /* 2 */
}
/**
 * Remove default vertical scrollbar in IE 8/9/10/11.
 */
textarea {
  overflow: auto;
}
/**
 * Don't inherit the `font-weight` (applied by a rule above).
 * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
 */
optgroup {
  font-weight: bold;
}
/* Tables
   ========================================================================== */
/**
 * Remove most spacing between table cells.
 */
table {
  border-collapse: collapse;
  border-spacing: 0;
}
td,
th {
  padding: 0;
}

/* ======================================================================
   4. layout primitives
   ====================================================================== */

.skip-link {
  z-index: 1000;
  background: var(--color-dark);
  color: var(--color-white);
  padding: var(--space-4) var(--space-5);
  position: absolute;
  top: 0;
  left: 0;
  transform: translateY(-120%);
  transition: transform .15s;
}

.skip-link:focus-visible {
  transform: translateY(0);
}

main:focus {
  outline: none;
}

.visually-hidden {
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  width: 1px;
  height: 1px;
  position: absolute;
  overflow: hidden;
  white-space: nowrap;
}

.container {
  margin-inline: auto;
}

.stack {
  flex-direction: column;
  align-items: flex-start;
  display: inline-flex;
}

.cluster {
  flex-direction: row;
  align-items: flex-start;
  display: flex;
}

.auto-grid {
  grid-auto-columns: minmax(0, 1fr);
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  grid-template-rows: auto auto;
  gap: var(--space-4);
  display: grid;
}

.auto-grid-cell {
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  display: flex;
}

.media-inline {
  max-width: 100%;
  display: inline-block;
}

/* ======================================================================
   5. shared components
   ====================================================================== */

* {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

html {
  height: 100%;
}

body {
  margin: 0;
  min-height: 100%;
  background-color: var(--color-white);
  font-family: var(--font-fallback);
  font-size: 14px;
  line-height: 20px;
  color: var(--color-ink-soft);
}

img {
  max-width: 100%;
  /* width/height attributes are an aspect-ratio hint, not a size: the export had
     none, so images keep their natural size unless a class sets one */
  width: auto;
  height: auto;
  vertical-align: middle;
  display: inline-block;
}

html[data-w-dynpage] [data-w-cloak] {
  color: transparent !important;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-weight: bold;
  margin-bottom: 10px;
}

h1 {
  font-size: 38px;
  line-height: 44px;
  margin-top: 20px;
}

h2 {
  font-size: 32px;
  line-height: 36px;
  margin-top: 20px;
}

h3 {
  font-size: 24px;
  line-height: 30px;
  margin-top: 20px;
}

h4 {
  font-size: 18px;
  line-height: 24px;
  margin-top: 10px;
}

h5 {
  font-size: 14px;
  line-height: 20px;
  margin-top: 10px;
}

h6 {
  font-size: 12px;
  line-height: 18px;
  margin-top: 10px;
}

p {
  margin-top: 0;
  margin-bottom: 10px;
}

blockquote {
  margin: 0 0 10px 0;
  padding: 10px 20px;
  border-left: 5px solid var(--color-border-soft);
  font-size: 18px;
  line-height: 22px;
}

figure {
  margin: 0;
  margin-bottom: 10px;
}

figcaption {
  margin-top: 5px;
  text-align: center;
}

ul,
ol {
  margin-top: 0px;
  margin-bottom: 10px;
  padding-left: 40px;
}

fieldset {
  padding: 0;
  margin: 0;
  border: 0;
}

button,
[type='button'],
[type='reset'] {
  border: 0;
  cursor: pointer;
  -webkit-appearance: button;
}

label {
  display: block;
  margin-bottom: 5px;
  font-weight: bold;
}

@keyframes spin {
  0% {
  transform: rotate(0deg);
  }
  100% {
  transform: rotate(360deg);
  }
}

.w-layout-blockcontainer {
  max-width: 940px;
  margin-left: auto;
  margin-right: auto;
  display: block;
}

.w-layout-vflex {
  flex-direction: column;
  align-items: flex-start;
  display: flex;
}

.w-layout-hflex {
  flex-direction: row;
  align-items: flex-start;
  display: flex;
}

.w-layout-grid {
  grid-row-gap: 16px;
  grid-column-gap: 16px;
  grid-template-rows: auto auto;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  grid-auto-columns: minmax(0, 1fr);
  display: grid;
}

.w-layout-layout {
  grid-row-gap: 20px;
  grid-column-gap: 20px;
  grid-auto-columns: minmax(0, 1fr);
  justify-content: center;
  padding: 20px;
}

.w-layout-cell {
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  display: flex;
}

@media screen and (max-width: 991px) {
  .w-layout-blockcontainer {
    max-width: 728px;
  }
}

@media screen and (max-width: 767px) {
  .w-layout-blockcontainer {
    max-width: none;
  }
}

body {
  color: var(--color-ink-soft);
  /* Self-hosted DM Sans carries an opsz axis; Google's CSS v1 served a static
     opsz-14 cut. Auto optical sizing tightens large headings, so pin it. */
  font-variation-settings: "opsz" 14;
  /* unclassed text inherits Arial, as in the export; components set DM Sans */
  font-family: var(--font-fallback);
  font-size: 14px;
  line-height: 20px;
}

.container {
  width: 100%;
  max-width: var(--container-max);
  padding-right: var(--space-4);
  padding-left: var(--space-4);
  aspect-ratio: auto;
  position: relative;
}

.container.narrow {
  max-width: var(--container-narrow);
  flex-flow: column;
  display: flex;
  height: auto;
  justify-content: center;
  align-items: flex-start;
}

.above-the-fold {
  padding-top: var(--space-7);
  padding-bottom: var(--space-7);
  background-image: url('../images/sonar-bg-3_1.avif');
  background-position: 0 0;
  background-size: cover;
  position: relative;
}

.above-the-fold.plain {
  background-color: var(--color-dark);
  background-image: none;
}

.atf-text-wrapper {
  z-index: 2;
  width: 100%;
  margin-top: var(--space-10);
  margin-bottom: var(--space-7);
  padding-top: var(--space-6);
  padding-bottom: var(--space-6);
  grid-column-gap: var(--space-10);
  grid-row-gap: var(--space-10);
  color: var(--color-white);
  position: relative;
}

.atf-text-wrapper.half-width {
  width: 50%;
  margin-bottom: var(--space-1);
  grid-column-gap: var(--space-4);
  grid-row-gap: var(--space-4);
}

.atf-text-wrapper.half-width.dark-text {
  grid-column-gap: var(--space-0);
  grid-row-gap: var(--space-0);
  color: var(--color-dark);
}

.atf-text-wrapper.home-page {
  justify-content: flex-start;
  align-items: flex-start;
  margin-top: 240px;
  margin-bottom: 180px;
}

.heading-1 {
  margin-top: var(--space-0);
  margin-bottom: var(--space-0);
  font-family: var(--font-primary);
  font-size: var(--font-size-h1);
  font-weight: 300;
  line-height: 130%;
  display: inline-flex;
}

.heading-1.white {
  width: auto;
  color: var(--color-white);
  padding: 6px;
  display: inline-flex;
}

.heading-1.highlight {
  color: var(--color-white);
  display: inline-flex;
}

.heading-2 {
  margin-top: var(--space-0);
  margin-bottom: var(--space-0);
  font-family: var(--font-primary);
  color: var(--color-dark);
  font-size: var(--font-size-h2);
  text-align: left;
  word-break: normal;
  justify-content: flex-start;
  font-weight: 300;
  line-height: 130%;
  display: inline-flex;
}

.heading-2.gray {
  color: color-mix(in srgb, var(--color-white) 30%, transparent);
}

.heading-2.white, .heading-2.highlight {
  color: var(--color-white);
}

.heading-2.centered {
  color: var(--color-dark);
  text-align: center;
  justify-content: center;
  align-items: flex-start;
}

.heading-2.centered.dark {
  color: var(--color-dark);
}

.heading-2.centered.white {
  color: var(--color-white);
}

.heading-2.dark {
  color: var(--color-dark);
}

.atf-menu {
  padding-bottom: var(--space-6);
  justify-content: space-between;
  align-items: center;
  display: none;
}

.button-text {
  font-family: var(--font-primary);
  color: var(--color-dark);
  font-size: var(--font-size-h4);
  margin-top: 0;
  margin-bottom: 0;
  font-weight: 300;
}

.button-text.white {
  color: var(--color-white);
}

.button-text.green {
  color: var(--color-green);
  font-size: var(--font-size-h4);
}

.button-text.dark {
  color: var(--color-dark);
  font-size: var(--font-size-h4);
}

.button {
  cursor: pointer;
  flex-flow: row;
  justify-content: flex-start;
  align-items: center;
  height: 36px;
  text-decoration: none;
  display: flex;
}

.button:where(.button--dark) {
  width: auto;
  display: inline-flex;
}

.label-part {
  height: 100%;
  padding-right: var(--space-5);
  padding-left: var(--space-5);
  background-color: var(--color-white);
  border-radius: 50px;
  justify-content: center;
  align-items: center;
}

.label-part:where(.label-part--dark) {
  background-color: var(--color-dark);
  justify-content: center;
  align-items: center;
}

.icon-part {
  background-color: var(--color-blue);
  outline-offset: 0px;
  width: 36px;
  height: 36px;
  color: var(--color-white);
  text-align: center;
  border-radius: 50px;
  outline: 3px var(--color-white);
  justify-content: center;
  align-items: center;
  padding-top: 12px;
  padding-bottom: 12px;
  text-decoration: none;
}

.icon-part:where(.icon-part--dark) {
  background-color: var(--color-green);
}

.icon {
  font-size: 24px;
  line-height: 24px;
}

.icon svg {
  width: 1em;
  height: 1em;
  fill: currentColor;
  display: block;
}

.icon:where(.icon--dark) {
  color: var(--color-dark);
}

.icon.green {
  color: var(--color-green);
}

.icon.large {
  margin-top: 0;
  margin-bottom: 0;
  font-size: 42px;
  font-weight: 400;
}

.icon.large.hide {
  display: none;
}

.paragraph-large {
  z-index: 1;
  font-family: var(--font-primary);
  font-size: var(--font-size-body-lg);
  margin-top: 0;
  margin-bottom: 0;
  font-weight: 400;
  line-height: 130%;
  position: relative;
}

.paragraph-large.white {
  color: var(--color-white);
}

.paragraph-large.dark {
  color: var(--color-dark);
}

.space-24 {
  width: 100%;
  height: var(--space-5);
}

.heading-4 {
  font-family: var(--font-primary);
  font-size: var(--font-size-h4);
  margin-top: 0;
  margin-bottom: 0;
  font-weight: 300;
  line-height: 130%;
}

.home-porfolio {
  background-color: var(--color-gray);
}

.home-porfolio.hide {
  display: flex;
  overflow: visible;
}

.section {
  padding-top: var(--space-7);
  padding-bottom: var(--space-7);
  background-color: var(--color-white);
  justify-content: center;
  align-items: flex-start;
  display: flex;
  width: 100%;
  height: 100%;
}

.section.blue {
  background-color: var(--color-blue);
  color: var(--color-white);
  display: flex;
  overflow-x: hidden;
}

.section.dark {
  background-color: var(--color-dark);
  overflow-x: hidden;
}

.section.dark.design-background {
  background-image: url('../images/design-lab-grad-bg.avif');
  background-position: 100%;
  background-size: cover;
  justify-content: flex-start;
  align-items: center;
  display: flex;
}

.section.dark.discovery-background {
  background-image: url('../images/discovery-lab-grad-bg.avif');
  background-position: 100%;
  background-size: cover;
}

.section.dark.growth-background {
  background-image: url('../images/growth-lab-grad-bg.avif');
  background-position: 100%;
  background-size: cover;
}

.section.green {
  background-color: var(--color-green);
}

.section.gray {
  background-color: var(--color-gray);
}

.heading-5 {
  margin-top: var(--space-0);
  margin-bottom: var(--space-0);
  font-family: var(--font-primary);
  font-size: var(--font-size-h5);
  word-break: normal;
  font-weight: 300;
  line-height: 130%;
}

.heading-5.dark {
  color: var(--color-dark);
}

.heading-5.white, .heading-5.highlight {
  color: var(--color-white);
}

.philisophy {
  display: flex;
}

.waves-bg {
  z-index: 0;
  opacity: .5;
  height: 770px;
  margin-left: 10vw;
  position: absolute;
  inset: 0% auto auto 0%;
}

.second-section-inner {
  grid-column-gap: var(--space-10);
  grid-row-gap: var(--space-10);
  flex-flow: column;
  display: flex;
}

.chip {
  padding: 6px var(--space-4);
  grid-column-gap: var(--space-3);
  grid-row-gap: var(--space-3);
  background-color: var(--color-gray);
  font-family: var(--font-primary);
  color: var(--color-dark);
  border-radius: 50px;
  flex-flow: row;
  justify-content: flex-start;
  align-items: center;
  font-size: 14px;
  font-weight: 300;
}

.chip.white {
  background-color: var(--color-gray);
}

.chip.purple {
  background-color: var(--color-intense);
  color: var(--color-white);
}

.chip.green {
  background-color: var(--color-green);
}

.point {
  background-color: var(--color-blue);
  border-radius: 40px;
  width: 10px;
  height: 10px;
}

.chip-wrapper {
  grid-column-gap: var(--space-5);
  grid-row-gap: var(--space-5);
  flex-flow: wrap;
  width: 100%;
}

.logo {
  grid-column-gap: 8px;
  grid-row-gap: 8px;
  font-family: var(--font-primary);
  color: var(--color-green);
  font-size: 24px;
  text-decoration: none;
  display: flex;
}

.main-text {
  grid-column-gap: 10vh;
  grid-row-gap: 10vh;
  justify-content: center;
  align-items: baseline;
  width: 100%;
}

.line-1 {
  grid-column-gap: 64px;
  grid-row-gap: 64px;
  justify-content: flex-start;
  align-items: flex-start;
}

.line-1.narrow {
  grid-column-gap: 0px;
  grid-row-gap: 0px;
}

.we-are {
  padding-top: var(--space-7);
  padding-bottom: var(--space-7);
  border: 1px var(--color-black);
  border-top: 1px solid color-mix(in srgb, var(--color-white) 8%, transparent);
}

.layout-block {
  padding-top: var(--space-7);
  padding-bottom: var(--space-7);
}

.portfolio-list {
  padding-top: var(--space-7);
  padding-bottom: var(--space-7);
  background-color: var(--color-dark);
}

.portfolio-listing {
  grid-column-gap: var(--space-4);
  grid-row-gap: var(--space-4);
}

.portfolio-list-unit {
  width: 100%;
  padding-top: var(--space-3);
  padding-bottom: var(--space-3);
  color: var(--color-white);
  border-bottom: 1px solid color-mix(in srgb, var(--color-white) 30%, transparent);
  justify-content: space-between;
  align-items: center;
  text-decoration: none;
  display: flex;
}

.space-82 {
  width: 100%;
  height: var(--space-10);
}

.space-82.gray {
  background-color: var(--color-gray);
}

.service {
  grid-column-gap: var(--space-3);
  grid-row-gap: var(--space-3);
  flex-flow: row;
  justify-content: flex-start;
  align-items: flex-start;
}

.number {
  font-family: var(--font-primary);
  color: var(--color-green);
  margin-top: 10px;
  font-size: 24px;
  font-weight: 300;
}

.sonar-logo {
  width: auto;
}

.sonar-logo.footer {
  height: 20px;
}

.footer {
  background-color: var(--color-dark);
}

.footer-inner {
  width: 100%;
  padding-top: var(--space-8);
  padding-bottom: var(--space-8);
}

.footer-wrapper {
  grid-column-gap: var(--space-5);
  grid-row-gap: var(--space-5);
}

.case-study-hero {
  padding-top: var(--space-atf-top);
  padding-bottom: var(--space-7);
  background-image: url('../images/sonar-bg-3_1.avif');
  background-position: 0 0;
  background-size: cover;
  position: relative;
}

.comp {
  z-index: 0;
  position: absolute;
  top: auto;
  bottom: 0;
}

.atf-block {
  padding-top: var(--space-8);
  padding-bottom: var(--space-8);
  flex-flow: row;
  justify-content: flex-start;
  align-items: center;
  position: relative;
}

.case-study-cover {
  width: 50%;
  max-width: 100%;
  position: relative;
  right: 0;
}

.case-study-cover.overlay {
  width: 70%;
  position: absolute;
  bottom: 0;
}

.problem-chellange {
  grid-column-gap: var(--font-size-h3);
  grid-row-gap: var(--font-size-h3);
  width: 100%;
  color: var(--color-white);
  flex-flow: row;
  display: flex;
}

.impact-blocks {
  padding: var(--space-3) var(--space-5);
  grid-column-gap: var(--space-4);
  grid-row-gap: var(--space-4);
  background-color: var(--color-white);
  border-radius: 60px;
  flex-flow: row;
  justify-content: flex-start;
  align-items: center;
}

.impact-blocks.blue {
  padding-top: var(--space-3);
  padding-bottom: var(--space-3);
  background-color: var(--color-blue);
}

.impact-listing {
  grid-column-gap: var(--space-3);
  grid-row-gap: var(--space-3);
  flex-flow: wrap;
}

.before-after-wrapper {
  width: 100%;
}

.case-study-gallery {
  grid-column-gap: var(--space-4);
  grid-row-gap: var(--space-4);
  flex-flow: column;
  width: 100%;
  display: flex;
}

.lightobx-flagship {
  border-radius: var(--space-4);
  width: 100%;
}

.lightbox-thumb {
  border-radius: var(--space-4);
  width: 50%;
}

.lightbox-images-2 {
  grid-column-gap: var(--space-4);
  grid-row-gap: var(--space-4);
  border-radius: var(--space-4);
  justify-content: flex-start;
  align-items: center;
  display: flex;
  overflow: hidden;
}

.dfe-bento-wrapper-1 {
  border-radius: 12px;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.dfe-bento-1 {
  max-width: 140%;
  height: 100%;
  overflow: clip;
}

.main-bento-wrapper-2 {
  box-sizing: border-box;
  border-radius: 12px;
  width: 100%;
  height: 100%;
  position: relative;
  overflow: hidden;
}

.dfe-bento-wrapper-3 {
  border-radius: var(--space-4);
  width: 100%;
  height: 100%;
  position: relative;
  overflow: hidden;
}

.dfe-bento-image-3 {
  border-radius: 12px;
  width: auto;
  height: 100%;
  overflow: hidden;
}

.dfe-bento-image-2 {
  max-width: 130%;
  height: 100%;
  overflow: auto;
}

.problem-challange-inner {
  grid-column-gap: var(--space-6);
  grid-row-gap: var(--space-6);
  flex-flow: row;
}

.half-block {
  width: 100%;
}

.cta-button {
  width: auto;
  padding: var(--space-4) var(--space-5);
  grid-column-gap: 20px;
  color: var(--color-white);
  cursor: pointer;
  background-color: var(--color-dark);
  border-radius: 40px;
  justify-content: center;
  align-items: center;
  text-decoration: none;
  display: inline-flex;
}

.cta-button.dark {
  background-color: var(--color-dark);
  transition: all .2s;
}

.cta-button.dark:hover {
  background-color: var(--color-blue);
}

.cta-button.dark.full-width {
  width: 100%;
}

.cta-button.white-border {
  padding-top: var(--space-3);
  padding-bottom: var(--space-3);
  border: 2px solid var(--color-white);
  background-color: transparent;
  transition: all .2s;
}

.cta-button.white-border:hover {
  background-color: var(--color-white);
  color: var(--color-dark);
}

.cta-button.white-border.full-width {
  width: 100%;
  padding-top: var(--space-4);
  padding-bottom: var(--space-4);
}

.main-bento {
  grid-column-gap: var(--space-4);
  grid-row-gap: var(--space-4);
  width: 100%;
  height: 820px;
  display: flex;
  overflow: visible;
}

.main-bento-1 {
  width: 50%;
  height: 100%;
}

.main-bento-right {
  box-sizing: content-box;
  grid-column-gap: var(--space-4);
  grid-row-gap: var(--space-4);
  width: 50%;
}

.main-bento-left-1 {
  border-radius: 12px;
  width: 100%;
  max-height: 600px;
  position: relative;
  overflow: hidden;
}

.main-bento-title-link {
  width: 100%;
  padding: var(--space-5);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  background-color: color-mix(in srgb, var(--color-dark) 50%, transparent);
  background-image: linear-gradient(transparent, transparent 50%, color-mix(in srgb, var(--color-dark) 55%, transparent));
  justify-content: space-between;
  align-items: center;
  display: flex;
  position: absolute;
  bottom: 0;
}

.cta-button-text {
  font-family: var(--font-primary);
  font-size: var(--font-size-body-md);
  background-color: transparent;
}

.main-bento-image-1 {
  width: 100%;
  max-width: 100%;
  height: auto;
  overflow: clip;
}

.main-bento-image-2 {
  max-width: 140%;
  height: 100%;
  display: none;
  overflow: clip;
}

.heading-6 {
  font-family: var(--font-primary);
  font-size: var(--font-size-h6);
  font-weight: 300;
  line-height: 170%;
}

.heading-6.dark {
  color: var(--color-dark);
}

.heading-6.blue {
  color: var(--color-blue);
  line-height: 130%;
}

.space-24-2 {
  width: 100%;
  height: 24px;
}

.section-title {
  justify-content: flex-start;
  align-items: flex-start;
  width: 100%;
  padding-top: 48px;
  padding-bottom: 48px;
}

.section-title.centered {
  grid-column-gap: var(--space-3);
  grid-row-gap: var(--space-3);
  font-family: var(--font-primary);
  color: var(--color-dark);
  font-size: var(--font-size-h2);
  text-align: center;
  justify-content: flex-start;
  align-items: center;
  font-weight: 400;
  display: flex;
}

.section-title.centered:where(.section-title--dark) {
  grid-column-gap: var(--space-3);
  grid-row-gap: var(--space-3);
}

.section-title.centered {
  grid-column-gap: 8px;
  grid-row-gap: 8px;
  color: var(--color-dark);
  text-align: center;
  justify-content: flex-start;
  align-items: center;
  font-family: DM Sans, sans-serif;
  font-size: 48px;
  font-weight: 400;
  display: flex;
}

.paragraph-normal {
  font-family: var(--font-primary);
  font-size: var(--font-size-body-md);
  margin-top: 0;
  margin-bottom: 0;
  font-weight: 300;
  line-height: 130%;
  text-decoration: none;
}

.team-member {
  width: 100%;
  height: auto;
  padding: var(--space-7) var(--space-5) var(--space-5);
  grid-row-gap: 42px;
  border-radius: var(--radius-large);
  background-color: var(--color-white);
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  text-decoration: none;
  display: flex;
}

.team-wrapper {
  grid-column-gap: var(--space-5);
  grid-row-gap: var(--space-5);
  flex-flow: wrap;
  flex: 0 auto;
  grid-template-rows: auto;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr);
  grid-auto-columns: minmax(0, 1fr);
  justify-content: flex-start;
  align-items: flex-start;
  width: 100%;
  text-decoration: none;
  display: flex;
  height: auto;
}

.profile-image {
  object-fit: cover;
  border-radius: 999px;
  width: 100%;
  height: 100%;
}

.team-member-wrapper {
  grid-row-gap: 24px;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  width: 100%;
  text-decoration: none;
  display: flex;
}

.icon-part-2 {
  outline-offset: 0px;
  color: var(--color-white);
  text-align: center;
  background-color: var(--color-blue);
  border-radius: 50px;
  outline: 3px var(--color-white);
  justify-content: center;
  align-items: center;
  width: 44px;
  height: 44px;
  padding-top: 12px;
  padding-bottom: 12px;
  text-decoration: none;
}

.icon-part-2.dark-15 {
  background-color: var(--color-green);
}

.label-part-2 {
  background-color: var(--color-white);
  border-radius: 50px;
  padding: 12px 24px;
}

.label-part-2.dark-8 {
  background-color: var(--color-dark);
  justify-content: center;
  align-items: center;
}

.cta-grid {
  grid-column-gap: 24px;
  grid-row-gap: 16px;
  grid-template-rows: auto;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  grid-auto-columns: minmax(0, 1fr);
  justify-content: flex-start;
  align-items: flex-start;
  width: 100%;
  height: 100%;
  text-decoration: none;
  display: grid;
}

.atf-text-wrapper-2 {
  z-index: 2;
  width: 100%;
  margin-top: var(--space-0);
  margin-bottom: var(--space-7);
  grid-column-gap: var(--space-7);
  grid-row-gap: var(--space-7);
  color: var(--color-white);
  padding-top: 0;
  padding-bottom: 0;
  position: relative;
}

.atf-text-wrapper-2.home-page {
  justify-content: flex-start;
  align-items: flex-start;
  margin-top: 140px;
  margin-bottom: 80px;
}

.atf-menu-2 {
  justify-content: space-between;
  align-items: center;
  padding-bottom: 32px;
  display: none;
}

.copy-wrapper {
  z-index: 1;
  grid-column-gap: 16px;
  grid-row-gap: 16px;
  flex-flow: column;
  width: 100%;
  display: flex;
  position: relative;
}

.button-label {
  font-family: var(--font-secondary);
  color: var(--color-dark);
  font-size: var(--font-size-body-lg);
}

.button-label:where(.button-label--dark) {
  color: var(--color-white);
}

.decor-on-image {
  width: 100%;
  padding: var(--space-5);
  grid-column-gap: var(--space-6);
  grid-row-gap: var(--space-6);
  background-color: var(--color-white);
  border-radius: 12px;
  flex-flow: column;
  grid-template-rows: auto;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  grid-auto-columns: minmax(0, 1fr);
  justify-content: flex-end;
  align-items: flex-start;
  display: flex;
}

.list {
  font-family: var(--font-secondary);
  font-size: var(--font-size-body-lg);
  padding-left: 20px;
  line-height: 130%;
}

.dual-grid {
  grid-column-gap: var(--space-5);
  grid-row-gap: var(--space-5);
  grid-template-rows: auto;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  grid-auto-columns: minmax(0, 1fr);
  display: grid;
  height: auto;
}

.link-card {
  height: 100%;
  min-height: 500px;
  padding: var(--space-6);
  grid-column-gap: var(--space-5);
  grid-row-gap: var(--space-5);
  border-radius: var(--space-0);
  background-color: var(--color-surface);
  flex-direction: column;
  justify-content: space-between;
  align-items: flex-start;
  display: flex;
}

.link-card:where(.link-card--dark) {
  border-radius: var(--radius-large);
}

.link-card.gray {
  background-color: var(--color-gray);
}

.link-card.no-border, .link-card.dark {
  border-radius: var(--radius-large);
  justify-content: space-between;
}

.link-card.dark:where(.link-card--dark) {
  background-color: var(--color-dark);
  color: var(--color-white);
  justify-content: space-between;
}

.space-82-copy {
  width: 100%;
  height: var(--space-5);
}

.space-48 {
  width: 100%;
  height: var(--space-7);
}

.case-study-grid {
  grid-column-gap: var(--space-0);
  grid-row-gap: var(--space-0);
  border-radius: var(--radius-large);
  grid-template-rows: auto;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  grid-auto-columns: minmax(0, 1fr);
  display: grid;
  overflow: hidden;
  width: 100%;
  height: auto;
}

.case-study-thumb-wrapper {
  background-image: url('../images/Rapidsearch-illustration2-dark-bg.avif');
  background-position: 50%;
  background-size: cover;
}

.cenered-image-wrapper {
  border-radius: var(--radius-large);
  width: 100%;
  overflow: hidden;
}

.full-width-image {
  width: 100%;
}

.process {
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: flex-start;
  width: 100%;
  height: auto;
  display: flex;
}

.tag-normal {
  grid-column-gap: 10px;
  background-color: var(--color-white);
  border-radius: 40px;
  flex: 0 auto;
  justify-content: center;
  align-items: center;
  height: 40px;
  padding-left: 24px;
  padding-right: 24px;
  text-decoration: none;
  display: flex;
}

.body-copy-13 {
  color: var(--color-dark);
  margin-top: 0;
  margin-bottom: 0;
  font-family: DM Sans, sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 100%;
  text-decoration: none;
}

.tag-icon {
  background-color: var(--color-green);
  width: 42px;
  height: 42px;
  color: var(--color-dark);
  border-radius: 70px;
  justify-content: center;
  align-items: center;
  font-size: 24px;
  display: flex;
}

.methodology-box {
  justify-content: flex-end;
  align-items: flex-start;
}

.icon-2 {
  font-size: 24px;
}

.call-to-action-4 {
  grid-row-gap: 40px;
  border: 1px var(--color-green-soft);
  border-radius: 24px;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  width: 100%;
  max-width: 100%;
  padding: 0;
  text-decoration: none;
  display: flex;
}

.button-text-10 {
  color: var(--color-white);
  margin-top: 0;
  margin-bottom: 0;
  font-family: gradual, Arial, sans-serif;
  font-size: 38px;
  font-weight: 300;
}

.above-the-fold-2 {
  background-image: url('../images/sonar-bg-3_1.avif');
  background-position: 0 0;
  background-size: cover;
  padding-top: 48px;
  padding-bottom: 48px;
  position: relative;
}

.above-the-fold-2.plain {
  background-color: var(--color-dark);
  background-image: none;
}

.key-results {
  padding: var(--space-10) var(--space-8);
  grid-column-gap: var(--space-9);
  grid-row-gap: var(--space-9);
  ---mode--collection-df7d3302-695b-4c60-134a-a5bd03be7b5b: base;
  border-radius: 20px;
  flex-flow: column;
  display: flex;
}

.key-results.green {
  background-color: var(--color-green);
}

.results-grid {
  grid-column-gap: 16px;
  grid-row-gap: 16px;
  grid-template-rows: auto;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr);
  grid-auto-columns: minmax(0, 1fr);
  display: grid;
}

.results-cell {
  grid-column-gap: var(--space-4);
  grid-row-gap: var(--space-4);
  text-align: center;
  justify-content: flex-start;
  align-items: center;
}

.result-icon {
  background-color: var(--color-dark);
  width: 64px;
  height: 64px;
  color: var(--color-white);
  border-radius: 999px;
  justify-content: center;
  align-items: center;
  font-size: 24px;
  display: flex;
}

.splide__list {
  grid-column-gap: var(--space-4);
  grid-row-gap: var(--space-4);
  justify-content: flex-start;
  align-items: stretch;
  width: 100%;
  display: flex;
  gap: var(--font-size-body-md);
}

.splide__pagination__page {
  opacity: .2;
  background-color: var(--color-white);
  border-radius: 6px;
  width: 10px;
  height: 10px;
  margin-left: 12px;
  margin-right: 0;
  padding-left: 0;
  padding-right: 0;
  font-size: 0;
  line-height: 0;
  transition: all .3s;
  display: block;
}

.splide__pagination__page.is-active {
  opacity: 1;
  display: block;
}

.splide__arrows {
  flex-direction: row;
  justify-content: flex-start;
  align-items: center;
  margin-top: 4em;
  display: flex;
}

.splide__arrow {
  background-color: transparent;
  background-image: url('../images/arrow-right.svg');
  background-position: 50%;
  background-repeat: no-repeat;
  background-size: 30%;
  border: 2px solid var(--color-white);
  border-radius: 100vw;
  width: 6em;
  height: 3em;
  margin-right: 1em;
  padding: 0;
  cursor: pointer;
  transition: all .2s;
}

.splide__arrow:disabled {
  opacity: .35;
  cursor: default;
}

.splide__arrow:focus-visible {
  outline: 2px solid var(--color-green);
  outline-offset: 2px;
}

.splide__arrow:hover {
  background-color: color-mix(in srgb, var(--color-shadow) 6%, transparent);
}

.splide__arrow.splide__arrow--prev {
  border-color: var(--color-dark);
  background-color: var(--color-dark);
  width: 3em;
  height: 2em;
  padding-left: 0;
  padding-right: 0;
  font-size: 24px;
  transform: rotate(-180deg);
}

.splide__arrow.splide__arrow--next {
  background-color: var(--color-dark);
  border-color: var(--color-black);
  width: 3em;
  height: 2em;
  font-size: 24px;
}

.splide__arrow.splide__arrow--next:active {
  transform: scale(.95);
}

.splide__arrow.splide__arrow--prev {
  background-color: var(--color-dark);
  border-color: var(--color-dark);
  width: 3em;
  height: 2em;
  padding-left: 0;
  padding-right: 0;
  font-size: 24px;
  transform: rotate(-180deg);
}

.splide__arrow.splide__arrow--prev:active {
  transform: scale(.95)rotate(-180deg);
}

.splide {
  width: 100%;
  position: relative;
}

.splide__pagination {
  justify-content: flex-start;
  align-items: center;
  margin-bottom: 0;
  padding-left: 0;
  position: absolute;
  inset: auto 0% 1em auto;
}

.splide__track {
  width: 100%;
}

.is-hidden {
  display: none;
}

.splide__slide {
  grid-column-gap: 16px;
  grid-row-gap: 16px;
  flex: none;
  grid-template-rows: auto auto;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  grid-auto-columns: minmax(0, 1fr);
  align-self: stretch;
  width: 33.333%;
  display: block;
}

.service-card-swiper {
  background-color: var(--color-surface);
  border-radius: 10px;
  flex-direction: column;
  justify-content: space-between;
  align-items: flex-start;
  height: 100%;
  padding: 40px;
  display: flex;
}

.service-card-swiper.blue {
  height: 610px;
  margin-right: var(--space-4);
  padding: var(--space-5);
  background-color: var(--color-blue);
  justify-content: space-between;
}

.service-card-swiper.light {
  height: 610px;
  margin-right: var(--space-4);
  grid-column-gap: 16px;
  grid-row-gap: 16px;
  background-color: var(--color-white);
  color: var(--color-dark);
  justify-content: space-between;
}

.service-card-swiper.green {
  height: 610px;
  margin-right: var(--space-4);
  grid-column-gap: 16px;
  grid-row-gap: 16px;
  background-color: var(--color-green);
  color: var(--color-dark);
  border-radius: 26px;
  justify-content: space-between;
  position: relative;
  overflow: clip;
}

.service-card-swiper.light {
  grid-column-gap: 16px;
  grid-row-gap: 16px;
  background-color: var(--color-white);
  color: var(--color-dark);
  justify-content: space-between;
  height: 610px;
  margin-right: 0;
}

.body {
  overflow-x: hidden;
}

.container--roomy {
  /* stays 1400px at >=1920, where --container-max grows to 1600px */
  max-width: var(--container-roomy);
  padding-inline: var(--space-5);
}

.space-82-copy-3 {
  width: 100%;
  height: 24px;
}

.case-study-grid-3 {
  grid-column-gap: 0px;
  grid-row-gap: 0px;
  border-radius: 16px;
  grid-template-rows: auto;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  grid-auto-columns: minmax(0, 1fr);
  display: grid;
  overflow: hidden;
}

.section-6 {
  justify-content: flex-start;
  align-items: flex-start;
  padding-top: 48px;
  padding-bottom: 48px;
}

.unit-hero {
  padding-top: var(--space-atf-top);
  padding-bottom: var(--space-5);
  background-color: var(--color-dark);
  display: block;
  position: relative;
  overflow: hidden;
}

.cta-block {
  padding-top: var(--space-7);
  padding-bottom: var(--space-7);
  background-color: var(--color-dark);
  position: relative;
}

.cta-block:where(.cta-block--dark) {
  background-color: var(--color-gray);
}

.full-width-block {
  width: 100%;
}

.case-study-thumb {
  object-fit: cover;
  object-position: center;
  width: 100%;
  height: 100%;
}

.teaser-image {
  z-index: 1;
  position: absolute;
  top: auto;
  bottom: 60px;
  left: 0;
}

.layout-block-7 {
  padding-top: 48px;
  padding-bottom: 48px;
}

.button--text-2 {
  color: var(--color-dark);
  font-family: DM Sans, sans-serif;
  font-size: 20px;
}

.button--text-2.dark-14 {
  color: var(--color-white);
}

.icon-3 {
  font-size: 24px;
  line-height: 24px;
}

.icon-3.dark-6 {
  color: var(--color-dark);
}

.splide__slide-2 {
  flex: none;
  align-self: stretch;
  width: 33.333%;
}

.splide__slide-2.vertical {
  flex-flow: column;
  display: flex;
}

.button-2 {
  cursor: pointer;
  flex-flow: row;
  justify-content: flex-start;
  align-items: center;
  height: 42px;
  text-decoration: none;
  display: flex;
}

.button-2.dark-2 {
  width: auto;
  display: inline-flex;
}

.point-3 {
  background-color: var(--color-blue);
  border-radius: 40px;
  width: 10px;
  height: 10px;
}

.paragraph-large-2 {
  z-index: 1;
  margin-top: 0;
  margin-bottom: 0;
  font-family: DM Sans, sans-serif;
  font-size: 20px;
  font-weight: 400;
  line-height: 130%;
  position: relative;
}

.impact-listing-2 {
  grid-column-gap: 8px;
  grid-row-gap: 8px;
  flex-flow: wrap;
}

.unit-hero-2 {
  background-color: var(--color-dark);
  padding-top: 148px;
  padding-bottom: 24px;
  display: block;
  position: relative;
  overflow: hidden;
}

.heading-2-2 {
  color: var(--color-dark);
  text-align: left;
  word-break: normal;
  justify-content: flex-start;
  margin-top: 0;
  margin-bottom: 0;
  font-family: DM Sans, sans-serif;
  font-size: 48px;
  font-weight: 300;
  line-height: 130%;
  display: inline-flex;
}

.heading-2-2.highlight {
  color: var(--color-white);
}

.heading-1-2 {
  margin-top: 0;
  margin-bottom: 0;
  font-family: DM Sans, sans-serif;
  font-size: 64px;
  font-weight: 300;
  line-height: 130%;
  display: inline-flex;
}

.heading-1-2.highlight {
  color: var(--color-white);
  display: inline-flex;
}

.space-48-2 {
  width: 100%;
  height: 48px;
}

.impact-blocks-2 {
  grid-column-gap: 16px;
  grid-row-gap: 16px;
  background-color: var(--color-white);
  border-radius: 60px;
  flex-flow: row;
  justify-content: flex-start;
  align-items: center;
  padding: 8px 24px;
}

@media screen and (min-width: 1920px) {
  body {
    --container-max: 1600px;
    --space-4: 16px;
    --container-narrow: 1200px;
    --space-7: 48px;
    --space-10: 82px;
    --space-6: 32px;
    --space-1: 2px;
    --space-0: 0px;
    --space-5: 24px;
    --space-3: 8px;
    --space-2: 4px;
    --space-9: 72px;
    --space-8: 62px;
    --space-atf-top: 148px;
    --header-h-mobile: 82px;
    --radius-large: 16px;
    --header-h: 100px;
    --font-primary: "DM Sans", sans-serif;
    --font-size-h1: 4rem;
    --font-size-h2: 3rem;
    --font-size-h4: 38px;
    --font-size-h5: 32px;
    --font-size-body-lg: 20px;
    --font-size-body-md: 16px;
    --font-size-h3: 48px;
    --font-size-h6: 24px;
    --font-secondary: "DM Sans", sans-serif;
    --font-size-headline: 92px;
    --font-size-body-sm: 12px;
  }

  .atf-text-wrapper.half-width {
    width: 50%;
  }

  .atf-text-wrapper.half-width.dark-text {
    color: var(--color-dark);
  }

  .atf-text-wrapper.home-page {
    margin-top: 140px;
  }

  .heading-1, .heading-1.white {
    display: inline-flex;
  }

  .heading-2 {
    font-size: var(--font-size-h2);
  }

  .atf-menu {
    display: flex;
  }

  .button-text {
    font-size: var(--font-size-h5);
  }

  .button-text.white {
    color: var(--color-green);
  }

  .button-text.green {
    color: var(--color-green);
    font-weight: 300;
  }

  .button-text.dark, .button-text.dark:where(.button-text--dark) {
    color: var(--color-dark);
  }

  .icon.large {
    color: var(--color-white);
  }

  .paragraph-large.white {
    justify-content: center;
    align-items: center;
    display: flex;
  }

  .section.dark.design-background {
    background-image: url('../images/design-lab-grad-bg.avif');
    background-position: 100%;
    background-size: cover;
  }

  .section.gray {
    background-color: var(--color-gray);
  }

  .heading-5 {
    font-size: var(--font-size-h5);
    line-height: 130%;
  }

  .philisophy {
    display: none;
  }

  .waves-bg {
    z-index: 0;
  }

  .waves-bg.hidden {
    display: none;
  }

  .chip {
    padding-right: var(--space-5);
    padding-left: var(--space-5);
    grid-column-gap: var(--space-4);
    grid-row-gap: var(--space-4);
    font-family: var(--font-primary);
    font-size: 24px;
    line-height: 32px;
  }

  .chip.green {
    background-color: var(--color-green);
  }

  .we-are {
    z-index: 1;
    position: relative;
  }

  .portfolio-list-unit {
    padding-top: var(--space-4);
    padding-bottom: var(--space-4);
    color: var(--color-dark);
    border-bottom-color: color-mix(in srgb, var(--color-white) 30%, transparent);
    justify-content: space-between;
    align-items: center;
  }

  .space-82.gray {
    background-color: var(--color-gray);
  }

  .service {
    grid-column-gap: var(--space-4);
    grid-row-gap: var(--space-4);
    opacity: 1;
    flex-flow: row;
  }

  .number {
    font-family: var(--font-primary);
    color: var(--color-green);
    margin-top: 0;
    margin-bottom: 0;
    font-size: 24px;
    font-weight: 300;
  }

  .comp {
    top: auto;
    bottom: 0;
  }

  .atf-block {
    padding-top: var(--space-8);
    padding-bottom: var(--space-8);
    flex-flow: row;
    justify-content: flex-start;
    align-items: center;
  }

  .case-study-cover {
    width: 50%;
    position: relative;
    top: 0;
  }

  .case-study-cover.overlay {
    width: 60%;
    position: absolute;
    top: auto;
    bottom: 0;
  }

  .impact-blocks {
    padding-right: var(--space-6);
    padding-left: var(--space-6);
    border-radius: 100px;
    justify-content: flex-start;
    align-items: center;
  }

  .impact-blocks.blue {
    background-color: var(--color-blue);
  }

  .case-study-gallery {
    grid-column-gap: var(--space-6);
    grid-row-gap: var(--space-6);
    flex-flow: column;
    display: flex;
  }

  .lightobx-flagship {
    border-radius: 12px;
  }

  .lightbox-thumb {
    border-radius: 12px;
    width: 50%;
    overflow: hidden;
  }

  .lightbox-images-2 {
    grid-column-gap: var(--space-4);
    grid-row-gap: var(--space-4);
    display: flex;
    overflow: hidden;
  }

  .dfe-bento-wrapper-1 {
    width: auto;
    height: 100%;
  }

  .dfe-bento-1 {
    height: 100%;
  }

  .main-bento-wrapper-2 {
    width: 100%;
    height: 100%;
  }

  .dfe-bento-image-3 {
    width: 100%;
  }

  .dfe-bento-image-2 {
    width: 100%;
    max-width: 100%;
    height: 140%;
  }

  .problem-challange-inner {
    grid-column-gap: var(--space-6);
    grid-row-gap: var(--space-6);
    flex-flow: row;
  }

  .half-block {
    flex-flow: column;
    justify-content: flex-start;
    align-items: flex-start;
    width: 100%;
    height: 100%;
    display: flex;
  }

  .cta-button {
    width: auto;
    padding: var(--space-5) var(--space-7);
    color: var(--color-white);
    transition: all .2s;
    display: flex;
  }

  .cta-button:hover {
    background-color: var(--color-blue);
  }

  .cta-button.white-border {
    padding-top: var(--space-5);
    padding-bottom: var(--space-5);
  }

  .cta-button.white-border.full-width {
    padding-top: var(--space-4);
  }

  .main-bento {
    height: 850px;
  }

  .main-bento-1, .main-bento-right {
    width: 50%;
  }

  .main-bento-left-1 {
    width: 100%;
    height: 100%;
    position: relative;
  }

  .main-bento-title-link {
    flex-flow: row;
    justify-content: space-between;
    align-items: stretch;
    display: flex;
    position: absolute;
    bottom: 0;
  }

  .cta-button-text {
    color: var(--color-dark);
    font-size: var(--font-size-body-lg);
  }

  .main-bento-image-1 {
    width: 100%;
    max-width: 100%;
    height: auto;
    overflow: clip;
  }

  .main-bento-image-2 {
    height: 100%;
  }

  .heading-6.blue {
    color: var(--color-blue);
  }

  .section-title.centered {
    padding-top: var(--space-7);
    padding-bottom: var(--space-7);
    padding-top: 48px;
    padding-bottom: 48px;
  }

  .team-wrapper {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr);
  }

  .profile-image {
    border-radius: 999px;
  }

  .cta-grid {
    grid-column-gap: 24px;
    grid-row-gap: 16px;
    grid-template-rows: auto;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    grid-auto-columns: minmax(0, 1fr);
    justify-content: flex-start;
    align-items: flex-start;
    display: grid;
  }

  .atf-text-wrapper-2.home-page {
    margin-top: 140px;
  }

  .decor-on-image {
    padding-top: var(--space-10);
    grid-column-gap: var(--font-size-h6);
    grid-row-gap: var(--font-size-h6);
    background-color: var(--color-white);
    color: var(--color-dark);
    justify-content: flex-end;
    align-items: flex-start;
  }

  .list {
    padding-left: 20px;
  }

  .dual-grid {
    grid-template-rows: auto;
  }

  .link-card {
    background-color: var(--color-white);
    border-radius: 0;
    justify-content: space-between;
    width: 100%;
    height: 100%;
    min-height: 500px;
  }

  .link-card.no-border {
    border-radius: var(--radius-large);
    background-color: var(--color-white);
  }

  .case-study-grid {
    grid-column-gap: var(--space-0);
    grid-row-gap: var(--space-0);
    border-radius: 10px;
    grid-template-rows: auto;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    grid-auto-columns: minmax(0, 1fr);
    display: grid;
    overflow: hidden;
  }

  .case-study-thumb-wrapper {
    background-image: none;
    width: 100%;
    overflow: hidden;
  }

  .cenered-image-wrapper {
    justify-content: flex-start;
    align-items: center;
    width: 100%;
  }

  .full-width-image {
    width: 100%;
  }

  .tag-icon {
    font-size: 24px;
    display: flex;
  }

  .call-to-action-4 {
    grid-row-gap: 32px;
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    mix-blend-mode: normal;
    max-width: 100%;
  }

  .button-text-10 {
    font-size: 28px;
  }

  .key-results {
    width: 100%;
    padding: var(--space-9) var(--space-6);
    grid-column-gap: var(--space-9);
    grid-row-gap: var(--space-9);
    --font-primary: "DM Sans", sans-serif;
    --font-size-h1: 64px;
    --font-size-h2: 48px;
    --font-size-h4: 38px;
    --font-size-h5: 28px;
    --font-size-body-lg: 20px;
    --font-size-body-md: 16px;
    --font-size-h3: 48px;
    --font-size-h6: 24px;
    --font-secondary: "DM Sans", sans-serif;
    --font-size-headline: 92px;
    --font-size-body-sm: 12px;
    --container-max: 1400px;
    --space-4: 16px;
    --container-narrow: 1200px;
    --space-7: 48px;
    --space-10: 82px;
    --space-6: 32px;
    --space-1: 2px;
    --space-0: 0px;
    --space-5: 24px;
    --space-3: 8px;
    --space-2: 4px;
    --space-9: 72px;
    --space-8: 62px;
    --space-atf-top: 148px;
    --header-h-mobile: 82px;
    --radius-large: 16px;
    --header-h: 100px;
    border-radius: 10px;
    flex-flow: column;
    grid-template-rows: auto;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr);
    grid-auto-columns: minmax(0, 1fr);
    justify-content: flex-start;
    align-items: flex-start;
    display: flex;
  }

  .results-grid {
    grid-column-gap: 16px;
    grid-row-gap: 16px;
    grid-template-rows: auto;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr);
    grid-auto-columns: minmax(0, 1fr);
    width: 100%;
    display: grid;
  }

  .results-cell {
    grid-column-gap: var(--space-5);
    grid-row-gap: var(--space-5);
    text-align: center;
    justify-content: flex-start;
    align-items: center;
  }

  .result-icon {
    background-color: var(--color-dark);
    width: 64px;
    height: 64px;
    color: var(--color-white);
    border-radius: 999px;
    justify-content: center;
    align-items: center;
    font-size: 24px;
    display: flex;
  }

  .splide__slide {
    width: 380px;
    margin-right: var(--space-4);
  }

  .service-card-swiper.blue {
    height: 610px;
  }

  .body {
    overflow-x: hidden;
  }

  .case-study-grid-3 {
    grid-column-gap: 0px;
    grid-row-gap: 0px;
    border-radius: 10px;
    display: flex;
    overflow: hidden;
  }

  .cta-block {
    background-color: var(--color-dark);
    background-image: none;
  }

  .case-study-thumb {
    object-fit: cover;
    object-position: center;
    width: auto;
    height: 100%;
  }

  .splide__slide-2 {
    width: 380px;
    margin-right: 16px;
  }

  .heading-2-2 {
    font-size: 48px;
  }

  .heading-1-2 {
    display: inline-flex;
  }

  .impact-blocks-2 {
    border-radius: 100px;
    justify-content: flex-start;
    align-items: center;
    padding-left: 32px;
    padding-right: 32px;
  }
}

@media screen and (max-width: 991px) {
  body {
    --font-primary: "DM Sans", sans-serif;
    --font-size-h1: 64px;
    --font-size-h2: 42px;
    --font-size-h4: 28px;
    --font-size-h5: 24px;
    --font-size-body-lg: 18px;
    --font-size-body-md: 16px;
    --font-size-h3: 34px;
    --font-size-h6: 18px;
    --font-secondary: "DM Sans", sans-serif;
    --font-size-headline: 64px;
    --font-size-body-sm: 12px;
  }

  .atf-text-wrapper.half-width {
    grid-column-gap: var(--space-4);
    grid-row-gap: var(--space-4);
    width: 100%;
  }

  .atf-text-wrapper.half-width.dark-text {
    margin-top: var(--space-0);
    grid-column-gap: var(--space-0);
    grid-row-gap: var(--space-0);
  }

  .heading-1.highlight, .heading-2.highlight {
    background-color: var(--color-blue);
  }

  .philisophy {
    display: none;
  }

  .chip {
    font-size: 18px;
  }

  .chip-wrapper {
    grid-column-gap: var(--space-4);
    grid-row-gap: var(--space-4);
    flex-flow: wrap;
    width: 100%;
  }

  .atf-block {
    padding-top: var(--space-0);
    padding-bottom: var(--space-0);
    flex-flow: column;
  }

  .case-study-cover {
    width: 100%;
  }

  .case-study-cover.overlay {
    width: 100vw;
    max-width: 100vw;
    position: absolute;
    bottom: 0;
  }

  .dfe-bento-1 {
    max-width: 100%;
    display: none;
  }

  .dfe-bento-1.mobile {
    width: 100%;
    display: block;
  }

  .dfe-bento-image-2 {
    width: 100%;
  }

  .problem-challange-inner {
    flex-flow: column;
  }

  .main-bento {
    flex-flow: column;
    height: auto;
  }

  .main-bento-1, .main-bento-right {
    width: 100%;
  }

  .main-bento-left-1 {
    height: 140%;
    max-height: 100%;
  }

  .main-bento-image-1 {
    max-width: 100%;
    display: block;
  }

  .main-bento-image-2 {
    width: 100%;
    max-width: 100%;
    display: block;
  }

  .team-wrapper {
    flex-flow: column;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }

  .cta-grid {
    grid-row-gap: 32px;
    flex-flow: column;
  }

  .atf-text-wrapper-2 {
    margin-top: var(--space-0);
    margin-bottom: var(--space-0);
    grid-column-gap: var(--space-6);
    grid-row-gap: var(--space-6);
  }

  .decor-on-image {
    width: 100%;
    margin-top: 240px;
  }

  .link-card {
    padding: 30px;
  }

  .case-study-grid {
    grid-column-gap: var(--space-0);
    grid-row-gap: var(--space-0);
  }

  .process {
    height: auto;
  }

  .results-grid, .results-grid-2 {
    grid-template-rows: auto auto;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }

  .splide__pagination__page {
    border-radius: 4px;
    width: 8px;
    height: 8px;
  }

  .splide__pagination {
    padding-top: 1.9em;
    position: absolute;
  }

  .service-card-swiper {
    padding: 30px;
  }

  .unit-hero {
    padding-bottom: var(--space-5);
  }

  .cta-block {
    padding-top: var(--space-0);
    padding-bottom: var(--space-0);
  }

  .unit-hero-2 {
    padding-bottom: 24px;
  }

  .heading-2-2.highlight, .heading-1-2.highlight {
    background-color: var(--color-blue);
  }
}

@media screen and (max-width: 767px) {
  body {
    --font-primary: "DM Sans", sans-serif;
    --font-size-h1: 48px;
    --font-size-h2: 38px;
    --font-size-h4: 26px;
    --font-size-h5: 20px;
    --font-size-body-lg: 18px;
    --font-size-body-md: 14px;
    --font-size-h3: 32px;
    --font-size-h6: 18px;
    --font-secondary: "DM Sans", sans-serif;
    --font-size-headline: 64px;
    --font-size-body-sm: 10px;
  }

  .above-the-fold {
    overflow: hidden;
  }

  .atf-text-wrapper {
    grid-column-gap: var(--space-7);
    grid-row-gap: var(--space-7);
  }

  .atf-text-wrapper.half-width.dark-text {
    margin-bottom: var(--space-0);
  }

  .atf-text-wrapper.home-page {
    margin-top: 120px;
    margin-bottom: 80px;
  }

  .heading-1.highlight {
    display: inline-flex;
  }

  .heading-2 {
    display: inline;
  }

  .atf-menu {
    z-index: 1;
    grid-column-gap: var(--space-5);
    grid-row-gap: var(--space-5);
    flex-flow: column;
    justify-content: space-between;
    align-items: flex-start;
    position: relative;
  }

  .paragraph-large {
    font-size: var(--font-size-body-md);
  }

  .paragraph-large.white {
    font-size: var(--font-size-body-lg);
    text-decoration: none;
  }

  .section {
    padding-top: var(--space-4);
    padding-bottom: var(--space-4);
  }

  .section.dark.design-background {
    background-position: 100% 0;
  }

  .heading-5.dark {
    color: var(--color-dark);
  }

  .waves-bg {
    width: 830px;
    max-width: 1060px;
    height: 800px;
    margin-top: 10vh;
    margin-left: 0;
    top: 0%;
    left: 0%;
    overflow: visible;
    rotate: -90deg;
  }

  .line-1.narrow {
    display: inline-flex;
  }

  .space-82 {
    height: var(--space-10);
  }

  .case-study-hero {
    overflow: hidden;
  }

  .impact-blocks {
    padding: var(--space-2) var(--space-4);
    font-size: 12px;
  }

  .lightbox-thumb {
    width: 100%;
  }

  .lightbox-images-2 {
    flex-flow: column;
  }

  .main-bento-title-link {
    padding: var(--space-4);
    grid-column-gap: var(--space-4);
    grid-row-gap: var(--space-4);
    flex-flow: column;
    justify-content: space-between;
    align-items: flex-start;
  }

  .team-member {
    padding: 24px;
  }

  .cta-grid {
    grid-column-gap: 24px;
    grid-row-gap: 32px;
    grid-template-rows: auto auto;
    grid-template-columns: minmax(0, 1fr);
    grid-auto-columns: minmax(0, 1fr);
    display: grid;
  }

  .atf-text-wrapper-2 {
    grid-column-gap: 48px;
    grid-row-gap: 48px;
  }

  .atf-menu-2 {
    z-index: 1;
    grid-column-gap: 24px;
    grid-row-gap: 24px;
    flex-flow: column;
    justify-content: space-between;
    align-items: flex-start;
    position: relative;
  }

  .decor-on-image {
    width: 100%;
  }

  .list {
    font-size: var(--font-size-body-md);
  }

  .dual-grid {
    flex-flow: column;
    display: flex;
  }

  .link-card {
    justify-content: space-between;
    min-height: auto;
    padding: 20px;
  }

  .link-card.no-border {
    min-height: auto;
  }

  .case-study-grid {
    flex-flow: column-reverse;
    display: flex;
  }

  .case-study-thumb-wrapper {
    height: 300px;
  }

  .methodology-box {
    justify-content: flex-end;
    align-items: flex-start;
    height: auto;
  }

  .above-the-fold-2 {
    overflow: hidden;
  }

  .results-grid {
    grid-column-gap: var(--space-7);
    grid-row-gap: var(--space-7);
    grid-template-rows: auto auto auto auto;
    grid-template-columns: minmax(0, 1fr);
  }

  .splide__pagination__page {
    width: 8px;
    height: 8px;
    margin-left: 8px;
  }

  .splide__slide {
    width: 90%;
  }

  .service-card-swiper {
    padding: 20px;
  }

  .service-card-swiper.blue {
    height: 520px;
  }

  .case-study-grid-3 {
    flex-flow: column;
    display: flex;
  }

  .section-6 {
    padding-top: 16px;
    padding-bottom: 16px;
  }

  .unit-hero {
    padding-bottom: var(--space-5);
    overflow: hidden;
  }

  .cta-block {
    overflow: hidden;
  }

  .cta-block-wrapper {
    width: 100%;
  }

  .splide__slide-2 {
    width: 90%;
  }

  .paragraph-large-2 {
    font-size: 16px;
  }

  .unit-hero-2 {
    padding-bottom: 24px;
    overflow: hidden;
  }

  .heading-2-2 {
    display: inline;
  }

  .heading-1-2.highlight {
    display: inline-flex;
  }

  .impact-blocks-2 {
    padding: 4px 16px;
    font-size: 12px;
  }
}

@media screen and (max-width: 479px) {
  body {
    --font-primary: "DM Sans", sans-serif;
    --font-size-h1: 32px;
    --font-size-h2: 28px;
    --font-size-h4: 20px;
    --font-size-h5: 18px;
    --font-size-body-lg: 16px;
    --font-size-body-md: 14px;
    --font-size-h3: 24px;
    --font-size-h6: 18px;
    --font-secondary: "DM Sans", sans-serif;
    --font-size-headline: 64px;
    --font-size-body-sm: 10px;
  }

  .atf-text-wrapper {
    margin-top: var(--space-4);
  }

  .atf-text-wrapper.half-width.dark-text {
    margin-bottom: var(--space-0);
    grid-column-gap: 0px;
    grid-row-gap: 0px;
    justify-content: center;
    align-items: flex-start;
    display: flex;
  }

  .heading-2.highlight {
    display: inline;
  }

  .atf-menu {
    grid-column-gap: var(--space-5);
    grid-row-gap: var(--space-5);
    flex-flow: column;
  }

  .section {
    padding-top: var(--space-4);
    padding-bottom: var(--space-4);
  }

  .section.dark.design-background {
    background-position: 100% 0;
    background-repeat: no-repeat;
    background-size: auto 100%;
  }

  .waves-bg {
    height: auto;
    margin-left: -50vw;
  }

  .chip {
    padding: 4px var(--space-3);
    grid-column-gap: var(--space-2);
    grid-row-gap: var(--space-2);
  }

  .chip-wrapper {
    grid-column-gap: var(--space-3);
    grid-row-gap: var(--space-3);
  }

  .line-1.narrow {
    display: flex;
  }

  .space-82 {
    height: var(--space-10);
  }

  .service {
    grid-column-gap: 0px;
    grid-row-gap: 0px;
    flex-flow: column;
  }

  .number {
    margin-top: 0;
    margin-bottom: 0;
  }

  .case-study-cover.overlay {
    width: 200%;
    max-width: 300%;
    bottom: 0;
  }

  .team-member {
    padding: 24px;
  }

  .team-wrapper {
    display: flex;
  }

  .profile-image {
    width: 100%;
    max-width: 250px;
    height: 100%;
    max-height: 250px;
  }

  .team-member-wrapper {
    width: auto;
    height: auto;
  }

  .atf-text-wrapper-2 {
    margin-top: 16px;
  }

  .atf-menu-2 {
    grid-column-gap: 24px;
    grid-row-gap: 24px;
    flex-flow: column;
  }

  .decor-on-image {
    grid-column-gap: var(--space-5);
    grid-row-gap: var(--space-5);
  }

  .dual-grid {
    grid-column-gap: var(--space-5);
    grid-row-gap: var(--space-5);
    grid-template-rows: auto auto;
    grid-template-columns: minmax(0, 1fr);
    grid-auto-columns: minmax(0, 1fr);
    display: flex;
  }

  .link-card {
    padding: 16px;
  }

  .case-study-grid {
    flex-flow: column-reverse;
  }

  .process, .methodology-box {
    height: 100%;
  }

  .key-results.green {
    padding-right: var(--space-5);
    padding-left: var(--space-5);
  }

  .splide__pagination__page {
    margin-left: 0;
    margin-right: 8px;
  }

  .splide__pagination {
    padding-top: 2em;
    padding-bottom: 1em;
    position: relative;
  }

  .service-card-swiper {
    padding: 16px;
  }

  .service-card-swiper.blue, .service-card-swiper.light, .service-card-swiper.green, .service-card-swiper.light {
    height: 440px;
  }

  .section-6 {
    padding-top: 16px;
    padding-bottom: 16px;
  }

  .unit-hero {
    padding-bottom: var(--space-5);
  }

  .unit-hero-2 {
    padding-bottom: 24px;
  }

  .heading-2-2.highlight {
    display: inline;
  }
}

#w-node-_778a9c55-770f-fc43-c9e3-1ea54519c030-e439d83b {
  grid-template-rows: auto auto auto;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}

#w-node-_778a9c55-770f-fc43-c9e3-1ea54519c031-e439d83b {
  grid-row: span 3 / span 3;
}

#w-node-_778a9c55-770f-fc43-c9e3-1ea54519c033-e439d83b {
  grid-row: span 2 / span 2;
}

@media screen and (max-width: 991px) {
  #w-node-_778a9c55-770f-fc43-c9e3-1ea54519c030-e439d83b {
    grid-template-rows: auto auto auto;
    grid-template-columns: minmax(0, 1fr);
  }

  #w-node-_778a9c55-770f-fc43-c9e3-1ea54519c031-e439d83b {
    grid-row: span 3 / span 3;
  }

  #w-node-_778a9c55-770f-fc43-c9e3-1ea54519c033-e439d83b {
    grid-row: span 2 / span 2;
  }
}

/* ----------------------------------------------------------------------
   site header: one markup, desktop bar + dropdowns, mobile bottom bar + panel
   ---------------------------------------------------------------------- */

.site-header {
  position: fixed;
  inset: var(--space-4) 0 auto;
  z-index: 1000;
  pointer-events: none;
}

.site-header-bar {
  position: relative;
  display: flex;
  align-items: center;
  gap: var(--space-5);
  min-height: 68px;
  padding-block: var(--space-3);
  padding-inline: var(--space-5) var(--space-3);
  background-color: color-mix(in srgb, var(--color-dark) 86%, transparent);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  border: 1px solid color-mix(in srgb, var(--color-white) 8%, transparent);
  border-radius: var(--radius-large);
  pointer-events: auto;
}

.site-header-brand {
  display: flex;
  align-items: center;
  min-height: 44px;
  border-radius: var(--radius-medium);
}

.site-header-logo {
  height: 28px;
}

.site-nav-toggle {
  display: none;
}

.site-nav {
  display: flex;
  flex: 1 1 auto;
  align-items: center;
  justify-content: flex-end;
}

.site-nav-list {
  position: absolute;
  top: 50%;
  left: 50%;
  display: flex;
  align-items: center;
  gap: var(--space-1);
  margin: 0;
  padding: var(--space-2);
  list-style: none;
  background-color: var(--color-white);
  border-radius: var(--radius-pill);
  transform: translate(-50%, -50%);
}

.site-nav-item {
  position: relative;
}

.site-nav-trigger,
.site-nav-link {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  min-height: 44px;
  padding-inline: var(--space-5);
  font-family: var(--font-primary);
  font-size: var(--font-size-body-md);
  line-height: 1;
  color: var(--color-ink-warm);
  text-decoration: none;
  white-space: nowrap;
  background: none;
  border: 0;
  border-radius: var(--radius-pill);
  cursor: pointer;
  transition: background-color .15s, color .15s;
}

.site-nav-trigger {
  padding-inline-end: var(--space-4);
}

.site-nav-trigger:hover,
.site-nav-link:hover,
.site-nav-trigger[aria-expanded="true"] {
  color: var(--color-dark);
  background-color: var(--color-gray);
}

.site-nav-link[aria-current="page"] {
  color: var(--color-blue);
}

.site-nav-chevron {
  display: flex;
  font-size: 20px;
  transition: transform .2s;
}

.site-nav-chevron svg {
  width: 1em;
  height: 1em;
}

.site-nav-trigger[aria-expanded="true"] .site-nav-chevron {
  transform: rotate(180deg);
}

/* padding-top bridges the gap between trigger and card, so hover survives it */
.site-nav-dropdown {
  position: absolute;
  top: 100%;
  left: 50%;
  min-width: 280px;
  padding-top: var(--space-4);
  opacity: 0;
  visibility: hidden;
  transform: translate(-50%, 6px);
  transition: opacity .18s, transform .18s, visibility 0s .18s;
}

.site-nav-trigger[aria-expanded="true"] + .site-nav-dropdown {
  opacity: 1;
  visibility: visible;
  transform: translate(-50%, 0);
  transition: opacity .18s, transform .18s;
}

@media (hover: hover) {
  .site-nav-toggle:hover {
    background-color: color-mix(in srgb, var(--color-white) 10%, transparent);
  }
}

@media (hover: hover) and (min-width: 992px) {
  .site-nav-item:hover > .site-nav-dropdown {
    opacity: 1;
    visibility: visible;
    transform: translate(-50%, 0);
    transition: opacity .18s, transform .18s;
  }

  .site-nav-item:hover .site-nav-chevron {
    transform: rotate(180deg);
  }
}

.site-nav-group-label {
  display: none;
}

.site-nav-sublist {
  margin: 0;
  padding: var(--space-3);
  list-style: none;
  background-color: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-large);
  box-shadow: 0 16px 40px color-mix(in srgb, var(--color-dark) 18%, transparent);
}

.site-nav-sublink {
  display: flex;
  align-items: center;
  min-height: 44px;
  padding-inline: var(--space-4);
  font-family: var(--font-primary);
  font-size: var(--font-size-body-md);
  color: var(--color-dark);
  text-decoration: none;
  white-space: nowrap;
  border-radius: var(--radius-medium);
  transition: background-color .15s, color .15s;
}

.site-nav-sublink:hover {
  color: var(--color-blue);
  background-color: var(--color-surface);
}

.site-nav-sublink[aria-current="page"] {
  color: var(--color-blue);
}

.site-nav-cta {
  flex: none;
}

/* language switch: HU | EN pill, js/main.js sets hrefs + the active one */
.lang-switch {
  display: inline-flex;
  flex: none;
  padding: 3px;
  background-color: var(--color-gray);
  border-radius: var(--radius-pill);
}

.lang-switch-link {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  padding-inline: var(--space-4);
  font-family: var(--font-primary);
  font-size: var(--font-size-body-sm);
  font-weight: 600;
  letter-spacing: .04em;
  line-height: 1;
  color: var(--color-ink-warm);
  text-decoration: none;
  border-radius: var(--radius-pill);
  transition: background-color .15s, color .15s;
}

.lang-switch-link:hover {
  color: var(--color-dark);
}

.lang-switch-link[aria-current="true"] {
  color: var(--color-white);
  background-color: var(--color-dark);
}

.lang-switch-link:focus-visible {
  outline: 2px solid var(--color-green);
  outline-offset: 2px;
}

.site-nav-cta .button-label {
  font-size: var(--font-size-body-md);
}

.site-header-brand:focus-visible,
.site-nav-toggle:focus-visible,
.site-nav-trigger:focus-visible,
.site-nav-link:focus-visible,
.site-nav-sublink:focus-visible,
.site-nav-cta:focus-visible {
  outline: 2px solid var(--color-green);
  outline-offset: 2px;
}

@media screen and (max-width: 991px) {
  /* thumb-reach bar at the bottom; the panel opens upward from it */
  .site-header {
    inset: auto 0 var(--space-3);
  }

  .site-header-bar {
    justify-content: space-between;
    min-height: 64px;
  }

  .site-header-logo {
    height: 24px;
  }

  .site-nav-toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    color: var(--color-white);
    border-radius: var(--radius-medium);
    transition: background-color .15s;
  }


  .site-nav-toggle-close,
  .site-header.is-open .site-nav-toggle-open,
  .site-header:has(.site-nav:target) .site-nav-toggle-open {
    display: none;
  }

  .site-header.is-open .site-nav-toggle-close,
  .site-header:has(.site-nav:target) .site-nav-toggle-close {
    display: block;
  }

  .site-nav {
    position: absolute;
    right: 0;
    bottom: calc(100% + var(--space-3));
    left: 0;
    flex-direction: column;
    align-items: stretch;
    gap: var(--space-5);
    max-height: calc(100dvh - 64px - 5 * var(--space-3));
    padding: var(--space-5);
    overflow-y: auto;
    overscroll-behavior: contain;
    background-color: var(--color-dark);
    border: 1px solid color-mix(in srgb, var(--color-white) 10%, transparent);
    border-radius: var(--radius-large);
    opacity: 0;
    visibility: hidden;
    transform: translateY(8px);
    transition: opacity .2s, transform .2s, visibility 0s .2s;
  }

  .site-header.is-open .site-nav,
  .site-nav:target {
    opacity: 1;
    visibility: visible;
    transform: none;
    transition: opacity .2s, transform .2s;
  }

  .site-nav-list {
    position: static;
    flex-direction: column;
    align-items: stretch;
    gap: var(--space-4);
    padding: 0;
    background: none;
    border-radius: 0;
    transform: none;
  }

  .site-nav-item + .site-nav-item {
    padding-top: var(--space-4);
    border-top: 1px solid color-mix(in srgb, var(--color-white) 12%, transparent);
  }

  .site-nav-trigger {
    display: none;
  }

  .site-nav-dropdown {
    position: static;
    min-width: 0;
    padding-top: 0;
    opacity: 1;
    visibility: visible;
    transform: none;
  }

  .site-nav-group-label {
    display: block;
    margin: 0 0 var(--space-2);
    font-family: var(--font-primary);
    font-size: var(--font-size-body-sm);
    letter-spacing: .08em;
    text-transform: uppercase;
    color: color-mix(in srgb, var(--color-white) 55%, transparent);
  }

  .site-nav-sublist {
    padding: 0;
    background: none;
    border: 0;
    border-radius: 0;
    box-shadow: none;
  }

  .site-nav-sublink,
  .site-nav-link {
    display: flex;
    padding-inline: 0;
    font-size: var(--font-size-body-lg);
    color: var(--color-white);
    white-space: normal;
    border-radius: 0;
  }

  .site-nav-sublink:hover,
  .site-nav-link:hover {
    color: var(--color-green);
    background: none;
  }

  .site-nav-sublink[aria-current="page"],
  .site-nav-link[aria-current="page"] {
    color: var(--color-green);
  }

  .site-nav-cta {
    height: 48px;
  }

  .lang-switch {
    align-self: flex-start;
    background-color: color-mix(in srgb, var(--color-white) 12%, transparent);
  }

  .lang-switch-link {
    min-height: 44px;
    color: var(--color-white);
  }

  .lang-switch-link:hover {
    color: var(--color-green);
  }

  .lang-switch-link[aria-current="true"] {
    color: var(--color-dark);
    background-color: var(--color-white);
  }

  .site-nav-cta .label-part {
    flex: 1;
  }

  .site-nav-cta .icon-part {
    width: 48px;
    height: 48px;
  }
}

/* ----------------------------------------------------------------------
   interactive states driven by js/main.js
   ---------------------------------------------------------------------- */

.accordion-chevron {
  transition: transform .2s;
}

[aria-expanded="true"] .accordion-chevron,
[aria-expanded="true"] .icon {
  transform: rotate(180deg);
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}

/* ----------------------------------------------------------------------
   gallery dialog
   ---------------------------------------------------------------------- */

.gallery-open {
  background: none;
  border: 0;
  padding: 0;
  cursor: zoom-in;
  max-width: 100%;
}

.gallery-dialog {
  background: var(--color-dark);
  border: 0;
  border-radius: var(--radius-large);
  width: min(1120px, 92vw);
  max-width: 92vw;
  max-height: 90vh;
  padding: var(--space-6);
  color: var(--color-white);
}

.gallery-dialog::backdrop {
  background: color-mix(in srgb, var(--color-dark) 85%, transparent);
}

.gallery-close-form {
  display: flex;
  justify-content: flex-end;
}

.gallery-close {
  background: none;
  border: 0;
  color: var(--color-white);
  min-width: 44px;
  min-height: 44px;
  font-size: var(--font-size-h5);
  cursor: pointer;
}

.gallery-slides {
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
  overflow-y: auto;
  max-height: calc(90vh - 100px);
}

.gallery-slide {
  margin: 0;
}

.gallery-slide img {
  width: 100%;
  height: auto;
  border-radius: var(--radius-large);
  display: block;
}

.stack.results-cell {
  width: 100%;
  height: auto;
}

/* ----------------------------------------------------------------------
   blog: page hero, breadcrumb, post tags, CTA strip (blog + blog-post)
   ---------------------------------------------------------------------- */

.page-hero {
  padding-top: calc(var(--header-h) + var(--space-8));
  padding-bottom: var(--space-8);
}

.page-hero-inner {
  gap: var(--space-5);
}

.page-hero-title {
  color: var(--color-white);
}

.page-hero-lead {
  max-width: 720px;
  color: color-mix(in srgb, var(--color-white) 80%, transparent);
}

.breadcrumb-list {
  font-family: var(--font-primary);
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: var(--font-size-body-md);
  color: color-mix(in srgb, var(--color-white) 70%, transparent);
}

.breadcrumb-item {
  display: flex;
  align-items: center;
  gap: var(--space-3);
}

.breadcrumb-item + .breadcrumb-item::before {
  content: "›";
}

.breadcrumb-link {
  color: inherit;
  text-decoration: none;
}

.breadcrumb-link:hover,
.breadcrumb-link:focus-visible {
  color: var(--color-green);
  text-decoration: underline;
}

.breadcrumb-current {
  color: var(--color-white);
}

.post-tags {
  flex-wrap: wrap;
  gap: var(--space-3);
}

.cta-strip-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-6);
  padding-block: var(--space-6);
}

.cta-strip-text {
  flex: 1 1 480px;
  gap: var(--space-4);
}

@media screen and (max-width: 767px) {
  .page-hero {
    padding-top: var(--space-7);
    padding-bottom: var(--space-7);
  }
}

.image {
  width: 100%;
}

.post-card-image {
  overflow: hidden;
  width: 100% !important;
  display: block;
  object-fit: cover;
  border-bottom-left-radius: var(--radius-large);
  border-bottom-right-radius: var(--radius-large);
  flex-shrink: 0;
  aspect-ratio: null;
  min-height: 220px;
}

.heading-6.post-card-title {
  height: auto;
}

.stack.not-found-inner {
  width: 100%;
}

.strong-block {
  font-weight: 400;
}

.stack.included-row {
  height: auto;
  width: 100%;
  gap: 16px;
}

.dual-grid.project-roadmap {
  width: 100%;
  margin-bottom: 24px;
}

@media (min-width: 1440px) {

  .small-accordion {
    height: auto;
  }

  .container.narrow {
    justify-content: center;
    align-items: center;
    height: auto;
  }

  .grid-of-tree {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-5);
  }
}

@media (min-width: 1971px) {

  .section {
    text-align: left;
    display: flex;
  }

  .container {
    height: auto;
  }

  .grid-of-tree {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-5);
  }

  .container.narrow {
    justify-content: center;
    align-items: flex-start;
  }

  .card-light.white {
    background-color: var(--color-white);
  }

  .heading-6 {
  }

  .kv-quote-text {
    width: 100px;
  }

  .heading-3.dark {
    line-height: 110%;
  }

  .mp-stat.mp-reveal {
    border-width: 3px;
    border-color: var(--color-white);
  }

  .mp-cta {
    background-color: var(--color-blue);
  }

  .mp-cta-text.white {
    color: var(--color-white);
  }

  .mp-cta-title.white {
    color: var(--color-white);
  }

  .mp-hero-title {
    font-size: var(--font-size-headline);
  }

  .mp-diagnosis.mp-reveal {
    border-radius: var(--radius-large);
    border-color: transparent;
    background-color: rgba(87, 253, 212, 0.19);
  }

  .chip.green {
    display: inline-flex;
    width: auto;
  }

  .mp-diagnosis-word {
    color: var(--color-green);
  }

  .mp-symptom {
    border-color: var(--color-blue);
    background-color: rgba(63, 105, 220, 0.15);
  }

  .mp-symptom-tag {
    background-color: var(--color-blue);
  }

}

.grid-of-tree {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-5);
}

@media (max-width: 767px) {

  .grid-of-tree {
    display: flex;
    flex-direction: column;
  }
}

.slider-card {
  flex: 0 0 100%;
  min-width: min(360px, 82vw);
  scroll-snap-align: start;
  flex-shrink: 0;
}

.slider-nav {
  display: flex;
  gap: 16px;
  justify-content: center;
  margin-top: 32px;
}

.slider-btn {
  background: white;
  border: none;
  border-radius: 50%;
  width: 52px;
  height: 52px;
  font-size: 20px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.slide-arrows {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: auto;
  padding-top: 24px;
}

.slide-arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  background: rgba(255,255,255,0.25);
  border-radius: 50%;
  color: white;
  text-decoration: none;
  font-size: 22px;
}

.slide-arrow-spacer {
  display: inline-block;
  width: 48px;
  height: 48px;
}

.kv-quote-block.kv-reveal {
  padding-top: 0px;
  padding-bottom: 0px;
  width: 100%;
}

.kv-stat.kv-reveal {
  background-color: #ffffff;
  border-color: var(--color-white);
}

.kv-quote-text {
  width: 100%;
}

.kv-questions.kv-reveal {
  width: 100%;
}

.ptr-flex {
  display: flex;
}

.ptr-flex-col {
  flex-direction: column;
}

.ptr-flex.ptr-flex-col {
  flex-direction: row;
  gap: var(--space-5);
}

.kv-finding.kv-reveal {
  width: 100%;
}

.heading-1.dark {
  color: var(--color-dark);
}

.heading-3.dark {
  color: var(--color-dark);
  font-family: "DM Sans";
  font-size: var(--font-size-h3);
  line-height: 130%;
}

.heading-3 {
  font-family: "DM Sans";
  font-size: var(--font-size-h3);
  line-height: 130%;
}

.mp-cta-title.white {
  color: var(--color-white);
}

.mp-cta-text.white {
  color: var(--color-white);
}


/* ----------------------------------------------------------------------
   Service pages (sell, build, operate-v2, rethink) - shared .op-* layer.
   Promoted from css/operate-v2.css when the second page used it.
   ---------------------------------------------------------------------- */


.op-main {
  background-color: var(--color-dark);
  color: var(--color-white);
  overflow-x: clip;
}

.op-chip {
  display: inline-flex;
  align-items: center;
  gap: var(--space-3);
  padding: 6px var(--space-4);
  border: 1px solid color-mix(in srgb, var(--color-green) 45%, transparent);
  border-radius: var(--radius-pill);
  background-color: color-mix(in srgb, var(--color-green) 10%, transparent);
  color: var(--color-green);
  font-family: var(--font-primary);
  font-size: 14px;
  font-weight: 400;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.op-chip::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: var(--radius-pill);
  background-color: var(--color-green);
  box-shadow: 0 0 12px var(--color-green);
}

.op-chip-dark {
  border-color: color-mix(in srgb, var(--color-intense) 35%, transparent);
  background-color: color-mix(in srgb, var(--color-intense) 8%, transparent);
  color: var(--color-intense);
}

.op-chip-dark::before {
  background-color: var(--color-intense);
  box-shadow: none;
}

.op-section-title {
  margin: var(--space-0);
  font-family: var(--font-primary);
  font-size: var(--font-size-h2);
  font-weight: 300;
  line-height: 115%;
  letter-spacing: -.02em;
}

.op-section-head {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-5);
  margin-bottom: var(--space-10);
}

.op-section-sub {
  max-width: 56ch;
  margin: var(--space-0);
  font-family: var(--font-primary);
  font-size: var(--font-size-body-lg);
  font-weight: 300;
  line-height: 150%;
  color: color-mix(in srgb, var(--color-white) 70%, transparent);
}

/* ---------- buttons on this page: taller, with a nudge on hover ---------- */

.op-cta-button {
  height: 52px;
}

.op-cta-button .label-part {
  padding-inline: var(--space-6);
  font-size: var(--font-size-body-lg);
}

.op-cta-button .icon-part {
  width: 52px;
  height: 52px;
  transition: transform .3s cubic-bezier(.2, .8, .2, 1);
}

.op-cta-button:hover .icon-part,
.op-cta-button:focus-visible .icon-part {
  transform: translateX(6px) rotate(-45deg);
}

/* ---------- hero ---------- */

.op-hero {
  position: relative;
  isolation: isolate;
  display: flex;
  align-items: flex-end;
  min-height: 100svh;
  padding-top: var(--space-atf-top);
  padding-bottom: var(--space-10);
  overflow: hidden;
}

.op-hero::before {
  content: "";
  position: absolute;
  inset: -20%;
  z-index: -1;
  background:
    radial-gradient(40% 45% at 75% 30%, color-mix(in srgb, var(--color-intense) 70%, transparent), transparent 70%),
    radial-gradient(35% 40% at 20% 80%, color-mix(in srgb, var(--color-blue) 60%, transparent), transparent 70%),
    radial-gradient(25% 30% at 90% 85%, color-mix(in srgb, var(--color-green) 35%, transparent), transparent 70%);
  filter: blur(40px);
  animation: op-drift 22s ease-in-out infinite alternate;
}

.op-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background-image:
    linear-gradient(color-mix(in srgb, var(--color-white) 7%, transparent) 1px, transparent 1px),
    linear-gradient(90deg, color-mix(in srgb, var(--color-white) 7%, transparent) 1px, transparent 1px);
  background-size: 64px 64px;
  mask-image: radial-gradient(ellipse 70% 60% at 60% 40%, var(--color-black), transparent);
}

.op-hero-media {
  position: absolute;
  inset: 0;
  z-index: -2;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: .28;
  mix-blend-mode: luminosity;
  mask-image: linear-gradient(to bottom, var(--color-black) 20%, transparent 95%);
}

.op-hero-content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-6);
}

.op-hero-title {
  margin: var(--space-0);
  font-family: gradual, var(--font-primary);
  font-size: clamp(72px, 15vw, 232px);
  font-weight: 300;
  line-height: .9;
  letter-spacing: -.04em;
  background: linear-gradient(100deg, var(--color-white) 25%, var(--color-green-soft) 55%, var(--color-green) 85%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.op-hero-lead {
  max-width: 22ch;
  margin: var(--space-0);
  font-family: var(--font-primary);
  font-size: clamp(28px, 3.4vw, var(--font-size-h2));
  font-weight: 300;
  line-height: 120%;
  letter-spacing: -.01em;
}

.op-hero-accent {
  color: var(--color-green);
}

.op-hero-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-6);
}

.op-hero-link {
  display: inline-flex;
  align-items: center;
  gap: var(--space-3);
  color: var(--color-white);
  font-family: var(--font-primary);
  font-size: var(--font-size-body-lg);
  text-decoration: none;
  border-bottom: 1px solid color-mix(in srgb, var(--color-white) 35%, transparent);
  padding-bottom: var(--space-1);
  transition: color .2s, border-color .2s;
}

.op-hero-link:hover,
.op-hero-link:focus-visible {
  color: var(--color-green);
  border-color: var(--color-green);
}

.op-stats {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-6);
  width: 100%;
  margin-top: var(--space-9);
}

.op-stat {
  flex: 1 1 220px;
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  padding-top: var(--space-5);
  border-top: 1px solid color-mix(in srgb, var(--color-white) 20%, transparent);
}

.op-stat-value {
  font-family: gradual, var(--font-primary);
  font-size: var(--font-size-h2);
  line-height: 100%;
  color: var(--color-green);
}

.op-stat-label {
  font-family: var(--font-primary);
  font-size: var(--font-size-body-md);
  font-weight: 300;
  line-height: 140%;
  color: color-mix(in srgb, var(--color-white) 70%, transparent);
}

/* ---------- marquee band ---------- */

.op-marquee {
  overflow: hidden;
  background-color: var(--color-green);
  color: var(--color-dark);
  padding-block: var(--space-5);
  transform: rotate(-1.5deg) scale(1.02);
  box-shadow: 0 0 60px color-mix(in srgb, var(--color-green) 35%, transparent);
}

.op-marquee-track {
  display: flex;
  width: max-content;
  animation: op-scroll 40s linear infinite;
}

.op-marquee-item {
  display: inline-flex;
  align-items: center;
  font-family: gradual, var(--font-primary);
  font-size: var(--font-size-h4);
  line-height: 100%;
  white-space: nowrap;
}

.op-marquee-item::after {
  content: "\2726";
  margin-inline: var(--space-7);
  font-size: var(--font-size-h6);
  color: var(--color-intense);
}

/* ---------- steps ---------- */

.op-steps {
  padding-top: calc(var(--space-10) * 2);
  padding-bottom: var(--space-10);
}

.op-step-list {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-5);
  margin: var(--space-0);
  padding: var(--space-0);
  list-style: none;
}

.op-step {
  position: relative;
  flex: 1 1 300px;
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
  padding: var(--space-6);
  border: 1px solid color-mix(in srgb, var(--color-white) 12%, transparent);
  border-radius: var(--radius-large);
  background: linear-gradient(160deg, color-mix(in srgb, var(--color-white) 6%, transparent), color-mix(in srgb, var(--color-white) 1%, transparent));
  transition: transform .35s cubic-bezier(.2, .8, .2, 1), border-color .35s, box-shadow .35s;
}

.op-step:hover {
  transform: translateY(-8px);
  border-color: color-mix(in srgb, var(--color-green) 60%, transparent);
  box-shadow: 0 24px 60px -20px color-mix(in srgb, var(--color-green) 40%, transparent);
}

.op-step-number {
  font-family: gradual, var(--font-primary);
  font-size: 96px;
  line-height: 100%;
  color: transparent;
  -webkit-text-stroke: 1px color-mix(in srgb, var(--color-green) 80%, transparent);
  transition: color .35s;
}

.op-step:hover .op-step-number {
  color: var(--color-green);
}

.op-step-title {
  margin: var(--space-0);
  font-family: var(--font-primary);
  font-size: var(--font-size-h6);
  font-weight: 400;
  line-height: 130%;
}

.op-step-text {
  margin: var(--space-0);
  font-family: var(--font-primary);
  font-size: var(--font-size-body-lg);
  font-weight: 300;
  line-height: 150%;
  color: color-mix(in srgb, var(--color-white) 72%, transparent);
}

/* ---------- symptoms ---------- */

.op-symptoms {
  position: relative;
  isolation: isolate;
  padding-block: calc(var(--space-10) * 1.5);
  background-color: var(--color-blue);
  overflow: hidden;
}

.op-symptoms::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    radial-gradient(50% 60% at 100% 0%, color-mix(in srgb, var(--color-intense) 80%, transparent), transparent 70%),
    radial-gradient(40% 50% at 0% 100%, color-mix(in srgb, var(--color-dark) 50%, transparent), transparent 70%);
}

.op-symptoms .op-section-sub {
  color: color-mix(in srgb, var(--color-white) 82%, transparent);
}

.op-quote-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
  gap: var(--space-5);
}

.op-quote {
  position: relative;
  margin: var(--space-0);
  padding: var(--space-10) var(--space-6) var(--space-6);
  border-radius: var(--radius-large);
  background-color: var(--color-white);
  color: var(--color-dark);
  box-shadow: 0 30px 60px -30px color-mix(in srgb, var(--color-dark) 60%, transparent);
  transition: transform .35s cubic-bezier(.2, .8, .2, 1);
}

.op-quote:nth-child(even) {
  margin-top: var(--space-9);
}

.op-quote:hover {
  transform: translateY(-6px) rotate(-.6deg);
}

.op-quote::before {
  content: "\201D";
  position: absolute;
  top: var(--space-4);
  left: var(--space-6);
  font-family: gradual, var(--font-primary);
  font-size: 96px;
  line-height: .8;
  color: var(--color-intense);
}

.op-quote-text {
  margin: var(--space-0);
  font-family: var(--font-primary);
  font-size: var(--font-size-h6);
  font-weight: 400;
  line-height: 135%;
}

.op-symptoms-note {
  margin: var(--space-10) var(--space-0) var(--space-0);
  font-family: var(--font-primary);
  font-size: var(--font-size-h6);
  font-weight: 300;
}

.op-symptoms-link {
  color: var(--color-green);
  text-underline-offset: 6px;
}

/* ---------- case study bento ---------- */

.op-case {
  padding-block: calc(var(--space-10) * 1.5);
  background-color: var(--color-gray);
  color: var(--color-dark);
}

.op-case .op-section-sub {
  color: var(--color-ink-soft);
}

.op-bento {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-4);
}

.op-tile {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: var(--space-5);
  min-height: 240px;
  padding: var(--space-6);
  border-radius: var(--radius-large);
  transition: transform .35s cubic-bezier(.2, .8, .2, 1);
}

.op-tile:hover {
  transform: scale(1.015);
}

.op-tile-story {
  grid-column: span 2;
  grid-row: span 2;
  position: relative;
  overflow: hidden;
  background-color: var(--color-dark);
  color: var(--color-white);
}

.op-tile-story::after {
  content: "";
  position: absolute;
  right: -30%;
  bottom: -40%;
  width: 80%;
  aspect-ratio: 1;
  border-radius: var(--radius-pill);
  background: radial-gradient(circle, color-mix(in srgb, var(--color-intense) 60%, transparent), transparent 65%);
  pointer-events: none;
}

.op-tile-title {
  position: relative;
  margin: var(--space-0);
  font-family: var(--font-primary);
  font-size: var(--font-size-h4);
  font-weight: 300;
  line-height: 115%;
}

.op-tile-text {
  position: relative;
  margin: var(--space-0);
  font-family: var(--font-primary);
  font-size: var(--font-size-body-md);
  font-weight: 300;
  line-height: 160%;
  color: color-mix(in srgb, var(--color-white) 75%, transparent);
}

.op-tile-story .button {
  position: relative;
}

.op-tile-metric-blue {
  background-color: var(--color-blue);
  color: var(--color-white);
}

.op-tile-metric-intense {
  background-color: var(--color-intense);
  color: var(--color-white);
}

.op-tile-metric-green {
  background-color: var(--color-green);
  color: var(--color-dark);
}

.op-tile-value {
  font-family: gradual, var(--font-primary);
  font-size: clamp(40px, 3.6vw, 64px);
  line-height: 100%;
  white-space: nowrap;
}

.op-tile-label {
  font-family: var(--font-primary);
  font-size: var(--font-size-body-md);
  font-weight: 400;
  line-height: 140%;
}

.op-tile-features {
  background-color: var(--color-white);
}

.op-feature-list {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  margin: var(--space-0);
  padding: var(--space-0);
  list-style: none;
}

.op-feature {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  font-family: var(--font-primary);
  font-size: var(--font-size-body-md);
  line-height: 130%;
}

.op-feature::before {
  content: "";
  flex: 0 0 20px;
  height: 20px;
  border-radius: var(--radius-pill);
  background:
    radial-gradient(circle, var(--color-dark) 0 3px, transparent 4px),
    var(--color-green);
}

/* ---------- roadmap timeline ---------- */

.op-roadmap {
  padding-block: calc(var(--space-10) * 1.5);
}

.op-timeline {
  margin: var(--space-0);
  padding: var(--space-0);
  list-style: none;
}

.op-phase {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: var(--space-5) var(--space-9);
  padding: var(--space-7) var(--space-5);
  background-image: linear-gradient(color-mix(in srgb, var(--color-white) 10%, transparent), color-mix(in srgb, var(--color-white) 10%, transparent));
  background-position: bottom;
  background-size: 100% 1px;
  background-repeat: no-repeat;
  border-radius: var(--radius-large);
  transition: background-color .35s;
}

.op-phase:last-child {
  background-image: none;
}

.op-phase:hover {
  background-color: color-mix(in srgb, var(--color-white) 4%, transparent);
}

.op-phase-num {
  flex: 0 0 200px;
  display: inline-flex;
  align-items: flex-start;
  font-family: gradual, var(--font-primary);
  font-size: 128px;
  font-weight: 300;
  line-height: .8;
  letter-spacing: -.05em;
  color: transparent;
  -webkit-text-stroke: 1px color-mix(in srgb, var(--color-green) 70%, transparent);
  background: linear-gradient(160deg, var(--color-green) 10%, var(--color-blue) 55%, var(--color-intense) 90%);
  -webkit-background-clip: text;
  background-clip: text;
  background-size: 100% 0%;
  background-repeat: no-repeat;
  background-position: bottom;
  transition: background-size .5s cubic-bezier(.2, .8, .2, 1), transform .5s cubic-bezier(.2, .8, .2, 1);
}

.op-phase:hover .op-phase-num {
  background-size: 100% 100%;
  transform: translateX(8px);
}

.op-phase-total {
  margin-left: var(--space-2);
  font-family: var(--font-primary);
  font-size: var(--font-size-body-md);
  font-weight: 400;
  letter-spacing: .08em;
  line-height: 1;
  color: color-mix(in srgb, var(--color-white) 40%, transparent);
  -webkit-text-stroke: 0;
}

.op-phase-head {
  flex: 0 1 380px;
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}

.op-phase-week {
  margin: 0;
  font-family: var(--font-primary);
  font-size: 14px;
  font-weight: 500;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--color-green);
}

.op-phase-title {
  margin: var(--space-0);
  font-family: var(--font-primary);
  font-size: var(--font-size-h4);
  font-weight: 300;
  line-height: 115%;
}

.op-phase-body {
  flex: 1 1 320px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-5);
}

.op-phase-text {
  margin: var(--space-0);
  font-family: var(--font-primary);
  font-size: var(--font-size-body-lg);
  font-weight: 300;
  line-height: 150%;
  color: color-mix(in srgb, var(--color-white) 75%, transparent);
}

.op-phase-result {
  margin: 0;
  display: inline-flex;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-3) var(--space-4);
  border-radius: var(--radius-medium);
  background-color: color-mix(in srgb, var(--color-intense) 35%, transparent);
  border: 1px solid color-mix(in srgb, var(--color-intense) 80%, transparent);
  font-family: var(--font-primary);
  font-size: var(--font-size-body-md);
  line-height: 130%;
}

.op-phase-result::before {
  content: "\2192";
  color: var(--color-green);
  font-weight: 500;
}

.op-phase-result-label {
  color: var(--color-green);
  font-weight: 500;
}

/* ---------- FAQ ---------- */

.op-faq {
  padding-block: calc(var(--space-10) * 1.5);
  background-color: var(--color-white);
  color: var(--color-dark);
}

.op-faq-layout {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: var(--space-9);
}

.op-faq-intro {
  position: sticky;
  top: calc(var(--header-h) + var(--space-6));
  flex: 0 1 380px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-5);
}

.op-faq-hint {
  margin: var(--space-0);
  font-family: var(--font-primary);
  font-size: var(--font-size-body-lg);
  font-weight: 300;
  line-height: 150%;
  color: var(--color-ink-soft);
}

.op-faq-hint-link {
  color: var(--color-intense);
  text-underline-offset: 4px;
}

.op-faq-list {
  flex: 1 1 480px;
  display: flex;
  flex-direction: column;
}

.op-faq-item {
  border-bottom: 1px solid var(--color-border);
}

.op-faq-summary {
  display: flex;
  align-items: center;
  gap: var(--space-5);
  padding-block: var(--space-6);
  cursor: pointer;
  list-style: none;
}

.op-faq-summary::-webkit-details-marker {
  display: none;
}

.op-faq-num {
  flex: 0 0 auto;
  font-family: gradual, var(--font-primary);
  font-size: var(--font-size-body-lg);
  color: var(--color-intense);
}

.op-faq-question {
  flex: 1;
  margin: var(--space-0);
  font-family: var(--font-primary);
  font-size: var(--font-size-h6);
  font-weight: 400;
  line-height: 130%;
  transition: color .2s;
}

.op-faq-summary:hover .op-faq-question {
  color: var(--color-intense);
}

.op-faq-icon {
  position: relative;
  flex: 0 0 40px;
  height: 40px;
  border-radius: var(--radius-pill);
  background-color: var(--color-gray);
  transition: transform .3s cubic-bezier(.2, .8, .2, 1), background-color .3s;
}

.op-faq-icon::before,
.op-faq-icon::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 14px;
  height: 2px;
  margin: -1px 0 0 -7px;
  border-radius: var(--radius-pill);
  background-color: var(--color-dark);
}

.op-faq-icon::after {
  transform: rotate(90deg);
}

.op-faq-item[open] .op-faq-icon {
  transform: rotate(135deg);
  background-color: var(--color-green);
}

.op-faq-answer {
  max-width: 64ch;
  margin: var(--space-0);
  padding: var(--space-0) var(--space-0) var(--space-6) var(--space-7);
  font-family: var(--font-primary);
  font-size: var(--font-size-body-lg);
  font-weight: 300;
  line-height: 155%;
  color: var(--color-ink-soft);
}

/* ---------- closing CTA ---------- */

.op-cta {
  padding-block: var(--space-10);
}

.op-cta-panel {
  position: relative;
  isolation: isolate;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-6);
  padding: calc(var(--space-10) * 1.25) var(--space-9);
  border-radius: calc(var(--radius-large) * 2);
  background: linear-gradient(135deg, var(--color-blue), var(--color-intense));
  overflow: hidden;
}

.op-cta-panel::before {
  content: "";
  position: absolute;
  top: -40%;
  right: -10%;
  z-index: -1;
  width: 60%;
  aspect-ratio: 1;
  border-radius: var(--radius-pill);
  background: radial-gradient(circle, color-mix(in srgb, var(--color-green) 55%, transparent), transparent 65%);
  animation: op-pulse 8s ease-in-out infinite alternate;
}

.op-cta-title {
  margin: var(--space-0);
  font-family: gradual, var(--font-primary);
  font-size: clamp(56px, 9vw, 136px);
  font-weight: 300;
  line-height: .95;
  letter-spacing: -.03em;
}

.op-cta-text {
  max-width: 44ch;
  margin: var(--space-0);
  font-family: var(--font-primary);
  font-size: var(--font-size-body-lg);
  font-weight: 300;
  line-height: 150%;
  color: color-mix(in srgb, var(--color-white) 85%, transparent);
}

/* ---------- motion ---------- */

@keyframes op-drift {
  to {
    transform: translate3d(-6%, 4%, 0) rotate(8deg) scale(1.1);
  }
}

@keyframes op-scroll {
  to {
    transform: translateX(-50%);
  }
}

@keyframes op-pulse {
  to {
    transform: translate(-10%, 15%) scale(1.25);
  }
}

@keyframes op-rise {
  from {
    opacity: 0;
    transform: translateY(48px);
  }
}

@supports (animation-timeline: view()) {
  .op-reveal {
    animation: op-rise linear both;
    animation-timeline: view();
    animation-range: entry 0% entry 70%;
  }
}

/* main.css flattens durations; scroll-driven animations ignore duration, so
   they are switched off here explicitly. */
@media (prefers-reduced-motion: reduce) {
  .op-reveal,
  .op-hero::before,
  .op-marquee-track,
  .op-cta-panel::before {
    animation: none !important;
  }
}

/* ---------- breakpoints ---------- */

@media screen and (max-width: 991px) {
  .op-bento {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .op-tile-story {
    grid-row: auto;
  }

  .op-faq-intro {
    position: static;
  }

  .op-cta-panel {
    padding: var(--space-10) var(--space-6);
  }
}

@media screen and (max-width: 767px) {
  .op-hero {
    min-height: 0;
    padding-top: var(--space-10);
  }

  .op-section-title {
    font-size: var(--font-size-h4);
  }

  .op-marquee-item {
    font-size: var(--font-size-h5);
  }

  .op-quote-grid,
  .op-bento {
    grid-template-columns: minmax(0, 1fr);
  }

  .op-quote:nth-child(even) {
    margin-top: var(--space-0);
  }

  .op-tile-story {
    grid-column: auto;
  }

  .op-phase {
    padding-inline: var(--space-0);
  }

  .op-phase-num {
    flex-basis: 100%;
    font-size: 88px;
  }

  .op-phase-title {
    font-size: var(--font-size-h5);
  }

  .op-faq-answer {
    padding-left: var(--space-0);
  }
}

@media screen and (max-width: 479px) {
  .op-step-number {
    font-size: 72px;
  }

  .op-quote-text,
  .op-faq-question {
    font-size: var(--font-size-body-lg);
  }
}
