/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[3].use[1]!../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[3].use[2]!../node_modules/resolve-url-loader/index.js??ruleSet[1].rules[3].use[3]!../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[3].use[4]!../node_modules/import-glob/index.js!./styles/main.scss ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
@charset "UTF-8";
/**
 * Breakpoints & Media Queries
 */
:root {
  --base-font-size: clamp(16px, 1.11vw, 20px);
  --content-size: 90rem;
  --wide-size: 85rem;
  /* BASE COLORS */
  --white: #ffffff;
  --black: #0a2426;
  --gray-100: #e8e0d7;
  --gray-300: #cccccc;
  --gray-500: #7f7f7d;
  --gray-800: #141414;
  --gray-900: #111010;
  --blue-500: #213f6a;
  --green-500: #004c52;
  --red-500: #ff6555;
  --beige-500: #f0f0ee;
  --sauge: #d2dedd;
  --primary: var(--green-500);
  --secondary: var(--red-500);
  --text-color: var(--black);
  --bg-color: var(--beige-500);
  --size-2xs: 0.625rem;
  --size-xs: 0.938rem;
  --size-sm: 1.25rem;
  --size-md: 1.563rem;
  --size-lg: 2.188rem;
  --size-xl: 2.813rem;
  --size-2xl: 4.688rem;
  --transition-base: all 0.2s ease-in-out;
  --font-zalando-sans: 'Zalando Sans', sans-serif;
  --font-spline-sans: 'Spline Sans', sans-serif;
  --primary-font-family: var(--font-zalando-sans);
  --secondary-font-family: var(--font-spline-sans);
  --heading-font: var(--secondary-font-family);
  --sub-heading-font: var(--secondary-font-family);
  --font-weight-regular: 400;
  --font-weight-bold: 700;
  --font-weight-default: var(--font-weight-regular);
  --font-size-h1: 3.625rem;
  --font-size-h2: 2.625rem;
  --font-size-h3: 2.375rem;
  --font-size-h4: 1.625rem;
  --font-size-h5: 1.1rem;
  --font-size-h6: 1rem;
  --font-size-text-xlarge: 1.25rem;
  --font-size-text-large: 1rem;
  --font-size-text-medium: 0.75rem;
  --font-size-text-small: 0.5rem;
  --line-height-heading: 1.1;
  --line-height-text: 1.4;
  /* Custom Breakpoints */
  --breakpoint-desktop-xl: 1920px; /* 4K / very large desktops */
  --breakpoint-desktop-lg: 1440px; /* large laptops / standard desktop */
  --breakpoint-desktop-md: 1200px; /* small desktops / big tablets landscape */
  --breakpoint-tablet-lg: 1024px; /* tablets landscape / small laptops */
  --breakpoint-tablet: 768px; /* regular tablets */
  --breakpoint-mobile: 640px; /* big phones */
}
@font-face {
  font-family: "Zalando Sans";
  src: url(../fonts/ZalandoSans-VariableFont_wdth,wght.woff2) format("woff2");
  font-weight: 1 999;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Zalando Sans";
  src: url(../fonts/ZalandoSans-Italic-VariableFont_wdth,wght.woff2) format("woff2");
  font-weight: 1 999;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: "Spline Sans";
  src: url(../fonts/SplineSans-VariableFont_wght.woff2) format("woff2");
  font-weight: 1 999;
  font-style: normal;
  font-display: swap;
}
/**
 * Desaturate by default, restore full colour on hover/focus.
 *
 * Apply to the image itself; pass the hoverable ancestor as $trigger when the
 * pointer target is a wrapping tile/link rather than the image (the usual case,
 * since padded tiles are easier to hit than the artwork inside them).
 *
 * Honours prefers-reduced-motion by dropping the transition, not the effect.
 */
h1,
h2,
h3,
h4,
h5,
h6,
p {
  margin: 0;
  padding: 0;
}

/* stylelint-disable-next-line */
html :where(.editor-styles-wrapper) h1,
html :where(.editor-styles-wrapper) h2,
html :where(.editor-styles-wrapper) h3,
html :where(.editor-styles-wrapper) h4,
html :where(.editor-styles-wrapper) h5,
html :where(.editor-styles-wrapper) h6 {
  margin: inherit;
  padding: inherit;
  color: inherit;
}

button {
  font-family: inherit;
  color: inherit;
  background: unset;
  border: unset;
  padding: unset;
  margin: unset;
}

ul:not(.wp-block-list) {
  margin: 0;
  padding: 0;
  list-style: none;
}

/* ---------------------------------------
	Typography
--------------------------------------- */
html {
  font-size: var(--base-font-size);
}

body {
  font-family: var(--primary-font-family), sans-serif;
  font-size: var(--font-size-text-large);
  font-weight: var(--font-weight-default);
  line-height: var(--line-height-text);
  color: var(--text-color);
  background: var(--bg-color);
}

h1,
.h1,
.has-h1-font-size,
h2,
.h2,
.has-h2-font-size,
h3,
.h3,
.has-h3-font-size,
h4,
.h4,
.has-h4-font-size,
h5,
.h5,
.has-h5-font-size,
h6,
.h6 {
  font-family: var(--heading-font), sans-serif;
  line-height: var(--line-height-text);
  font-weight: var(--font-weight-bold);
}

h1,
.h1,
.has-h1-font-size {
  line-height: 1.1;
  font-weight: 600;
  font-size: clamp(30px, 4.72vw, 4.25rem);
}

h2,
.h2,
.has-h2-font-size {
  line-height: 1.1;
  font-weight: 600;
  font-size: clamp(25px, 4.72vw, 4.25rem);
}

h3,
.h3,
.has-h3-font-size {
  line-height: 1.3;
  font-weight: 600;
  font-size: clamp(20px, 2.5vw, 2.25rem);
}

h4,
.h4,
.has-h4-font-size {
  font-weight: 600;
  line-height: 1.3;
  font-size: clamp(19px, 1.67vw, 1.5rem);
}

h5,
.h5,
.has-h5-font-size {
  font-weight: 600;
  line-height: 1.3;
  font-size: clamp(18px, 1.67vw, 1.375rem);
}

h6,
.h6,
.has-h6-font-size {
  font-weight: 600;
  line-height: 1.3;
  font-size: clamp(16px, 1.39vw, 1.25rem);
}

p {
  font-family: var(--primary-font-family);
  /* basic paragraph styles */
}
p:empty {
  display: none;
}
p:not(:last-child) {
  margin-bottom: var(--size-md);
}
p a {
  text-decoration: underline;
}

.text-large {
  font-family: var(--heading-font), sans-serif;
  font-size: clamp(22px, 2.5vw, 2.25rem);
  font-weight: 600;
  line-height: 1.47;
  color: var(--text-color);
}

b,
strong {
  font-weight: var(--font-weight-bold);
}

ul {
  /* basic list styles */
  font-size: inherit;
}
ul li {
  /* basic list-item styles */
}

a {
  color: var(--text-color);
  text-decoration: underline;
  -webkit-transition: var(--transition-base);
  transition: var(--transition-base);
}
a:hover, a:focus {
  /* basic hover and focus effects */
  color: var(--primary);
}

/* ---------------------------------------
	Forms/Inputs
--------------------------------------- */
.no-outline button,
.no-outline a,
.no-outline [tabindex] {
  outline: none;
}

/* Placeholder styling */
input::-webkit-input-placeholder, textarea::-webkit-input-placeholder {
  opacity: 1;
}
input::-moz-placeholder, textarea::-moz-placeholder {
  opacity: 1;
}
input:-ms-input-placeholder, textarea:-ms-input-placeholder {
  opacity: 1;
}
input::-ms-input-placeholder, textarea::-ms-input-placeholder {
  opacity: 1;
}
input::placeholder,
textarea::placeholder {
  opacity: 1;
}

/* Input Styling */
[type=color],
[type=date],
[type=datetime-local],
[type=datetime],
[type=email],
[type=month],
[type=number],
[type=password],
[type=search],
[type=tel],
[type=text],
[type=time],
[type=url],
[type=week],
textarea,
select,
.select-styled {
  margin-bottom: 0;
}

textarea[rows] {
  /* Styles for TextArea */
  height: 150px;
  max-width: 100%;
}

[type=number] {
  -moz-appearance: textfield;
}

[type=number]::-webkit-inner-spin-button,
[type=number]::-webkit-outer-spin-button {
  margin: 0;
  -webkit-appearance: none;
}

[type=checkbox],
[type=file],
[type=radio] {
  margin-bottom: 0;
}

.button {
  display: -webkit-inline-box;
  display: -webkit-inline-flex;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  font-size: 1rem;
  line-height: 1.19;
  font-weight: 400;
  color: var(--white);
  padding: 0.625rem 1rem;
  text-align: center;
  text-decoration: none;
  min-width: 9.6875rem;
  position: relative;
  cursor: pointer;
  -webkit-transition: background-color 0.25s ease, border-color 0.25s ease, color 0.25s ease, -webkit-box-shadow 0.25s ease, -webkit-transform 0.25s ease;
  transition: background-color 0.25s ease, border-color 0.25s ease, color 0.25s ease, -webkit-box-shadow 0.25s ease, -webkit-transform 0.25s ease;
  transition: background-color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease, color 0.25s ease, transform 0.25s ease;
  transition: background-color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease, color 0.25s ease, transform 0.25s ease, -webkit-box-shadow 0.25s ease, -webkit-transform 0.25s ease;
  border-radius: 7.9375rem;
  border: 1px solid var(--secondary);
  background-color: var(--secondary);
}
@media (max-width: 1023px) {
  .button {
    font-size: 1.125rem;
    padding: 0.5rem 1.125rem;
  }
}
.button:hover, .button:focus {
  color: var(--white);
  border-color: #f15d4f;
  background-color: #f15d4f;
  -webkit-box-shadow: 0 0.5rem 1.25rem rgba(10, 36, 38, 0.16);
          box-shadow: 0 0.5rem 1.25rem rgba(10, 36, 38, 0.16);
  -webkit-transform: translateY(-0.0625rem);
      -ms-transform: translateY(-0.0625rem);
          transform: translateY(-0.0625rem);
}
.button:active {
  -webkit-box-shadow: 0 0.25rem 0.625rem rgba(10, 36, 38, 0.16);
          box-shadow: 0 0.25rem 0.625rem rgba(10, 36, 38, 0.16);
  -webkit-transform: translateY(0);
      -ms-transform: translateY(0);
          transform: translateY(0);
}
.button.is-loading {
  opacity: 0.6;
  pointer-events: none;
}
.button:focus-visible {
  outline: 2px solid rgba(0, 76, 82, 0.28);
  outline-offset: 0.1875rem;
}
.button.button-secondary {
  color: var(--white);
  border-color: var(--primary);
  background-color: var(--primary);
}
.button.button-secondary:hover, .button.button-secondary:focus {
  color: var(--white);
  border-color: #003f44;
  background-color: #003f44;
}
.button.button-tertiary {
  color: var(--primary);
  border-color: rgba(255, 255, 255, 0.6);
  background-color: rgba(255, 255, 255, 0.6);
}
.button.button-tertiary:hover, .button.button-tertiary:focus {
  color: var(--primary);
  border-color: rgba(255, 255, 255, 0.6);
  background-color: rgba(255, 255, 255, 0.6);
}

.section-label {
  gap: 0.625rem;
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.3;
  color: var(--primary);
  display: -webkit-inline-box;
  display: -webkit-inline-flex;
  display: -ms-inline-flexbox;
  display: inline-flex;
}
.section-label::before {
  content: "";
  position: relative;
  top: 0.18em;
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 0.625rem;
      -ms-flex: 0 0 0.625rem;
          flex: 0 0 0.625rem;
  width: 0.625rem;
  height: 0.625rem;
  border-radius: 50%;
  background-color: var(--secondary);
}

/* ---------------------------------------
	Appear animation
--------------------------------------- */
@media (min-width: 1200px) {
  [data-scroll] {
    -webkit-transition: opacity 0.5s ease-in-out, -webkit-transform 1.5s cubic-bezier(0.16, 0.88, 0.45, 1);
    transition: opacity 0.5s ease-in-out, -webkit-transform 1.5s cubic-bezier(0.16, 0.88, 0.45, 1);
    transition: opacity 0.5s ease-in-out, transform 1.5s cubic-bezier(0.16, 0.88, 0.45, 1);
    transition: opacity 0.5s ease-in-out, transform 1.5s cubic-bezier(0.16, 0.88, 0.45, 1), -webkit-transform 1.5s cubic-bezier(0.16, 0.88, 0.45, 1);
  }
  .fade-in,
  .ease-right,
  .ease-left,
  .ease-btm,
  .ease-top {
    opacity: 0;
  }
  .fade-in[data-scroll=in],
  .ease-right[data-scroll=in],
  .ease-left[data-scroll=in],
  .ease-btm[data-scroll=in],
  .ease-top[data-scroll=in] {
    opacity: 1;
  }
  .fade-in {
    -webkit-transition-duration: 1s;
            transition-duration: 1s;
  }
  [class*=ease-][data-scroll=in] {
    -webkit-transform: none;
        -ms-transform: none;
            transform: none;
  }
  .ease-right {
    -webkit-transform: translateX(100px);
        -ms-transform: translateX(100px);
            transform: translateX(100px);
  }
  .ease-left {
    -webkit-transform: translateX(-100px);
        -ms-transform: translateX(-100px);
            transform: translateX(-100px);
  }
  .ease-top {
    -webkit-transform: translateY(-100px);
        -ms-transform: translateY(-100px);
            transform: translateY(-100px);
  }
  .ease-btm {
    -webkit-transform: translateY(100px);
        -ms-transform: translateY(100px);
            transform: translateY(100px);
  }
  [class*=flip-][data-scroll=in] {
    -webkit-transform: perspective(400px);
            transform: perspective(400px);
    -webkit-backface-visibility: visible !important;
            backface-visibility: visible !important;
  }
  .flip-top {
    -webkit-transform: perspective(400px) rotateX(-90deg);
            transform: perspective(400px) rotateX(-90deg);
    -webkit-transform-origin: center top;
        -ms-transform-origin: center top;
            transform-origin: center top;
  }
  .flip-btm {
    -webkit-transform: perspective(400px) rotateX(90deg);
            transform: perspective(400px) rotateX(90deg);
    -webkit-transform-origin: center bottom;
        -ms-transform-origin: center bottom;
            transform-origin: center bottom;
  }
  .flip-left {
    -webkit-transform: perspective(400px) rotateY(90deg);
            transform: perspective(400px) rotateY(90deg);
    -webkit-transform-origin: left center;
        -ms-transform-origin: left center;
            transform-origin: left center;
  }
  .flip-right {
    -webkit-transform: perspective(400px) rotateY(-90deg);
            transform: perspective(400px) rotateY(-90deg);
    -webkit-transform-origin: right center;
        -ms-transform-origin: right center;
            transform-origin: right center;
  }
  .ease-delay-100 {
    -webkit-transition-delay: 300ms;
            transition-delay: 300ms;
  }
  .ease-delay-200 {
    -webkit-transition-delay: 600ms;
            transition-delay: 600ms;
  }
  .ease-delay-300 {
    -webkit-transition-delay: 900ms;
            transition-delay: 900ms;
  }
  .ease-delay-400 {
    -webkit-transition-delay: 1200ms;
            transition-delay: 1200ms;
  }
  .ease-delay-500 {
    -webkit-transition-delay: 1500ms;
            transition-delay: 1500ms;
  }
}
* {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

html {
  height: 100%;
}

html,
body {
  width: 100%;
  margin: 0;
}

body {
  position: static;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  height: auto;
  min-height: 100vh;
  overflow-x: clip;
}
body > main {
  -webkit-box-flex: 1;
  -webkit-flex-grow: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  overflow-x: clip;
}
body > footer {
  -webkit-flex-shrink: 0;
      -ms-flex-negative: 0;
          flex-shrink: 0;
  margin-top: auto;
}

.container {
  width: 100%;
  max-width: var(--content-size);
  margin: 0 auto;
  padding-right: clamp(25px, 3.47vw, 3.125rem);
  padding-left: clamp(25px, 3.47vw, 3.125rem);
}

.container-narrow {
  width: 100%;
  max-width: 62.5rem;
  margin: 0 auto;
  padding-right: clamp(25px, 3.47vw, 3.125rem);
  padding-left: clamp(25px, 3.47vw, 3.125rem);
}

*:last-child {
  margin-bottom: 0;
}

/* Preloader */
@-webkit-keyframes spin {
  100% {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg);
  }
}
@keyframes spin {
  100% {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg);
  }
}
.preloader {
  position: fixed;
  z-index: 100000000;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  visibility: visible;
  opacity: 1;
  background-color: var(--white);
  color: var(--primary);
  -webkit-transition: opacity 0.4s ease, visibility 0.4s ease;
  transition: opacity 0.4s ease, visibility 0.4s ease;
}
.preloader__icon {
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
      -ms-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
}
.preloader__icon::before {
  content: "";
  display: block;
  font-size: 40px;
  font-weight: 900;
  -webkit-animation: spin 1s ease-in-out infinite;
          animation: spin 1s ease-in-out infinite;
}
.preloader--hidden {
  visibility: hidden;
  opacity: 0;
}

/* Search form */
.search {
  position: relative;
}
.posts-list .search {
  margin-bottom: 40px;
}

.search__input {
  padding-right: 75px;
}

.search__submit {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  height: auto;
  padding: 10px 15px;
  cursor: pointer;
}

.bg-cover {
  background-repeat: no-repeat;
  background-position: 50% 50%;
  background-size: cover;
}

.bg-contain {
  background-repeat: no-repeat;
  background-position: 50% 50%;
  background-size: contain;
}

.stretched-img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}

.rel-content {
  position: relative;
  z-index: 2;
}

.of-cover,
.stretched-img {
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: 50% 50%;
     object-position: 50% 50%;
}

/* Lazyload images */
img[data-lazy-src] {
  -webkit-transition: opacity 0.3s ease-in-out;
  transition: opacity 0.3s ease-in-out;
  opacity: 0;
}
img.pre-lazyload {
  opacity: 0;
}
img.lazyloaded {
  opacity: 1;
}

#breadcrumbs {
  font-size: 0.75rem;
  line-height: 1.35;
  letter-spacing: 0.03em;
  font-weight: 400;
  color: var(--primary);
  padding-left: 0.125rem;
  margin-bottom: 2rem;
}
#breadcrumbs a {
  text-decoration: none;
}
#breadcrumbs > span {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  gap: 0.1875rem;
}
#breadcrumbs > span span:first-child {
  font-size: 0;
  display: inline-block;
  width: 0.6875rem;
  height: 0.6875rem;
  background-repeat: no-repeat;
  background-size: contain;
  background-position: 50% 50%;
  -webkit-transition: var(--transition-base);
  transition: var(--transition-base);
  background-image: url("data:image/svg+xml,%3Csvg width=%2710%27 height=%2711%27 viewBox=%270 0 10 11%27 fill=%27none%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath d=%27M0.673356 9.96556H3.15955V6.00016H6.26743V9.96556H8.75362V3.90071L4.71349 0.84234L0.673356 3.90071V9.96556ZM0 10.6394V3.56377L4.71349 0L9.42698 3.56377V10.6394H5.59407V6.67403H3.83291V10.6394H0Z%27 fill=%27%23141414%27/%3E%3C/svg%3E%0A");
}
#breadcrumbs > span span:first-child:hover {
  background-image: url("data:image/svg+xml,%3Csvg width=%2710%27 height=%2711%27 viewBox=%270 0 10 11%27 fill=%27none%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath d=%27M0.673356 9.96556H3.15955V6.00016H6.26743V9.96556H8.75362V3.90071L4.71349 0.84234L0.673356 3.90071V9.96556ZM0 10.6394V3.56377L4.71349 0L9.42698 3.56377V10.6394H5.59407V6.67403H3.83291V10.6394H0Z%27 fill=%27%2334afec%27/%3E%3C/svg%3E%0A");
}
#breadcrumbs > span span:first-child a {
  display: block;
  width: 100%;
  height: 100%;
}

.breadcrumbs {
  position: relative;
  z-index: 1;
}

.main-content-wrapper {
  position: relative;
  background-color: var(--bg-color);
}

@-webkit-keyframes track-scroll {
  from {
    margin-left: 0;
  }
  to {
    margin-left: var(--width-for-anim, 0);
  }
}

@keyframes track-scroll {
  from {
    margin-left: 0;
  }
  to {
    margin-left: var(--width-for-anim, 0);
  }
}
/**
 * Two-state image (see parts/image-swap.php).
 *
 * The colour version is stacked over the black and white one and cross-fades in
 * on hover. Deliberately not a `filter: grayscale()` swap: the resting artwork
 * already carries brand colour, which a filter would strip.
 *
 * The wrapper only exists when a hover image has been set, so a block with no
 * colour version yet keeps its original single-image markup and stays static.
 */
.image-swap {
  position: relative;
  display: block;
}
.image-swap img {
  display: block;
}
.image-swap > .image-swap__hover {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  opacity: 0;
  pointer-events: none;
  -webkit-transition: opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1);
  transition: opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}
@media (prefers-reduced-motion: reduce) {
  .image-swap > .image-swap__hover {
    -webkit-transition: none;
    transition: none;
  }
}
.image-swap:hover > .image-swap__hover, .image-swap:focus-within > .image-swap__hover {
  opacity: 1;
}

.splide__container {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  position: relative;
}

.splide__list {
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  display: -ms-flexbox;
  display: -webkit-box;
  display: -webkit-flex;
  display: flex;
  height: 100%;
  margin: 0 !important;
  padding: 0 !important;
}

.splide.is-initialized:not(.is-active) .splide__list {
  display: block;
}

.splide__pagination {
  -ms-flex-align: center;
  -webkit-box-align: center;
  -webkit-align-items: center;
          align-items: center;
  display: -ms-flexbox;
  display: -webkit-box;
  display: -webkit-flex;
  display: flex;
  -ms-flex-wrap: wrap;
  -webkit-flex-wrap: wrap;
          flex-wrap: wrap;
  -ms-flex-pack: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
          justify-content: center;
  margin: 0;
  pointer-events: none;
}

.splide__pagination li {
  display: inline-block;
  line-height: 1;
  list-style-type: none;
  margin: 0;
  pointer-events: auto;
}

.splide:not(.is-overflow) .splide__pagination {
  display: none;
}

.splide__progress__bar {
  width: 0;
}

.splide {
  position: relative;
  visibility: hidden;
}

.splide.is-initialized, .splide.is-rendered {
  visibility: visible;
}

.splide__slide {
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  -ms-flex-negative: 0;
  -webkit-flex-shrink: 0;
          flex-shrink: 0;
  list-style-type: none !important;
  margin: 0;
  position: relative;
}

.splide__slide img {
  vertical-align: bottom;
}

.splide__spinner {
  -webkit-animation: splide-loading 1s linear infinite;
          animation: splide-loading 1s linear infinite;
  border: 2px solid #999;
  border-left-color: transparent;
  border-radius: 50%;
  bottom: 0;
  contain: strict;
  display: inline-block;
  height: 20px;
  left: 0;
  margin: auto;
  position: absolute;
  right: 0;
  top: 0;
  width: 20px;
}

.splide__sr {
  clip: rect(0 0 0 0);
  border: 0;
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
}

.splide__toggle.is-active .splide__toggle__play, .splide__toggle__pause {
  display: none;
}

.splide__toggle.is-active .splide__toggle__pause {
  display: inline;
}

.splide__track {
  overflow: hidden;
  position: relative;
  z-index: 0;
}

@-webkit-keyframes splide-loading {
  0% {
    -webkit-transform: rotate(0);
            transform: rotate(0);
  }
  to {
    -webkit-transform: rotate(1turn);
            transform: rotate(1turn);
  }
}

@keyframes splide-loading {
  0% {
    -webkit-transform: rotate(0);
            transform: rotate(0);
  }
  to {
    -webkit-transform: rotate(1turn);
            transform: rotate(1turn);
  }
}
.splide__track--draggable {
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -ms-user-select: none;
  -moz-user-select: none;
       user-select: none;
}

.splide__track--fade > .splide__list > .splide__slide {
  margin: 0 !important;
  opacity: 0;
  z-index: 0;
}

.splide__track--fade > .splide__list > .splide__slide.is-active {
  opacity: 1;
  z-index: 1;
}

.splide--rtl {
  direction: rtl;
}

.splide__track--ttb > .splide__list {
  display: block;
}

.splide__arrow {
  -ms-flex-align: center;
  -webkit-box-align: center;
  -webkit-align-items: center;
          align-items: center;
  background: #ccc;
  border: 0;
  border-radius: 50%;
  cursor: pointer;
  display: -ms-flexbox;
  display: -webkit-box;
  display: -webkit-flex;
  display: flex;
  height: 2em;
  -ms-flex-pack: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
          justify-content: center;
  opacity: 0.7;
  padding: 0;
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
          transform: translateY(-50%);
  width: 2em;
  z-index: 1;
}

.splide__arrow svg {
  fill: #000;
  height: 1.2em;
  width: 1.2em;
}

.splide__arrow:hover:not(:disabled) {
  opacity: 0.9;
}

.splide__arrow:disabled {
  opacity: 0.3;
}

.splide__arrow:focus-visible {
  outline: 3px solid #0bf;
  outline-offset: 3px;
}

.splide__arrow--prev {
  left: 1em;
}

.splide__arrow--prev svg {
  -webkit-transform: scaleX(-1);
      -ms-transform: scaleX(-1);
          transform: scaleX(-1);
}

.splide__arrow--next {
  right: 1em;
}

.splide.is-focus-in .splide__arrow:focus {
  outline: 3px solid #0bf;
  outline-offset: 3px;
}

.splide__pagination {
  bottom: 0.5em;
  left: 0;
  padding: 0 1em;
  position: absolute;
  right: 0;
  z-index: 1;
}

.splide__pagination__page {
  background: #ccc;
  border: 0;
  border-radius: 50%;
  display: inline-block;
  height: 8px;
  margin: 3px;
  opacity: 0.7;
  padding: 0;
  position: relative;
  -webkit-transition: -webkit-transform 0.2s linear;
  transition: -webkit-transform 0.2s linear;
  transition: transform 0.2s linear;
  transition: transform 0.2s linear, -webkit-transform 0.2s linear;
  width: 8px;
}

.splide__pagination__page.is-active {
  background: #fff;
  -webkit-transform: scale(1.4);
      -ms-transform: scale(1.4);
          transform: scale(1.4);
  z-index: 1;
}

.splide__pagination__page:hover {
  cursor: pointer;
  opacity: 0.9;
}

.splide__pagination__page:focus-visible {
  outline: 3px solid #0bf;
  outline-offset: 3px;
}

.splide.is-focus-in .splide__pagination__page:focus {
  outline: 3px solid #0bf;
  outline-offset: 3px;
}

.splide__progress__bar {
  background: #ccc;
  height: 3px;
}

.splide__slide {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

.splide__slide:focus {
  outline: 0;
}

@supports (outline-offset: -3px) {
  .splide__slide:focus-visible {
    outline: 3px solid #0bf;
    outline-offset: -3px;
  }
}
@media screen and (-ms-high-contrast: none) {
  .splide__slide:focus-visible {
    border: 3px solid #0bf;
  }
}
@supports (outline-offset: -3px) {
  .splide.is-focus-in .splide__slide:focus {
    outline: 3px solid #0bf;
    outline-offset: -3px;
  }
}
@media screen and (-ms-high-contrast: none) {
  .splide.is-focus-in .splide__slide:focus {
    border: 3px solid #0bf;
  }
  .splide.is-focus-in .splide__track > .splide__list > .splide__slide:focus {
    border-color: #0bf;
  }
}
.splide__toggle {
  cursor: pointer;
}

.splide__toggle:focus-visible {
  outline: 3px solid #0bf;
  outline-offset: 3px;
}

.splide.is-focus-in .splide__toggle:focus {
  outline: 3px solid #0bf;
  outline-offset: 3px;
}

.splide__track--nav > .splide__list > .splide__slide {
  border: 3px solid transparent;
  cursor: pointer;
}

.splide__track--nav > .splide__list > .splide__slide.is-active {
  border: 3px solid #000;
}

.splide__arrows--rtl .splide__arrow--prev {
  left: auto;
  right: 1em;
}

.splide__arrows--rtl .splide__arrow--prev svg {
  -webkit-transform: scaleX(1);
      -ms-transform: scaleX(1);
          transform: scaleX(1);
}

.splide__arrows--rtl .splide__arrow--next {
  left: 1em;
  right: auto;
}

.splide__arrows--rtl .splide__arrow--next svg {
  -webkit-transform: scaleX(-1);
      -ms-transform: scaleX(-1);
          transform: scaleX(-1);
}

.splide__arrows--ttb .splide__arrow {
  left: 50%;
  -webkit-transform: translate(-50%);
      -ms-transform: translate(-50%);
          transform: translate(-50%);
}

.splide__arrows--ttb .splide__arrow--prev {
  top: 1em;
}

.splide__arrows--ttb .splide__arrow--prev svg {
  -webkit-transform: rotate(-90deg);
      -ms-transform: rotate(-90deg);
          transform: rotate(-90deg);
}

.splide__arrows--ttb .splide__arrow--next {
  bottom: 1em;
  top: auto;
}

.splide__arrows--ttb .splide__arrow--next svg {
  -webkit-transform: rotate(90deg);
      -ms-transform: rotate(90deg);
          transform: rotate(90deg);
}

.splide__pagination--ttb {
  bottom: 0;
  display: -ms-flexbox;
  display: -webkit-box;
  display: -webkit-flex;
  display: flex;
  -ms-flex-direction: column;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
          flex-direction: column;
  left: auto;
  padding: 1em 0;
  right: 0.5em;
  top: 0;
}

/**
 * Breakpoints & Media Queries
 */
@media (max-width: 1023px) {
  html.menu-open,
  body.menu-open {
    overflow: hidden;
  }
}
.header {
  position: fixed;
  left: 0;
  width: 100%;
  top: var(--wp-admin--admin-bar--height, 0);
  overflow-x: clip;
  z-index: 3604;
  background-color: transparent;
  transition: background-color 0.25s ease, box-shadow 0.25s ease, backdrop-filter 0.25s ease, -webkit-backdrop-filter 0.25s ease;
}
.header--scrolled {
  background-color: rgba(240, 240, 238, 0.76);
  -webkit-box-shadow: 0 1px 0 rgba(0, 76, 82, 0.08);
          box-shadow: 0 1px 0 rgba(0, 76, 82, 0.08);
  -webkit-backdrop-filter: blur(16px);
  backdrop-filter: blur(16px);
}
.header__inner {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
      -ms-flex-pack: justify;
          justify-content: space-between;
  padding: 1.25rem 0;
  gap: clamp(30px, 3.26vw, 2.9375rem);
}
@media (max-width: 1023px) {
  .header__inner {
    padding: 1.25rem 0 0.9375rem;
  }
}
.header__lang .wpml-ls-legacy-list-horizontal {
  padding: 0;
  border: none;
}
.header__lang a {
  font-size: 0.75rem;
  border-radius: 1.1875rem;
  font-weight: 400;
  line-height: 1.19;
  text-transform: uppercase;
  color: var(--text-color);
  padding: 0.28125rem 0.5625rem;
  text-align: center;
  text-decoration: none;
  position: relative;
  border: 1px solid rgba(255, 255, 255, 0.6);
  background: rgba(255, 255, 255, 0.6);
  -webkit-transition: background-color 0.25s ease, border-color 0.25s ease, color 0.25s ease, -webkit-box-shadow 0.25s ease, -webkit-transform 0.25s ease;
  transition: background-color 0.25s ease, border-color 0.25s ease, color 0.25s ease, -webkit-box-shadow 0.25s ease, -webkit-transform 0.25s ease;
  transition: background-color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease, color 0.25s ease, transform 0.25s ease;
  transition: background-color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease, color 0.25s ease, transform 0.25s ease, -webkit-box-shadow 0.25s ease, -webkit-transform 0.25s ease;
}
.header__lang a:hover, .header__lang a:focus {
  -webkit-box-shadow: 0 0.5rem 1.25rem rgba(10, 36, 38, 0.16);
          box-shadow: 0 0.5rem 1.25rem rgba(10, 36, 38, 0.16);
  -webkit-transform: translateY(-0.0625rem);
      -ms-transform: translateY(-0.0625rem);
          transform: translateY(-0.0625rem);
}
.header__lang a:active {
  -webkit-box-shadow: 0 0.25rem 0.625rem rgba(10, 36, 38, 0.16);
          box-shadow: 0 0.25rem 0.625rem rgba(10, 36, 38, 0.16);
  -webkit-transform: translateY(0);
      -ms-transform: translateY(0);
          transform: translateY(0);
}
.header__lang a:focus-visible {
  outline: 2px solid rgba(0, 76, 82, 0.28);
  outline-offset: 0.1875rem;
}
@media (max-width: 1023px) {
  .header__lang a {
    color: var(--primary);
    font-size: 1.25rem;
    border: 1px solid var(--primary);
    padding: 0.625rem 1.5625rem;
    border-radius: 6.25rem;
  }
}
.header {
  /* The switcher renders nothing while the site is single-language. */
}
.header .header__lang:empty {
  display: none;
}
.header .logo {
  padding: 0 0 0 0.625rem;
}
.header .logo a {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  width: 7.6875rem;
}
.header .logo picture {
  display: block;
}
.header .logo img {
  max-width: 100%;
  width: 7.5625rem;
  height: auto;
}
.header__log-in-btn {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.header__log-in-btn a {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  height: 100%;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.3125rem;
  padding: 0.25rem 0.9375rem;
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 1.19;
  min-width: unset;
  background-color: var(--white);
  color: var(--primary);
}
.header__log-in-btn a::before {
  content: "";
  display: block;
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 0.8125rem;
      -ms-flex: 0 0 0.8125rem;
          flex: 0 0 0.8125rem;
  width: 0.8125rem;
  height: 0.8125rem;
  background: url("data:image/svg+xml,%3Csvg width=%2713%27 height=%2713%27 viewBox=%270 0 13 13%27 fill=%27none%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath fill-rule=%27evenodd%27 clip-rule=%27evenodd%27 d=%27M4.19796 4.06251C4.19796 2.7911 5.22864 1.76042 6.50004 1.76042C7.77145 1.76042 8.80212 2.7911 8.80212 4.06251C8.80212 5.33391 7.77145 6.36459 6.50004 6.36459C5.22864 6.36459 4.19796 5.33391 4.19796 4.06251ZM6.50004 2.57292C5.67737 2.57292 5.01046 3.23983 5.01046 4.06251C5.01046 4.88518 5.67737 5.55209 6.50004 5.55209C7.32272 5.55209 7.98962 4.88518 7.98962 4.06251C7.98962 3.23983 7.32272 2.57292 6.50004 2.57292Z%27 fill=%27%23004C52%27/%3E%3Cpath fill-rule=%27evenodd%27 clip-rule=%27evenodd%27 d=%27M4.33337 7.98959C3.66028 7.98959 3.11462 8.53524 3.11462 9.20834V9.85199C3.11462 9.86179 3.12173 9.87015 3.1314 9.87173C5.36239 10.236 7.63769 10.236 9.86868 9.87173C9.87836 9.87015 9.88546 9.86179 9.88546 9.85199V9.20834C9.88546 8.53524 9.3398 7.98959 8.66671 7.98959H8.48207C8.46779 7.98959 8.45361 7.99185 8.44004 7.99628L7.97122 8.14936C7.01527 8.46151 5.98481 8.46151 5.02887 8.14936L4.56005 7.99628C4.54647 7.99185 4.53229 7.98959 4.51801 7.98959H4.33337ZM2.30212 9.20834C2.30212 8.08651 3.21155 7.17709 4.33337 7.17709H4.51801C4.61794 7.17709 4.71725 7.19289 4.81225 7.22391L5.28107 7.377C6.07314 7.63563 6.92694 7.63563 7.71901 7.377L8.18784 7.22391C8.28283 7.19289 8.38214 7.17709 8.48207 7.17709H8.66671C9.78854 7.17709 10.698 8.08651 10.698 9.20834V9.85199C10.698 10.26 10.4023 10.6079 9.9996 10.6736C7.6819 11.052 5.31818 11.052 3.00048 10.6736C2.59781 10.6079 2.30212 10.26 2.30212 9.85199V9.20834Z%27 fill=%27%23004C52%27/%3E%3C/svg%3E") center/contain no-repeat;
}
@media (max-width: 1199px) {
  .header__log-in-btn a {
    font-size: 0.75rem;
    min-width: unset;
  }
  .header__log-in-btn a::before {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 1.25rem;
        -ms-flex: 0 0 1.25rem;
            flex: 0 0 1.25rem;
    width: 1.25rem;
    height: 1.25rem;
  }
}
@media (max-width: 1023px) {
  .header__log-in-btn a {
    font-size: 1.25rem;
    padding: 0.625rem 1.5625rem;
    border-color: var(--primary) !important;
  }
}
.header__buttons {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: stretch;
  -webkit-align-items: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  gap: 0.6875rem;
}
@media (max-width: 1199px) {
  .header__buttons {
    gap: 0.5rem;
  }
}
@media (max-width: 1023px) {
  .header__buttons {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 1.25rem;
    -webkit-box-pack: end;
    -webkit-justify-content: flex-end;
        -ms-flex-pack: end;
            justify-content: flex-end;
    -webkit-box-align: center;
    -webkit-align-items: center;
        -ms-flex-align: center;
            align-items: center;
  }
}
@media (max-width: 639px) {
  .header__buttons {
    gap: 0.9375rem;
  }
}
@media (min-width: 1024px) {
  .header__btn {
    height: 100%;
  }
}
.header__btn a {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  height: 100%;
  padding: 0.1875rem 0.9375rem;
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.19;
  min-width: 8.375rem;
}
@media (max-width: 1199px) {
  .header__btn a {
    font-size: 0.75rem;
    min-width: unset;
  }
}
@media (max-width: 1023px) {
  .header__btn a {
    font-size: 1.25rem;
    padding: 0.625rem 1.5625rem;
  }
}
.header__utilities {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: end;
  -webkit-justify-content: flex-end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  -webkit-box-align: stretch;
  -webkit-align-items: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  gap: 0.6875rem;
}
@media (max-width: 1199px) {
  .header__utilities {
    gap: 0.5rem;
  }
}
@media (max-width: 1023px) {
  .header__utilities {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 1.5625rem;
    padding: 2.1875rem 0 1.25rem;
    -webkit-box-flex: 1;
    -webkit-flex-grow: 1;
        -ms-flex-positive: 1;
            flex-grow: 1;
    -webkit-box-pack: end;
    -webkit-justify-content: flex-end;
        -ms-flex-pack: end;
            justify-content: flex-end;
  }
}
@media (max-width: 639px) {
  .header__utilities {
    gap: 0.9375rem;
  }
}
@media (max-width: 1023px) {
  .header__utilities--desktop {
    display: none;
  }
}
.header__utilities--mobile {
  text-align: center;
}
@media (min-width: 1024px) {
  .header__utilities--mobile {
    display: none;
  }
}
.header {
  /* TOP BAR Desktop STYLING */
}
@media (min-width: 1024px) {
  .header .main-menu-container {
    -webkit-box-flex: 1;
    -webkit-flex: 1 0 auto;
        -ms-flex: 1 0 auto;
            flex: 1 0 auto;
  }
  .header .title-bar {
    display: none;
    pointer-events: none;
  }
  .header .header-menu.menu {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -webkit-align-items: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 1.25rem 2.375rem;
    margin: 0;
    /* Dropdown item styling */
  }
}
@media (min-width: 1024px) and (max-width: 1199px) {
  .header .header-menu.menu {
    gap: 1.25rem;
  }
}
@media (min-width: 1024px) {
  .header .header-menu.menu > li > a {
    background-color: transparent !important;
    color: var(--text-color) !important;
  }
  .header .header-menu.menu > li > a:hover {
    color: var(--primary) !important;
  }
  .header .header-menu.menu li {
    display: block;
    position: relative;
    margin: 0;
    padding: 0;
  }
  .header .header-menu.menu li > a {
    /* Regular menu item style */
    display: block;
    color: var(--text-color);
    text-decoration: none;
    font-size: 0.875rem;
    line-height: 1.2;
    font-weight: 400;
    padding: 0;
    letter-spacing: 0;
    font-family: var(--primary-font-family);
  }
  .header .header-menu.menu li > a:hover {
    /* menu item style on hover */
    color: var(--primary);
  }
  .header .header-menu.menu li.current-menu-item > a, .header .header-menu.menu li.current_page_ancestor > a, .header .header-menu.menu li.current_page_parent > a {
    /* Style of Current page and Ancestor page */
    font-weight: 400;
    color: var(--white);
    background-color: var(--primary);
  }
  .header .header-menu.menu li.has-dropdown > a {
    /* Style of item with dropdown */
  }
  .header .header-menu.menu li.has-dropdown:hover > .submenu {
    /* Show dropdown on hover */
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }
  .header .header-menu.menu li.is-active > a {
    /* Parent link style on dropdown hover */
    color: var(--primary);
  }
  .header .header-menu.menu > li.has-dropdown > a {
    padding-right: 0.9375rem;
  }
  .header .header-menu.menu > li.has-dropdown > .dropdown-toggle {
    position: absolute;
    top: 50%;
    right: 0;
    width: 0.5625rem;
    height: 0.3125rem;
    background-repeat: no-repeat;
    background-size: contain;
    background-position: 50% 50%;
    background-image: url("data:image/svg+xml,%3Csvg width=%279%27 height=%275%27 viewBox=%270 0 9 5%27 fill=%27none%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath d=%27M7.72331 0.429779L4.07653 4.07656L0.429749 0.429779M4.07653 4.07656V3.68864%27 stroke=%27%23004C52%27 stroke-width=%271.21559%27/%3E%3C/svg%3E");
    pointer-events: none;
    -webkit-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
            transform: translateY(-50%);
    -webkit-transition: var(--transition-base);
    transition: var(--transition-base);
  }
  .header .header-menu.menu > li.has-dropdown:hover > .dropdown-toggle {
    -webkit-transform: translateY(-50%) rotate(180deg);
        -ms-transform: translateY(-50%) rotate(180deg);
            transform: translateY(-50%) rotate(180deg);
  }
  .header .header-menu.menu .submenu {
    position: absolute;
    top: calc(100% + 1rem);
    left: 0;
    z-index: 11;
    min-width: 15rem;
    margin: 0;
    padding: 0.5rem;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    -webkit-transform: translateY(0.5rem);
        -ms-transform: translateY(0.5rem);
            transform: translateY(0.5rem);
    -webkit-transition: opacity 0.2s ease, visibility 0.2s ease, -webkit-transform 0.2s ease;
    transition: opacity 0.2s ease, visibility 0.2s ease, -webkit-transform 0.2s ease;
    transition: opacity 0.2s ease, visibility 0.2s ease, transform 0.2s ease;
    transition: opacity 0.2s ease, visibility 0.2s ease, transform 0.2s ease, -webkit-transform 0.2s ease;
    background-color: var(--white);
    border: 1px solid rgba(0, 76, 82, 0.1);
    border-radius: 0.5rem;
    -webkit-box-shadow: 0 1.125rem 2.8125rem rgba(8, 13, 60, 0.14);
            box-shadow: 0 1.125rem 2.8125rem rgba(8, 13, 60, 0.14);
  }
  .header .header-menu.menu .submenu::before {
    content: "";
    position: absolute;
    left: 0;
    bottom: 100%;
    width: 100%;
    height: 1rem;
  }
  .header .header-menu.menu .submenu li > a {
    /* Regular link in dropdown */
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -webkit-align-items: center;
        -ms-flex-align: center;
            align-items: center;
    min-height: 2.5rem;
    background: transparent;
    border-radius: 0.375rem;
    color: var(--text-color);
    font-size: 0.875rem;
    line-height: 1.25;
    padding: 0.625rem 0.75rem;
    -webkit-transition: background-color 0.2s ease, color 0.2s ease, -webkit-transform 0.2s ease;
    transition: background-color 0.2s ease, color 0.2s ease, -webkit-transform 0.2s ease;
    transition: background-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
    transition: background-color 0.2s ease, color 0.2s ease, transform 0.2s ease, -webkit-transform 0.2s ease;
  }
  .header .header-menu.menu .submenu li > a:hover {
    /* Dropdown link on hover */
    background: rgba(0, 76, 82, 0.08);
    color: #004c52;
    -webkit-transform: translateX(0.125rem);
        -ms-transform: translateX(0.125rem);
            transform: translateX(0.125rem);
  }
  .header .header-menu.menu .submenu li > a:focus-visible {
    outline: 2px solid rgba(0, 76, 82, 0.28);
    outline-offset: 0.125rem;
  }
  .header .header-menu.menu .submenu li.current-menu-item > a, .header .header-menu.menu .submenu li.current_page_ancestor > a, .header .header-menu.menu .submenu li.current_page_parent > a {
    background: #004c52;
    color: var(--white);
  }
  .header .header-menu.menu .submenu .submenu {
    top: -0.5rem;
    left: calc(100% + 0.625rem);
    /* Styles for 2nd level dropdown menu */
  }
  .header .header-menu.menu .submenu .submenu::before {
    top: 0;
    right: 100%;
    bottom: auto;
    left: auto;
    width: 0.625rem;
    height: 100%;
  }
  .header .header-menu.menu li:hover > .submenu,
  .header .header-menu.menu li:focus-within > .submenu {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    -webkit-transform: translateY(0);
        -ms-transform: translateY(0);
            transform: translateY(0);
  }
}
.header {
  /* TOP BAR Mobile STYLING */
}
@media (max-width: 1023px) {
  body.menu-open .header {
    background: -webkit-gradient(linear, left top, left bottom, from(rgba(238, 245, 249, 0.94)), to(rgba(255, 255, 255, 0))), var(--white);
    background: linear-gradient(180deg, rgba(238, 245, 249, 0.94) 0%, rgba(255, 255, 255, 0) 100%), var(--white);
    -webkit-box-shadow: none;
            box-shadow: none;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }
  .header .title-bar {
    position: relative;
    z-index: 2;
  }
  .header .title-bar .menu-icon {
    padding: 0;
    border: none;
    background-color: transparent;
    margin-bottom: 2px;
    position: relative;
    display: inline-block;
    vertical-align: middle;
    width: 26px;
    height: 16px;
    cursor: pointer;
  }
  .header .title-bar .menu-icon span {
    top: 0;
    display: block;
  }
  .header .title-bar .menu-icon span::before, .header .title-bar .menu-icon span::after {
    content: "";
    display: block;
  }
  .header .title-bar .menu-icon span, .header .title-bar .menu-icon span::before, .header .title-bar .menu-icon span::after {
    position: absolute;
    left: 0;
    width: 100%;
    height: 2px;
    background-color: var(--primary);
    border-radius: 0;
    -webkit-transition-property: -webkit-transform, opacity;
    -webkit-transition-property: opacity, -webkit-transform;
    transition-property: opacity, -webkit-transform;
    transition-property: transform, opacity;
    transition-property: transform, opacity, -webkit-transform;
    -webkit-transition-duration: 0.15s;
            transition-duration: 0.15s;
    -webkit-transition-timing-function: ease;
            transition-timing-function: ease;
  }
  .header .title-bar .menu-icon span::before {
    top: 7px;
  }
  .header .title-bar .menu-icon span::after {
    top: 14px;
  }
  .header .title-bar .menu-icon span:hover, .header .title-bar .menu-icon span:hover::before, .header .title-bar .menu-icon span:hover::after {
    background-color: var(--primary);
  }
  .header .title-bar .menu-icon.is-active span {
    -webkit-transform: translate3d(0, 7px, 0) rotate(45deg);
            transform: translate3d(0, 7px, 0) rotate(45deg);
  }
  .header .title-bar .menu-icon.is-active span::before {
    -webkit-transform: rotate(-45deg) translate3d(-3.7142857143px, -5px, 0);
            transform: rotate(-45deg) translate3d(-3.7142857143px, -5px, 0);
    display: none;
  }
  .header .title-bar .menu-icon.is-active span::after {
    -webkit-transform: translate3d(0, -14px, 0) rotate(-90deg);
            transform: translate3d(0, -14px, 0) rotate(-90deg);
  }
  .header .title-bar .menu-icon span {
    border-radius: 50px;
  }
  .header .title-bar .menu-icon span:before, .header .title-bar .menu-icon span:after {
    border-radius: 50px;
  }
  .header .top-bar {
    position: fixed;
    top: calc(var(--header-height, 0px) - 1px);
    right: 0;
    width: 100%;
    height: calc(100dvh - var(--header-height, 0px) + 1px);
    overflow-y: auto;
    background: -webkit-gradient(linear, left top, left bottom, from(rgba(238, 245, 249, 0.86)), color-stop(26%, rgba(255, 255, 255, 0))), var(--white);
    background: linear-gradient(180deg, rgba(238, 245, 249, 0.86) 0%, rgba(255, 255, 255, 0) 26%), var(--white);
    padding: 1.375rem 1.375rem 1.5rem;
    z-index: -1;
    -webkit-transform: translateX(100%);
        -ms-transform: translateX(100%);
            transform: translateX(100%);
    pointer-events: none;
    visibility: hidden;
    -webkit-transition: visibility 0.32s ease, -webkit-transform 0.32s ease;
    transition: visibility 0.32s ease, -webkit-transform 0.32s ease;
    transition: transform 0.32s ease, visibility 0.32s ease;
    transition: transform 0.32s ease, visibility 0.32s ease, -webkit-transform 0.32s ease;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column;
    /* stylelint-disable */
    /* stylelint-enable */
  }
}
@media (max-width: 1023px) and (max-width: 639px) {
  .header .top-bar {
    padding: 1.125rem 1rem 1.375rem;
  }
}
@media (max-width: 1023px) {
  .header .top-bar::-webkit-scrollbar {
    width: 5px;
  }
  .header .top-bar::-webkit-scrollbar-thumb {
    background-color: var(--gray);
  }
  .header .top-bar::-webkit-scrollbar-track {
    background-color: var(--white);
  }
  .header .top-bar.is-active {
    z-index: 1;
    pointer-events: auto;
    visibility: visible;
    -webkit-transform: translateX(0);
        -ms-transform: translateX(0);
            transform: translateX(0);
  }
  .header .header-menu {
    background: transparent;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 0.5rem;
    margin: 0;
  }
  .header .header-menu li {
    margin: 0;
  }
  .header .header-menu li > a {
    background: transparent;
    border-radius: 0.625rem;
    color: #004c52;
    text-decoration: none;
    font-size: 1.25rem;
    line-height: 1.2;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -webkit-align-items: center;
        -ms-flex-align: center;
            align-items: center;
    min-height: 3rem;
    padding: 0.75rem 3.5rem 0.75rem 0.875rem;
    -webkit-transition: background-color 0.2s ease, color 0.2s ease, -webkit-transform 0.2s ease;
    transition: background-color 0.2s ease, color 0.2s ease, -webkit-transform 0.2s ease;
    transition: background-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
    transition: background-color 0.2s ease, color 0.2s ease, transform 0.2s ease, -webkit-transform 0.2s ease;
  }
}
@media (max-width: 1023px) and (max-width: 639px) {
  .header .header-menu li > a {
    min-height: 2.875rem;
  }
}
@media (max-width: 1023px) {
  .header .header-menu li > a:hover {
    background: rgba(0, 76, 82, 0.08);
    -webkit-transform: translateX(0.125rem);
        -ms-transform: translateX(0.125rem);
            transform: translateX(0.125rem);
  }
  .header .header-menu li > a:focus, .header .header-menu li > a:focus + .submenu-toggle {
    color: var(--primary);
  }
  .header .header-menu li.current-menu-item > a,
  .header .header-menu li.current-menu-item .submenu-toggle, .header .header-menu li.current_page_ancestor > a,
  .header .header-menu li.current_page_ancestor .submenu-toggle, .header .header-menu li.current_page_parent > a,
  .header .header-menu li.current_page_parent .submenu-toggle {
    background: #004c52;
    color: var(--white);
  }
  .header .header-menu li.menu-item-has-children {
    position: relative;
  }
  .header .header-menu li.menu-item-has-children a {
    z-index: 1;
  }
  .header .header-menu li.menu-item-has-children .dropdown-toggle {
    position: absolute;
    top: 0.3125rem;
    right: 0.3125rem;
    width: 2.375rem;
    height: 2.375rem;
    border-radius: 0.625rem;
    background-color: rgba(0, 76, 82, 0.07);
    background-repeat: no-repeat;
    background-size: 0.5625rem 0.3125rem;
    background-position: 50% 50%;
    background-image: url("data:image/svg+xml,%3Csvg width=%279%27 height=%275%27 viewBox=%270 0 9 5%27 fill=%27none%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath d=%27M7.72331 0.429779L4.07653 4.07656L0.429749 0.429779M4.07653 4.07656V3.68864%27 stroke=%27%23004C52%27 stroke-width=%271.21559%27/%3E%3C/svg%3E");
    -webkit-transition: background-color 0.2s ease, -webkit-transform 0.2s ease;
    transition: background-color 0.2s ease, -webkit-transform 0.2s ease;
    transition: background-color 0.2s ease, transform 0.2s ease;
    transition: background-color 0.2s ease, transform 0.2s ease, -webkit-transform 0.2s ease;
  }
  .header .header-menu li.menu-item-has-children .dropdown-toggle:hover {
    background-color: rgba(0, 76, 82, 0.13);
  }
  .header .header-menu li.menu-item-has-children.open > a {
    background: rgba(0, 76, 82, 0.08);
    color: #004c52;
  }
  .header .header-menu li.menu-item-has-children.open > .dropdown-toggle {
    background-color: rgba(0, 76, 82, 0.13);
    -webkit-transform: rotate(180deg);
        -ms-transform: rotate(180deg);
            transform: rotate(180deg);
  }
  .header .header-menu li[aria-expanded=true] > a,
  .header .header-menu li[aria-expanded=true] .submenu-toggle {
    background: var(--primary);
  }
  .header .header-menu .submenu {
    margin: 0.125rem 0 0.5rem 0.875rem;
    padding: 0.25rem 0 0.25rem 0.875rem;
    display: none;
    position: relative;
    border-left: 1px solid rgba(0, 76, 82, 0.16);
  }
  .header .header-menu .submenu a {
    border-radius: 0.375rem;
    line-height: 1.3;
    min-height: 2.625rem;
    padding: 0.75rem 3rem 0.75rem 0.75rem;
  }
  .header .header-menu .submenu a:hover {
    background: rgba(0, 76, 82, 0.08);
    -webkit-transform: translateX(0.125rem);
        -ms-transform: translateX(0.125rem);
            transform: translateX(0.125rem);
  }
  .header .header-menu .submenu .submenu {
    margin: 0.125rem 0 0.375rem 0.625rem;
    padding-left: 0.875rem;
    border-left-color: rgba(0, 76, 82, 0.12);
  }
  .header .header-menu .submenu .submenu a {
    min-height: 2.375rem;
    padding-left: 0.75rem;
  }
  .header .header-menu .submenu .submenu .submenu a {
    padding-left: 0.75rem;
  }
}

/* ---------------------------------------
	Social networks
--------------------------------------- */
.stay-tuned {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  gap: var(--size-xs);
}
.stay-tuned__item {
  display: block;
}
.stay-tuned__item svg {
  display: block;
  width: auto;
  height: 1.4375rem;
}
@media (max-width: 1023px) {
  .stay-tuned__item svg {
    height: 2.5rem;
  }
}

.footer {
  position: relative;
  z-index: 2;
  background-color: var(--primary);
  color: var(--white);
}
.footer__container {
  padding-top: clamp(50px, 5.56vw, 5rem);
  padding-bottom: clamp(40px, 4.17vw, 3.75rem);
}
.footer__top {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(0, 1.4fr) minmax(0, 1.1fr);
  gap: clamp(30px, 4.17vw, 3.75rem);
}
@media (max-width: 1023px) {
  .footer__top {
    grid-template-columns: 1fr 1fr;
    gap: 2.5rem 1.875rem;
  }
}
@media (max-width: 767px) {
  .footer__top {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }
}
@media (max-width: 639px) {
  .footer__top {
    grid-template-columns: 1fr;
    gap: 2.25rem;
  }
}
@media (max-width: 767px) {
  .footer__brand {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: center;
    -webkit-align-items: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
}
.footer__logo {
  display: inline-block;
}
.footer__logo img {
  width: 11.25rem;
  height: auto;
}
@media (max-width: 767px) {
  .footer__logo {
    text-align: center;
  }
}
.footer__tagline {
  max-width: 16.25rem;
  margin: 0;
  margin-top: clamp(20px, 2.08vw, 1.875rem);
  color: var(--white);
  font-family: var(--heading-font), sans-serif;
  font-size: clamp(18px, 1.53vw, 1.375rem);
  font-weight: 600;
  line-height: 1.2;
}
@media (max-width: 767px) {
  .footer__tagline {
    text-align: center;
  }
}
.footer__socials {
  margin-top: clamp(32px, 4.17vw, 3.75rem);
}
.footer__socials > p {
  margin-bottom: 0.75rem;
  color: rgba(255, 255, 255, 0.7);
  font-family: var(--primary-font-family);
  font-size: 0.8125rem;
  font-weight: 400;
  line-height: 1.2;
}
.footer__socials .stay-tuned__item svg path {
  fill: var(--white);
  -webkit-transition: var(--transition-base);
  transition: var(--transition-base);
}
.footer__socials .stay-tuned__item:hover path {
  fill: var(--secondary);
}
@media (max-width: 767px) {
  .footer__socials .stay-tuned {
    -webkit-box-pack: center;
    -webkit-justify-content: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
}
.footer__columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(20px, 2.78vw, 2.5rem);
}
.footer__column-title {
  margin: 0;
  margin-bottom: clamp(18px, 2.08vw, 1.875rem);
  font-family: var(--heading-font), sans-serif;
  font-size: 1.125rem;
  font-weight: 600;
}
.footer__column-links {
  margin: 0;
  padding: 0;
  list-style: none;
}
.footer__column-links li:not(:last-child) {
  margin-bottom: 1rem;
}
.footer__column-links a {
  color: rgba(255, 255, 255, 0.82);
  font-size: clamp(13px, 1.04vw, 0.9375rem);
  line-height: 1.3;
  text-decoration: none;
  -webkit-transition: var(--transition-base);
  transition: var(--transition-base);
}
.footer__column-links a:hover {
  color: var(--white);
}
.footer__cosmo {
  padding: clamp(24px, 2.43vw, 2.1875rem);
  border-radius: 0.375rem;
  background-color: var(--sauge, #d2dedd);
  color: var(--text-color);
}
.footer__cosmo-logo img {
  display: block;
  width: auto;
  max-width: 9.375rem;
  max-height: 1.875rem;
  -o-object-fit: contain;
     object-fit: contain;
}
.footer__cosmo-heading {
  margin: 0;
  margin-top: clamp(18px, 1.94vw, 1.75rem);
  margin-bottom: 0.875rem;
  font-family: var(--heading-font), sans-serif;
  font-size: 1.125rem;
  font-weight: 600;
  line-height: 1.2;
}
.footer__cosmo-text {
  margin: 0;
  font-size: 0.9375rem;
  line-height: 1.45;
}
.footer__bottom {
  padding: 1.25rem 0 1.5rem;
}
.footer__bottom-container {
  max-width: var(--content-size);
  padding-right: clamp(25px, 3.47vw, 3.125rem);
  padding-left: clamp(25px, 3.47vw, 3.125rem);
}
.footer__copy {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  gap: 1.875rem;
  -webkit-box-align: start;
  -webkit-align-items: flex-start;
      -ms-flex-align: start;
          align-items: flex-start;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
.footer__copy p {
  font-family: var(--primary-font-family);
  font-size: 0.75rem;
  line-height: 1.18;
  letter-spacing: 0.03em;
  color: var(--white);
}
.footer__copy a {
  font-size: 0.75rem;
  line-height: 1.18;
  letter-spacing: 0.025em;
  color: rgba(255, 255, 255, 0.8);
  text-decoration: none;
}
.footer__copy a:hover, .footer__copy a:focus {
  color: var(--white);
}
.footer__copy-left {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 calc(25% - 1.25rem);
      -ms-flex: 0 0 calc(25% - 1.25rem);
          flex: 0 0 calc(25% - 1.25rem);
  -webkit-box-pack: start;
  -webkit-justify-content: flex-start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  text-align: left;
}
.footer__copy-center {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 calc(50% - 1.25rem);
      -ms-flex: 0 0 calc(50% - 1.25rem);
          flex: 0 0 calc(50% - 1.25rem);
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  gap: 0.625rem 1.25rem;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  text-align: center;
}
.footer__copy-right {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 calc(25% - 1.25rem);
      -ms-flex: 0 0 calc(25% - 1.25rem);
          flex: 0 0 calc(25% - 1.25rem);
  -webkit-box-pack: end;
  -webkit-justify-content: flex-end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  text-align: right;
}
@media (max-width: 767px) {
  .footer__copy {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: center;
    -webkit-align-items: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
        -ms-flex-pack: center;
            justify-content: center;
    gap: 1.125rem;
    text-align: center;
  }
  .footer__copy-left, .footer__copy-center, .footer__copy-right {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
  .footer__copy p,
  .footer__copy a {
    font-size: 0.875rem;
  }
}

.home-hero {
  padding: 7.1875rem 0 2.5rem;
}
.home-hero__wrapper {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
}
@media (max-width: 639px) {
  .home-hero__wrapper {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column;
  }
}
.home-hero__content {
  -webkit-box-flex: 1;
  -webkit-flex: 1 1 53%;
      -ms-flex: 1 1 53%;
          flex: 1 1 53%;
  padding: 0 clamp(15px, 2.08vw, 1.875rem) clamp(30px, 6.11vw, 5.5rem) 0.375rem;
}
.home-hero__content h1 {
  margin-bottom: 1.625rem;
}
@media (max-width: 639px) {
  .home-hero__content {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    text-align: center;
    padding: 0 0 2.5rem;
  }
}
.home-hero__visual {
  padding: 0 clamp(30px, 5vw, 4.5rem);
  -webkit-box-flex: 0;
  -webkit-flex: 0 1 47%;
      -ms-flex: 0 1 47%;
          flex: 0 1 47%;
}
@media (max-width: 639px) {
  .home-hero__visual {
    /**
     * The wrapper centres its items, so the visual is shrink-to-fit here and
     * the stage's own `width: 100%` would resolve against an indefinite width
     * - i.e. collapse to nothing. A definite width gives it something to
     * measure against.
     */
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    width: 100%;
    max-width: 450px;
    margin: 0 auto;
  }
}
.home-hero {
  /**
   * Hero collage.
   *
   * The design is authored on a 516x620 stage with every piece absolutely
   * placed in px. Those coordinates are kept here as percentages of that same
   * stage, so locking the aspect ratio scales the whole composition uniformly
   * instead of reflowing it - the layout stays identical at every width.
   *
   * Each layer div carries the parallax transform (set from JS via data-depth);
   * the child carries the entrance animation. Keeping them on separate elements
   * stops the two transforms from overwriting each other.
   */
}
.home-hero__stage {
  position: relative;
  width: 100%;
  max-width: 32.25rem;
  margin: 0 auto;
  aspect-ratio: 516/620;
}
.home-hero__layer {
  position: absolute;
  will-change: transform;
}
.home-hero__layer img {
  display: block;
  width: 100%;
  height: 100%;
}
.home-hero__panel {
  width: 100%;
  height: 100%;
  background: #cbcbc9;
  -webkit-animation: home-hero-rise 1.7s cubic-bezier(0.16, 1, 0.3, 1) 0s both;
          animation: home-hero-rise 1.7s cubic-bezier(0.16, 1, 0.3, 1) 0s both;
}
.home-hero__layer--panel {
  top: 2.9032%;
  left: 4.2636%;
  width: 40.6977%;
  height: 82.9032%;
}
.home-hero__layer--mountain {
  top: 32.5806%;
  left: 4.2636%;
  width: 26.7442%;
  height: 53.2258%;
}
.home-hero__layer--mountain img {
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: 50% 40%;
     object-position: 50% 40%;
  -webkit-animation: home-hero-rise 1.7s cubic-bezier(0.16, 1, 0.3, 1) 0.16s both;
          animation: home-hero-rise 1.7s cubic-bezier(0.16, 1, 0.3, 1) 0.16s both;
}
.home-hero__layer--band {
  top: 85.8065%;
  left: 4.2636%;
  width: 26.7442%;
  height: 9.3548%;
}
.home-hero__layer--band img {
  -o-object-fit: cover;
     object-fit: cover;
  -webkit-animation: home-hero-rise 1.7s cubic-bezier(0.16, 1, 0.3, 1) 0.26s both;
          animation: home-hero-rise 1.7s cubic-bezier(0.16, 1, 0.3, 1) 0.26s both;
}
.home-hero__layer--atrium {
  top: 20.9677%;
  left: 63.9535%;
  width: 32.3643%;
  height: 82.2581%;
}
.home-hero__layer--atrium img {
  -o-object-fit: cover;
     object-fit: cover;
  -webkit-animation: home-hero-rise 1.7s cubic-bezier(0.16, 1, 0.3, 1) 0.34s both;
          animation: home-hero-rise 1.7s cubic-bezier(0.16, 1, 0.3, 1) 0.34s both;
}
.home-hero__layer--plate {
  top: 29.6774%;
  left: 35.4651%;
  width: 24.8062%;
  height: 56.7742%;
}
.home-hero__layer--plate img {
  -webkit-animation: home-hero-rise-soft 1.6s cubic-bezier(0.16, 1, 0.3, 1) 0.56s both;
          animation: home-hero-rise-soft 1.6s cubic-bezier(0.16, 1, 0.3, 1) 0.56s both;
}
.home-hero {
  /**
   * The ring is drawn on by sweeping a conic-gradient mask from 0 to 360deg.
   * That only interpolates because --home-hero-sweep is registered as an angle;
   * where @property is unsupported the mask never opens, so the fallback below
   * drops the mask entirely and just fades the ring in.
   */
}
.home-hero__layer--ring {
  top: 11.129%;
  left: 26.7442%;
  width: 42.8295%;
  height: 35.6452%;
}
.home-hero__layer--ring img {
  opacity: 0;
  -webkit-mask-image: conic-gradient(from -95deg, #000 var(--home-hero-sweep), transparent 0);
          mask-image: conic-gradient(from -95deg, #000 var(--home-hero-sweep), transparent 0);
  -webkit-animation: home-hero-ring 2s linear 0.76s forwards;
          animation: home-hero-ring 2s linear 0.76s forwards;
}
@supports not ((-webkit-mask-image: conic-gradient(#000, #000)) or (mask-image: conic-gradient(#000, #000))) {
  .home-hero__layer--ring img {
    -webkit-mask-image: none;
            mask-image: none;
    -webkit-animation: home-hero-rise-soft 2s linear 0.76s forwards;
            animation: home-hero-rise-soft 2s linear 0.76s forwards;
  }
}
.home-hero__layer--marble {
  top: 14.5161%;
  left: 30.4264%;
  width: 35.2713%;
  height: 28.7097%;
}
.home-hero__layer--marble img {
  -webkit-animation: home-hero-sun 1.9s cubic-bezier(0.16, 1, 0.3, 1) 1s both;
          animation: home-hero-sun 1.9s cubic-bezier(0.16, 1, 0.3, 1) 1s both;
}
.home-hero__layer--arch {
  top: 25.1613%;
  left: 30.2326%;
  width: 35.2713%;
  height: 62.9032%;
}
.home-hero__layer--arch img {
  -webkit-animation: home-hero-rise-soft 1.7s cubic-bezier(0.16, 1, 0.3, 1) 0.6s both;
          animation: home-hero-rise-soft 1.7s cubic-bezier(0.16, 1, 0.3, 1) 0.6s both;
}
.home-hero__layer--stairs {
  top: 86.4516%;
  left: 31.0078%;
  width: 34.1085%;
  height: 10%;
  overflow: hidden;
}
.home-hero__layer--stairs img {
  -webkit-animation: home-hero-rise-soft 1.4s cubic-bezier(0.16, 1, 0.3, 1) 2s both;
          animation: home-hero-rise-soft 1.4s cubic-bezier(0.16, 1, 0.3, 1) 2s both;
}
.home-hero {
  /* Reduced motion gets the finished collage, with no entrance and no parallax. */
}
@media (prefers-reduced-motion: reduce) {
  .home-hero__panel, .home-hero__layer img {
    opacity: 1;
    -webkit-mask-image: none;
            mask-image: none;
    -webkit-animation: none;
            animation: none;
  }
}
.home-hero__partners {
  padding: 2.8125rem 0 0;
}
@media (max-width: 1023px) {
  .home-hero__partners {
    padding: 2.25rem 0 2.625rem;
  }
}
@media (max-width: 639px) {
  .home-hero__partners {
    padding: 1.875rem 0 2.25rem;
  }
}
.home-hero__partners-title {
  margin-bottom: 2.5rem;
  color: var(--primary);
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.3;
}
@media (max-width: 639px) {
  .home-hero__partners-title {
    margin-bottom: 1.75rem;
    text-align: center;
  }
}
.home-hero__partners-list {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
      -ms-flex-pack: justify;
          justify-content: space-between;
  /* Tighter than before: each mark now carries its own margin, so the gap was
     doing the job twice and squeezing the logos into narrow slots. */
  gap: clamp(16px, 2.36vw, 2.125rem);
}
@media (max-width: 1023px) {
  .home-hero__partners-list {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 2.125rem;
  }
}
@media (max-width: 639px) {
  .home-hero__partners-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.875rem 1.5rem;
  }
}
.home-hero__partner {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  min-width: 0;
}
.home-hero {
  /**
   * The artwork carries its own margin now, sized so every mark reads at the
   * same optical weight. So the slot sets the width and the file does the rest -
   * a height cap here would shrink the wide marks back down.
   */
}
.home-hero__partner-image {
  display: block;
  width: 100%;
  max-width: min(9.375rem, 100%);
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
  -webkit-filter: grayscale(1);
          filter: grayscale(1);
  opacity: 0.7;
  -webkit-transition: opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1), -webkit-filter 0.45s cubic-bezier(0.22, 1, 0.36, 1);
  transition: opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1), -webkit-filter 0.45s cubic-bezier(0.22, 1, 0.36, 1);
  transition: filter 0.45s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1);
  transition: filter 0.45s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1), -webkit-filter 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}
@media (prefers-reduced-motion: reduce) {
  .home-hero__partner-image {
    -webkit-transition: none;
    transition: none;
  }
}
.home-hero__partner:hover .home-hero__partner-image, .home-hero__partner:focus-visible .home-hero__partner-image, .home-hero__partner:focus-within .home-hero__partner-image {
  -webkit-filter: grayscale(0);
          filter: grayscale(0);
  opacity: 1;
}
@media (max-width: 1023px) {
  .home-hero__partner-image {
    max-width: 8.25rem;
  }
}
@media (max-width: 639px) {
  .home-hero__partner-image {
    max-width: 7.5rem;
    max-height: 3.75rem;
  }
}

.text-w-stats {
  padding: clamp(50px, 5.69vw, 5.125rem) 0 clamp(70px, 11.04vw, 9.9375rem);
  position: relative;
  border-top-left-radius: 0.25rem;
  border-top-right-radius: 0.25rem;
  overflow: hidden;
}
.text-w-stats:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 12.9375rem;
  background: -webkit-gradient(linear, left bottom, left top, from(rgba(255, 255, 255, 0)), to(#ffffff));
  background: linear-gradient(0deg, rgba(255, 255, 255, 0) 0%, #ffffff 100%);
}
.text-w-stats::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 12.9375rem;
  background: -webkit-gradient(linear, left bottom, left top, color-stop(24.77%, rgba(189, 189, 188, 0.2)), color-stop(71.13%, rgba(189, 189, 188, 0)));
  background: linear-gradient(0deg, rgba(189, 189, 188, 0.2) 24.77%, rgba(189, 189, 188, 0) 71.13%);
}
.text-w-stats__container {
  position: relative;
  z-index: 1;
}
.text-w-stats__head-content .section-label {
  margin-bottom: clamp(15px, 1.74vw, 1.5625rem);
}
.text-w-stats__head-content .text-large {
  margin: 0;
  display: inline-block;
  text-indent: clamp(70px, 18.13vw, 16.3125rem);
}
.text-w-stats__statistics {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(12.5rem, 1fr));
  gap: clamp(34px, 3.06vw, 2.75rem);
  max-width: 73.75rem;
  margin: clamp(90px, 10.76vw, 9.6875rem) 2.125rem 0 auto;
}
.text-w-stats__statistic {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: start;
  -webkit-align-items: flex-start;
      -ms-flex-align: start;
          align-items: flex-start;
  min-width: 0;
}
.text-w-stats__statistic-value {
  font-family: var(--heading-font), sans-serif;
  font-size: clamp(44px, 4.72vw, 4rem);
  font-weight: 600;
  line-height: 1.2;
  color: var(--primary);
  white-space: nowrap;
}
.text-w-stats__statistic-label {
  margin-top: 0.625rem;
  font-size: clamp(18px, 1.39vw, 1.375rem);
  font-weight: 600;
  line-height: 1.1;
  font-family: var(--heading-font), sans-serif;
  color: var(--text-color);
}
@media (max-width: 1023px) {
  .text-w-stats__statistic-label {
    font-size: 1.125rem;
  }
}
@media (max-width: 1023px) {
  .text-w-stats__statistics {
    max-width: none;
    margin: 5.625rem 0 0;
    gap: 2.625rem;
  }
  .text-w-stats__statistic {
    text-align: center;
    -webkit-box-align: center;
    -webkit-align-items: center;
        -ms-flex-align: center;
            align-items: center;
  }
}
@media (max-width: 767px) {
  .text-w-stats__statistics {
    grid-template-columns: repeat(1, minmax(0, 1fr));
    margin-top: 4.375rem;
    gap: 3.75rem;
  }
  .text-w-stats__statistic-value {
    font-size: clamp(36px, 7.81vw, 3.75rem);
  }
  .text-w-stats__statistic-label {
    font-size: clamp(18px, 2.86vw, 1.375rem);
  }
}
@media (max-width: 639px) {
  .text-w-stats {
    padding: 3.625rem 0 4.5rem;
  }
  .text-w-stats__head-content .section-label {
    margin-bottom: 1.875rem;
  }
  .text-w-stats__head-content .text-large {
    font-size: 1.75rem;
    line-height: 1.32;
  }
  .text-w-stats__statistics {
    grid-template-columns: 1fr;
    gap: 2.25rem;
    margin-top: 3.625rem;
  }
  .text-w-stats__statistic-value {
    font-size: 3.25rem;
  }
  .text-w-stats__statistic-label {
    margin-top: 0.625rem;
  }
}
@media (max-width: 419px) {
  .text-w-stats__head-content .text-large {
    font-size: 1.5rem;
  }
  .text-w-stats__statistic-value {
    font-size: 2.875rem;
  }
}

.flip-cards {
  padding: clamp(50px, 8.19vw, 7.375rem) 0 clamp(35px, 6.39vw, 5.75rem);
}
.flip-cards__heading {
  margin-bottom: clamp(35px, 4.65vw, 4.1875rem);
}
.flip-cards__cards {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(24px, 3.47vw, 3.125rem);
}
.flip-cards__card {
  position: relative;
  min-width: 0;
  aspect-ratio: 100/129;
  border-radius: 0.3125rem;
  outline: none;
  -webkit-perspective: 75rem;
          perspective: 75rem;
}
.flip-cards__card:hover .flip-cards__card-front, .flip-cards__card:focus-visible .flip-cards__card-front {
  -webkit-transform: rotateY(-180deg);
          transform: rotateY(-180deg);
}
.flip-cards__card:hover .flip-cards__card-back, .flip-cards__card:focus-visible .flip-cards__card-back {
  -webkit-transform: rotateY(0);
          transform: rotateY(0);
}
.flip-cards__card:focus-visible {
  -webkit-box-shadow: 0 0 0 0.1875rem var(--primary);
          box-shadow: 0 0 0 0.1875rem var(--primary);
}
.flip-cards__card-front {
  position: absolute;
  inset: 0;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  overflow: hidden;
  border: 0.1875rem solid var(--white);
  border-radius: inherit;
  background-color: var(--gray-300);
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  -webkit-transition: -webkit-transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
  transition: -webkit-transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
  transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
  transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
  -webkit-transform: rotateY(0);
          transform: rotateY(0);
  -webkit-transform-style: preserve-3d;
          transform-style: preserve-3d;
  padding: 1.25rem 1.25rem 3.125rem;
}
.flip-cards__card-front::after {
  content: "";
  position: absolute;
  right: 0.625rem;
  bottom: 0.625rem;
  z-index: 2;
  width: 1.9375rem;
  height: 1.4375rem;
  background-image: url("data:image/svg+xml,%3Csvg%20width%3D%2231%22%20height%3D%2223%22%20viewBox%3D%220%200%2031%2023%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M18.3177%208.02374L23.4608%202.12769L29.1055%208.02374%22%20stroke%3D%22white%22%20stroke-width%3D%222.87161%22%2F%3E%3Cpath%20d%3D%22M0%2021.1265H13.6612C19.212%2021.1265%2023.7118%2016.6267%2023.7118%2011.0759V4.11597%22%20stroke%3D%22white%22%20stroke-width%3D%222.87161%22%2F%3E%3C%2Fsvg%3E");
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
}
.flip-cards__card-front-image {
  position: absolute;
  inset: 0;
}
.flip-cards__card-front-image img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.flip-cards__card-front-title {
  position: relative;
  z-index: 1;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 86%;
  aspect-ratio: 1;
  padding: 0.9375rem;
  border-radius: 50%;
  background-color: var(--white);
  color: var(--text-color);
  font-family: var(--heading-font), sans-serif;
  font-size: clamp(20px, 2.22vw, 2rem);
  font-weight: 600;
  line-height: 1.1;
  text-align: center;
}
.flip-cards__card-front-title br {
  display: none;
}
.flip-cards__card-back {
  position: absolute;
  inset: 0;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: start;
  -webkit-justify-content: flex-start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  overflow: auto;
  padding: clamp(20px, 2.78vw, 2.5rem) 1.5625rem;
  border: 0.1875rem solid var(--white);
  border-radius: inherit;
  background-color: rgba(255, 255, 255, 0.72);
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  -webkit-transition: -webkit-transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
  transition: -webkit-transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
  transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
  transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
  -webkit-transform: rotateY(180deg);
          transform: rotateY(180deg);
  -webkit-transform-style: preserve-3d;
          transform-style: preserve-3d;
}
@media (max-width: 1199px) {
  .flip-cards__card-back {
    padding: 0.625rem 0.75rem;
  }
}
.flip-cards__card-back-title {
  color: var(--text-color);
  font-family: var(--heading-font), sans-serif;
  font-size: clamp(18px, 1.81vw, 1.625rem);
  font-weight: 600;
  line-height: 1.1;
  text-align: center;
}
.flip-cards__card-back-image {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 auto;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  width: 1.875rem;
  height: 1.875rem;
  margin: 0.75rem 0;
  overflow: hidden;
  border-radius: 50%;
}
.flip-cards__card-back-image img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.flip-cards__card-back-description {
  color: var(--primary);
  font-size: clamp(11px, 0.9vw, 0.8125rem);
  line-height: 1.35;
  text-align: center;
}
.flip-cards__card-back-description p:not(:last-child) {
  margin-bottom: 0.625rem;
}
@media (max-width: 1023px) {
  .flip-cards__cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .flip-cards__card-front-title {
    font-size: clamp(20px, 3.42vw, 2.1875rem);
  }
  .flip-cards__card-back {
    padding: 1.875rem;
  }
  .flip-cards__card-back-title {
    font-size: clamp(18px, 2.93vw, 1.875rem);
  }
  .flip-cards__card-back-description {
    font-size: clamp(14px, 1.76vw, 1.125rem);
  }
}
@media (max-width: 639px) {
  .flip-cards__cards {
    grid-template-columns: 1fr;
    max-width: 100%;
    margin: 0 auto;
  }
  .flip-cards__card {
    aspect-ratio: 100/130;
  }
  .flip-cards__card-front-title {
    font-size: 1.625rem;
  }
  .flip-cards__card-back {
    padding: 1.875rem 1.25rem;
  }
  .flip-cards__card-back-title {
    font-size: 1.5rem;
  }
  .flip-cards__card-back-description {
    font-size: 1rem;
  }
}
@media (prefers-reduced-motion: reduce) {
  .flip-cards__card-front, .flip-cards__card-back {
    -webkit-transition-duration: 0.01ms;
            transition-duration: 0.01ms;
  }
}

.clients-slider {
  background-color: var(--bg-color);
}
.clients-slider__container {
  position: relative;
  padding-top: clamp(45px, 4.79vw, 4.3125rem);
  padding-bottom: clamp(45px, 5.07vw, 4.5625rem);
}
.clients-slider__container::before, .clients-slider__container::after {
  content: "";
  position: absolute;
  right: clamp(20px, 2.78vw, 2.5rem);
  left: clamp(20px, 2.78vw, 2.5rem);
  height: 0.1875rem;
  background-color: var(--white);
}
.clients-slider__container::before {
  top: 0.625rem;
}
.clients-slider__container::after {
  bottom: 0.625rem;
}
.clients-slider__title {
  margin: 0 0 2.3125rem;
  color: var(--primary);
  font-family: var(--primary-font-family), sans-serif;
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.3;
  text-align: center;
}
.clients-slider__slider {
  position: relative;
  padding: 0 clamp(55px, 5.49vw, 4.9375rem);
}
.clients-slider__slider .splide__list {
  display: -webkit-box !important;
  display: -webkit-flex !important;
  display: -ms-flexbox !important;
  display: flex !important;
  -webkit-flex-wrap: nowrap !important;
      -ms-flex-wrap: nowrap !important;
          flex-wrap: nowrap !important;
  -webkit-box-align: stretch;
  -webkit-align-items: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
  width: 100%;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none;
}
.clients-slider__slider .splide__slide {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 calc((100% - 6.25rem) / 6);
      -ms-flex: 0 0 calc((100% - 6.25rem) / 6);
          flex: 0 0 calc((100% - 6.25rem) / 6);
  width: calc((100% - 6.25rem) / 6);
  min-width: 0;
}
.clients-slider__slider .splide__track {
  overflow: hidden;
}
.clients-slider__slider--static .clients-slider__arrows,
.clients-slider__slider--static .splide__pagination {
  display: none;
}
.clients-slider__pair {
  display: grid;
  grid-auto-flow: row;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: repeat(2, 5.75rem);
  gap: 0.9375rem 1.25rem;
  width: 100%;
  height: 100%;
}
.clients-slider__client {
  min-width: 0;
  height: 5.375rem;
  overflow: hidden;
  border: 0.1875rem solid var(--white);
  border-radius: 0.25rem;
  background-color: var(--white);
}
.clients-slider__client-link, .clients-slider__client-logo {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 100%;
  height: 100%;
  padding: 0.5rem;
}
.clients-slider__client-link {
  background-color: var(--white);
  -webkit-transition: background-color 0.2s ease-in-out;
  transition: background-color 0.2s ease-in-out;
}
.clients-slider__client-link:hover, .clients-slider__client-link:focus-visible {
  background-color: #f3f3f3;
}
.clients-slider__client-link:focus-visible {
  outline: 0.1875rem solid var(--primary);
  outline-offset: -0.1875rem;
}
.clients-slider__logo {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
  -webkit-filter: grayscale(1);
          filter: grayscale(1);
  opacity: 1;
  -webkit-transition: opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1), -webkit-filter 0.45s cubic-bezier(0.22, 1, 0.36, 1);
  transition: opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1), -webkit-filter 0.45s cubic-bezier(0.22, 1, 0.36, 1);
  transition: filter 0.45s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1);
  transition: filter 0.45s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1), -webkit-filter 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}
@media (prefers-reduced-motion: reduce) {
  .clients-slider__logo {
    -webkit-transition: none;
    transition: none;
  }
}
.clients-slider__client:hover .clients-slider__logo, .clients-slider__client:focus-visible .clients-slider__logo, .clients-slider__client:focus-within .clients-slider__logo {
  -webkit-filter: grayscale(0);
          filter: grayscale(0);
  opacity: 1;
}
.clients-slider__arrow.splide__arrow {
  top: calc(50% - 1.375rem);
  width: 1.8125rem;
  height: 1.8125rem;
  border: 0;
  background-color: var(--primary);
  opacity: 1;
  -webkit-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
          transform: translateY(-50%);
}
.clients-slider__arrow.splide__arrow svg {
  width: 0.5rem;
  height: 0.75rem;
  fill: none;
  stroke: var(--white);
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2;
}
.clients-slider__arrow.splide__arrow:hover {
  opacity: 0.8;
}
.clients-slider__arrow.splide__arrow:focus-visible {
  outline: 0.1875rem solid var(--white);
  outline-offset: 0.125rem;
}
.clients-slider__arrow--prev.splide__arrow--prev {
  left: 0.5rem;
}
.clients-slider__arrow--prev.splide__arrow--prev svg {
  -webkit-transform: none;
      -ms-transform: none;
          transform: none;
}
.clients-slider__arrow--next.splide__arrow--next {
  right: 0.5rem;
}
.clients-slider .splide__pagination {
  position: static;
  gap: 0.5rem;
  margin: 2rem 0 0;
  padding: 0;
}
.clients-slider .splide__pagination__page {
  width: 0.5625rem;
  height: 0.5625rem;
  margin: 0;
  background-color: var(--white);
  opacity: 1;
}
.clients-slider .splide__pagination__page.is-active {
  background-color: var(--primary);
  -webkit-transform: none;
      -ms-transform: none;
          transform: none;
}
@media (max-width: 1023px) {
  .clients-slider__slider {
    padding: 0 1.25rem 3.1875rem;
    padding-bottom: 3.1875rem;
  }
  .clients-slider__slider .splide__slide {
    -webkit-flex-basis: calc((100% - 2.5rem) / 3);
        -ms-flex-preferred-size: calc((100% - 2.5rem) / 3);
            flex-basis: calc((100% - 2.5rem) / 3);
    width: calc((100% - 2.5rem) / 3);
  }
  .clients-slider__slider .splide__pagination {
    display: none;
  }
  .clients-slider__arrows {
    position: absolute;
    bottom: 0;
    left: 50%;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    gap: 0.75rem;
    -webkit-transform: translateX(-50%);
        -ms-transform: translateX(-50%);
            transform: translateX(-50%);
  }
  .clients-slider__arrow.splide__arrow {
    position: static;
    -webkit-transform: none;
        -ms-transform: none;
            transform: none;
  }
  .clients-slider__client-link, .clients-slider__client-logo {
    padding: 0.5rem;
  }
}
@media (max-width: 639px) {
  .clients-slider__slider .splide__slide {
    -webkit-flex-basis: calc((100% - 0.75rem) / 2);
        -ms-flex-preferred-size: calc((100% - 0.75rem) / 2);
            flex-basis: calc((100% - 0.75rem) / 2);
    width: calc((100% - 0.75rem) / 2);
  }
  .clients-slider__pair {
    grid-template-rows: repeat(2, 4.75rem);
    gap: 0.75rem;
  }
  .clients-slider__client {
    height: 4.75rem;
  }
  .clients-slider__client-link, .clients-slider__client-logo {
    padding: 0.5rem;
  }
  .clients-slider__arrow.splide__arrow {
    width: 1.75rem;
    height: 1.75rem;
  }
}
@media (prefers-reduced-motion: reduce) {
  .clients-slider__client-link {
    -webkit-transition-duration: 0.01ms;
            transition-duration: 0.01ms;
  }
}

.expertise {
  position: relative;
  left: 50%;
  width: 100vw;
  margin-left: -50vw;
  background-color: var(--bg-color);
  scroll-margin-top: calc(var(--header-height, 4.5625rem) + 1.5rem);
}
.expertise__head-container {
  padding-top: clamp(60px, 5.49vw, 4.9375rem);
  padding-bottom: clamp(55px, 6.94vw, 6.25rem);
  max-width: 88.5625rem;
}
.expertise__head-content .section-label {
  margin-bottom: clamp(20px, 1.67vw, 1.5rem);
}
.expertise__head-content h2 {
  margin: 0;
}
.expertise__items {
  position: relative;
  width: 100%;
}
.expertise__item-anchor {
  scroll-margin-top: calc(var(--header-height, 4.5625rem) + 1.25rem);
}
.expertise__item {
  position: -webkit-sticky;
  position: sticky;
  top: calc(var(--header-height, 0px) + 1.25rem);
  width: 100%;
  min-height: clamp(290px, 28.47vw, 25.625rem);
  border-top: 0.0625rem solid var(--white);
  background: -webkit-gradient(linear, left bottom, left top, color-stop(24.77%, #e5e5e3), color-stop(71.13%, #f0f0ee));
  background: linear-gradient(0deg, #e5e5e3 24.77%, #f0f0ee 71.13%);
}
.expertise__item:not(:first-of-type) {
  -webkit-box-shadow: 0px -15px 42px 0px rgba(0, 0, 0, 0.1019607843);
          box-shadow: 0px -15px 42px 0px rgba(0, 0, 0, 0.1019607843);
}
.expertise__item-mask {
  position: absolute;
  z-index: 2;
  inset: 0;
  background: -webkit-gradient(linear, left bottom, left top, color-stop(24.77%, #e5e5e3), color-stop(71.13%, #f0f0ee));
  background: linear-gradient(0deg, #e5e5e3 24.77%, #f0f0ee 71.13%);
  opacity: 0;
  pointer-events: none;
}
.expertise__item:last-child {
  border-bottom: 0.0625rem solid var(--white);
}
.expertise__item-container {
  position: relative;
  z-index: 1;
  display: grid;
  gap: 1.5625rem 2.625rem;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  width: 100%;
  max-width: var(--content-size);
  min-height: inherit;
  margin-right: auto;
  margin-left: auto;
  padding-top: clamp(35px, 5.07vw, 4.5625rem);
  padding-bottom: clamp(35px, 4.17vw, 3.75rem);
}
.expertise__item-heading {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
  -webkit-align-items: flex-start;
      -ms-flex-align: start;
          align-items: flex-start;
  gap: 2.0625rem;
  padding-left: 0.4375rem;
}
.expertise__item-icon {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 3rem;
      -ms-flex: 0 0 3rem;
          flex: 0 0 3rem;
  width: 3rem;
  height: 3rem;
  overflow: hidden;
  border-radius: 50%;
}
.expertise__item-icon img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.expertise__item-title {
  margin: 0;
  font-size: clamp(24px, 2.5vw, 2.25rem);
  line-height: 1.15;
  padding-top: 0.1875rem;
}
.expertise__item-content {
  padding-top: 0.25rem;
}
.expertise__item-description {
  padding-bottom: 2.0625rem;
  font-size: 1.125rem;
  line-height: 1.2;
}
.expertise__item-offers {
  padding-top: 1.4375rem;
  border-top: 0.0625rem solid rgba(10, 36, 38, 0.18);
}
.expertise__item-offers-label {
  margin-bottom: 0.625rem;
  font-size: 1.125rem;
}
.expertise__item-offers-list {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  gap: 1.375rem 0.8125rem;
}
@media (max-width: 639px) {
  .expertise__item-offers-list {
    gap: 0.9375rem 0.8125rem;
  }
}
.expertise__item-offers-list li {
  padding: 0.375rem 0.875rem;
  border-radius: 1.25rem;
  background-color: var(--white);
  font-size: 1.125rem;
  line-height: 1;
}
@media (max-width: 767px) {
  .expertise__item {
    position: relative;
    top: auto;
    min-height: 0;
  }
  .expertise__item-container {
    grid-template-columns: 1fr;
    gap: 1.875rem;
    padding-top: 2.5rem;
    padding-bottom: 2.5rem;
  }
  .expertise__item-heading {
    padding-right: 0;
  }
}
@media (max-width: 639px) {
  .expertise__head-container {
    padding-top: 3.75rem;
    padding-bottom: 2.125rem;
  }
  .expertise__item-container {
    gap: 1.5rem;
  }
  .expertise__item-heading {
    gap: 1.125rem;
  }
  .expertise__item-title {
    font-size: 1.5rem;
  }
}
@media (prefers-reduced-motion: reduce) {
  .expertise__item {
    position: relative;
    top: auto;
  }
}

.methodology {
  padding: clamp(60px, 7.43vw, 6.6875rem) 0 0;
  overflow: clip;
}
.methodology__container {
  max-width: 88.875rem;
}
.methodology__head {
  max-width: 67.5rem;
}
.methodology__head .section-label {
  margin-bottom: clamp(18px, 3.75vw, 3.375rem);
}
.methodology__head h2,
.methodology__head .text-large {
  margin: 0;
  font-size: clamp(22px, 2.05vw, 1.875rem);
  line-height: 1.35;
}
.methodology__diagram {
  position: relative;
  margin: clamp(30px, 3.68vw, 3.3125rem) auto 0;
}
.methodology__diagram img {
  display: block;
  width: 100%;
  max-width: 67.125rem;
  height: auto;
}
.methodology__diagram--static {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.methodology__footer {
  max-width: 35.4375rem;
  margin: clamp(-6.5rem, -5vw, -1.5rem) 4.375rem 0 auto;
}
.methodology__footer p {
  margin: 0;
  font-family: var(--heading-font), sans-serif;
  font-size: clamp(20px, 2.5vw, 2.25rem);
  font-weight: 600;
  line-height: 1.3;
}
.methodology__footer-image {
  margin-top: clamp(40px, 5.83vw, 5.25rem);
  position: relative;
}
.methodology__footer-image img {
  display: block;
  width: 100%;
  height: auto;
}
.methodology__footer-overlay {
  position: absolute;
  top: 0;
  left: 50%;
  display: block;
  width: 92%;
  max-width: 82.625rem;
  height: clamp(15px, 3.47vw, 3.125rem);
  -webkit-transform: translate(-50%, 0);
      -ms-transform: translate(-50%, 0);
          transform: translate(-50%, 0);
  background: var(--bg-color);
  border-radius: 0.25rem;
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}

.tech-suite {
  position: relative;
  left: 50%;
  width: 100vw;
  margin-left: -50vw;
  overflow: hidden;
  background-color: #00363c;
  background-image: radial-gradient(120% 80% at 70% 0%, rgba(58, 116, 120, 0.3) 0%, rgba(0, 54, 60, 0) 60%), url(../images/tech-marble.jpg);
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover, cover;
}
.tech-suite__container {
  max-width: 88.5625rem;
}
.tech-suite__inner {
  position: relative;
  z-index: 1;
  padding: clamp(60px, 6.04vw, 5.4375rem) 0 clamp(60px, 15.56vw, 14rem);
}
.tech-suite__head {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(20px, 2.08vw, 1.875rem);
  max-width: 40.625rem;
  margin-bottom: clamp(35px, 4.38vw, 3.9375rem);
}
@media (max-width: 1023px) {
  .tech-suite__head {
    max-width: 100%;
  }
}
.tech-suite .section-label {
  margin-bottom: clamp(20px, 3.4vw, 3.0625rem);
  color: var(--white);
}
.tech-suite__head-content h2,
.tech-suite__head-content .text-large {
  margin: 0;
  color: var(--white);
  font-size: clamp(34px, 4.72vw, 4.25rem);
  line-height: 1.1;
}
.tech-suite__intro {
  max-width: 51.25rem;
  color: var(--white);
  font-size: clamp(16px, 1.25vw, 1.125rem);
  line-height: 1.25;
  font-weight: 400;
}
.tech-suite__intro p {
  margin: 0;
}
.tech-suite {
  /**
   * Carousel, one card at a time with the next peeking past the right edge.
   * Splide sets the widths inline, so this only handles the frame and controls.
   */
}
.tech-suite__slider {
  position: relative;
  visibility: visible;
}
.tech-suite__slider .splide__track {
  overflow: visible;
  cursor: -webkit-grab;
  cursor: grab;
  /* The peeking card has to be clipped at the container edge, not the card's. */
  -webkit-clip-path: inset(-100vh -100vw -100vh 0);
          clip-path: inset(-100vh -100vw -100vh 0);
}
.tech-suite__slider .splide__track:active {
  cursor: -webkit-grabbing;
  cursor: grabbing;
}
.tech-suite__slider .splide__list {
  margin: 0;
  padding: 0;
  list-style: none;
  -webkit-box-align: stretch;
  -webkit-align-items: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
}
.tech-suite__slide {
  height: auto;
}
.tech-suite__slide > .tech-suite__card {
  height: 100%;
}
.tech-suite__controls {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: 1.25rem;
  margin-top: clamp(28px, 3.19vw, 2.875rem);
}
.tech-suite__dots {
  position: static;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.625rem;
  margin: 0;
  padding: 0;
  -webkit-transform: none;
      -ms-transform: none;
          transform: none;
  list-style: none;
}
.tech-suite__dots li {
  margin: 0;
  line-height: 0;
}
.tech-suite__dots .splide__pagination__page {
  width: 0.5rem;
  height: 0.5rem;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background-color: rgba(255, 255, 255, 0.35);
  opacity: 1;
  -webkit-transition: background-color 0.3s ease, -webkit-transform 0.3s ease;
  transition: background-color 0.3s ease, -webkit-transform 0.3s ease;
  transition: background-color 0.3s ease, transform 0.3s ease;
  transition: background-color 0.3s ease, transform 0.3s ease, -webkit-transform 0.3s ease;
  cursor: pointer;
}
.tech-suite__dots .splide__pagination__page.is-active {
  background-color: var(--white);
  -webkit-transform: none;
      -ms-transform: none;
          transform: none;
}
.tech-suite__arrows {
  position: static;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.75rem;
}
.tech-suite__navigation-hint {
  position: absolute;
  right: 0;
  top: -2.25rem;
  display: -webkit-inline-box;
  display: -webkit-inline-flex;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.5625rem;
  color: var(--white);
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.2;
  -webkit-transition: opacity 0.25s ease, visibility 0.25s ease;
  transition: opacity 0.25s ease, visibility 0.25s ease;
}
.tech-suite__navigation-hint svg {
  width: 1.375rem;
  height: 1.375rem;
  -webkit-animation: tech-suite-direction 1.4s ease-in-out infinite;
          animation: tech-suite-direction 1.4s ease-in-out infinite;
}
.tech-suite__arrow {
  position: static;
  display: -webkit-inline-box;
  display: -webkit-inline-flex;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 2.875rem;
  height: 2.875rem;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background-color: rgba(255, 255, 255, 0.15);
  color: var(--white);
  opacity: 1;
  -webkit-transform: none;
      -ms-transform: none;
          transform: none;
  -webkit-transition: background-color 0.3s ease, color 0.3s ease, opacity 0.3s ease, visibility 0.3s ease, -webkit-box-shadow 0.3s ease;
  transition: background-color 0.3s ease, color 0.3s ease, opacity 0.3s ease, visibility 0.3s ease, -webkit-box-shadow 0.3s ease;
  transition: background-color 0.3s ease, color 0.3s ease, box-shadow 0.3s ease, opacity 0.3s ease, visibility 0.3s ease;
  transition: background-color 0.3s ease, color 0.3s ease, box-shadow 0.3s ease, opacity 0.3s ease, visibility 0.3s ease, -webkit-box-shadow 0.3s ease;
  cursor: pointer;
}
.tech-suite__arrow svg {
  width: 1.125rem;
  height: 1.125rem;
  fill: none;
}
.tech-suite__arrow--prev svg {
  -webkit-transform: rotate(180deg);
      -ms-transform: rotate(180deg);
          transform: rotate(180deg);
}
.tech-suite__arrow:hover, .tech-suite__arrow:focus-visible {
  background-color: var(--white);
  color: var(--green-500);
}
.tech-suite__arrow:disabled {
  opacity: 0.35;
  cursor: default;
}
.tech-suite__arrow.splide__arrow--prev {
  position: absolute;
  z-index: 4;
  top: var(--tech-suite-track-center, 50%);
  left: var(--tech-suite-prev-x, 0);
  border: 0.0625rem solid rgba(255, 255, 255, 0.55);
  background-color: var(--secondary);
  -webkit-box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.2);
          box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.2);
  -webkit-transform: translate(-50%, -50%);
      -ms-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
}
.tech-suite__arrow.splide__arrow--prev:disabled {
  visibility: hidden;
  -webkit-box-shadow: none;
          box-shadow: none;
  opacity: 0;
}
.tech-suite__arrow.splide__arrow--next {
  position: absolute;
  z-index: 4;
  top: var(--tech-suite-track-center, 50%);
  right: auto;
  left: var(--tech-suite-next-x, 88%);
  width: 3.5rem;
  height: 3.5rem;
  background-color: var(--secondary);
  -webkit-box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.2);
          box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.2);
  -webkit-transform: translate(-50%, -50%);
      -ms-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
}
.tech-suite__arrow.splide__arrow--next svg {
  width: 1.375rem;
  height: 1.375rem;
}
.tech-suite__arrow.splide__arrow--next:hover, .tech-suite__arrow.splide__arrow--next:focus-visible {
  background-color: var(--white);
}
.tech-suite__arrow.splide__arrow--next:disabled {
  visibility: hidden;
  -webkit-box-shadow: none;
          box-shadow: none;
  opacity: 0;
}
.tech-suite__card {
  position: relative;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  min-height: clamp(260px, 22.22vw, 20rem);
  padding: clamp(24px, 2.5vw, 2.25rem) clamp(24px, 2.78vw, 2.5rem) clamp(24px, 2.08vw, 1.875rem) clamp(24px, 2.5vw, 2.25rem);
  border-radius: 0.25rem;
  overflow: hidden;
  background-color: var(--green-500);
  color: var(--text-color);
}
@media (max-width: 767px) {
  .tech-suite__card {
    padding-right: clamp(24px, 2.78vw, 2.5rem);
  }
}
.tech-suite__card::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background: -webkit-gradient(linear, left bottom, left top, from(rgba(255, 255, 255, 0.8)), to(#fff));
  background: linear-gradient(0deg, rgba(255, 255, 255, 0.8) 0%, #fff 100%);
  opacity: 1;
  -webkit-transition: opacity 0.4s ease;
  transition: opacity 0.4s ease;
  pointer-events: none;
}
.tech-suite__card::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  background-color: rgba(0, 54, 60, 0.4);
  opacity: 0;
  -webkit-transition: opacity 0.35s ease;
  transition: opacity 0.35s ease;
  pointer-events: none;
}
.tech-suite__card > * {
  z-index: 1;
}
.tech-suite__card .tech-suite__card-title,
.tech-suite__card .tech-suite__card-logo {
  border-bottom: 2px solid var(--white);
  padding-bottom: clamp(18px, 1.67vw, 1.5rem);
  margin-bottom: clamp(18px, 1.67vw, 1.5rem);
}
.tech-suite__card .tech-suite__card-title {
  color: var(--primary);
  -webkit-transition: color 0.4s ease;
  transition: color 0.4s ease;
}
.tech-suite__card .tech-suite__card-arrow {
  background-color: var(--primary);
  color: var(--white);
}
.tech-suite__card:hover, .tech-suite__card:focus-within {
  color: rgba(255, 255, 255, 0.92);
}
.tech-suite__card:hover::before, .tech-suite__card:focus-within::before {
  opacity: 0;
}
.tech-suite__card:hover .tech-suite__card-title, .tech-suite__card:focus-within .tech-suite__card-title {
  color: var(--white);
}
.tech-suite__card:hover .tech-suite__card-logo, .tech-suite__card:focus-within .tech-suite__card-logo {
  color: var(--beige-500);
}
.tech-suite__card:hover .tech-suite__card-logo svg [fill]:not([fill=none]), .tech-suite__card:focus-within .tech-suite__card-logo svg [fill]:not([fill=none]) {
  fill: currentColor;
}
.tech-suite__card:hover .tech-suite__card-logo svg [stroke]:not([stroke=none]), .tech-suite__card:focus-within .tech-suite__card-logo svg [stroke]:not([stroke=none]) {
  stroke: currentColor;
}
.tech-suite__card:hover .tech-suite__card-divider, .tech-suite__card:focus-within .tech-suite__card-divider {
  background-color: rgba(255, 255, 255, 0.4);
}
.tech-suite__card:hover .tech-suite__card-arrow, .tech-suite__card:focus-within .tech-suite__card-arrow {
  background-color: var(--secondary);
}
.tech-suite__card-header {
  min-height: 2.5rem;
}
.tech-suite__card-title {
  font-family: var(--heading-font), sans-serif;
  font-size: clamp(26px, 2.5vw, 2.25rem);
  font-weight: 700;
  line-height: 1;
}
.tech-suite__card-logo img,
.tech-suite__card-logo svg {
  display: block;
  width: auto;
  max-width: 100%;
  max-height: 3rem;
  -o-object-fit: contain;
     object-fit: contain;
}
.tech-suite__card-logo svg [fill]:not([fill=none]) {
  -webkit-transition: fill 0.4s ease;
  transition: fill 0.4s ease;
}
.tech-suite__card-logo svg [stroke]:not([stroke=none]) {
  -webkit-transition: stroke 0.4s ease;
  transition: stroke 0.4s ease;
}
.tech-suite__card-divider {
  display: block;
  width: 100%;
  height: 0.0625rem;
  margin: clamp(18px, 2.08vw, 1.875rem) 0;
}
.tech-suite__card-description {
  margin-bottom: clamp(16px, 1.67vw, 1.5rem);
  font-size: clamp(15px, 1.11vw, 1rem);
  font-weight: 400;
  letter-spacing: -0.02em;
  line-height: 1.3;
}
.tech-suite__card-description p {
  margin: 0;
}
.tech-suite__card-tags {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  gap: 0.625rem;
  max-width: 26.875rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
@media (max-width: 639px) {
  .tech-suite__card-tags {
    gap: 0.5rem;
  }
}
.tech-suite__card-tag {
  padding: 0.375rem 0.75rem;
  border-radius: 1.25rem;
  background-color: var(--white);
  color: var(--text-color);
  font-size: 1rem;
  line-height: 1;
}
@media (max-width: 1023px) {
  .tech-suite__card-tag {
    font-size: 1rem;
  }
}
@media (max-width: 639px) {
  .tech-suite__card-tag {
    font-size: 0.875rem;
  }
}
.tech-suite__card-arrow {
  position: absolute;
  right: clamp(13px, 1.46vw, 1.3125rem);
  bottom: clamp(13px, 1.32vw, 1.1875rem);
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 3rem;
  height: 3rem;
  border-radius: 50%;
  -webkit-transition: var(--transition-base);
  transition: var(--transition-base);
}
.tech-suite__card-arrow svg {
  width: 1.25rem;
  height: 1.25rem;
}
.tech-suite__card-arrow:hover, .tech-suite__card-arrow:focus-visible {
  -webkit-transform: scale(1.08);
      -ms-transform: scale(1.08);
          transform: scale(1.08);
}
.tech-suite__card-arrow:focus-visible {
  outline: 0.125rem solid var(--white);
  outline-offset: 0.125rem;
}
.tech-suite__slide:not(.is-active) .tech-suite__card::after {
  opacity: 1;
}
@media (max-width: 767px) {
  .tech-suite__card {
    min-height: 0;
    padding-bottom: 1.875rem;
  }
  .tech-suite__card:nth-child(even) {
    -webkit-transform: none;
        -ms-transform: none;
            transform: none;
  }
  .tech-suite__navigation-hint {
    display: none;
  }
  .tech-suite__arrow.splide__arrow--next {
    width: 3.125rem;
    height: 3.125rem;
  }
  .tech-suite__arrow.splide__arrow--prev {
    width: 2.625rem;
    height: 2.625rem;
  }
}
@media (max-width: 639px) {
  .tech-suite__controls {
    -webkit-box-pack: justify;
    -webkit-justify-content: space-between;
        -ms-flex-pack: justify;
            justify-content: space-between;
    gap: 1.125rem;
    margin-top: 1.5rem;
  }
  .tech-suite__arrows {
    -webkit-box-ordinal-group: initial;
    -webkit-order: initial;
        -ms-flex-order: initial;
            order: initial;
    margin-left: auto;
  }
  .tech-suite__arrow.splide__arrow--prev, .tech-suite__arrow.splide__arrow--next {
    position: static;
    width: 2.875rem;
    height: 2.875rem;
    -webkit-transform: none;
        -ms-transform: none;
            transform: none;
  }
  .tech-suite__arrow.splide__arrow--prev:disabled, .tech-suite__arrow.splide__arrow--next:disabled {
    display: -webkit-inline-box;
    display: -webkit-inline-flex;
    display: -ms-inline-flexbox;
    display: inline-flex;
    visibility: visible;
    -webkit-box-shadow: none;
            box-shadow: none;
    opacity: 0.35;
  }
}
@media (prefers-reduced-motion: reduce) {
  .tech-suite__navigation-hint svg {
    -webkit-animation: none;
            animation: none;
  }
  .tech-suite__arrow {
    -webkit-transition-duration: 0.01ms;
            transition-duration: 0.01ms;
  }
  .tech-suite__card::after {
    -webkit-transition: none;
    transition: none;
  }
  .tech-suite__card-arrow {
    -webkit-transition: none;
    transition: none;
  }
}

@-webkit-keyframes tech-suite-direction {
  0%, 100% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
  50% {
    -webkit-transform: translateX(0.3125rem);
            transform: translateX(0.3125rem);
  }
}

@keyframes tech-suite-direction {
  0%, 100% {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
  50% {
    -webkit-transform: translateX(0.3125rem);
            transform: translateX(0.3125rem);
  }
}
.certifications {
  padding: clamp(55px, 7.57vw, 6.8125rem) 0 2.5rem;
}
.certifications__container {
  max-width: 88.75rem;
}
.certifications__head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  -webkit-box-align: start;
  -webkit-align-items: start;
      -ms-flex-align: start;
          align-items: start;
  gap: 1.875rem;
  margin-bottom: clamp(40px, 6.11vw, 5.5rem);
}
.certifications__head-content h2,
.certifications__head-content .text-large {
  margin: 0;
  font-size: clamp(36px, 4.72vw, 4.25rem);
  line-height: 1.1;
}
.certifications__intro {
  padding-top: clamp(6px, 2.22vw, 2rem);
  font-size: clamp(15px, 1.25vw, 1.125rem);
  line-height: 1.22;
}
.certifications__intro p {
  margin: 0;
}
.certifications__filter {
  position: relative;
  margin-bottom: clamp(30px, 3.82vw, 3.4375rem);
  padding-bottom: 2.625rem;
}
.certifications__tabs {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  gap: clamp(10px, 1.11vw, 1rem);
}
.certifications__line {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 0.3125rem;
  background-color: var(--white);
}
.certifications__tab {
  position: relative;
  padding: 0.8125rem 1.25rem;
  border: 0.125rem solid rgba(10, 36, 38, 0.22);
  border-radius: 1.5rem;
  background-color: var(--white);
  color: var(--text-color);
  font-size: clamp(14px, 1.25vw, 1.125rem);
  font-weight: 400;
  letter-spacing: -0.02em;
  line-height: 1;
  cursor: pointer;
  -webkit-transition: var(--transition-base);
  transition: var(--transition-base);
}
@media (max-width: 639px) {
  .certifications__tab {
    padding: 0.5rem 0.75rem;
  }
}
.certifications__tab:hover {
  border-color: rgba(10, 36, 38, 0.45);
}
.certifications__tab.is-active {
  border-color: var(--primary);
  background-color: var(--primary);
  color: var(--white);
}
.certifications__tab.is-active::after {
  content: "";
  position: absolute;
  bottom: -2.625rem;
  left: 50%;
  width: 0;
  height: 0;
  border-right: 0.8125rem solid transparent;
  border-bottom: 1.6875rem solid var(--white);
  border-left: 0.8125rem solid transparent;
  -webkit-transform: translateX(-50%);
      -ms-transform: translateX(-50%);
          transform: translateX(-50%);
}
.certifications__tab:focus-visible {
  outline: 0.125rem solid var(--primary);
  outline-offset: 0.125rem;
}
.certifications__panel[hidden] {
  display: none;
}
.certifications__grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 1.3125rem 1rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.certifications__logo {
  aspect-ratio: 170/88;
  border-radius: 0.25rem;
  background-color: var(--white);
  overflow: hidden;
}
.certifications__logo-link {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  width: 100%;
  height: 100%;
  /* Tight: the artwork carries its own breathing room, so the tile adds little. */
  padding: clamp(6px, 0.63vw, 0.5625rem) clamp(8px, 0.83vw, 0.75rem);
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.certifications__logo-link:focus-visible {
  outline: 0.125rem solid var(--primary);
  outline-offset: -0.25rem;
}
.certifications__logo-link:hover .certifications__logo-image, .certifications__logo-link:focus-visible .certifications__logo-image {
  -webkit-filter: grayscale(0);
          filter: grayscale(0);
  opacity: 1;
}
.certifications {
  /**
   * Fill the tile rather than letting the file's own size decide. With a srcset
   * the browser can pick a small candidate, and `width: auto` would then render
   * the mark at that size - which is what made these look shrunken and uneven.
   */
}
.certifications__logo-image {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
  -webkit-filter: grayscale(1);
          filter: grayscale(1);
  opacity: 0.85;
  -webkit-transition: opacity 0.65s cubic-bezier(0.22, 1, 0.36, 1), -webkit-filter 0.65s cubic-bezier(0.22, 1, 0.36, 1);
  transition: opacity 0.65s cubic-bezier(0.22, 1, 0.36, 1), -webkit-filter 0.65s cubic-bezier(0.22, 1, 0.36, 1);
  transition: filter 0.65s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.65s cubic-bezier(0.22, 1, 0.36, 1);
  transition: filter 0.65s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.65s cubic-bezier(0.22, 1, 0.36, 1), -webkit-filter 0.65s cubic-bezier(0.22, 1, 0.36, 1);
}
@media (max-width: 1023px) {
  .certifications__head {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }
  .certifications__intro {
    padding-top: 0;
  }
  .certifications__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
@media (max-width: 767px) {
  .certifications__tabs {
    gap: 0.625rem;
  }
  .certifications__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (max-width: 639px) {
  .certifications__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (prefers-reduced-motion: reduce) {
  .certifications__logo-image {
    -webkit-transition: none;
    transition: none;
  }
}

.brand-statement {
  padding: clamp(50px, 6.46vw, 5.8125rem) 0 clamp(35px, 3.61vw, 3.25rem);
  background: linear-gradient(180deg, var(--bg-color) 0%, #f9f9f8 45%, var(--bg-color) 100%);
  position: relative;
}
.brand-statement:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  height: 18.75rem;
  width: 100%;
  background: -webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0)), to(#ffffff));
  background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, #ffffff 100%);
}
.brand-statement__container {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1fr);
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  gap: clamp(30px, 8.68vw, 7.8125rem);
  position: relative;
  z-index: 1;
  max-width: 88.75rem;
}
.brand-statement__visual {
  max-width: 35rem;
}
.brand-statement__image {
  display: block;
  width: 100%;
  height: auto;
}
.brand-statement__content {
  padding-top: clamp(40px, 9.72vw, 8.75rem);
}
.brand-statement__text {
  margin-bottom: clamp(20px, 2.08vw, 1.875rem);
}
.brand-statement__text h2,
.brand-statement__text p {
  margin: 0;
  font-family: var(--heading-font), sans-serif;
  font-size: clamp(26px, 2.5vw, 2.25rem);
  font-weight: 600;
  line-height: 1.3;
  color: var(--text-color);
}
@media (max-width: 767px) {
  .brand-statement__container {
    grid-template-columns: 1fr;
    gap: 2.25rem;
  }
  .brand-statement__visual {
    max-width: 27.5rem;
  }
}

.case-studies {
  padding: clamp(50px, 6.67vw, 6rem) 0 clamp(35px, 7.57vw, 6.8125rem);
  overflow: hidden;
}
.case-studies__container {
  max-width: 88.75rem;
}
.case-studies__head {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: end;
  -webkit-align-items: flex-end;
      -ms-flex-align: end;
          align-items: flex-end;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: 1.5rem;
  margin-bottom: clamp(30px, 3.19vw, 2.875rem);
}
.case-studies__head-content h2,
.case-studies__head-content .text-large {
  margin: 0;
  font-size: clamp(34px, 4.72vw, 4.25rem);
  line-height: 1.1;
}
.case-studies__archive-link {
  display: -webkit-inline-box;
  display: -webkit-inline-flex;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.625rem;
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 auto;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  color: var(--secondary);
  font-weight: 500;
  font-size: clamp(14px, 1.11vw, 1rem);
  text-decoration: none;
  white-space: nowrap;
  -webkit-transition: var(--transition-base);
  transition: var(--transition-base);
  margin: 0 0.6875rem 0.4375rem 0;
}
.case-studies__archive-link:hover {
  gap: 0.875rem;
}
.case-studies__slider {
  position: relative;
  padding-bottom: 4.5rem;
}
.case-studies__slider .splide__track {
  overflow: visible;
}
.case-studies__slider .splide__slide {
  opacity: 0.45;
  -webkit-transition: opacity 0.4s ease;
  transition: opacity 0.4s ease;
}
.case-studies__slider .splide__slide.is-active {
  opacity: 1;
}
.case-studies__card {
  position: relative;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  min-height: clamp(360px, 30vw, 27rem);
  height: 100%;
  overflow: hidden;
  border-radius: 0.375rem;
  color: var(--text-color);
  text-decoration: none;
  background: -webkit-gradient(linear, left top, left bottom, from(rgba(245, 246, 245, 0.95)), to(rgba(255, 255, 255, 0.98)));
  background: linear-gradient(180deg, rgba(245, 246, 245, 0.95) 0%, rgba(255, 255, 255, 0.98) 100%);
}
.case-studies__card:focus-visible {
  outline: 0.1875rem solid var(--primary);
  outline-offset: 0.1875rem;
}
.case-studies__card-content {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 1;
  -webkit-flex: 1 1 52%;
      -ms-flex: 1 1 52%;
          flex: 1 1 52%;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  padding: 3rem 2.1875rem 2.8125rem 3rem;
}
@media (max-width: 639px) {
  .case-studies__card-content {
    padding: 1.875rem 1.25rem 1.875rem 1.875rem;
  }
}
.case-studies__card-label {
  display: -webkit-inline-box;
  display: -webkit-inline-flex;
  display: -ms-inline-flexbox;
  display: inline-flex;
  width: 100%;
  max-width: 89%;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.625rem;
  -webkit-align-self: flex-start;
      -ms-flex-item-align: start;
          align-self: flex-start;
  margin-bottom: clamp(24px, 2.29vw, 2.0625rem);
  padding-bottom: 1.375rem;
  border-bottom: 1px solid rgba(0, 76, 82, 0.35);
  color: var(--primary);
  font-size: 0.875rem;
  font-weight: 500;
}
.case-studies__card-label::before {
  content: "";
  width: 0.625rem;
  height: 0.625rem;
  border-radius: 50%;
  background-color: var(--secondary);
}
.case-studies__card-title {
  margin: 0;
  margin-bottom: clamp(25px, 3.61vw, 3.25rem);
  color: var(--text-color);
  font-size: clamp(24px, 2.5vw, 2.25rem);
  line-height: 1.3;
  -webkit-transition: var(--transition-base);
  transition: var(--transition-base);
}
.case-studies__card:hover .case-studies__card-title {
  color: var(--primary);
}
.case-studies__card-description {
  font-size: 0.875rem;
  line-height: 1.3;
}
.case-studies__card-description p {
  margin: 0;
}
.case-studies__card-visual {
  position: relative;
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 42%;
      -ms-flex: 0 0 42%;
          flex: 0 0 42%;
  min-height: 100%;
  background-color: var(--gray-300);
}
.case-studies__card-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: 50% 50%;
     object-position: 50% 50%;
}
.case-studies__card-logo {
  position: absolute;
  top: 1.25rem;
  right: 1.25rem;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  padding: 0.625rem 1rem;
  border-radius: 0.25rem;
  background-color: var(--white);
}
.case-studies__card-logo img {
  display: block;
  width: auto;
  height: auto;
  max-width: 9.25rem;
  max-height: 4rem;
  -o-object-fit: contain;
     object-fit: contain;
}
@media (max-width: 767px) {
  .case-studies__card-logo img {
    max-width: 7.5rem;
    max-height: 3.25rem;
  }
}
.case-studies .splide__pagination {
  position: absolute;
  bottom: 1.75rem;
  left: 0.25rem;
  gap: 0.6875rem;
  margin: 0;
  padding: 0;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: start;
  -webkit-justify-content: flex-start;
      -ms-flex-pack: start;
          justify-content: flex-start;
}
.case-studies .splide__pagination__page {
  width: 0.5625rem;
  height: 0.5625rem;
  margin: 0;
  background-color: rgba(0, 76, 82, 0.25);
  opacity: 1;
  -webkit-transition: var(--transition-base);
  transition: var(--transition-base);
}
.case-studies .splide__pagination__page.is-active {
  background-color: var(--primary);
  -webkit-transform: none;
      -ms-transform: none;
          transform: none;
}
.case-studies .splide__arrows {
  position: static;
}
.case-studies .splide__arrow {
  position: absolute;
  z-index: 4;
  top: var(--case-studies-track-center, 50%);
  width: 3.5rem;
  height: 3.5rem;
  border: 0;
  background-color: var(--secondary);
  -webkit-box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.2);
          box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.2);
  opacity: 1;
  -webkit-transform: translate(-50%, -50%);
      -ms-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
}
.case-studies .splide__arrow svg {
  width: 0.8125rem;
  height: 0.8125rem;
  fill: var(--white);
}
.case-studies .splide__arrow:hover {
  background-color: var(--primary);
}
.case-studies .splide__arrow:hover svg {
  fill: var(--white);
}
.case-studies .splide__arrow:disabled {
  visibility: hidden;
  -webkit-box-shadow: none;
          box-shadow: none;
  opacity: 0;
}
.case-studies .splide__arrow--prev {
  left: var(--case-studies-prev-x, 0);
}
.case-studies .splide__arrow--next {
  right: auto;
  left: var(--case-studies-next-x, 88%);
}
.case-studies__cursor {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 30;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 4.5rem;
  height: 4.5rem;
  margin: -2.25rem 0 0 -2.25rem;
  border-radius: 50%;
  background-color: var(--secondary);
  opacity: 0;
  -webkit-transform: scale(0.4);
      -ms-transform: scale(0.4);
          transform: scale(0.4);
  -webkit-transition: opacity 0.2s ease, -webkit-transform 0.2s ease;
  transition: opacity 0.2s ease, -webkit-transform 0.2s ease;
  transition: opacity 0.2s ease, transform 0.2s ease;
  transition: opacity 0.2s ease, transform 0.2s ease, -webkit-transform 0.2s ease;
  pointer-events: none;
}
.case-studies__cursor.is-active {
  opacity: 1;
  -webkit-transform: scale(1);
      -ms-transform: scale(1);
          transform: scale(1);
}
.case-studies__cursor svg {
  width: 1.375rem;
  height: 1.375rem;
  fill: none;
  stroke: var(--white);
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
@media (hover: hover) and (pointer: fine) {
  .case-studies__slider .splide__track {
    cursor: none;
  }
  .case-studies__card {
    cursor: none;
  }
}
@media (max-width: 767px) {
  .case-studies__head {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: start;
    -webkit-align-items: flex-start;
        -ms-flex-align: start;
            align-items: flex-start;
    gap: 1rem;
  }
  .case-studies__card {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column;
  }
  .case-studies__card-visual {
    -webkit-box-ordinal-group: 0;
    -webkit-order: -1;
        -ms-flex-order: -1;
            order: -1;
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    aspect-ratio: 16/10;
    min-height: 0;
  }
  .case-studies .splide__arrow {
    width: 3rem;
    height: 3rem;
  }
}
@media (max-width: 639px) {
  .case-studies__slider {
    padding-bottom: 4rem;
  }
  .case-studies .splide__arrows {
    position: absolute;
    right: 0;
    bottom: 0;
    left: auto;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    gap: 0.75rem;
  }
  .case-studies .splide__arrow {
    position: static;
    width: 2.875rem;
    height: 2.875rem;
    -webkit-transform: none;
        -ms-transform: none;
            transform: none;
  }
  .case-studies .splide__arrow:disabled {
    display: -webkit-inline-box;
    display: -webkit-inline-flex;
    display: -ms-inline-flexbox;
    display: inline-flex;
    visibility: visible;
    -webkit-box-shadow: none;
            box-shadow: none;
    opacity: 0.4;
  }
  .case-studies .splide__pagination {
    right: auto;
    bottom: 1.1875rem;
    left: 0.25rem;
  }
}
@media (prefers-reduced-motion: reduce) {
  .case-studies .splide__slide {
    -webkit-transition: none;
    transition: none;
  }
}

.testimonials {
  padding: clamp(50px, 10.14vw, 9.125rem) 0 clamp(45px, 6.94vw, 6.25rem);
  background: -webkit-gradient(linear, left bottom, left top, from(rgba(255, 255, 255, 0)), to(#ffffff));
  background: linear-gradient(0deg, rgba(255, 255, 255, 0) 0%, #ffffff 100%);
}
.testimonials__container {
  max-width: 88.8125rem;
}
.testimonials__head {
  margin-bottom: clamp(30px, 5.83vw, 5.25rem);
}
.testimonials__head h2,
.testimonials__head .text-large {
  margin: 0;
  font-size: clamp(34px, 4.72vw, 4.25rem);
  line-height: 1.03;
  font-weight: 600;
}
.testimonials__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(20px, 2.08vw, 1.875rem);
  -webkit-box-align: stretch;
  -webkit-align-items: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
}
.testimonials__card {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  min-height: clamp(300px, 31.53vw, 28.375rem);
  margin: 0;
  overflow: hidden;
  border-radius: 0.375rem;
  background-color: var(--bg-color);
}
.testimonials__card--with-image .testimonials__card-body {
  -webkit-box-flex: 1;
  -webkit-flex: 1 1 auto;
      -ms-flex: 1 1 auto;
          flex: 1 1 auto;
  padding-left: clamp(28px, 4.51vw, 4.0625rem);
}
.testimonials__card-visual {
  position: relative;
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 30%;
      -ms-flex: 0 0 30%;
          flex: 0 0 30%;
  min-height: 100%;
  background-color: var(--gray-300);
}
.testimonials__card-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.testimonials__card-body {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 1;
  -webkit-flex: 1 1 auto;
      -ms-flex: 1 1 auto;
          flex: 1 1 auto;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  padding: clamp(28px, 3.06vw, 2.75rem);
}
.testimonials__card-logo {
  margin-bottom: clamp(24px, 3.33vw, 3rem);
}
.testimonials__card-logo img {
  display: block;
  width: auto;
  max-width: 8.125rem;
  max-height: 3.125rem;
  -o-object-fit: contain;
     object-fit: contain;
  -webkit-filter: grayscale(1);
          filter: grayscale(1);
}
.testimonials__card-quote {
  margin: 0 0 auto;
  font-size: clamp(15px, 1.25vw, 1.125rem);
  line-height: 1.5;
  color: var(--text-color);
}
.testimonials__card-quote p {
  margin: 0;
}
.testimonials__card-author {
  margin-top: clamp(28px, 3.13vw, 2.8125rem);
  font-size: 0.9375rem;
  line-height: 1.4;
}
.testimonials__card-author-name {
  display: block;
  font-weight: 700;
}
.testimonials__card-author-role {
  display: block;
  color: var(--text-color);
}
@media (max-width: 767px) {
  .testimonials__grid {
    grid-template-columns: 1fr;
  }
  .testimonials__card {
    min-height: 0;
  }
}
@media (max-width: 639px) {
  .testimonials__card--with-image {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column;
  }
  .testimonials__card--with-image .testimonials__card-visual {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    aspect-ratio: 16/10;
    min-height: 0;
  }
}

.contact-cta {
  padding: 1.6875rem 0 clamp(55px, 8.61vw, 7.75rem);
}
.contact-cta__container {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  gap: clamp(30px, 4.17vw, 3.75rem);
  max-width: 88.75rem;
}
.contact-cta__content {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: start;
  -webkit-align-items: flex-start;
      -ms-flex-align: start;
          align-items: flex-start;
  padding-top: 0.9375rem;
}
.contact-cta__text h2,
.contact-cta__text p {
  margin: 0;
  font-family: var(--heading-font), sans-serif;
  font-size: clamp(34px, 4.72vw, 4.25rem);
  font-weight: 600;
  line-height: 1.1;
  color: var(--text-color);
}
.contact-cta__text h2 {
  display: inline;
}
.contact-cta .button {
  margin: 1.5625rem 0 0;
}
@media (min-width: 1200px) {
  .contact-cta .button {
    margin: 0 0 0 1.625rem;
    -webkit-transform: translateY(calc(clamp(5px, 1.04vw, 10px) * -1));
        -ms-transform: translateY(calc(clamp(5px, 1.04vw, 10px) * -1));
            transform: translateY(calc(clamp(5px, 1.04vw, 10px) * -1));
  }
}
.contact-cta .button {
  font-size: 0.875rem;
}
.contact-cta__visual {
  justify-self: end;
  max-width: 26.875rem;
  padding-right: clamp(15px, 3.82vw, 3.4375rem);
}
.contact-cta__image {
  display: block;
  width: 100%;
  height: auto;
  max-width: 20.6875rem;
}
@media (max-width: 767px) {
  .contact-cta__container {
    grid-template-columns: 1fr;
    gap: 2.25rem;
  }
  .contact-cta__visual {
    -webkit-box-ordinal-group: 0;
    -webkit-order: -1;
        -ms-flex-order: -1;
            order: -1;
    justify-self: center;
    padding: 0;
    max-width: 20rem;
  }
}

/* ---------------------------------------
	Home hero collage
--------------------------------------- */
@property --home-hero-sweep {
  syntax: "<angle>";
  inherits: false;
  initial-value: 0deg;
}
@-webkit-keyframes home-hero-rise {
  from {
    opacity: 0;
    -webkit-transform: translateY(26px);
            transform: translateY(26px);
  }
  to {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
@keyframes home-hero-rise {
  from {
    opacity: 0;
    -webkit-transform: translateY(26px);
            transform: translateY(26px);
  }
  to {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
@-webkit-keyframes home-hero-rise-soft {
  from {
    opacity: 0;
    -webkit-transform: translateY(14px);
            transform: translateY(14px);
  }
  to {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
@keyframes home-hero-rise-soft {
  from {
    opacity: 0;
    -webkit-transform: translateY(14px);
            transform: translateY(14px);
  }
  to {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
@-webkit-keyframes home-hero-sun {
  from {
    opacity: 0;
    -webkit-transform: translateY(86px) scale(0.96);
            transform: translateY(86px) scale(0.96);
  }
  to {
    opacity: 1;
    -webkit-transform: translateY(0) scale(1);
            transform: translateY(0) scale(1);
  }
}
@keyframes home-hero-sun {
  from {
    opacity: 0;
    -webkit-transform: translateY(86px) scale(0.96);
            transform: translateY(86px) scale(0.96);
  }
  to {
    opacity: 1;
    -webkit-transform: translateY(0) scale(1);
            transform: translateY(0) scale(1);
  }
}
@-webkit-keyframes home-hero-ring {
  from {
    opacity: 0;
    --home-hero-sweep: 0deg;
  }
  10% {
    opacity: 1;
  }
  to {
    opacity: 1;
    --home-hero-sweep: 360deg;
  }
}
@keyframes home-hero-ring {
  from {
    opacity: 0;
    --home-hero-sweep: 0deg;
  }
  10% {
    opacity: 1;
  }
  to {
    opacity: 1;
    --home-hero-sweep: 360deg;
  }
}
.about-hero {
  padding: clamp(100px, 8.89vw, 8rem) 0 clamp(40px, 3.47vw, 3.125rem);
  position: relative;
}
.about-hero:after {
  content: "";
  position: absolute;
  bottom: 9.0625rem;
  left: 0;
  width: 100%;
  height: 15.625rem;
  background: -webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0)), to(#ffffff));
  background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, #ffffff 100%);
}
.about-hero__container {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.087fr);
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  gap: clamp(30px, 5.56vw, 5rem);
  max-width: 88.75rem;
  position: relative;
  z-index: 2;
}
.about-hero__visual-item:not(:last-child) {
  margin-bottom: 1rem;
}
.about-hero__visual-item img {
  display: block;
  width: 100%;
  height: auto;
  max-width: 32.125rem;
}
@media (max-width: 767px) {
  .about-hero__visual-item img {
    margin: 0 auto;
  }
}
.about-hero__content {
  padding: 0 0 clamp(40px, 10.42vw, 9.375rem) 0;
}
@media (max-width: 767px) {
  .about-hero__content {
    padding: 0;
  }
}
.about-hero__content p:first-child {
  margin: 0 0 0.4375rem;
  color: var(--secondary);
  font-family: var(--heading-font), sans-serif;
  font-size: clamp(24px, 2.5vw, 2.25rem);
  font-weight: 600;
  line-height: 1.3;
}
.about-hero__content h2,
.about-hero__content .text-large {
  margin: 0;
  font-size: clamp(24px, 2.5vw, 2.25rem);
  line-height: 1.3;
}
.about-hero__button {
  margin-top: clamp(24px, 2.5vw, 2.25rem);
}
@media (max-width: 767px) {
  .about-hero__container {
    grid-template-columns: 1fr;
    gap: 2.25rem;
  }
}

.key-figures {
  padding: clamp(30px, 3.82vw, 3.4375rem) 0 0;
}
.key-figures__head {
  display: block;
}
.key-figures__head .section-label {
  margin-top: 0.375rem;
  margin-bottom: clamp(30px, 4.17vw, 3.75rem);
}
.key-figures__stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(11.125rem, 1fr));
  gap: clamp(30px, 3.06vw, 2.75rem) clamp(16px, 2.36vw, 2.125rem);
}
.key-figures__stat-value {
  font-family: var(--heading-font), sans-serif;
  font-size: clamp(30px, 3.82vw, 3.4375rem);
  font-weight: 600;
  line-height: 1.2;
  color: var(--primary);
}
.key-figures__stat-label {
  margin-top: 0.6875rem;
  font-size: clamp(13px, 1.25vw, 1.125rem);
  line-height: 1.1;
  font-weight: 600;
}
.key-figures__gallery {
  position: relative;
  margin-top: clamp(50px, 8.96vw, 8.0625rem);
}
.key-figures__gallery.is-gallery-overflow {
  padding-bottom: 4.5rem;
}
.key-figures__gallery .splide__track {
  overflow: visible;
}
.key-figures__gallery.is-gallery-overflow .splide__track {
  cursor: -webkit-grab;
  cursor: grab;
}
.key-figures__gallery.is-gallery-overflow .splide__track:active {
  cursor: -webkit-grabbing;
  cursor: grabbing;
}
.key-figures__gallery:not(.is-gallery-overflow) .splide__arrows {
  display: none;
}
.key-figures__gallery-track {
  -webkit-box-align: stretch;
  -webkit-align-items: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
  margin: 0;
  padding: 0;
  list-style: none;
}
.key-figures__gallery-item {
  overflow: hidden;
  width: calc(25% - 1.03125rem);
  height: clamp(280px, 28vw, 25rem);
  border-radius: 0.25rem;
}
.key-figures__gallery-item--horizontal {
  width: calc(50% - 0.6875rem);
}
.key-figures__gallery-item .image-swap {
  height: 100%;
}
.key-figures__gallery-item img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.key-figures__gallery-item--filtered img {
  -webkit-filter: grayscale(1);
          filter: grayscale(1);
  -webkit-transition: -webkit-filter 0.45s ease;
  transition: -webkit-filter 0.45s ease;
  transition: filter 0.45s ease;
  transition: filter 0.45s ease, -webkit-filter 0.45s ease;
}
.key-figures__gallery-item--filtered:hover img, .key-figures__gallery-item--filtered:focus-within img {
  -webkit-filter: grayscale(0);
          filter: grayscale(0);
}
.key-figures .splide__arrows {
  position: absolute;
  right: clamp(25px, 3.47vw, 3.125rem);
  bottom: 0.5rem;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  gap: 0.75rem;
}
.key-figures .splide__arrow {
  position: static;
  width: 2.875rem;
  height: 2.875rem;
  border: 0;
  background-color: var(--secondary);
  -webkit-box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.16);
          box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.16);
  opacity: 1;
  -webkit-transform: none;
      -ms-transform: none;
          transform: none;
  -webkit-transition: background-color 0.3s ease, opacity 0.3s ease, -webkit-box-shadow 0.3s ease, -webkit-transform 0.3s ease;
  transition: background-color 0.3s ease, opacity 0.3s ease, -webkit-box-shadow 0.3s ease, -webkit-transform 0.3s ease;
  transition: background-color 0.3s ease, box-shadow 0.3s ease, opacity 0.3s ease, transform 0.3s ease;
  transition: background-color 0.3s ease, box-shadow 0.3s ease, opacity 0.3s ease, transform 0.3s ease, -webkit-box-shadow 0.3s ease, -webkit-transform 0.3s ease;
}
.key-figures .splide__arrow svg {
  width: 1rem;
  height: 1rem;
  fill: var(--white);
}
.key-figures .splide__arrow:hover, .key-figures .splide__arrow:focus-visible {
  background-color: var(--primary);
  -webkit-transform: scale(1.08);
      -ms-transform: scale(1.08);
          transform: scale(1.08);
}
.key-figures .splide__arrow:focus-visible {
  outline: 0.125rem solid var(--primary);
  outline-offset: 0.1875rem;
}
.key-figures .splide__arrow:disabled {
  -webkit-box-shadow: none;
          box-shadow: none;
  opacity: 0.35;
}
@media (max-width: 1023px) {
  .key-figures__gallery-item {
    width: calc(50% - 0.5rem);
    height: clamp(260px, 42vw, 21.25rem);
  }
  .key-figures__gallery-item--horizontal {
    width: 100%;
  }
}
@media (max-width: 639px) {
  .key-figures__gallery-item {
    width: calc(50% - 0.375rem);
    height: clamp(240px, 82vw, 20rem);
  }
  .key-figures__gallery-item--horizontal {
    width: 100%;
  }
}
@media (prefers-reduced-motion: reduce) {
  .key-figures__gallery-item--filtered img,
  .key-figures .splide__arrow {
    -webkit-transition: none;
    transition: none;
  }
}

.our-story {
  padding: clamp(70px, 8.26vw, 7.4375rem) 0 clamp(55px, 6.88vw, 6.1875rem);
}
.our-story__container {
  max-width: 88.75rem;
}
.our-story__head {
  margin-bottom: -0.3125rem;
}
.our-story__block {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 0.775fr);
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  gap: clamp(30px, 5.56vw, 5rem);
}
.our-story__block:not(:last-child) {
  margin-bottom: clamp(50px, 12.15vw, 10.9375rem);
}
.our-story__block--image-left {
  grid-template-columns: minmax(0, 0.775fr) minmax(0, 1fr);
}
.our-story__block--image-left .our-story__block-text {
  -webkit-box-ordinal-group: 3;
  -webkit-order: 2;
      -ms-flex-order: 2;
          order: 2;
  -webkit-box-pack: end;
  -webkit-justify-content: flex-end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  padding-top: 0.5rem;
  padding-right: 3.6875rem;
}
.our-story__block--image-left .our-story__block-text .our-story__block-text-wrap {
  max-width: 36.0625rem;
}
@media (max-width: 767px) {
  .our-story__block--image-left .our-story__block-text {
    padding: 0;
  }
  .our-story__block--image-left .our-story__block-text .our-story__block-text-wrap {
    max-width: 100%;
  }
}
.our-story__block--image-left .our-story__block-image {
  padding-right: 0;
}
.our-story__block-text {
  font-size: clamp(16px, 1.67vw, 1.5rem);
  line-height: 1.2;
  font-weight: 400;
  letter-spacing: -0.02em;
  padding-top: 1.8125rem;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
}
.our-story__block-text p:not(:last-child) {
  margin-bottom: 1.8125rem;
}
.our-story__block-text-wrap {
  max-width: 36.25rem;
}
@media (max-width: 767px) {
  .our-story__block-text-wrap {
    max-width: 100%;
  }
}
.our-story__block-image {
  padding-right: 1rem;
}
@media (max-width: 767px) {
  .our-story__block-image {
    padding: 0;
  }
}
.our-story__block-image:not(:last-child) {
  margin-bottom: 1rem;
}
.our-story__block-image img {
  display: block;
  width: 100%;
  height: auto;
}
@media (max-width: 767px) {
  .our-story__block {
    grid-template-columns: 1fr;
    gap: 1.875rem;
  }
  .our-story__block--image-left .our-story__block-text {
    -webkit-box-ordinal-group: 1;
    -webkit-order: 0;
        -ms-flex-order: 0;
            order: 0;
  }
}

.offices {
  padding: clamp(50px, 8.19vw, 7.375rem) 0 clamp(25px, 6.11vw, 5.5rem);
  position: relative;
  /* Mosaic across the top, the two offices side by side under it. */
}
.offices__container {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(32px, 4.03vw, 3.625rem);
}
.offices__visual {
  padding: 0 2.9375rem 0 0.5625rem;
}
@media (max-width: 767px) {
  .offices__visual {
    padding: 0;
  }
}
.offices {
  /**
   * The three photos come at different aspect ratios on purpose. Equal columns
   * plus centre alignment lets the taller middle one overhang the row above and
   * below, which is what gives the mosaic its shape - no fixed heights needed.
   */
}
.offices__visual--mosaic {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, auto));
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  gap: clamp(10px, 1.53vw, 1.375rem);
  padding: 0;
}
.offices__visual-item {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  min-width: 0;
  /* Set per photo from the file's own width, so none of them ever upscale. */
  max-width: var(--offices-image-width, 100%);
}
.offices__visual-item .image-swap {
  max-width: 100%;
}
.offices {
  /**
   * These exports are small, so the artwork goes soft if it is stretched past
   * its own pixels. Let each photo sit at its natural size and only ever shrink.
   * The hover copy is excluded - it is absolutely positioned to fill the base.
   */
}
.offices__visual-item img:not(.image-swap__hover) {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
}
.offices {
  /* The two offices, split by a hairline the way the design shows them. */
}
.offices__columns {
  position: relative;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(24px, 4.03vw, 3.625rem);
  margin-bottom: clamp(24px, 2.36vw, 2.125rem);
  /**
   * The rule sits on the centre line rather than on the second column's edge.
   * A border there lands half the gap to the right of centre, which is enough
   * to read as off. Positioning it leaves the gap even on both sides.
   */
}
.offices__columns::before {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 0.0625rem;
  background-color: var(--primary);
  content: "";
}
.offices__column-title {
  margin: 0 0 0.875rem;
  font-family: var(--heading-font), sans-serif;
  font-size: clamp(20px, 1.94vw, 1.75rem);
  font-weight: 700;
  line-height: 1.2;
}
.offices__column-text {
  margin: 0;
  font-size: clamp(15px, 1.11vw, 1rem);
  line-height: 1.55;
}
.offices {
  /**
   * Lille mirrors Paris across the rule, so the pair reads outward from the
   * centre the way the mosaic above it does. Only while the two sit side by
   * side - once they stack, both centre instead.
   */
}
@media (min-width: 768px) {
  .offices__column:nth-of-type(2) {
    text-align: right;
  }
}
.offices__text {
  margin-bottom: clamp(24px, 2.36vw, 2.125rem);
  font-size: clamp(15px, 1.25vw, 1.125rem);
  line-height: 1.5;
}
.offices__text-wrap {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(24px, 4.72vw, 4.25rem);
  padding: 0;
}
.offices__text p {
  margin: 0;
}
.offices__button {
  display: block;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin: 0 auto;
  font-size: 0.875rem;
  padding: 0.625rem 1.1875rem;
  min-width: unset;
}
.offices {
  /**
   * Stacked, and paired up: each photo belongs to the office described beside
   * it, so once the paragraphs stack they read as photo, office, photo, office.
   * Flattening the two wrappers makes the photos and paragraphs siblings of the
   * same grid, which is what lets them interleave without duplicating markup.
   * The portal is a decorative divider between the two, so it drops out here.
   */
}
@media (max-width: 767px) {
  .offices__container {
    gap: clamp(20px, 4.17vw, 2rem);
  }
  .offices__visual--mosaic, .offices__content, .offices__columns, .offices__text, .offices__text-wrap {
    display: contents;
  }
  .offices__columns::before {
    display: none;
  }
  .offices__column {
    text-align: center;
  }
  .offices {
    /* Centred and pulled in a little, so a photo does not dominate the stack. */
  }
  .offices__visual-item {
    justify-self: center;
    max-width: min(var(--offices-image-width, 100%), 75%);
  }
  .offices__text-wrap p {
    text-align: center;
  }
  .offices__visual-item:nth-child(1) {
    -webkit-box-ordinal-group: 2;
    -webkit-order: 1;
        -ms-flex-order: 1;
            order: 1;
  }
  .offices__visual-item:nth-child(2) {
    display: none;
  }
  .offices__visual-item:nth-child(3) {
    -webkit-box-ordinal-group: 4;
    -webkit-order: 3;
        -ms-flex-order: 3;
            order: 3;
  }
  .offices__column:nth-of-type(1), .offices__text-wrap p:nth-child(1) {
    -webkit-box-ordinal-group: 3;
    -webkit-order: 2;
        -ms-flex-order: 2;
            order: 2;
  }
  .offices__column:nth-of-type(2), .offices__text-wrap p:nth-child(2) {
    -webkit-box-ordinal-group: 5;
    -webkit-order: 4;
        -ms-flex-order: 4;
            order: 4;
  }
  .offices__button {
    -webkit-box-ordinal-group: 6;
    -webkit-order: 5;
        -ms-flex-order: 5;
            order: 5;
    margin-top: 0.75rem;
  }
}

.why-arcane {
  position: relative;
  background-color: #00363c;
  background-image: radial-gradient(120% 80% at 70% 0%, rgba(58, 116, 120, 0.3) 0%, rgba(0, 54, 60, 0) 60%), url(../images/tech-marble.jpg);
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover, cover;
}
.why-arcane__container {
  max-width: 88.75rem;
}
.why-arcane__inner {
  position: relative;
  z-index: 1;
  padding: clamp(60px, 9.03vw, 8.125rem) 0 0;
}
.why-arcane__head {
  margin-bottom: clamp(35px, 3.89vw, 3.5rem);
}
.why-arcane__head h2,
.why-arcane__head .text-large {
  margin: 0;
  color: var(--white);
  font-size: clamp(36px, 4.72vw, 4.25rem);
  line-height: 1.1;
}
.why-arcane__cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(24px, 2.36vw, 2.125rem);
}
.why-arcane__card {
  /**
   * The side padding is trimmed so the longest title - "Formation & Parcours
   * de carriere" - sits on one line. It was overrunning by a few pixels, and
   * both the type and the padding scale with the viewport, so it wrapped at
   * every width rather than just one.
   */
  padding: clamp(25px, 3.13vw, 2.8125rem) clamp(20px, 1.6vw, 1.625rem) clamp(25px, 3.13vw, 2.8125rem) clamp(25px, 3.06vw, 2.75rem);
  border-radius: 0.25rem;
  opacity: 0.8;
  background: -webkit-gradient(linear, left bottom, left top, from(rgba(255, 255, 255, 0.8)), to(#ffffff));
  background: linear-gradient(0deg, rgba(255, 255, 255, 0.8) 0%, #ffffff 100%);
  color: var(--text-color);
  min-height: 18.75rem;
}
@media (max-width: 767px) {
  .why-arcane__card {
    min-height: unset;
  }
}
.why-arcane__card-title {
  margin: 0 0 clamp(16px, 2.57vw, 2.3125rem);
  font-size: clamp(22px, 2.5vw, 2.25rem);
  line-height: 1.03;
}
.why-arcane__card-text {
  font-size: clamp(14px, 1.25vw, 1.125rem);
  line-height: 1.2;
  letter-spacing: -0.02em;
}
.why-arcane__cta {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  margin-top: clamp(50px, 6.04vw, 5.4375rem);
  text-align: center;
}
.why-arcane__cta-text {
  max-width: 43.75rem;
}
.why-arcane__cta-text p {
  margin: 0;
  color: var(--white);
  font-family: var(--heading-font), sans-serif;
  font-size: clamp(22px, 2.5vw, 2.25rem);
  font-weight: 600;
  line-height: 1.3;
}
.why-arcane__cta-button {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  border: 2px solid var(--white);
  width: 8.125rem;
  aspect-ratio: 1;
  padding: 1rem;
  border-radius: 50%;
  background-color: var(--secondary);
  color: var(--white);
  font-size: 1.125rem;
  font-weight: 600;
  line-height: 1.2;
  text-align: center;
  -webkit-transition: var(--transition-base);
  transition: var(--transition-base);
  text-decoration: none;
  -webkit-transform: translateY(50%);
      -ms-transform: translateY(50%);
          transform: translateY(50%);
  margin-top: -1.8125rem;
  position: relative;
  overflow: hidden;
}
.why-arcane__cta-button:before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0;
  background-image: url(../images/decor_bg.png);
  background-repeat: no-repeat;
  background-position: 50% 50%;
  background-size: cover;
}
.why-arcane__cta-button span {
  position: relative;
  z-index: 2;
}
.why-arcane__cta-button:hover {
  -webkit-transform: translateY(45%);
      -ms-transform: translateY(45%);
          transform: translateY(45%);
  color: var(--white);
}
@media (max-width: 767px) {
  .why-arcane__cards {
    grid-template-columns: 1fr;
  }
}

.team-videos {
  padding: clamp(115px, 12.08vw, 10.875rem) 0 0;
}
.team-videos__container {
  max-width: 88.75rem;
}
.team-videos__head {
  margin-bottom: clamp(28px, 2.64vw, 2.375rem);
}
.team-videos__head h2,
.team-videos__head .text-large {
  margin: 0;
  font-size: clamp(30px, 4.72vw, 4.25rem);
  line-height: 1.1;
}
.team-videos__slider {
  position: relative;
  padding-bottom: 4.5rem;
}
.team-videos__slider .splide__track {
  overflow: visible;
  -webkit-transition: -webkit-transform 0.4s ease;
  transition: -webkit-transform 0.4s ease;
  transition: transform 0.4s ease;
  transition: transform 0.4s ease, -webkit-transform 0.4s ease;
}
.team-videos__slider .splide__slide {
  opacity: 0.45;
  -webkit-transition: opacity 0.4s ease;
  transition: opacity 0.4s ease;
}
.team-videos__slider .splide__slide.is-active {
  opacity: 1;
}
.team-videos__card {
  position: relative;
}
.team-videos__media {
  position: relative;
  border-radius: 0.625rem;
  aspect-ratio: 100/55.5;
  background-color: var(--black);
}
.team-videos__media img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 0.375rem;
}
.team-videos__poster {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
  -o-object-fit: cover;
     object-fit: cover;
  -webkit-filter: grayscale(1);
          filter: grayscale(1);
  opacity: 1;
  -webkit-transition: opacity 0.3s cubic-bezier(0.22, 1, 0.36, 1), -webkit-filter 0.3s cubic-bezier(0.22, 1, 0.36, 1);
  transition: opacity 0.3s cubic-bezier(0.22, 1, 0.36, 1), -webkit-filter 0.3s cubic-bezier(0.22, 1, 0.36, 1);
  transition: filter 0.3s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.3s cubic-bezier(0.22, 1, 0.36, 1);
  transition: filter 0.3s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.3s cubic-bezier(0.22, 1, 0.36, 1), -webkit-filter 0.3s cubic-bezier(0.22, 1, 0.36, 1);
}
@media (prefers-reduced-motion: reduce) {
  .team-videos__poster {
    -webkit-transition: none;
    transition: none;
  }
}
.team-videos__card:hover .team-videos__poster, .team-videos__card:focus-visible .team-videos__poster, .team-videos__card:focus-within .team-videos__poster {
  -webkit-filter: grayscale(0);
          filter: grayscale(0);
  opacity: 1;
}
.team-videos__poster {
  -webkit-transition-timing-function: ease-in-out;
          transition-timing-function: ease-in-out;
}
@media (prefers-reduced-motion: reduce) {
  .team-videos__poster {
    -webkit-transition: none;
    transition: none;
  }
}
.team-videos__play {
  position: absolute;
  top: 50%;
  left: 50%;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: clamp(52px, 4.31vw, 3.875rem);
  aspect-ratio: 1;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background-color: var(--secondary);
  cursor: pointer;
  -webkit-transform: translate(-50%, -50%);
      -ms-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  -webkit-transition: var(--transition-base);
  transition: var(--transition-base);
}
.team-videos__play:hover {
  -webkit-transform: translate(-50%, -50%) scale(1.08);
      -ms-transform: translate(-50%, -50%) scale(1.08);
          transform: translate(-50%, -50%) scale(1.08);
}
.team-videos__play-icon svg {
  display: block;
  width: 1.8125rem;
  height: 1.8125rem;
  fill: var(--white);
}
.splide__slide:not(.is-active) .team-videos__play {
  pointer-events: none;
}
.team-videos__bar {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: end;
  -webkit-align-items: flex-end;
      -ms-flex-align: end;
          align-items: flex-end;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: 1rem;
  padding: 1.5625rem 1.4375rem 1.75rem 2.125rem;
  background-color: rgba(255, 255, 255, 0.9);
  color: var(--white);
  border-bottom-left-radius: 0.25rem;
  border-bottom-right-radius: 0.25rem;
}
.team-videos__name {
  display: block;
  font-weight: 700;
  font-size: 0.875rem;
  line-height: 1.25;
  color: var(--black);
}
.team-videos__role {
  display: block;
  margin-top: 0.125rem;
  font-size: 0.875rem;
  line-height: 1.3;
  opacity: 0.85;
  color: var(--black);
  font-weight: 400;
}
.team-videos__date {
  -webkit-flex-shrink: 0;
      -ms-flex-negative: 0;
          flex-shrink: 0;
  font-weight: 700;
  font-size: 0.875rem;
  white-space: nowrap;
  color: var(--black);
}
.team-videos .splide__pagination {
  position: absolute;
  bottom: 1.75rem;
  left: 0.25rem;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: start;
  -webkit-justify-content: flex-start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  gap: 0.6875rem;
  margin: 0;
  padding: 0;
}
.team-videos .splide__pagination__page {
  width: 0.5625rem;
  height: 0.5625rem;
  margin: 0;
  background-color: rgba(0, 76, 82, 0.25);
  opacity: 1;
  -webkit-transition: var(--transition-base);
  transition: var(--transition-base);
}
.team-videos .splide__pagination__page.is-active {
  background-color: var(--primary);
  -webkit-transform: none;
      -ms-transform: none;
          transform: none;
}
.team-videos .splide__arrows {
  position: static;
}
.team-videos .splide__arrow {
  position: absolute;
  z-index: 4;
  top: var(--team-videos-track-center, 50%);
  width: 3.5rem;
  height: 3.5rem;
  border: 0;
  background-color: var(--secondary);
  -webkit-box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.2);
          box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.2);
  opacity: 1;
  -webkit-transform: translate(-50%, -50%);
      -ms-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  -webkit-transition: background-color 0.3s ease, opacity 0.3s ease, -webkit-box-shadow 0.3s ease, -webkit-transform 0.3s ease;
  transition: background-color 0.3s ease, opacity 0.3s ease, -webkit-box-shadow 0.3s ease, -webkit-transform 0.3s ease;
  transition: background-color 0.3s ease, box-shadow 0.3s ease, opacity 0.3s ease, transform 0.3s ease;
  transition: background-color 0.3s ease, box-shadow 0.3s ease, opacity 0.3s ease, transform 0.3s ease, -webkit-box-shadow 0.3s ease, -webkit-transform 0.3s ease;
}
.team-videos .splide__arrow svg {
  width: 1.125rem;
  height: 1.125rem;
  fill: var(--white);
  -webkit-transition: fill 0.3s ease;
  transition: fill 0.3s ease;
}
.team-videos .splide__arrow:hover, .team-videos .splide__arrow:focus-visible {
  background-color: var(--primary);
  -webkit-transform: translate(-50%, -50%) scale(1.08);
      -ms-transform: translate(-50%, -50%) scale(1.08);
          transform: translate(-50%, -50%) scale(1.08);
}
.team-videos .splide__arrow:focus-visible {
  outline: 0.125rem solid var(--primary);
  outline-offset: 0.1875rem;
}
.team-videos .splide__arrow:disabled {
  visibility: hidden;
  opacity: 0;
}
.team-videos .splide__arrow--prev {
  right: auto;
  left: var(--team-videos-prev-x, 0);
}
.team-videos .splide__arrow--next {
  right: auto;
  left: var(--team-videos-next-x, 100%);
}
@media (max-width: 1023px) {
  .team-videos__slider {
    padding-bottom: 4.5rem;
  }
  .team-videos .splide__arrows {
    position: absolute;
    right: 0;
    bottom: 0.5rem;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    gap: 0.75rem;
  }
  .team-videos .splide__arrow {
    position: static;
    width: 2.875rem;
    height: 2.875rem;
    -webkit-transform: none;
        -ms-transform: none;
            transform: none;
  }
  .team-videos .splide__arrow:hover, .team-videos .splide__arrow:focus-visible {
    -webkit-transform: scale(1.08);
        -ms-transform: scale(1.08);
            transform: scale(1.08);
  }
  .team-videos .splide__arrow:disabled {
    visibility: visible;
    -webkit-box-shadow: none;
            box-shadow: none;
    opacity: 0.35;
  }
  .team-videos .splide__pagination {
    right: auto;
    bottom: 1.625rem;
    left: 0.25rem;
  }
  .team-videos__bar {
    gap: 0.75rem;
    padding: 1rem 1.125rem;
  }
}
@media (max-width: 639px) {
  .team-videos__bar {
    padding: 0.75rem 0.875rem;
  }
}
@media (prefers-reduced-motion: reduce) {
  .team-videos__slider .splide__track, .team-videos__slider .splide__slide {
    -webkit-transition: none;
    transition: none;
  }
  .team-videos .splide__arrow,
  .team-videos .splide__arrow svg {
    -webkit-transition: none;
    transition: none;
  }
}

.team-grid {
  padding: clamp(45px, 6.94vw, 6.25rem) 0 clamp(35px, 9.38vw, 8.4375rem);
}
.team-grid__container {
  max-width: 88.75rem;
}
.team-grid__head {
  max-width: 46.25rem;
  margin-bottom: clamp(24px, 2.99vw, 2.6875rem);
}
.team-grid__head h2,
.team-grid__head .text-large {
  margin: 0;
  font-size: clamp(24px, 2.5vw, 2.25rem);
  line-height: 1.3;
}
.team-grid__filter {
  margin-bottom: clamp(30px, 4.65vw, 4.1875rem);
}
.team-grid__filter-label {
  display: block;
  margin-bottom: 0.9375rem;
  font-size: clamp(12px, 0.97vw, 0.875rem);
  color: var(--black);
  font-weight: 500;
}
.team-grid__tabs {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  gap: clamp(8px, 1.04vw, 0.9375rem);
}
.team-grid__tab {
  min-width: 7.625rem;
  padding: 0.8125rem 1.0625rem;
  border: 0.0625rem solid rgba(10, 36, 38, 0.22);
  border-radius: 1.5rem;
  background-color: transparent;
  color: var(--text-color);
  font-size: clamp(13px, 1.25vw, 1.125rem);
  letter-spacing: -0.03em;
  line-height: 1;
  cursor: pointer;
  -webkit-transition: var(--transition-base);
  transition: var(--transition-base);
}
@media (max-width: 639px) {
  .team-grid__tab {
    min-width: 5.3125rem;
    padding: 0.8125rem 0.75rem;
  }
}
.team-grid__tab:hover {
  border-color: rgba(10, 36, 38, 0.5);
}
.team-grid__tab.is-active {
  border-color: var(--green-500);
  background-color: var(--green-500);
  color: var(--white);
}
.team-grid__tab:focus-visible {
  outline: 0.125rem solid var(--green-500);
  outline-offset: 0.125rem;
}
.team-grid__grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: clamp(15px, 1.53vw, 1.375rem) clamp(14px, 2.57vw, 2.3125rem);
}
.team-grid__card[hidden] {
  display: none;
}
.team-grid__media {
  position: relative;
  overflow: hidden;
  margin-bottom: 1.25rem;
  border-radius: 0.25rem;
  aspect-ratio: 4/5;
  background-color: var(--sauge);
}
.team-grid__media::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: url(../images/tech-marble.jpg);
  background-position: center;
  background-size: cover;
  mix-blend-mode: multiply;
  opacity: 0.35;
}
.team-grid__media::after {
  content: "";
  position: absolute;
  inset: 1px;
  border-radius: 0.125rem;
  z-index: 1;
}
.team-grid__media--has-photo {
  background-color: transparent;
}
.team-grid__media--has-photo::before, .team-grid__media--has-photo::after {
  content: none;
}
.team-grid__card--c1 .team-grid__media::after {
  background-color: var(--primary);
}
.team-grid__card--c2 .team-grid__media::after {
  background-color: var(--sauge);
}
.team-grid__card--c3 .team-grid__media::after {
  background-color: var(--secondary);
}
.team-grid__card--c4 .team-grid__media::after {
  background-color: var(--black);
}
.team-grid__photo {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center bottom;
     object-position: center bottom;
  z-index: 2;
}
.team-grid__tag {
  position: absolute;
  bottom: 0.625rem;
  left: 0.625rem;
  z-index: 3;
  padding: 0.375rem 0.625rem;
  border-radius: 2.8125rem;
  background-color: rgba(255, 255, 255, 0.8);
  color: var(--black);
  font-size: clamp(11px, 0.97vw, 0.875rem);
  line-height: 1;
  letter-spacing: -0.02em;
}
.team-grid__name {
  margin: 0;
  font-family: var(--primary-font-family), sans-serif;
  font-weight: 700;
  font-size: clamp(15px, 1.18vw, 1.125rem);
  line-height: 1.3;
  color: var(--black);
}
.team-grid__role {
  margin: 0.25rem 0 0;
  font-size: 0.875rem;
  line-height: 1.3;
  color: var(--black);
}
.team-grid__card--cta {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: clamp(16px, 2.43vw, 2.1875rem);
  padding: 1.5rem 1.1875rem 3.4375rem;
  border-radius: 0.25rem;
  background-color: var(--secondary);
  background-repeat: no-repeat;
  background-position: 50% 50%;
  background-size: cover;
  background-image: url(../images/team_cta_bg.png);
  color: var(--white);
  text-align: center;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
}
@media (max-width: 639px) {
  .team-grid__card--cta {
    padding: 0.9375rem;
  }
}
.team-grid__cta-title {
  margin: 0;
  font-family: var(--heading-font), sans-serif;
  font-weight: 600;
  font-size: clamp(17px, 1.67vw, 1.5rem);
  line-height: 1.03;
}
.team-grid__cta-button {
  -webkit-align-self: center;
      -ms-flex-item-align: center;
          align-self: center;
  padding: 0.5rem 1.0625rem;
  border-radius: 2.8125rem;
  background-color: var(--white);
  color: var(--text-color);
  font-size: clamp(13px, 0.97vw, 0.875rem);
  line-height: 1;
  -webkit-transition: var(--transition-base);
  transition: var(--transition-base);
  text-decoration: none;
}
.team-grid__cta-button:hover {
  -webkit-transform: translateY(-2px);
      -ms-transform: translateY(-2px);
          transform: translateY(-2px);
}
@media (max-width: 1439px) {
  .team-grid__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
@media (max-width: 1199px) {
  .team-grid__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (max-width: 639px) {
  .team-grid__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.clients-hero {
  padding: clamp(110px, 8.68vw, 7.8125rem) 0 clamp(30px, 4.17vw, 3.75rem);
  position: relative;
}
.clients-hero:after {
  content: "";
  position: absolute;
  bottom: 9.625rem;
  left: 0;
  width: 100%;
  height: 15.625rem;
  background: -webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0)), to(#ffffff));
  background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, #ffffff 100%);
}
@media (max-width: 1023px) {
  .clients-hero:after {
    bottom: 0;
  }
}
.clients-hero__container {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.11fr);
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  gap: clamp(30px, 5.56vw, 5.625rem);
  position: relative;
  z-index: 1;
}
.clients-hero__visual {
  position: relative;
  z-index: 2;
  padding: 0 0 0 0.9375rem;
}
.clients-hero__visual img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}
.clients-hero__accent {
  position: absolute;
  z-index: 1;
  overflow: hidden;
  border-radius: 0.25rem;
}
.clients-hero__accent img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.clients-hero__accent--top {
  top: 0;
  right: -0.375rem;
  width: 4.375rem;
  aspect-ratio: 1/3;
}
.clients-hero__accent--side {
  bottom: -0.75rem;
  left: 0;
  width: 5rem;
  aspect-ratio: 2/5;
}
.clients-hero__content {
  padding: 0 0 clamp(25px, 3.75vw, 3.375rem) 6px;
}
@media (max-width: 767px) {
  .clients-hero__content {
    padding: 0;
  }
}
.clients-hero__content p:first-child {
  margin: 0;
  font-family: var(--heading-font), sans-serif;
  font-size: clamp(26px, 2.5vw, 2.25rem);
  font-weight: 600;
  line-height: 1.3;
}
.clients-hero__content p:not(:first-child) {
  margin: 1.25rem 0 0;
  font-size: clamp(15px, 1.25vw, 1.125rem);
  line-height: 1.5;
}
@media (max-width: 767px) {
  .clients-hero__container {
    grid-template-columns: 1fr;
    gap: 3.125rem;
  }
}

.clients-logos {
  padding: clamp(20px, 3.06vw, 2.75rem) 0 clamp(25px, 3.47vw, 3.125rem);
}
.clients-logos__container {
  max-width: 88.75rem;
}
.clients-logos__head {
  max-width: 45rem;
  margin-bottom: clamp(25px, 3.61vw, 3.25rem);
}
.clients-logos__head h2,
.clients-logos__head .text-large {
  margin: 0;
  font-size: clamp(26px, 2.5vw, 2.25rem);
  line-height: 1.3;
}
.clients-logos__filter {
  margin-bottom: clamp(30px, 3.89vw, 3.5rem);
  padding-bottom: clamp(18px, 2.01vw, 1.8125rem);
  border-bottom: 3px solid var(--white);
}
.clients-logos__tabs {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  gap: clamp(8px, 0.69vw, 0.625rem);
}
.clients-logos__tab {
  padding: 0.875rem 1.25rem;
  border: 0.0625rem solid rgba(10, 36, 38, 0.18);
  border-radius: 2.8125rem;
  background-color: var(--white);
  color: var(--text-color);
  font-size: clamp(14px, 1.25vw, 1.125rem);
  line-height: 1;
  cursor: pointer;
  -webkit-transition: var(--transition-base);
  transition: var(--transition-base);
}
.clients-logos__tab:hover {
  border-color: rgba(10, 36, 38, 0.45);
}
.clients-logos__tab.is-active {
  border-color: var(--primary);
  background-color: var(--primary);
  color: var(--white);
}
.clients-logos__tab:focus-visible {
  outline: 0.125rem solid var(--primary);
  outline-offset: 0.125rem;
}
.clients-logos__group:not(:last-child) {
  margin-bottom: clamp(36px, 3.96vw, 3.5625rem);
}
.clients-logos__group[hidden] {
  display: none;
}
.clients-logos__group-title {
  margin: 0 0 clamp(13px, 1.32vw, 1.1875rem);
  color: var(--primary);
  font-family: var(--secondary-font-family), sans-serif;
  font-size: clamp(18px, 1.67vw, 1.5rem);
  line-height: 1.18;
  font-weight: 600;
}
.clients-logos__grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: clamp(12px, 1.74vw, 1.5625rem) clamp(12px, 1.53vw, 1.375rem);
  margin: 0;
  padding: 0;
  list-style: none;
}
.clients-logos__item {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  aspect-ratio: 12/5.11;
  /* The artwork carries its own margin, sized per logo, so the tile adds none. */
  padding: 0.125rem 0.25rem;
  border-radius: 0.25rem;
  background-color: var(--white);
  -webkit-transition: -webkit-transform 0.3s ease, -webkit-box-shadow 0.3s ease;
  transition: -webkit-transform 0.3s ease, -webkit-box-shadow 0.3s ease;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  transition: transform 0.3s ease, box-shadow 0.3s ease, -webkit-transform 0.3s ease, -webkit-box-shadow 0.3s ease;
}
.clients-logos__item:hover {
  -webkit-transform: translateY(-0.1875rem);
      -ms-transform: translateY(-0.1875rem);
          transform: translateY(-0.1875rem);
  -webkit-box-shadow: 0 0.625rem 1.5rem rgba(10, 36, 38, 0.1);
          box-shadow: 0 0.625rem 1.5rem rgba(10, 36, 38, 0.1);
}
.clients-logos {
  /**
   * Fill the tile instead of letting the file decide. With a srcset the browser
   * can pick a small candidate, and `width: auto` would render the mark at that
   * size - which is what left these looking shrunken and uneven against
   * each other.
   */
}
.clients-logos__logo {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
  object-fit: contain;
  -webkit-filter: grayscale(1);
          filter: grayscale(1);
  opacity: 1;
  -webkit-transition: opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1), -webkit-filter 0.45s cubic-bezier(0.22, 1, 0.36, 1);
  transition: opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1), -webkit-filter 0.45s cubic-bezier(0.22, 1, 0.36, 1);
  transition: filter 0.45s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1);
  transition: filter 0.45s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1), -webkit-filter 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}
@media (prefers-reduced-motion: reduce) {
  .clients-logos__logo {
    -webkit-transition: none;
    transition: none;
  }
}
.clients-logos__item:hover .clients-logos__logo, .clients-logos__item:focus-visible .clients-logos__logo, .clients-logos__item:focus-within .clients-logos__logo {
  -webkit-filter: grayscale(0);
          filter: grayscale(0);
  opacity: 1;
}
@media (max-width: 1023px) {
  .clients-logos__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (max-width: 639px) {
  .clients-logos__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.contact {
  position: relative;
  padding-bottom: clamp(50px, 6.94vw, 6.25rem);
}
.contact__hero-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: clamp(360px, 34vw, 31.25rem);
  background-color: var(--beige-500);
  -webkit-filter: grayscale(0.35);
          filter: grayscale(0.35);
  pointer-events: none;
}
.contact__hero-bg::before {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: url(../images/hero_internal_bg.png);
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  content: "";
}
.contact__hero-bg::after {
  position: absolute;
  bottom: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 8.75rem;
  background: -webkit-gradient(linear, left top, left bottom, from(rgba(240, 240, 238, 0)), to(#f0f0ee));
  background: linear-gradient(180deg, rgba(240, 240, 238, 0) 0%, #f0f0ee 100%);
  content: "";
}
.contact__container {
  position: relative;
  z-index: 1;
  max-width: 88.75rem;
}
.contact__intro {
  padding: clamp(110px, 9.93vw, 8.9375rem) 0 clamp(60px, 8.89vw, 8rem);
}
.contact__intro h1,
.contact__intro h2 {
  margin: 0;
  font-size: clamp(34px, 4.72vw, 4.25rem);
  line-height: 1.02;
}
.contact__intro-text {
  max-width: 43.75rem;
  margin: clamp(25px, 3.68vw, 3.3125rem) 0 0;
  font-size: clamp(15px, 1.25vw, 1.125rem);
  line-height: 1.5;
}
.contact__card {
  position: relative;
  padding: clamp(70px, 10.56vw, 9.5rem) clamp(24px, 5.56vw, 5rem) clamp(50px, 6.25vw, 5.625rem);
  border-radius: 1rem;
  background-color: var(--white);
  -webkit-box-shadow: 0 1.875rem 3.75rem rgba(10, 36, 38, 0.06);
          box-shadow: 0 1.875rem 3.75rem rgba(10, 36, 38, 0.06);
}
.contact {
  /* The thank-you stands in for the form, so it needs none of the form's height. */
}
.contact__card--confirmation {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  min-height: clamp(260px, 26vw, 23.75rem);
  padding-top: clamp(60px, 7.64vw, 6.875rem);
  padding-bottom: clamp(60px, 7.64vw, 6.875rem);
}
.contact__confirmation {
  max-width: 45rem;
  margin: 0 auto;
  text-align: center;
  /* A tick, drawn rather than shipped as an asset. */
}
.contact__confirmation::before {
  display: block;
  width: 3.5rem;
  height: 3.5rem;
  margin: 0 auto 1.75rem;
  border-radius: 50%;
  background-color: var(--primary);
  background-image: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2724%27 height=%2724%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27%23ffffff%27 stroke-width=%272.5%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M20 6 9 17l-5-5%27/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 1.625rem 1.625rem;
  content: "";
}
.contact__confirmation h2,
.contact__confirmation h3 {
  margin: 0 0 1rem;
  font-size: clamp(26px, 2.78vw, 2.5rem);
  line-height: 1.1;
}
.contact__confirmation p {
  margin: 0 0 0.875rem;
  color: var(--black);
  font-size: clamp(19px, 1.94vw, 1.75rem);
  font-weight: 500;
  line-height: 1.35;
}
.contact__dot {
  position: absolute;
  top: clamp(-56px, -3.5vw, -2.8125rem);
  right: clamp(20px, 6.94vw, 6.25rem);
  width: clamp(84px, 8vw, 7.25rem);
  aspect-ratio: 1;
  background: url(../images/circle-marble.png) center/contain no-repeat;
  -webkit-filter: drop-shadow(0 0.625rem 1.5rem rgba(10, 36, 38, 0.14));
          filter: drop-shadow(0 0.625rem 1.5rem rgba(10, 36, 38, 0.14));
}

.contact-form {
  max-width: 61.25rem;
  margin: 0 auto;
}
.contact-form .gform_wrapper.gform-theme {
  --gf-font-family-primary: var(--primary-font-family), sans-serif;
  --gf-color-primary: var(--primary);
  --gf-color-in-ctrl-primary: var(--primary);
  --gf-ctrl-radius: 0.3125rem;
}
.contact-form .gform_wrapper.gform-theme .gform_heading {
  display: none;
}
.contact-form .gform_wrapper.gform-theme form {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: clamp(28px, 3.26vw, 2.9375rem) clamp(20px, 2.78vw, 2.5rem);
}
.contact-form .gform_wrapper.gform-theme .gform-body,
.contact-form .gform_wrapper.gform-theme .gform_fields {
  display: contents;
}
.contact-form .gform_wrapper.gform-theme .gfield {
  grid-column: span 12;
  margin: 0;
}
.contact-form .gform_wrapper.gform-theme .gfield--width-half {
  grid-column: span 6;
}
.contact-form .gform_wrapper.gform-theme .gfield_label,
.contact-form .gform_wrapper.gform-theme .gform-field-label {
  margin: 0 0 0.625rem;
  color: var(--black);
  font-family: var(--primary-font-family), sans-serif;
  font-weight: 600;
  font-size: clamp(15px, 1.25vw, 1.125rem);
  line-height: 1.3;
  display: inline-block;
}
.contact-form .gform_wrapper.gform-theme .gfield_required {
  color: var(--secondary);
  font-style: normal;
  margin-left: 2px;
}
.contact-form .gform_wrapper.gform-theme input[type=text],
.contact-form .gform_wrapper.gform-theme input[type=email],
.contact-form .gform_wrapper.gform-theme input[type=tel],
.contact-form .gform_wrapper.gform-theme input[type=url],
.contact-form .gform_wrapper.gform-theme input[type=number],
.contact-form .gform_wrapper.gform-theme select,
.contact-form .gform_wrapper.gform-theme textarea {
  width: 100%;
  min-height: 3.0625rem;
  padding: 0.6875rem 0.9375rem;
  border: 0.0625rem solid transparent !important;
  border-radius: 0.3125rem;
  background: var(--beige-500) !important;
  -webkit-box-shadow: none !important;
          box-shadow: none !important;
  color: var(--text-color);
  font-family: var(--primary-font-family), sans-serif;
  font-size: clamp(14px, 1.04vw, 0.9375rem);
  line-height: 1.4;
  -webkit-transition: var(--transition-base);
  transition: var(--transition-base);
}
.contact-form .gform_wrapper.gform-theme input[type=text]::-webkit-input-placeholder, .contact-form .gform_wrapper.gform-theme input[type=email]::-webkit-input-placeholder, .contact-form .gform_wrapper.gform-theme input[type=tel]::-webkit-input-placeholder, .contact-form .gform_wrapper.gform-theme input[type=url]::-webkit-input-placeholder, .contact-form .gform_wrapper.gform-theme input[type=number]::-webkit-input-placeholder, .contact-form .gform_wrapper.gform-theme select::-webkit-input-placeholder, .contact-form .gform_wrapper.gform-theme textarea::-webkit-input-placeholder {
  color: var(--gray-500);
}
.contact-form .gform_wrapper.gform-theme input[type=text]::-moz-placeholder, .contact-form .gform_wrapper.gform-theme input[type=email]::-moz-placeholder, .contact-form .gform_wrapper.gform-theme input[type=tel]::-moz-placeholder, .contact-form .gform_wrapper.gform-theme input[type=url]::-moz-placeholder, .contact-form .gform_wrapper.gform-theme input[type=number]::-moz-placeholder, .contact-form .gform_wrapper.gform-theme select::-moz-placeholder, .contact-form .gform_wrapper.gform-theme textarea::-moz-placeholder {
  color: var(--gray-500);
}
.contact-form .gform_wrapper.gform-theme input[type=text]:-ms-input-placeholder, .contact-form .gform_wrapper.gform-theme input[type=email]:-ms-input-placeholder, .contact-form .gform_wrapper.gform-theme input[type=tel]:-ms-input-placeholder, .contact-form .gform_wrapper.gform-theme input[type=url]:-ms-input-placeholder, .contact-form .gform_wrapper.gform-theme input[type=number]:-ms-input-placeholder, .contact-form .gform_wrapper.gform-theme select:-ms-input-placeholder, .contact-form .gform_wrapper.gform-theme textarea:-ms-input-placeholder {
  color: var(--gray-500);
}
.contact-form .gform_wrapper.gform-theme input[type=text]::-ms-input-placeholder, .contact-form .gform_wrapper.gform-theme input[type=email]::-ms-input-placeholder, .contact-form .gform_wrapper.gform-theme input[type=tel]::-ms-input-placeholder, .contact-form .gform_wrapper.gform-theme input[type=url]::-ms-input-placeholder, .contact-form .gform_wrapper.gform-theme input[type=number]::-ms-input-placeholder, .contact-form .gform_wrapper.gform-theme select::-ms-input-placeholder, .contact-form .gform_wrapper.gform-theme textarea::-ms-input-placeholder {
  color: var(--gray-500);
}
.contact-form .gform_wrapper.gform-theme input[type=text]::placeholder,
.contact-form .gform_wrapper.gform-theme input[type=email]::placeholder,
.contact-form .gform_wrapper.gform-theme input[type=tel]::placeholder,
.contact-form .gform_wrapper.gform-theme input[type=url]::placeholder,
.contact-form .gform_wrapper.gform-theme input[type=number]::placeholder,
.contact-form .gform_wrapper.gform-theme select::placeholder,
.contact-form .gform_wrapper.gform-theme textarea::placeholder {
  color: var(--gray-500);
}
.contact-form .gform_wrapper.gform-theme input[type=text]:focus,
.contact-form .gform_wrapper.gform-theme input[type=email]:focus,
.contact-form .gform_wrapper.gform-theme input[type=tel]:focus,
.contact-form .gform_wrapper.gform-theme input[type=url]:focus,
.contact-form .gform_wrapper.gform-theme input[type=number]:focus,
.contact-form .gform_wrapper.gform-theme select:focus,
.contact-form .gform_wrapper.gform-theme textarea:focus {
  border-color: var(--primary) !important;
  outline: none;
}
.contact-form .gform_wrapper.gform-theme textarea {
  min-height: 13.75rem;
  padding-top: 0.875rem;
  resize: vertical;
}
.contact-form .gform_wrapper.gform-theme .gfield_radio {
  display: -webkit-box !important;
  display: -webkit-flex !important;
  display: -ms-flexbox !important;
  display: flex !important;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
  -webkit-flex-flow: row nowrap;
      -ms-flex-flow: row nowrap;
          flex-flow: row nowrap;
  -webkit-box-align: center !important;
  -webkit-align-items: center !important;
      -ms-flex-align: center !important;
          align-items: center !important;
  -webkit-box-pack: start !important;
  -webkit-justify-content: flex-start !important;
      -ms-flex-pack: start !important;
          justify-content: flex-start !important;
  width: 100%;
  grid-template-columns: none !important;
  gap: clamp(6px, 0.83vw, 0.75rem);
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
}
.contact-form .gform_wrapper.gform-theme .gfield_radio .gchoice {
  position: relative;
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 auto;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  width: auto !important;
}
.contact-form .gform_wrapper.gform-theme .gfield_radio input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.contact-form .gform_wrapper.gform-theme .gfield_radio input:checked + label {
  background-color: #3a7478;
  color: var(--white);
}
.contact-form .gform_wrapper.gform-theme .gfield_radio input:focus-visible + label {
  outline: 0.125rem solid var(--primary);
  outline-offset: 0.125rem;
}
.contact-form .gform_wrapper.gform-theme .gfield_radio label {
  display: block;
  width: auto;
  max-width: none;
  margin: 0;
  padding: clamp(15px, 1.39vw, 1.25rem) clamp(20px, 2.29vw, 2.0625rem);
  border-radius: 2.625rem;
  color: var(--black);
  font-family: var(--primary-font-family), sans-serif;
  font-weight: 400;
  font-size: clamp(14px, 1.11vw, 1rem);
  line-height: 1;
  white-space: nowrap;
  cursor: pointer;
  -webkit-transition: var(--transition-base);
  transition: var(--transition-base);
}
.contact-form .gform_wrapper.gform-theme .gfield_radio label:hover {
  background-color: rgba(58, 116, 120, 0.12);
}
.contact-form .gform_wrapper.gform-theme .ginput_container_consent {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
  -webkit-align-items: flex-start;
      -ms-flex-align: start;
          align-items: flex-start;
  gap: 1rem;
  margin: -0.875rem 0 0;
}
.contact-form .gform_wrapper.gform-theme .ginput_container_consent input {
  -webkit-flex-shrink: 0;
      -ms-flex-negative: 0;
          flex-shrink: 0;
  width: 1.5rem;
  height: 1.5rem;
  margin: 0.0625rem 0 0;
  border-radius: 5px;
  accent-color: var(--primary);
}
.contact-form .gform_wrapper.gform-theme .ginput_container_consent label {
  margin: 0.3125rem 0 0;
  color: var(--black);
  font-weight: 600;
  font-size: clamp(13px, 1.11vw, 1rem);
  line-height: 1.09;
  cursor: pointer;
}
.contact-form .gform_wrapper.gform-theme .gform-footer,
.contact-form .gform_wrapper.gform-theme .gform_footer {
  position: relative;
  display: block !important;
  grid-column: span 12;
  -webkit-box-ordinal-group: 91;
  -webkit-order: 90;
      -ms-flex-order: 90;
          order: 90;
  width: 100%;
  inline-size: 100%;
  margin: 0.5rem 0 0;
  padding: 0;
}
.contact-form .gform_wrapper.gform-theme .gform-footer .gform_button.button,
.contact-form .gform_wrapper.gform-theme .gform_footer .gform_button.button {
  position: relative;
  display: -webkit-box !important;
  display: -webkit-flex !important;
  display: -ms-flexbox !important;
  display: flex !important;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 100% !important;
  min-width: 0;
  max-width: none !important;
  inline-size: 100% !important;
  min-inline-size: 0;
  max-inline-size: none !important;
  height: 2.1875rem;
  min-height: 2.1875rem;
  block-size: 2.1875rem !important;
  min-block-size: 2.8125rem;
  margin: 0;
  padding: 0.5rem 1.5rem !important;
  border: 0 !important;
  border-radius: 2.625rem !important;
  background: var(--secondary) !important;
  -webkit-box-shadow: none !important;
          box-shadow: none !important;
  color: var(--white) !important;
  font-family: var(--primary-font-family), sans-serif;
  font-size: clamp(15px, 1.11vw, 1rem);
  font-weight: 400;
  line-height: 1.18;
  text-align: center;
  cursor: pointer;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  -webkit-transition: var(--transition-base);
  transition: var(--transition-base);
}
.contact-form .gform_wrapper.gform-theme .gform-footer .gform_button.button:hover,
.contact-form .gform_wrapper.gform-theme .gform_footer .gform_button.button:hover {
  border: 0 !important;
  background: #f15d4f !important;
  color: var(--white) !important;
  -webkit-transform: translateY(-0.0625rem);
      -ms-transform: translateY(-0.0625rem);
          transform: translateY(-0.0625rem);
}
.contact-form .gform_wrapper.gform-theme .gform-footer .gform_button.button:focus-visible,
.contact-form .gform_wrapper.gform-theme .gform_footer .gform_button.button:focus-visible {
  outline: 0.125rem solid rgba(255, 101, 85, 0.4);
  outline-offset: 0.1875rem;
}
.contact-form .gform_wrapper.gform-theme .gform_ajax_spinner,
.contact-form .gform_wrapper.gform-theme .gform-loader {
  display: none !important;
}
.contact-form .gform_wrapper.gform-theme form:has(.gform_ajax_spinner, .gform-loader) .gform_button {
  opacity: 0.82;
  cursor: wait;
  pointer-events: none;
}
.contact-form .gform_wrapper.gform-theme form:has(.gform_ajax_spinner, .gform-loader) .gform_button::after {
  position: absolute;
  top: 50%;
  right: 1.125rem;
  width: 1rem;
  height: 1rem;
  border: 0.125rem solid rgba(255, 255, 255, 0.38);
  border-top-color: var(--white);
  border-radius: 50%;
  content: "";
  -webkit-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
          transform: translateY(-50%);
  -webkit-animation: contact-form-spinner 0.8s linear infinite;
          animation: contact-form-spinner 0.8s linear infinite;
  pointer-events: none;
}
.contact-form .gform_wrapper.gform-theme .gfield_html {
  -webkit-box-ordinal-group: 101;
  -webkit-order: 100;
      -ms-flex-order: 100;
          order: 100;
  margin-top: -0.9375rem;
}
.contact-form .gform_wrapper.gform-theme .gfield_html,
.contact-form .gform_wrapper.gform-theme .gform_description,
.contact-form .gform_wrapper.gform-theme .gfield_description {
  color: var(--black);
  font-size: clamp(12px, 1.11vw, 1rem);
  line-height: 1.3;
}
.contact-form .gform_wrapper.gform-theme .gfield_html::first-letter {
  color: var(--secondary);
}
.contact-form .gform_wrapper.gform-theme .gfield--type-captcha .gfield_label {
  display: none;
}
.contact-form .gform_wrapper.gform-theme .validation_message,
.contact-form .gform_wrapper.gform-theme .gform_validation_errors {
  color: var(--secondary);
}
.contact-form .gform_confirmation_message {
  color: var(--primary);
  font-size: clamp(16px, 1.25vw, 1.125rem);
  line-height: 1.5;
}
@media (max-width: 639px) {
  .contact-form .gform_wrapper.gform-theme .gfield--width-half {
    grid-column: 1/-1;
  }
  .contact-form .gform_wrapper.gform-theme .gfield_radio {
    -webkit-box-align: stretch;
    -webkit-align-items: stretch;
        -ms-flex-align: stretch;
            align-items: stretch;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-flex-wrap: nowrap;
        -ms-flex-wrap: nowrap;
            flex-wrap: nowrap;
  }
  .contact-form .gform_wrapper.gform-theme .gfield_radio .gchoice {
    -webkit-flex-basis: 100%;
        -ms-flex-preferred-size: 100%;
            flex-basis: 100%;
    width: 100% !important;
  }
  .contact-form .gform_wrapper.gform-theme .gfield_radio label.gform-field-label--type-inline {
    display: -webkit-box !important;
    display: -webkit-flex !important;
    display: -ms-flexbox !important;
    display: flex !important;
    -webkit-box-align: center;
    -webkit-align-items: center;
        -ms-flex-align: center;
            align-items: center;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
        -ms-flex-pack: center;
            justify-content: center;
    width: 100% !important;
    max-width: none !important;
    inline-size: 100% !important;
    max-inline-size: none !important;
    text-align: center;
    white-space: normal;
  }
}

@-webkit-keyframes contact-form-spinner {
  to {
    -webkit-transform: translateY(-50%) rotate(1turn);
            transform: translateY(-50%) rotate(1turn);
  }
}

@keyframes contact-form-spinner {
  to {
    -webkit-transform: translateY(-50%) rotate(1turn);
            transform: translateY(-50%) rotate(1turn);
  }
}
.cs-archive {
  position: relative;
  padding: clamp(40px, 4.86vw, 4.375rem) 0 clamp(60px, 8.54vw, 7.6875rem);
}
.cs-archive__hero-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: clamp(26.875rem, 36.6vw, 32.9375rem);
  background-image: url(../images/marble-header.jpg);
  background-repeat: no-repeat;
  background-position: center top;
  background-size: cover;
  pointer-events: none;
}
.cs-archive__container {
  position: relative;
  z-index: 1;
  max-width: 88.75rem;
}
.cs-archive__hero {
  padding: clamp(60px, 5.9vw, 5.3125rem) 0 clamp(30px, 4.72vw, 4.25rem);
}
.cs-archive__hero h1 {
  margin: 0;
  font-size: clamp(36px, 4.72vw, 4.25rem);
  line-height: 1.1;
}
.cs-archive__label {
  display: block;
  margin-bottom: 1rem;
  font-size: clamp(12px, 0.97vw, 0.875rem);
  font-weight: 500;
  line-height: 1.3;
  color: var(--black);
  padding: 0 0.3125rem;
}
.cs-archive__featured {
  position: relative;
  z-index: 1;
  margin-bottom: clamp(40px, 4.65vw, 4.1875rem);
}
.cs-archive__filter {
  margin-bottom: clamp(30px, 4.72vw, 4.25rem);
  padding: clamp(25px, 3.4vw, 3.0625rem) 0 clamp(24px, 3.89vw, 3.5rem);
  border-top: 3px solid var(--white);
  border-bottom: 3px solid var(--white);
}
.cs-archive__filter-label {
  display: block;
  margin-bottom: clamp(15px, 1.39vw, 1.25rem);
  font-size: clamp(12px, 0.97vw, 0.875rem);
  color: var(--black);
}
.cs-archive__tabs {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  gap: clamp(8px, 1.04vw, 0.9375rem);
}
.cs-archive__tab {
  padding: 0.9375rem 1.25rem;
  border: 0;
  border-radius: 1.5rem;
  background-color: var(--white);
  color: var(--text-color);
  font-size: clamp(14px, 1.25vw, 1.125rem);
  letter-spacing: -0.02em;
  line-height: 1;
  cursor: pointer;
  -webkit-transition: var(--transition-base);
  transition: var(--transition-base);
}
.cs-archive__tab:hover {
  background-color: rgba(0, 76, 82, 0.1);
}
.cs-archive__tab.is-active {
  background-color: var(--primary);
  color: var(--white);
}
.cs-archive__tab:focus-visible {
  outline: 0.125rem solid var(--primary);
  outline-offset: 0.125rem;
}
.cs-archive__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(28px, 2.92vw, 2.625rem) clamp(20px, 2.08vw, 1.875rem);
  margin-top: clamp(24px, 2.43vw, 2.1875rem);
  -webkit-transition: opacity 0.2s ease;
  transition: opacity 0.2s ease;
}
.cs-archive__grid.is-loading {
  opacity: 0.5;
}
.cs-archive__more {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin-top: clamp(36px, 7.08vw, 6.375rem);
}
.cs-archive__more[hidden] {
  display: none;
}
.cs-archive__more .button {
  font-size: 0.875rem;
}
@media (max-width: 1023px) {
  .cs-archive__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 639px) {
  .cs-archive__grid {
    grid-template-columns: 1fr;
  }
}

/* ---------------------------------------
	Featured case study
--------------------------------------- */
.cs-featured {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  -webkit-box-align: stretch;
  -webkit-align-items: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
  overflow: hidden;
  border-radius: 0.375rem;
  background-color: var(--white);
}
.cs-featured__body {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: start;
  -webkit-align-items: flex-start;
      -ms-flex-align: start;
          align-items: flex-start;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  padding: 4.25rem 2.3125rem 3.4375rem 3.9375rem;
}
.cs-featured__body .button {
  font-size: 0.875rem;
}
@media (max-width: 767px) {
  .cs-featured__body {
    padding: 1.875rem;
  }
}
@media (max-width: 639px) {
  .cs-featured__body {
    padding: 1.5625rem;
  }
}
.cs-featured__title {
  margin: 0 0 clamp(24px, 3.4vw, 3.0625rem);
  font-size: clamp(24px, 2.5vw, 2.25rem);
  line-height: 1.3;
}
.cs-featured__media {
  position: relative;
  overflow: hidden;
  aspect-ratio: 100/70;
}
.cs-featured__image {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: left top;
     object-position: left top;
}
.cs-featured__logo {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: clamp(180px, 17.57vw, 15.8125rem);
  aspect-ratio: 100/41;
  padding: 0.75rem 1rem;
  background-color: var(--white);
}
.cs-featured__logo img {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
}
@media (max-width: 767px) {
  .cs-featured {
    grid-template-columns: 1fr;
  }
  .cs-featured__media {
    -webkit-box-ordinal-group: 0;
    -webkit-order: -1;
        -ms-flex-order: -1;
            order: -1;
    aspect-ratio: 16/10;
  }
}

/* ---------------------------------------
	Case study card
--------------------------------------- */
.cs-card {
  -webkit-transition: -webkit-transform 0.3s ease;
  transition: -webkit-transform 0.3s ease;
  transition: transform 0.3s ease;
  transition: transform 0.3s ease, -webkit-transform 0.3s ease;
}
.cs-card:hover {
  -webkit-transform: translateY(-0.25rem);
      -ms-transform: translateY(-0.25rem);
          transform: translateY(-0.25rem);
}
.cs-card__link {
  display: block;
  color: inherit;
  text-decoration: none;
}
.cs-card__media-link {
  position: absolute;
  inset: 0;
  display: block;
  color: inherit;
}
.cs-card__media {
  position: relative;
  overflow: hidden;
  margin-bottom: clamp(14px, 1.32vw, 1.1875rem);
  border-radius: 0.375rem;
  aspect-ratio: 100/69.5;
  background-color: var(--sauge);
}
.cs-card__image {
  position: absolute;
  inset: 0;
  z-index: 0;
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: top left;
     object-position: top left;
}
.cs-card__image--placeholder {
  background-image: url(../images/tech-marble.jpg);
  background-position: center;
  background-size: cover;
}
.cs-card__media .cs-card__image {
  -webkit-transition: opacity 0.3s ease-in-out, -webkit-transform 0.5s cubic-bezier(0.2, 0.7, 0.3, 1);
  transition: opacity 0.3s ease-in-out, -webkit-transform 0.5s cubic-bezier(0.2, 0.7, 0.3, 1);
  transition: transform 0.5s cubic-bezier(0.2, 0.7, 0.3, 1), opacity 0.3s ease-in-out;
  transition: transform 0.5s cubic-bezier(0.2, 0.7, 0.3, 1), opacity 0.3s ease-in-out, -webkit-transform 0.5s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.cs-card__logo {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: clamp(130px, 10.76vw, 9.6875rem);
  aspect-ratio: 100/39;
  padding: 0.5rem 0.75rem;
  background-color: var(--white);
}
.cs-card__logo img {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
}
.cs-card__tag {
  position: absolute;
  bottom: 1.125rem;
  left: 0.9375rem;
  z-index: 2;
  padding: 0.3125rem 1rem;
  border-radius: 2.8125rem;
  background-color: var(--white);
  color: var(--black);
  font-size: clamp(11px, 0.83vw, 0.8125rem);
  line-height: 1;
}
.cs-card__play {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 2;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: clamp(44px, 3.6vw, 3.25rem);
  padding: 0;
  border: 0;
  aspect-ratio: 1;
  border-radius: 50%;
  background-color: var(--white);
  -webkit-transform: translate(-50%, -50%);
      -ms-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  cursor: pointer;
}
.cs-card__play span,
.cs-card__play svg {
  display: block;
}
.cs-card__play svg {
  width: 1.25rem;
  height: 1.25rem;
  margin-left: 0.125rem;
  fill: var(--primary);
  -webkit-transition: fill 0.3s ease;
  transition: fill 0.3s ease;
}
.cs-card:hover .cs-card__play svg, .cs-card__play:focus-visible svg {
  fill: var(--red-500);
}
.cs-card__title {
  margin: 0;
  color: #191919;
  font-family: var(--heading-font), sans-serif;
  font-weight: 600;
  font-size: clamp(16px, 1.39vw, 1.25rem);
  line-height: 1.3;
  padding: 0 0.875rem;
  -webkit-transition: color 0.2s ease;
  transition: color 0.2s ease;
}
.cs-card__link:hover .cs-card__title {
  color: var(--primary);
}

.case-video-modal {
  position: fixed;
  z-index: 1000;
  inset: 0;
  display: grid;
  place-items: center;
  padding: clamp(16px, 3.47vw, 3.125rem);
}
.case-video-modal[hidden] {
  display: none;
}
.case-video-modal__backdrop {
  position: absolute;
  inset: 0;
  width: 100%;
  padding: 0;
  border: 0;
  background-color: rgba(10, 36, 38, 0.88);
  cursor: pointer;
}
.case-video-modal__dialog {
  position: relative;
  z-index: 1;
  width: min(100%, 70rem);
}
.case-video-modal__player {
  overflow: hidden;
  border-radius: 0.5rem;
  aspect-ratio: 16/9;
  background-color: var(--black);
  -webkit-box-shadow: 0 1.25rem 4.375rem rgba(0, 0, 0, 0.35);
          box-shadow: 0 1.25rem 4.375rem rgba(0, 0, 0, 0.35);
}
.case-video-modal__player iframe,
.case-video-modal__player video {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}
.case-video-modal__player video {
  -o-object-fit: contain;
     object-fit: contain;
}
.case-video-modal__close {
  position: absolute;
  right: 0;
  bottom: calc(100% + 0.875rem);
  width: 2.75rem;
  padding: 0;
  border: 0.0625rem solid rgba(255, 255, 255, 0.45);
  border-radius: 50%;
  aspect-ratio: 1;
  background-color: var(--white);
  cursor: pointer;
}
.case-video-modal__close::before, .case-video-modal__close::after {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 1.125rem;
  height: 0.125rem;
  background-color: var(--primary);
  content: "";
}
.case-video-modal__close::before {
  -webkit-transform: translate(-50%, -50%) rotate(45deg);
      -ms-transform: translate(-50%, -50%) rotate(45deg);
          transform: translate(-50%, -50%) rotate(45deg);
}
.case-video-modal__close::after {
  -webkit-transform: translate(-50%, -50%) rotate(-45deg);
      -ms-transform: translate(-50%, -50%) rotate(-45deg);
          transform: translate(-50%, -50%) rotate(-45deg);
}

.team-videos--case-study-archive {
  padding-top: 0;
  padding-bottom: clamp(70px, 8.54vw, 7.6875rem);
}

body.has-open-modal {
  overflow: hidden;
}

.case-single {
  overflow-x: clip;
  background-color: var(--beige-500);
  color: var(--black);
}
.case-single__hero {
  position: relative;
  padding: clamp(105px, 9.38vw, 8.4375rem) 0 clamp(45px, 4.24vw, 3.8125rem);
}
.case-single__hero-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: clamp(360px, 36.6vw, 32.9375rem);
  background-image: url(../images/marble-header.jpg);
  background-repeat: no-repeat;
  background-position: center top;
  background-size: cover;
  pointer-events: none;
}
.case-single__hero-bg:after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  display: block;
  width: 100%;
  height: 8.75rem;
  background: -webkit-gradient(linear, left top, left bottom, from(rgba(240, 240, 238, 0)), to(#f0f0ee));
  background: linear-gradient(180deg, rgba(240, 240, 238, 0) 0%, #f0f0ee 100%);
}
.case-single__hero-container {
  position: relative;
  z-index: 1;
  max-width: 88.75rem;
}
.case-single__tags {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  gap: 0.5625rem;
  margin-bottom: clamp(24px, 3.61vw, 3.25rem);
}
.case-single__tag {
  padding: 0.5rem 0.9375rem;
  border-radius: 1.5rem;
  background-color: rgba(255, 255, 255, 0.8);
  font-size: 0.875rem;
  line-height: 1;
}
.case-single__eyebrow {
  margin: 0 0 clamp(18px, 1.81vw, 1.625rem);
  font-size: clamp(36px, 4.72vw, 4.25rem);
  line-height: 1.1;
}
.case-single__hero-card {
  display: grid;
  grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
  min-height: 28.9375rem;
  overflow: hidden;
  border-radius: 0.25rem;
  background-color: rgba(255, 255, 255, 0.82);
  -webkit-box-shadow: 0 0.25rem 1.375rem rgba(0, 0, 0, 0.04);
          box-shadow: 0 0.25rem 1.375rem rgba(0, 0, 0, 0.04);
}
.case-single__hero-media {
  position: relative;
  overflow: hidden;
  min-width: 0;
  min-height: 25rem;
}
.case-single__hero-image {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: top left;
     object-position: top left;
}
.case-single__hero-logo {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 40%;
  min-height: 6.5rem;
  padding: 0.9375rem;
  background-color: var(--white);
}
.case-single__hero-logo img {
  max-width: 80%;
  max-height: 3.625rem;
  width: auto;
  height: auto;
}
.case-single__hero-copy {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  padding: clamp(36px, 5.56vw, 5rem) clamp(30px, 5.21vw, 4.6875rem);
  background: -webkit-gradient(linear, left top, left bottom, from(rgba(251, 251, 251, 0.14)), to(rgba(10, 36, 38, 0.14)));
  background: linear-gradient(180deg, rgba(251, 251, 251, 0.14) 0%, rgba(10, 36, 38, 0.14) 100%);
}
.case-single__title {
  margin: 0;
  font-size: clamp(28px, 3.19vw, 2.875rem);
  line-height: 1.15;
}
.case-single__intro {
  margin: 1.5rem 0 0;
  font-size: clamp(16px, 1.39vw, 1.25rem);
  line-height: 1.35;
}
.case-single__body {
  position: relative;
  isolation: isolate;
  padding: 0 0 clamp(80px, 10.42vw, 9.375rem);
}
.case-single__body::after {
  position: absolute;
  z-index: -1;
  right: 0;
  bottom: 0;
  left: 0;
  height: 50%;
  background: -webkit-gradient(linear, left bottom, left top, color-stop(24.77%, #e5e5e3), color-stop(71.13%, #f0f0ee));
  background: linear-gradient(0deg, #e5e5e3 24.77%, #f0f0ee 71.13%);
  content: "";
  pointer-events: none;
}
.case-single__body-container {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.355fr);
  -webkit-box-align: start;
  -webkit-align-items: start;
      -ms-flex-align: start;
          align-items: start;
  gap: clamp(45px, 5vw, 4.5rem);
  max-width: 88.75rem;
}
@media (max-width: 1023px) {
  .case-single__hero-card, .case-single__body-container {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 767px) {
  .case-single__hero {
    padding-bottom: 2.5rem;
  }
  .case-single__hero-card {
    min-height: 0;
  }
  .case-single__hero-media {
    min-height: 0;
    aspect-ratio: 4/3;
  }
  .case-single__hero-copy {
    padding: 1.875rem;
  }
}

.case-summary {
  position: -webkit-sticky;
  position: sticky;
  top: clamp(85px, 7.64vw, 6.875rem);
  z-index: 2;
  -webkit-align-self: start;
      -ms-flex-item-align: start;
          align-self: start;
}
.case-summary__inner {
  position: relative;
  isolation: isolate;
  padding: clamp(40px, 3.82vw, 3.4375rem) clamp(28px, 3.13vw, 2.8125rem) clamp(40px, 4.17vw, 3.75rem) 0;
}
.case-summary__inner::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0 0 0 auto;
  width: 100vw;
  border-radius: 0 0.25rem 0.25rem 0;
  background: -webkit-gradient(linear, left bottom, left top, from(#f0f0ee), to(#f0f0ee)), radial-gradient(73.78% 71.82% at 25.6% 31.75%, rgba(255, 255, 255, 0) 0%, #ffffff 100%);
  background: linear-gradient(0deg, #f0f0ee, #f0f0ee), radial-gradient(73.78% 71.82% at 25.6% 31.75%, rgba(255, 255, 255, 0) 0%, #ffffff 100%);
  -webkit-box-shadow: 0 0.25rem 1.375rem rgba(0, 0, 0, 0.07);
          box-shadow: 0 0.25rem 1.375rem rgba(0, 0, 0, 0.07);
}
.case-summary__label {
  display: block;
  margin-bottom: 1.625rem;
  padding-left: 1.25rem;
  position: relative;
  color: var(--primary);
  font-size: 0.8125rem;
  font-weight: 500;
}
.case-summary__label::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 0.5rem;
  aspect-ratio: 1;
  border-radius: 50%;
  background-color: var(--red-500);
  -webkit-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
          transform: translateY(-50%);
}
.case-summary__title {
  margin: 0 0 2.125rem;
  font-size: clamp(17px, 1.39vw, 1.25rem);
  line-height: 1.3;
}
.case-summary__nav {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0.75rem;
  margin-bottom: 2.375rem;
  padding: 0.5rem 0 0.5rem 2.5rem;
  border-left: 0.25rem solid var(--white);
  -webkit-filter: drop-shadow(0 0 0.0625rem rgba(10, 36, 38, 0.08));
          filter: drop-shadow(0 0 0.0625rem rgba(10, 36, 38, 0.08));
}
.case-summary__nav-placeholder {
  display: none;
}
.case-summary__link {
  position: relative;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  color: rgba(10, 36, 38, 0.35);
  font-size: 1rem;
  text-decoration: none;
  -webkit-transition: color 0.2s ease;
  transition: color 0.2s ease;
}
.case-summary__link:hover, .case-summary__link:focus-visible {
  color: var(--black);
}
.case-summary__link.is-active {
  color: var(--black);
}
.case-summary__link.is-active::before {
  content: "";
  position: absolute;
  top: 50%;
  left: -2.5rem;
  border-top: 0.5625rem solid transparent;
  border-bottom: 0.5625rem solid transparent;
  border-left: 1rem solid var(--white);
  -webkit-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
          transform: translateY(-50%);
}
.case-summary__media {
  position: relative;
  overflow: hidden;
}
.case-summary__image {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}
@media (max-width: 1023px) {
  .case-summary {
    position: static;
  }
  .case-summary__inner::before {
    display: none;
  }
  .case-summary__inner {
    position: relative;
    padding: 0;
  }
  .case-summary__nav {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -webkit-flex-direction: row;
        -ms-flex-direction: row;
            flex-direction: row;
    gap: 0.5rem;
    overflow-x: auto;
    margin-bottom: 1.875rem;
    padding: 0.5625rem;
    border: 0.0625rem solid rgba(0, 76, 82, 0.08);
    border-radius: 1rem;
    background-color: rgba(255, 255, 255, 0.72);
    -webkit-box-shadow: 0 0.625rem 1.875rem rgba(10, 36, 38, 0.08);
            box-shadow: 0 0.625rem 1.875rem rgba(10, 36, 38, 0.08);
    -webkit-filter: none;
            filter: none;
    scrollbar-width: none;
    -webkit-backdrop-filter: blur(1rem);
    backdrop-filter: blur(1rem);
  }
  .case-summary__nav::-webkit-scrollbar {
    display: none;
  }
  .case-summary__link {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
        -ms-flex: 0 0 auto;
            flex: 0 0 auto;
    padding: 0.625rem 1rem;
    border-radius: 0.75rem;
    color: rgba(10, 36, 38, 0.58);
    font-size: 0.875rem;
    line-height: 1;
  }
  .case-summary__link.is-active {
    background-color: var(--primary);
    -webkit-box-shadow: 0 0.375rem 1rem rgba(0, 76, 82, 0.2);
            box-shadow: 0 0.375rem 1rem rgba(0, 76, 82, 0.2);
    color: var(--white);
  }
  .case-summary__link.is-active::before {
    content: none;
  }
  .case-summary.is-nav-fixed .case-summary__nav {
    position: fixed;
    z-index: 3603;
    top: calc(var(--wp-admin--admin-bar--height, 0px) + var(--header-height, 4.75rem));
    right: 0;
    left: 0;
    width: 100%;
    margin: 0;
    padding: 0.625rem clamp(25px, 3.47vw, 3.125rem);
    border-width: 0.0625rem 0 0;
    border-radius: 0 0 1rem 1rem;
    background-color: rgba(240, 240, 238, 0.9);
    -webkit-box-shadow: 0 0.75rem 1.75rem rgba(10, 36, 38, 0.14);
            box-shadow: 0 0.75rem 1.75rem rgba(10, 36, 38, 0.14);
    -webkit-backdrop-filter: blur(0.875rem);
            backdrop-filter: blur(0.875rem);
    -webkit-animation: case-summary-nav-in 0.32s cubic-bezier(0.22, 1, 0.36, 1) both;
            animation: case-summary-nav-in 0.32s cubic-bezier(0.22, 1, 0.36, 1) both;
  }
  .case-summary.is-nav-fixed .case-summary__nav-placeholder {
    display: block;
    height: calc(var(--case-nav-height, 3.5rem) + 1.875rem);
  }
  .case-summary.is-nav-releasing--bottom .case-summary__nav {
    -webkit-animation: case-summary-nav-out-bottom 0.26s ease-in both;
            animation: case-summary-nav-out-bottom 0.26s ease-in both;
  }
}
@media (max-width: 639px) {
  .case-summary__nav {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    overflow: visible;
  }
  .case-summary__link {
    min-width: 0;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
        -ms-flex-pack: center;
            justify-content: center;
    text-align: center;
    white-space: normal;
  }
}

@-webkit-keyframes case-summary-nav-in {
  from {
    opacity: 0;
    -webkit-transform: translateY(-0.625rem);
            transform: translateY(-0.625rem);
  }
  to {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}

@keyframes case-summary-nav-in {
  from {
    opacity: 0;
    -webkit-transform: translateY(-0.625rem);
            transform: translateY(-0.625rem);
  }
  to {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
@-webkit-keyframes case-summary-nav-out-bottom {
  from {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
  to {
    opacity: 0;
    -webkit-transform: translateY(-0.625rem);
            transform: translateY(-0.625rem);
  }
}
@keyframes case-summary-nav-out-bottom {
  from {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
  to {
    opacity: 0;
    -webkit-transform: translateY(-0.625rem);
            transform: translateY(-0.625rem);
  }
}
@media (prefers-reduced-motion: reduce) {
  .case-summary.is-nav-fixed .case-summary__nav,
  .case-summary.is-nav-releasing .case-summary__nav {
    -webkit-animation: none;
            animation: none;
  }
}
.case-content {
  min-width: 0;
}
.case-content__section {
  position: relative;
  padding: clamp(60px, 8.13vw, 7.3125rem) 0 clamp(60px, 8.06vw, 7.25rem);
  scroll-margin-top: 6.875rem;
}
.case-content__section::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: -100vw;
  width: 200vw;
  height: 0.125rem;
  background-color: rgba(255, 255, 255, 0.7);
  pointer-events: none;
}
.case-content__section:first-child {
  padding-top: clamp(30px, 9.03vw, 8.125rem);
}
.case-content__section:last-child {
  padding-bottom: 0;
}
.case-content__section:last-child::after {
  content: none;
}
@media (max-width: 1023px) {
  .case-content__section {
    scroll-margin-top: calc(var(--header-height, 4.75rem) + 4.5rem);
  }
}
.case-content__heading {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
  -webkit-align-items: flex-start;
      -ms-flex-align: start;
          align-items: flex-start;
  gap: clamp(15px, 2.71vw, 2.4375rem);
  margin-bottom: clamp(35px, 5.28vw, 4.75rem);
  font-size: clamp(30px, 3.75vw, 3.375rem);
}
.case-content__heading h2 {
  margin: 0;
  line-height: 1.1;
  font-size: inherit;
}
.case-content__marker {
  position: relative;
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 auto;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  overflow: hidden;
  width: 0.97em;
  aspect-ratio: 1;
  margin-top: 0.07em;
  border-radius: 50%;
}
.case-content__marker::before {
  content: "";
  position: absolute;
  inset: 0;
  background: url(../images/red-marble.jpg) center/cover no-repeat;
  -webkit-filter: grayscale(1);
          filter: grayscale(1);
  opacity: 0.4;
}
.case-content__marker--sauge {
  background-color: #d2dedd;
}
.case-content__marker--green {
  background-color: #004c52;
}
.case-content__marker--red {
  background-color: #ff6555;
}
.case-content__marker--green-light {
  background-color: #3a7478;
}
.case-content__prose {
  font-size: clamp(16px, 1.25vw, 1.125rem);
  line-height: 1.2;
}
.case-content__prose > * {
  margin: 0;
}
.case-content__prose > * + * {
  margin-top: 2.1875rem;
}
.case-content__prose ul,
.case-content__prose ol {
  padding-left: 1.5rem;
}
.case-content__prose ul {
  list-style: disc;
}
.case-content__prose ol {
  list-style: decimal;
}
.case-content__prose li {
  display: list-item;
  padding-left: 0.25rem;
}
.case-content__prose li::marker {
  color: var(--primary);
}
.case-content__prose li + li {
  margin-top: 0.5625rem;
}
.case-content__prose ul ul,
.case-content__prose ol ul {
  list-style: circle;
}
.case-content__prose ul ol,
.case-content__prose ol ol {
  list-style: lower-alpha;
}
.case-content__prose li > ul,
.case-content__prose li > ol {
  margin-top: 0.5625rem;
}
.case-content__prose hr {
  height: 0;
  margin: clamp(20px, 2.78vw, 2.5rem) 0;
  border: 0;
  border-top: 0.0625rem solid rgba(10, 36, 38, 0.15);
}
.case-content__prose hr + * {
  margin-top: 0;
}
.case-content__steps {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.75rem;
}
.case-content__step {
  position: relative;
  min-height: 15.625rem;
  padding: clamp(65px, 5.56vw, 5rem) clamp(25px, 2.5vw, 2.25rem) clamp(35px, 3.89vw, 3.5rem);
  background-color: var(--white);
}
.case-content__step h3 {
  min-width: 0;
  margin: 0;
  font-family: var(--primary-font-family), sans-serif;
  font-size: clamp(18px, 1.67vw, 1.5rem);
  font-weight: 700;
}
.case-content__step-heading {
  margin-bottom: 1.125rem;
}
.case-content__step-number {
  position: absolute;
  top: 1rem;
  right: 1rem;
  display: -webkit-inline-box;
  display: -webkit-inline-flex;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 50%;
  background-color: var(--sauge);
  color: var(--black);
  font-family: var(--secondary-font-family), sans-serif;
  font-size: 1.125rem;
  line-height: 1;
}
.case-content__step-content {
  font-size: clamp(16px, 1.25vw, 1.125rem);
  line-height: 1.2;
  letter-spacing: -0.02em;
}
.case-content__step-content > * {
  margin: 0;
}
.case-content__step-content > * + * {
  margin-top: 0.875rem;
}
.case-content__step-content ul,
.case-content__step-content ol {
  padding-left: 1.375rem;
}
.case-content__step-content ul {
  list-style: disc;
}
.case-content__step-content ol {
  list-style: decimal;
}
.case-content__step-content li {
  display: list-item;
}
.case-content__step-content li::marker {
  color: var(--primary);
}
.case-content__step-content li + li {
  margin-top: 0.4375rem;
}
.case-content__step-content a {
  color: inherit;
  text-decoration: underline;
  text-decoration-thickness: 0.0625rem;
  text-underline-offset: 0.1875rem;
}
.case-content__step-content a:hover {
  color: var(--primary);
}
.case-content__step-content blockquote {
  padding-left: 1rem;
  border-left: 0.125rem solid var(--primary);
}
.case-content__step-content img {
  width: auto;
  max-width: 100%;
  height: auto;
}
.case-content__certifications {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  gap: clamp(20px, 2.08vw, 1.875rem);
  margin-top: clamp(35px, 4.17vw, 3.75rem);
  padding-top: clamp(30px, 3.47vw, 3.125rem);
  border-top: 0.0625rem solid rgba(10, 36, 38, 0.15);
}
.case-content__certification {
  width: clamp(8.4375rem, 12.5vw, 11.25rem);
  margin: 0;
  text-align: center;
}
.case-content__certification figcaption {
  margin-top: 0.75rem;
  font-size: clamp(11px, 0.9vw, 0.8125rem);
  line-height: 1.25;
}
.case-content__certification-logo {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  min-height: 5.875rem;
  padding: 0.75rem;
  border-radius: 0.1875rem;
  background-color: var(--white);
}
.case-content__certification-logo img {
  display: block;
  max-width: 100%;
  max-height: 4.25rem;
  width: auto;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
}
.case-content__tag-groups {
  margin-top: clamp(35px, 4.17vw, 3.75rem);
}
.case-content__tag-group {
  padding: clamp(30px, 3.47vw, 3.125rem) 0;
  border-top: 0.0625rem solid rgba(10, 36, 38, 0.15);
}
.case-content__tag-group:last-child {
  padding-bottom: 0;
}
.case-content__tag-group h3 {
  margin: 0 0 1.125rem;
  font-family: var(--primary-font-family), sans-serif;
  font-size: clamp(16px, 1.25vw, 1.125rem);
  font-weight: 500;
  line-height: 1.2;
  text-transform: uppercase;
}
.case-content__tags {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  gap: 0.5625rem;
}
.case-content__tag {
  display: -webkit-inline-box;
  display: -webkit-inline-flex;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  min-height: 1.875rem;
  padding: 0.3125rem 1rem;
  border-radius: 2.8125rem;
  background-color: var(--white);
  color: var(--black);
  font-size: clamp(14px, 1.25vw, 1.125rem);
  letter-spacing: -0.02em;
  line-height: 1;
}
.case-content__results {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.0625rem clamp(18px, 1.94vw, 1.75rem);
}
@media (max-width: 639px) {
  .case-content__results {
    gap: 1.875rem;
  }
}
.case-content__result strong {
  display: block;
  color: var(--primary);
  font-family: var(--heading-font), sans-serif;
  font-size: clamp(34px, 4.44vw, 4rem);
  line-height: 1;
}
@media (max-width: 639px) {
  .case-content__result strong {
    font-size: 2.8125rem;
    text-align: center;
  }
}
.case-content__result p {
  max-width: 18.75rem;
  margin: 1.1875rem 0 0;
  font-size: clamp(15px, 1.25vw, 1.125rem);
  font-weight: 600;
  line-height: 1.1;
}
@media (max-width: 639px) {
  .case-content__result p {
    text-align: center;
    font-size: 1.125rem;
    margin: 1.1875rem auto 0;
  }
}
.case-content__result-icon {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  min-height: clamp(34px, 4.44vw, 4rem);
}
@media (max-width: 639px) {
  .case-content__result-icon {
    -webkit-box-pack: center;
    -webkit-justify-content: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
}
.case-content__result-icon img {
  display: block;
  width: auto;
  max-width: clamp(55px, 4.44vw, 4rem);
  height: auto;
  max-height: clamp(55px, 4.44vw, 4rem);
  -o-object-fit: contain;
     object-fit: contain;
}
.case-content__results-subtext {
  font-size: 0.875rem;
  line-height: 1.3;
  margin: clamp(25px, 2.92vw, 2.625rem) 0 0;
  padding: clamp(25px, 2.92vw, 2.625rem) 0;
  border-top: 1px solid rgba(10, 36, 38, 0.2);
  border-bottom: 1px solid rgba(10, 36, 38, 0.2);
}
.case-content__results-subtext > * {
  margin: 0;
}
.case-content__results-subtext > * + * {
  margin-top: 1.125rem;
}
.case-content__galleries {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: clamp(25px, 2.92vw, 2.625rem) clamp(20px, 2.08vw, 1.875rem);
  margin-top: clamp(25px, 2.92vw, 2.625rem);
}
.case-content__gallery {
  display: grid;
  gap: clamp(12px, 1.39vw, 1.25rem);
}
.case-content__gallery--count-1 {
  grid-template-columns: minmax(0, 1fr);
}
.case-content__gallery--count-1 .case-content__gallery-item {
  aspect-ratio: 16/9;
}
.case-content__gallery--count-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.case-content__gallery--count-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.case-content__gallery-item {
  overflow: hidden;
  margin: 0;
  border-radius: 0.25rem;
  aspect-ratio: 4/3;
}
.case-content__gallery-image {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.case-content__videos {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(20px, 2.08vw, 1.875rem);
  margin-top: clamp(60px, 8.13vw, 7.3125rem);
}
.case-content__video {
  position: relative;
  overflow: hidden;
  width: 100%;
  border-radius: 0.25rem;
  background-color: var(--black);
}
.case-content__video--standard {
  grid-column: 1/-1;
  aspect-ratio: 16/9;
}
.case-content__video--short {
  width: min(100%, 23.75rem);
  aspect-ratio: 9/16;
  justify-self: center;
}
.case-content__video iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}
@media (max-width: 639px) {
  .case-content__steps, .case-content__results {
    grid-template-columns: 1fr;
  }
  .case-content__gallery {
    grid-template-columns: 1fr;
  }
  .case-content__gallery .case-content__gallery-item {
    aspect-ratio: 4/3;
  }
  .case-content__step {
    min-height: 0;
  }
  .case-content__videos {
    grid-template-columns: minmax(0, 1fr);
  }
  .case-content__video--standard {
    grid-column: auto;
  }
}

.case-testimonial {
  display: grid;
  grid-template-columns: minmax(0, 0.55fr) minmax(0, 1.45fr);
  min-height: 28.5625rem;
  margin: 0;
  background-color: rgba(255, 255, 255, 0.72);
}
.case-testimonial--without-media {
  grid-template-columns: minmax(0, 1fr);
}
.case-testimonial__media {
  position: relative;
  overflow: hidden;
  min-height: 22.5rem;
}
.case-testimonial__image {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.case-testimonial__content {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  padding: clamp(25px, 2.99vw, 2.6875rem) clamp(25px, 3.13vw, 2.8125rem) clamp(25px, 2.43vw, 2.1875rem) clamp(25px, 3.89vw, 3.5rem);
}
.case-testimonial__content blockquote {
  margin: clamp(15px, 1.6vw, 1.4375rem) 0 clamp(15px, 1.74vw, 1.5625rem);
  color: var(--primary);
  font-size: clamp(16px, 1.25vw, 1.125rem);
  font-weight: 500;
  line-height: 1.5;
}
.case-testimonial__logo {
  display: block;
}
.case-testimonial__logo img {
  max-width: 7.5rem;
  max-height: 3.4375rem;
  width: auto;
  height: auto;
}
.case-testimonial__author {
  margin: auto 0 0;
  font-size: 0.8125rem;
}
.case-testimonial__author strong,
.case-testimonial__author span {
  display: block;
}
@media (max-width: 639px) {
  .case-testimonial {
    grid-template-columns: 1fr;
  }
  .case-testimonial__media {
    min-height: 17.5rem;
  }
}

.case-related {
  padding: clamp(70px, 8.33vw, 7.5rem) 0 clamp(45px, 5.9vw, 5.3125rem);
  background-color: var(--bg-color);
}
.case-related__container {
  max-width: 88.75rem;
}
.case-related__title {
  max-width: 53.125rem;
  margin: 0 0 clamp(40px, 5vw, 4.5rem);
  font-size: clamp(36px, 4.72vw, 4.25rem);
  line-height: 1.05;
}
.case-related__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.875rem;
}
@media (max-width: 767px) {
  .case-related__grid {
    grid-template-columns: 1fr;
  }
}

.case-single > .contact-cta {
  padding-top: clamp(50px, 6.18vw, 5.5625rem);
  background-color: var(--white);
}

/* ---------------------------------------
	Basic / legal page (privacy, cookies, terms)
--------------------------------------- */
.page-basic {
  position: relative;
  padding-bottom: clamp(60px, 6.94vw, 6.25rem);
}
.page-basic__hero-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: clamp(360px, 34vw, 31.25rem);
  background-color: var(--beige-500);
  -webkit-filter: grayscale(0.35);
          filter: grayscale(0.35);
  pointer-events: none;
}
.page-basic__hero-bg::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: url(../images/hero_internal_bg.png);
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}
.page-basic__hero-bg::after {
  content: "";
  position: absolute;
  display: block;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 8.75rem;
  background: -webkit-gradient(linear, left top, left bottom, from(rgba(240, 240, 238, 0)), to(#f0f0ee));
  background: linear-gradient(180deg, rgba(240, 240, 238, 0) 0%, #f0f0ee 100%);
}
.page-basic__container {
  position: relative;
  z-index: 1;
  max-width: 67.8125rem;
}
.page-basic__head {
  position: relative;
  padding: clamp(120px, 13.54vw, 12.1875rem) 0 clamp(100px, 11.53vw, 10.375rem);
}
.page-basic__title {
  margin: 0;
  max-width: 62.5rem;
  font-size: clamp(34px, 4.72vw, 4.25rem);
  line-height: 1.1;
}
.page-basic__dot {
  position: absolute;
  bottom: 0;
  right: 0;
  width: 9.6875rem;
  aspect-ratio: 1;
  -webkit-transform: translate(57%, 50%);
      -ms-transform: translate(57%, 50%);
          transform: translate(57%, 50%);
  -webkit-filter: brightness(1.2);
          filter: brightness(1.2);
  background-repeat: no-repeat;
  background-position: 50% 50%;
  background-size: contain;
  background-image: url(../images/page-decor-1.svg);
}
@media (max-width: 1199px) {
  .page-basic__dot {
    -webkit-transform: translate(0, 15%);
        -ms-transform: translate(0, 15%);
            transform: translate(0, 15%);
    max-width: 25%;
  }
}
.page-basic__content {
  max-width: 62.5rem;
  padding: clamp(60px, 8.89vw, 8rem) 0 0;
  font-size: clamp(16px, 1.25vw, 1.125rem);
  line-height: 1.65;
  overflow-wrap: break-word;
}
.page-basic__content > :first-child {
  margin-top: 0;
}
.page-basic__content > :last-child {
  margin-bottom: 0;
}
.page-basic__content h1,
.page-basic__content h2,
.page-basic__content h3,
.page-basic__content h4,
.page-basic__content h5,
.page-basic__content h6,
.page-basic__content .h1,
.page-basic__content .h2,
.page-basic__content .h3,
.page-basic__content .h4,
.page-basic__content .h5,
.page-basic__content .h6 {
  color: var(--primary);
  text-wrap: balance;
}
.page-basic__content h1,
.page-basic__content .h1 {
  margin: clamp(48px, 5.56vw, 5rem) 0 clamp(24px, 2.78vw, 2.5rem);
}
.page-basic__content h2,
.page-basic__content .h2 {
  margin: clamp(48px, 5.56vw, 5rem) 0 clamp(20px, 2.22vw, 2rem);
  font-size: clamp(28px, 3.33vw, 3rem);
  line-height: 1.2;
}
.page-basic__content h3,
.page-basic__content .h3 {
  margin: clamp(36px, 4.17vw, 3.75rem) 0 1.25rem;
}
.page-basic__content h4,
.page-basic__content .h4,
.page-basic__content h5,
.page-basic__content .h5,
.page-basic__content h6,
.page-basic__content .h6 {
  margin: 2rem 0 0.875rem;
}
.page-basic__content p {
  margin: 0 0 clamp(20px, 2.08vw, 1.875rem);
}
.page-basic__content small {
  font-size: 0.8em;
}
.page-basic__content a:not(.button) {
  color: var(--primary);
  text-decoration-thickness: 0.0625rem;
  text-underline-offset: 0.18em;
}
.page-basic__content ul,
.page-basic__content ol {
  margin: 0 0 clamp(20px, 2.08vw, 1.875rem);
  padding-left: 1.625rem;
}
.page-basic__content ul li,
.page-basic__content ol li {
  padding-left: 0.375rem;
}
.page-basic__content ul li::marker,
.page-basic__content ol li::marker {
  color: var(--secondary);
  font-weight: 700;
}
.page-basic__content ul li:not(:last-child),
.page-basic__content ol li:not(:last-child) {
  margin-bottom: 0.5rem;
}
.page-basic__content ul ul,
.page-basic__content ul ol,
.page-basic__content ol ul,
.page-basic__content ol ol {
  margin-top: 0.5rem;
  margin-bottom: 0.5rem;
}
.page-basic__content ul {
  list-style: disc;
}
.page-basic__content ul ul {
  list-style: circle;
}
.page-basic__content ol {
  list-style: decimal;
}
.page-basic__content .two-columns,
.page-basic__content .three-columns {
  display: grid;
  gap: 0.625rem 2.25rem;
}
.page-basic__content .two-columns {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.page-basic__content .three-columns {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.page-basic__content blockquote {
  margin: clamp(28px, 3.47vw, 3.125rem) 0;
  padding: clamp(24px, 2.78vw, 2.5rem);
  border-left: 0.3125rem solid var(--secondary);
  background-color: var(--white);
  font-family: var(--heading-font), sans-serif;
  font-size: clamp(20px, 1.81vw, 1.625rem);
  font-weight: 600;
  line-height: 1.45;
}
.page-basic__content blockquote p:last-child {
  margin-bottom: 0;
}
.page-basic__content cite {
  color: var(--gray-500);
  font-style: normal;
}
.page-basic__content table {
  display: block;
  width: 100%;
  margin: clamp(28px, 3.47vw, 3.125rem) 0;
  overflow-x: auto;
  border-spacing: 0;
  border-collapse: collapse;
  background-color: var(--white);
}
.page-basic__content table th,
.page-basic__content table td {
  min-width: 8.75rem;
  padding: 0.875rem 1.125rem;
  border: 0.0625rem solid var(--gray-300);
  text-align: left;
  vertical-align: top;
}
.page-basic__content table th {
  color: var(--primary);
  font-family: var(--heading-font), sans-serif;
  font-weight: 700;
}
.page-basic__content table thead th {
  color: var(--white);
  background-color: var(--primary);
}
.page-basic__content dl {
  margin: clamp(28px, 3.47vw, 3.125rem) 0;
  padding: clamp(24px, 2.78vw, 2.5rem);
  background-color: var(--sauge);
}
.page-basic__content dt {
  color: var(--primary);
  font-family: var(--heading-font), sans-serif;
  font-weight: 700;
}
.page-basic__content dd {
  margin: 0.375rem 0 1.25rem;
}
.page-basic__content dd:last-child {
  margin-bottom: 0;
}
.page-basic__content address {
  margin-bottom: clamp(20px, 2.08vw, 1.875rem);
  font-style: normal;
}
.page-basic__content code,
.page-basic__content kbd,
.page-basic__content pre,
.page-basic__content samp {
  font-family: Consolas, Monaco, "Courier New", monospace;
}
.page-basic__content code,
.page-basic__content kbd {
  padding: 0.125rem 0.375rem;
  border-radius: 0.25rem;
  background-color: var(--sauge);
  font-size: 0.88em;
}
.page-basic__content kbd {
  color: var(--white);
  background-color: var(--primary);
}
.page-basic__content pre {
  margin: clamp(28px, 3.47vw, 3.125rem) 0;
  padding: clamp(20px, 2.22vw, 2rem);
  overflow-x: auto;
  color: var(--white);
  background-color: var(--black);
  font-size: 0.9375rem;
  line-height: 1.6;
  white-space: pre;
}
.page-basic__content pre code {
  padding: 0;
  color: inherit;
  background: transparent;
}
.page-basic__content hr {
  height: 0;
  margin: clamp(40px, 5.56vw, 5rem) 0;
  border: 0;
  border-top: 0.0625rem solid rgba(0, 76, 82, 0.3);
}
.page-basic__content img {
  max-width: 100%;
  height: auto;
  border-radius: 0.25rem;
}
.page-basic__content figure,
.page-basic__content .wp-block-image,
.page-basic__content .wp-block-gallery {
  margin-top: 0;
  margin-bottom: clamp(24px, 3.47vw, 3.125rem);
}
.page-basic__content figure figcaption,
.page-basic__content .wp-caption-text {
  margin-top: 0.5rem;
  color: var(--gray-500);
  font-size: 0.875rem;
  line-height: 1.45;
}
.page-basic__content .button {
  margin: 0.25rem 0;
}
.page-basic__pagination {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  gap: 0.625rem;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  margin-top: clamp(40px, 5.56vw, 5rem);
  font-weight: 700;
}
@media (max-width: 767px) {
  .page-basic__content .three-columns {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 639px) {
  .page-basic__content .two-columns,
  .page-basic__content .three-columns {
    grid-template-columns: 1fr;
  }
  .page-basic__content table {
    font-size: 0.9375rem;
  }
}

/* ---------------------------------------
	404 — page not found
--------------------------------------- */
.page-404__hero {
  padding: clamp(120px, 13vw, 11.875rem) 0 clamp(50px, 6.25vw, 5.625rem);
  text-align: center;
}
.page-404__code {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin: 0;
  color: var(--black);
  font-family: var(--heading-font), sans-serif;
  font-weight: 700;
  font-size: clamp(110px, 17.78vw, 16rem);
  line-height: 1;
}
.page-404__dot {
  margin-top: 1.4375rem;
  width: clamp(80px, 16.11vw, 14.5rem);
  aspect-ratio: 1;
  background-image: url(../images/page-decor-2.svg);
  background-repeat: no-repeat;
  background-size: contain;
  background-position: 50% 50%;
  -webkit-filter: brightness(1.2) saturate(1.3);
          filter: brightness(1.2) saturate(1.3);
}
.page-404__subtext {
  margin: clamp(25px, 3.06vw, 2.75rem) 0 clamp(25px, 3.13vw, 2.8125rem) !important;
  font-family: var(--heading-font), sans-serif;
  font-weight: 600;
  font-size: clamp(20px, 2.5vw, 2.25rem);
  line-height: 1.3;
}
.page-404__home {
  padding: 0.4375rem 1.125rem;
}
.page-404__feature {
  padding: clamp(30px, 4.24vw, 3.8125rem) 0 clamp(25px, 2.36vw, 2.125rem);
  position: relative;
}
.page-404__feature:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: clamp(150px, 18.47vw, 16.625rem);
  background: -webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0)), to(#ffffff));
  background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, #ffffff 100%);
}
.page-404__feature-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.04fr);
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  gap: clamp(30px, 5.56vw, 5.625rem);
}
.page-404__collage {
  position: relative;
  z-index: 1;
  padding: 0 1.5rem 0 0.6875rem;
}
@media (max-width: 767px) {
  .page-404__collage {
    padding: 0;
  }
}
.page-404__collage-main {
  overflow: hidden;
  max-width: 32.1875rem;
}
.page-404__collage-main img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}
.page-404__text {
  padding: clamp(20px, 14.03vw, 12.625rem) 0 0;
}
@media (max-width: 767px) {
  .page-404__text {
    padding: 0;
  }
}
.page-404__text-body {
  font-family: var(--heading-font), sans-serif;
  font-weight: 600;
  font-size: clamp(22px, 2.5vw, 2.25rem);
  line-height: 1.3;
}
.page-404__text-body p {
  margin: 0;
}
.page-404__contact {
  margin-top: clamp(24px, 2.22vw, 2rem);
  padding: 0.4375rem 1.1875rem;
}
@media (max-width: 767px) {
  .page-404__feature-inner {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }
}

/* ---------------------------------------
	TMPL: Default
--------------------------------------- */
.internal-hero {
  padding: 6.25rem 0 clamp(80px, 6.25vw, 5.625rem);
  background-repeat: no-repeat;
  background-position: 50% 50%;
  background-size: cover;
  min-height: clamp(350px, 29.51vw, 26.5625rem);
  position: relative;
  overflow: hidden;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: start;
  -webkit-justify-content: flex-start;
      -ms-flex-pack: start;
          justify-content: flex-start;
}
.internal-hero.empty-bg .internal-hero__bg {
  background-repeat: no-repeat;
  background-size: cover;
  background-position: 50% 50%;
}
.internal-hero:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(90.01deg, #0f1d4c 10.01%, #236092 45%, #41aee3 99.99%);
  z-index: 0;
}
.internal-hero__bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0.5;
  z-index: 1;
}
.internal-hero__bg img {
  -o-object-position: 50% 50%;
     object-position: 50% 50%;
  height: 100%;
  width: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.internal-hero__container {
  position: relative;
  z-index: 4;
}
.internal-hero__wrapper {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1.5625rem 1.6875rem;
}
@media (max-width: 639px) {
  .internal-hero__wrapper {
    gap: 1.25rem;
  }
}
.internal-hero__content {
  max-width: 52.5rem;
}
.internal-hero__content * {
  color: var(--white);
}

/**
 * Breakpoints & Media Queries
 */
/* ---------------------------------------
	Blog archive (listing)
--------------------------------------- */
.blog-archive {
  position: relative;
  padding: clamp(50px, 6.74vw, 6.0625rem) 0 clamp(60px, 6.94vw, 7.1875rem);
}
.blog-archive__hero-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: clamp(360px, 36.6vw, 32.9375rem);
  background-image: url(../images/marble-header.jpg);
  background-repeat: no-repeat;
  background-position: center top;
  background-size: cover;
  pointer-events: none;
}
.blog-archive__container {
  position: relative;
  z-index: 1;
  max-width: 88.75rem;
}
.blog-archive__hero {
  padding: clamp(30px, 4.17vw, 3.75rem) 0 clamp(24px, 2.78vw, 2.5rem);
  margin-bottom: 1.3125rem;
}
.blog-archive__hero h1 {
  margin: 0;
  font-size: clamp(40px, 4.72vw, 4.25rem);
  line-height: 1.02;
}
.blog-archive__label {
  display: block;
  margin-bottom: 1.5625rem;
  font-size: clamp(13px, 0.97vw, 0.875rem);
  font-weight: 500;
}
.blog-archive__featured {
  margin-bottom: clamp(35px, 3.82vw, 3.4375rem);
}
.blog-archive__featured-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(40px, 5.69vw, 5.125rem);
}
.blog-archive__filter {
  margin-bottom: clamp(25px, 4.79vw, 4.3125rem);
  padding: clamp(25px, 3.13vw, 2.8125rem) 0 clamp(24px, 4.51vw, 4.0625rem);
  border-top: 3px solid var(--white);
  border-bottom: 3px solid var(--white);
}
.blog-archive__filter-label {
  display: block;
  margin-bottom: 1rem;
  line-height: 1.3;
  font-weight: 500;
  font-size: clamp(12px, 0.97vw, 0.875rem);
  color: var(--black);
}
.blog-archive__tabs {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  gap: clamp(8px, 1.39vw, 1.25rem);
}
.blog-archive__tab {
  padding: 0.9375rem 1.25rem;
  border: 0;
  border-radius: 1.5rem;
  background-color: var(--white);
  color: var(--text-color);
  font-size: clamp(14px, 1.25vw, 1.125rem);
  line-height: 1;
  letter-spacing: -0.02em;
  cursor: pointer;
  -webkit-transition: var(--transition-base);
  transition: var(--transition-base);
}
.blog-archive__tab:hover {
  background-color: rgba(0, 76, 82, 0.1);
}
.blog-archive__tab.is-active {
  background-color: var(--primary);
  color: var(--white);
}
.blog-archive__tab:focus-visible {
  outline: 0.125rem solid var(--primary);
  outline-offset: 0.125rem;
}
.blog-archive__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(30px, 4.86vw, 4.375rem) clamp(20px, 2.08vw, 1.875rem);
  margin-top: clamp(24px, 2.43vw, 2.1875rem);
  -webkit-transition: opacity 0.2s ease;
  transition: opacity 0.2s ease;
}
.blog-archive__grid.is-loading {
  opacity: 0.5;
}
.blog-archive__more {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin-top: clamp(36px, 5.35vw, 4.8125rem);
}
.blog-archive__more .button {
  line-height: 1.19;
  font-weight: 400;
  font-size: 0.875rem;
}
.blog-archive__more[hidden] {
  display: none;
}
@media (max-width: 1023px) {
  .blog-archive__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 639px) {
  .blog-archive__featured-grid, .blog-archive__grid {
    grid-template-columns: 1fr;
  }
}

/* ---------------------------------------
	Blog single (article)
--------------------------------------- */
.blog-single {
  position: relative;
  padding-bottom: clamp(50px, 6.25vw, 5.625rem);
}
.blog-single__hero-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: clamp(360px, 36.6vw, 32.9375rem);
  background-image: url(../images/marble-header.jpg);
  background-repeat: no-repeat;
  background-position: center top;
  background-size: cover;
  pointer-events: none;
}
.blog-single__hero-bg:after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  display: block;
  width: 100%;
  height: 8.75rem;
  background: -webkit-gradient(linear, left top, left bottom, from(rgba(240, 240, 238, 0)), to(#f0f0ee));
  background: linear-gradient(180deg, rgba(240, 240, 238, 0) 0%, #f0f0ee 100%);
}
.blog-single__container {
  position: relative;
  z-index: 2;
  padding-bottom: clamp(80px, 11.81vw, 10.625rem);
}
.blog-single__container:after {
  content: "";
  position: absolute;
  display: block;
  width: 100vw;
  height: clamp(180px, 17.36vw, 15.625rem);
  bottom: 0;
  left: 50%;
  -webkit-transform: translate(-50%, 0);
      -ms-transform: translate(-50%, 0);
          transform: translate(-50%, 0);
  background: -webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0)), to(#ffffff));
  background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, #ffffff 100%);
  z-index: -1;
}
.blog-single__head {
  padding: clamp(110px, 9.38vw, 8.4375rem) 0 clamp(30px, 4.51vw, 4.0625rem);
  margin: 0 auto;
  max-width: 61.5625rem;
}
.blog-single__tags {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: clamp(10px, 0.9vw, 0.8125rem);
}
.blog-single__tag {
  padding: 0.5625rem 0.9375rem;
  border-radius: 2.8125rem;
  background-color: var(--white);
  color: var(--black);
  font-size: clamp(12px, 0.9vw, 0.875rem);
  line-height: 1;
}
.blog-single__title {
  margin: 0;
  max-width: 70rem;
  font-size: clamp(32px, 4.72vw, 4.25rem);
  line-height: 1.1;
  font-weight: 600;
}
.blog-single__byline {
  margin: clamp(20px, 2.78vw, 2.5rem) 0 0;
  color: var(--black);
  font-weight: 400;
  line-height: 1;
  font-size: clamp(14px, 1.25vw, 1.125rem);
}
.blog-single__media {
  position: relative;
  overflow: hidden;
  border-radius: 0.375rem;
  aspect-ratio: 1320/432;
  max-width: 1320px;
  margin: 0 auto clamp(36px, 5.14vw, 4.625rem);
}
.blog-single__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background-color: rgba(0, 76, 82, 0.7);
  mix-blend-mode: multiply;
  pointer-events: none;
}
.blog-single__image {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.blog-single__content {
  max-width: 62.4375rem;
  margin: 0 auto;
  font-size: clamp(15px, 1.11vw, 1rem);
  line-height: 1.75;
}
.blog-single__content .blog-single__lead,
.blog-single__content > h2:first-child {
  margin: 0 0 clamp(30px, 3.82vw, 3.4375rem);
  font-family: var(--heading-font), sans-serif;
  font-weight: 600;
  font-size: clamp(22px, 2.5vw, 2.25rem);
  line-height: 1.3;
  color: var(--black);
}
.blog-single__content h2 {
  margin: clamp(32px, 3.13vw, 2.8125rem) 0 1rem;
  font-size: clamp(20px, 1.94vw, 1.75rem);
  line-height: 1.25;
  font-weight: 700;
}
.blog-single__content h3 {
  margin: clamp(28px, 2.78vw, 2.5rem) 0 0.875rem;
  font-size: clamp(18px, 1.53vw, 1.375rem);
  line-height: 1.3;
  font-weight: 700;
}
.blog-single__content h4 {
  margin: clamp(24px, 2.43vw, 2.1875rem) 0 0.75rem;
  font-size: clamp(16px, 1.25vw, 1.125rem);
  line-height: 1.3;
  font-weight: 700;
}
.blog-single__content p {
  margin: 0 0 1.125rem;
  font-size: clamp(16px, 1.25vw, 1.125rem);
}
.blog-single__content a {
  color: var(--primary);
  text-decoration: underline;
}
.blog-single__content img {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
  margin: clamp(24px, 2.78vw, 2.5rem) auto;
  border-radius: 0.375rem;
}
.blog-single__content figure {
  margin: clamp(24px, 2.78vw, 2.5rem) 0;
}
.blog-single__content figure figcaption {
  margin-top: 0.625rem;
  color: var(--gray-500);
  font-size: clamp(12px, 0.9vw, 0.8125rem);
  text-align: center;
}
.blog-single__content ul:not(.wp-block-list),
.blog-single__content ol {
  margin: 0 0 1.125rem 1.375rem;
}
.blog-single__content ul:not(.wp-block-list) li,
.blog-single__content ol li {
  margin-bottom: 0.625rem;
}
.blog-single__content ul:not(.wp-block-list) li {
  list-style: disc;
  font-size: clamp(16px, 1.25vw, 1.125rem);
}
.blog-single__content ol li {
  list-style: decimal;
  font-size: clamp(16px, 1.25vw, 1.125rem);
}
.blog-single__content blockquote {
  margin: clamp(28px, 2.78vw, 2.5rem) 0;
  padding: clamp(18px, 1.94vw, 1.75rem) clamp(20px, 2.43vw, 2.1875rem);
  border-left: 0.25rem solid var(--secondary);
  background-color: rgba(210, 222, 221, 0.3);
  border-radius: 0 0.375rem 0.375rem 0;
  font-family: var(--heading-font), sans-serif;
  font-size: clamp(18px, 1.67vw, 1.5rem);
  font-style: italic;
  line-height: 1.4;
}
.blog-single__content blockquote p:last-child {
  margin: 0;
}
.blog-single__content blockquote cite {
  display: block;
  margin-top: 0.75rem;
  color: var(--gray-500);
  font-family: var(--primary-font-family), sans-serif;
  font-size: clamp(13px, 1.04vw, 0.875rem);
  font-style: normal;
}
.blog-single__content hr {
  height: 0;
  margin: clamp(28px, 3.13vw, 2.8125rem) 0;
  border: 0;
  border-top: 0.0625rem solid rgba(10, 36, 38, 0.14);
}
.blog-single__content table {
  display: block;
  width: 100%;
  margin: clamp(28px, 3.47vw, 3.125rem) 0;
  overflow-x: auto;
  border: 0.0625rem solid rgba(10, 36, 38, 0.16);
  border-radius: 0.375rem;
  border-spacing: 0;
  background-color: var(--white);
  -webkit-overflow-scrolling: touch;
}
.blog-single__content table tbody,
.blog-single__content table thead,
.blog-single__content table tfoot {
  display: table;
  width: 100%;
  min-width: 40.625rem;
  border-collapse: collapse;
  table-layout: fixed;
}
.blog-single__content table tr:not(:last-child) {
  border-bottom: 0.0625rem solid rgba(10, 36, 38, 0.13);
}
.blog-single__content table tr:nth-child(even) {
  background-color: rgba(210, 222, 221, 0.18);
}
.blog-single__content table th,
.blog-single__content table td {
  padding: clamp(12px, 1.39vw, 1.25rem);
  vertical-align: top;
  text-align: left;
  line-height: 1.4;
}
.blog-single__content table th:not(:last-child),
.blog-single__content table td:not(:last-child) {
  border-right: 0.0625rem solid rgba(10, 36, 38, 0.13);
}
.blog-single__content table th:first-child,
.blog-single__content table td:first-child {
  width: 42%;
}
.blog-single__content table th p,
.blog-single__content table td p {
  margin: 0;
  font-size: inherit;
}
.blog-single__content table th p + p,
.blog-single__content table td p + p {
  margin-top: 0.5rem;
}
.blog-single__content table th,
.blog-single__content table thead,
.blog-single__content table tbody > tr:first-child {
  background-color: var(--primary);
  color: var(--white);
}
.blog-single__content table strong {
  font-weight: 600;
}
.blog-single__content .hs-embed-wrapper {
  width: 100%;
  margin: clamp(28px, 3.47vw, 3.125rem) 0;
}
.blog-single__content .hs-embed-wrapper .hs-embed-content-wrapper,
.blog-single__content .hs-embed-wrapper .responsive-embed {
  width: 100%;
}
.blog-single__content .hs-embed-wrapper .responsive-embed {
  position: relative;
  overflow: hidden;
  aspect-ratio: 16/9;
  border-radius: 0.375rem;
  background-color: var(--black);
}
.blog-single__content .hs-embed-wrapper iframe {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}
.blog-single__author {
  max-width: 62.25rem;
  margin: clamp(40px, 4.86vw, 4.375rem) auto 0;
}
.blog-single__author-heading {
  margin: 0 0 clamp(23px, 2.29vw, 2.0625rem);
  padding-bottom: clamp(13px, 1.18vw, 1.0625rem);
  border-bottom: 1px solid var(--white);
  font-size: clamp(18px, 1.67vw, 1.5rem);
}
.blog-single__author-card {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
  -webkit-align-items: flex-start;
      -ms-flex-align: start;
          align-items: flex-start;
  gap: clamp(18px, 3.26vw, 2.9375rem);
}
.blog-single__author-info {
  padding-top: 1.75rem;
}
.blog-single__author-avatar {
  -webkit-flex-shrink: 0;
      -ms-flex-negative: 0;
          flex-shrink: 0;
  width: clamp(84px, 7.3vw, 6.625rem);
  aspect-ratio: 5/6;
  overflow: hidden;
  border-radius: 0.375rem;
  background-color: var(--sauge);
}
.blog-single__author-avatar img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.blog-single__author-name {
  margin: 0 0 1.4375rem !important;
  font-size: 1.125rem;
  line-height: 1;
}
.blog-single__author-name strong {
  display: block;
  font-weight: var(--font-weight-bold);
}
.blog-single__author-role {
  font-size: 0.875rem;
  color: var(--gray-500);
}
.blog-single__author-bio {
  margin: 0;
  max-width: 52.5rem;
  font-size: clamp(12px, 0.97vw, 0.875rem);
  line-height: 1.3;
  font-weight: 400;
}
.blog-single__related {
  padding: clamp(45px, 5.49vw, 4.9375rem) 0 0;
}
.blog-single__related-heading {
  margin: 0 0 clamp(28px, 3.13vw, 2.8125rem);
  font-size: clamp(30px, 4.72vw, 4.25rem);
  line-height: 1.1;
  max-width: 53.75rem;
  margin: 0 0 3.9375rem;
}
.blog-single__related-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(24px, 2.43vw, 2.1875rem) clamp(20px, 2.08vw, 1.875rem);
}
.blog-single__related .container {
  max-width: 89rem;
}
@media (max-width: 1023px) {
  .blog-single__related-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 639px) {
  .blog-single__author-card {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column;
  }
  .blog-single__related-grid {
    grid-template-columns: 1fr;
  }
}

/* ---------------------------------------
	Article card
--------------------------------------- */
.article-card__link {
  display: block;
  color: inherit;
  text-decoration: none;
  -webkit-transition: -webkit-transform 0.3s ease;
  transition: -webkit-transform 0.3s ease;
  transition: transform 0.3s ease;
  transition: transform 0.3s ease, -webkit-transform 0.3s ease;
}
.article-card__link:hover {
  -webkit-transform: translateY(-0.25rem);
      -ms-transform: translateY(-0.25rem);
          transform: translateY(-0.25rem);
}
.article-card__media {
  position: relative;
  overflow: hidden;
  margin-bottom: clamp(13px, 1.32vw, 1.1875rem);
  border-radius: 0.25rem;
  aspect-ratio: 100/70;
  background-color: var(--sauge);
}
.article-card__media::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background-color: rgba(0, 76, 82, 0.7);
  mix-blend-mode: multiply;
  pointer-events: none;
}
.article-card__image {
  position: absolute;
  inset: 0;
  z-index: 0;
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.article-card__image--placeholder {
  background-image: url(../images/tech-marble.jpg);
  background-position: center;
  background-size: cover;
}
.article-card__media .article-card__image {
  -webkit-transition: opacity 0.3s ease-in-out, -webkit-transform 0.5s cubic-bezier(0.2, 0.7, 0.3, 1);
  transition: opacity 0.3s ease-in-out, -webkit-transform 0.5s cubic-bezier(0.2, 0.7, 0.3, 1);
  transition: transform 0.5s cubic-bezier(0.2, 0.7, 0.3, 1), opacity 0.3s ease-in-out;
  transition: transform 0.5s cubic-bezier(0.2, 0.7, 0.3, 1), opacity 0.3s ease-in-out, -webkit-transform 0.5s cubic-bezier(0.2, 0.7, 0.3, 1);
}
.article-card__link:hover .article-card__image {
  -webkit-transform: scale(1.07);
      -ms-transform: scale(1.07);
          transform: scale(1.07);
}
.article-card__tags {
  position: absolute;
  z-index: 2;
  bottom: 1.375rem;
  left: 1.3125rem;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  gap: 0.5rem;
}
.article-card__tag {
  padding: 0.3125rem 0.75rem;
  border-radius: 2.8125rem;
  background-color: var(--white);
  color: var(--black);
  font-size: clamp(10px, 0.83vw, 0.75rem);
  line-height: 1;
  letter-spacing: -0.0175rem;
}
.article-card__title {
  margin: 0;
  color: #191919;
  font-family: var(--heading-font), sans-serif;
  font-weight: 600;
  font-size: clamp(18px, 1.67vw, 1.5625rem);
  line-height: 1.3;
  -webkit-transition: color 0.2s ease;
  transition: color 0.2s ease;
  padding: 0 clamp(13px, 1.39vw, 1.25rem);
}
.article-card__link:hover .article-card__title {
  color: var(--primary);
}
.article-card--featured .article-card__title {
  font-size: clamp(26px, 2.5vw, 2.25rem);
}

/* ---------------------------------------
	General blog styles (legacy list markup). The padding is scoped with
	:not(body) so WP's body.blog class on the posts page doesn't inherit it.
--------------------------------------- */
.blog:not(body) {
  padding-block: var(--size-lg);
}

.blog__inner img {
  max-width: 100%;
  height: auto;
}
@media (min-width: 1280px) {
  .blog__outer {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    gap: var(--size-lg);
  }
  .blog__inner {
    -webkit-box-flex: 1;
    -webkit-flex: 1;
        -ms-flex: 1;
            flex: 1;
  }
  .blog__sidebar {
    width: 30%;
    -webkit-flex-shrink: 0;
        -ms-flex-negative: 0;
            flex-shrink: 0;
  }
}

/* ---------------------------------------
	Loop post preview
--------------------------------------- */
.preview {
  margin-bottom: var(--size-md);
  padding-bottom: var(--size-md);
  border-bottom: 1px solid var(--gray);
}
.preview__meta {
  margin-top: var(--size-md);
  margin-bottom: 0;
  color: var(--gray);
  font-size: 14px;
}
.preview__thumb {
  margin-bottom: var(--size-md);
}

/* ---------------------------------------
	Post / Page inner view
--------------------------------------- */
.entry__thumb {
  margin-bottom: var(--size-md);
}
.entry__meta {
  color: var(--gray);
  font-size: var(--font-size-text-medium);
}
.entry__cat {
  margin-top: var(--size-md);
}

.error404 .internal-hero {
  min-height: clamp(255px, 29.51vw, 26.5625rem);
}

.not-found-content {
  padding: 3.8125rem 0 6.9375rem;
}
@media (max-width: 1023px) {
  .not-found-content {
    padding: 1.25rem 0 3.75rem;
  }
}
.not-found-content__content .button {
  -webkit-flex-shrink: 0;
      -ms-flex-negative: 0;
          flex-shrink: 0;
  border-radius: 0.25rem;
  font-size: 0.90625rem;
  padding: 0.5rem 1.9375rem;
  margin-top: 0.25rem;
  font-weight: 600;
}

.entry-faq {
  margin-top: clamp(64px, 7vw, 6.25rem);
}
.entry-faq__heading {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  gap: clamp(18px, 2.3vw, 2rem);
  padding-bottom: clamp(24px, 3vw, 2.625rem);
  border-bottom: 0.1875rem solid var(--white);
}
.entry-faq__heading h2 {
  margin: 0;
  font-family: var(--heading-font), sans-serif;
  font-size: clamp(30px, 4vw, 3.5rem);
  line-height: 1.1;
  font-weight: 600;
}
.entry-faq__marker {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 clamp(40px, 3.75vw, 3.375rem);
      -ms-flex: 0 0 clamp(40px, 3.75vw, 3.375rem);
          flex: 0 0 clamp(40px, 3.75vw, 3.375rem);
  aspect-ratio: 1;
  border-radius: 50%;
  background: url(../images/faq_decor.png) center/cover no-repeat;
}
.entry-faq__items {
  margin-top: clamp(20px, 2.5vw, 2.25rem);
}
.entry-faq__item {
  border-bottom: 0.0625rem solid rgba(0, 76, 82, 0.6);
}
.entry-faq__item[open] .entry-faq__question {
  color: var(--secondary);
}
.entry-faq__item[open] .entry-faq__icon svg {
  -webkit-transform: rotate(180deg);
      -ms-transform: rotate(180deg);
          transform: rotate(180deg);
}
.entry-faq__question {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: 1rem;
  padding: 0.5625rem 0.4375rem;
  color: var(--primary);
  font-size: clamp(17px, 1.4vw, 1.25rem);
  line-height: 1.4;
  cursor: pointer;
  list-style: none;
}
.entry-faq__question::-webkit-details-marker {
  display: none;
}
.entry-faq__question:focus-visible {
  outline: 0.125rem solid var(--primary);
  outline-offset: 0.125rem;
}
.entry-faq__icon {
  display: grid;
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 2.125rem;
      -ms-flex: 0 0 2.125rem;
          flex: 0 0 2.125rem;
  place-items: center;
  width: 2.125rem;
  height: 2.125rem;
  border-radius: 50%;
  background-color: var(--white);
}
.entry-faq__icon svg {
  width: 1rem;
  height: 1rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
  -webkit-transition: -webkit-transform 0.2s ease;
  transition: -webkit-transform 0.2s ease;
  transition: transform 0.2s ease;
  transition: transform 0.2s ease, -webkit-transform 0.2s ease;
}
.entry-faq__answer {
  padding: 0 3rem 1.25rem 0.5rem;
  font-size: clamp(14px, 1.1vw, 1rem);
  line-height: 1.45;
}
.entry-faq__answer > :first-child {
  margin-top: 0;
}
.entry-faq__answer > :last-child {
  margin-bottom: 0;
}
@media (prefers-reduced-motion: reduce) {
  .entry-faq__icon svg {
    -webkit-transition: none;
    transition: none;
  }
}

.case-content .entry-faq__heading h2 {
  font-size: clamp(28px, 3vw, 2.5rem);
}
.case-content .entry-faq__question {
  font-size: clamp(16px, 1.25vw, 1.125rem);
}
.case-content .entry-faq__answer {
  font-size: clamp(14px, 1vw, 0.9375rem);
}

.blog-single__container > .entry-faq {
  max-width: 62.4375rem;
  margin-right: auto;
  margin-left: auto;
}

/*# sourceMappingURL=main.css.map*/