@charset "UTF-8";
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
  margin: 0;
  padding: 0;
}

article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
  display: block;
}

body {
  line-height: 1;
}

ol, ul {
  list-style: none;
}

blockquote, q {
  quotes: none;
}

blockquote:before, blockquote:after, q:before, q:after {
  content: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

a {
  text-decoration: none;
}

* {
  box-sizing: border-box;
}

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

img {
  max-width: 100%;
}

::-moz-selection {
  background-color: rgba(255, 255, 255, 0.77);
  color: #000;
}

::selection {
  background-color: rgba(255, 255, 255, 0.77);
  color: #000;
}

.h1 em, .h2 em, .h3 em, .h4 em {
  font-style: italic;
}

.h1 {
  font-family: ivypresto-display, serif;
  font-weight: 100;
  font-style: normal;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 34px;
  line-height: 40px;
  letter-spacing: 0.02em;
}
@media screen and (min-width: 500px) {
  .h1 {
    font-size: 6.8vw;
    line-height: 8vw;
  }
}
@media screen and (min-width: 768px) {
  .h1 {
    font-size: 4.43vw;
    line-height: 5.21vw;
  }
}
@media screen and (min-width: 1024px) {
  .h1 {
    font-size: 3.47vw;
    line-height: 1.14;
  }
}

.basic h1,
.h2 {
  font-family: "Archivo", system-ui;
  font-optical-sizing: auto;
  font-weight: 300;
  font-style: normal;
  font-variation-settings: "wdth" 100;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 22px;
  line-height: 1.36;
  letter-spacing: 0;
}
@media screen and (min-width: 500px) {
  .basic h1,
  .h2 {
    font-size: 4.4vw;
  }
}
@media screen and (min-width: 768px) {
  .basic h1,
  .h2 {
    font-size: 2.86vw;
  }
}
@media screen and (min-width: 1024px) {
  .basic h1,
  .h2 {
    font-size: max(22px, 1.53vw);
  }
}

.h2 + .p {
  margin-top: 18px;
}
@media screen and (min-width: 500px) {
  .h2 + .p {
    margin-top: 3.6vw;
  }
}
@media screen and (min-width: 768px) {
  .h2 + .p {
    margin-top: 2.08vw;
  }
}
@media screen and (min-width: 1024px) {
  .h2 + .p {
    margin-top: 1.11vw;
  }
}
@media screen and (min-width: 1024px) {
  .h2b {
    font-size: 3.47vw;
    line-height: 1.14;
  }
}

.basic h2,
.h3 {
  font-family: "Archivo", system-ui;
  font-optical-sizing: auto;
  font-weight: 300;
  font-style: normal;
  font-variation-settings: "wdth" 100;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 18px;
  line-height: 1.39;
  letter-spacing: 0;
}
@media screen and (min-width: 500px) {
  .basic h2,
  .h3 {
    font-size: 3.6vw;
  }
}
@media screen and (min-width: 768px) {
  .basic h2,
  .h3 {
    font-size: 2.86vw;
  }
}
@media screen and (min-width: 1024px) {
  .basic h2,
  .h3 {
    font-size: max(22px, 1.53vw);
  }
}

.h3 + .p {
  margin-top: 7px;
}
@media screen and (min-width: 500px) {
  .h3 + .p {
    margin-top: 1.4vw;
  }
}
@media screen and (min-width: 768px) {
  .h3 + .p {
    margin-top: 0.65vw;
  }
}
@media screen and (min-width: 1024px) {
  .h3 + .p {
    margin-top: 0.35vw;
  }
}

.basic blockquote,
.basic blockquote p,
.basic h3,
.h4 {
  font-family: ivypresto-display, serif;
  font-weight: 100;
  font-style: normal;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 22px;
  line-height: 28px;
  letter-spacing: 0.02em;
}
@media screen and (min-width: 500px) {
  .basic blockquote,
  .basic blockquote p,
  .basic h3,
  .h4 {
    font-size: 4.4vw;
    line-height: 5.6vw;
  }
}
@media screen and (min-width: 768px) {
  .basic blockquote,
  .basic blockquote p,
  .basic h3,
  .h4 {
    font-size: 2.86vw;
    line-height: 3.65vw;
  }
}
@media screen and (min-width: 1024px) {
  .basic blockquote,
  .basic blockquote p,
  .basic h3,
  .h4 {
    font-size: 1.94vw;
    line-height: 1.14;
  }
}

@media screen and (min-width: 1024px) {
  .basic blockquote,
  .basic blockquote p,
  .h4b {
    font-size: 2.43vw;
    line-height: 1.29;
  }
}

.p,
.psm,
.pxs {
  font-family: "Archivo", system-ui;
  font-optical-sizing: auto;
  font-weight: 300;
  font-style: normal;
  font-variation-settings: "wdth" 100;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.p b, .p strong,
.psm b,
.psm strong,
.pxs b,
.pxs strong {
  font-weight: 600;
}
.p em,
.psm em,
.pxs em {
  font-style: italic;
}

.p.medium,
.psm.medium,
.pxs.medium {
  font-weight: 500;
}

.p p + p,
.psm p + p {
  margin-top: 1em;
}

.p + .action {
  margin-top: 25px;
}
@media screen and (min-width: 500px) {
  .p + .action {
    margin-top: 5vw;
  }
}
@media screen and (min-width: 768px) {
  .p + .action {
    margin-top: 4.3vw;
  }
}
@media screen and (min-width: 1024px) {
  .p + .action {
    margin-top: 2.29vw;
  }
}

.p {
  font-size: 15px;
  line-height: 1.67;
  letter-spacing: 0.03em;
}
@media screen and (min-width: 500px) {
  .p {
    font-size: 3vw;
  }
}
@media screen and (min-width: 768px) {
  .p {
    font-size: 1.95vw;
  }
}
@media screen and (min-width: 1024px) {
  .p {
    font-size: max(15px, 1.04vw);
  }
}

.psm {
  font-size: 13px;
  line-height: 1.38;
  letter-spacing: 0.03em;
}
@media screen and (min-width: 500px) {
  .psm {
    font-size: 2.6vw;
  }
}
@media screen and (min-width: 768px) {
  .psm {
    font-size: 1.69vw;
  }
}
@media screen and (min-width: 1024px) {
  .psm {
    font-size: max(13px, 0.9vw);
  }
}

.pxs {
  font-size: 12px;
  line-height: 1.17;
  letter-spacing: 0;
}
.pxs p + p {
  margin-top: 0.33em;
}
@media screen and (min-width: 500px) {
  .pxs {
    font-size: 2.4vw;
  }
}
@media screen and (min-width: 768px) {
  .pxs {
    font-size: 1.56vw;
  }
}
@media screen and (min-width: 1024px) {
  .pxs {
    font-size: max(12px, 0.83vw);
  }
}

.basic ul,
ul.p,
.p ul {
  list-style-type: disc;
}

.basic ol,
ol.p,
.p ol {
  list-style-type: decimal;
}

.basic h1 + h1,
.basic h1 + h2,
.basic h1 + h3,
.basic h2 + h1,
.basic h2 + h2,
.basic h2 + h3,
.basic h3 + h1,
.basic h3 + h2,
.basic h3 + h3 {
  margin-top: 13.07vw;
}
.basic h1 + ul,
.basic h1 + ol,
.basic h1 + p {
  margin-top: 13.07vw;
}
.basic h2 + ul,
.basic h2 + ol,
.basic h2 + p,
.basic h3 + ul,
.basic h3 + ol,
.basic h3 + p {
  margin-top: 1.07vw;
}
.basic ul + h1,
.basic ul + h2,
.basic ul + h3,
.basic ol + h1,
.basic ol + h2,
.basic ol + h3,
.basic p + h1,
.basic p + h2,
.basic p + h3 {
  margin-top: 8vw;
}
.basic ul + ul,
.basic ul + ol,
.basic ul + p,
.basic ol + ul,
.basic ol + ol,
.basic ol + p,
.basic p + ul,
.basic p + ol,
.basic p + p {
  margin-top: 1em;
}
.basic img {
  margin-top: 3.4vw;
  margin-bottom: 3.4vw;
  height: auto;
}
.basic blockquote {
  position: relative;
  margin-top: calc(2em + 13.07vw);
}
.basic blockquote:before {
  content: "“";
  position: absolute;
  bottom: 100%;
  left: 0;
  font-size: 2em;
  line-height: 0.25;
}
.basic blockquote cite {
  display: block;
}
.basic blockquote + * {
  margin-top: 13.07vw;
}
.basic blockquote * + cite {
  margin-top: 3.2vw;
}
.basic ul,
.basic ol {
  padding-left: 1em;
}
.basic ul li::marker,
.basic ol li::marker {
  font-size: 0.85em;
}
.basic ul li + li,
.basic ol li + li {
  margin-top: 1.07vw;
}
@media screen and (min-width: 768px) {
  .basic h1 + h1,
  .basic h1 + h2,
  .basic h1 + h3,
  .basic h2 + h1,
  .basic h2 + h2,
  .basic h2 + h3,
  .basic h3 + h1,
  .basic h3 + h2,
  .basic h3 + h3 {
    margin-top: 3.03vw;
  }
  .basic h1 + ul,
  .basic h1 + ol,
  .basic h1 + p {
    margin-top: 3.03vw;
  }
  .basic h2 + ul,
  .basic h2 + ol,
  .basic h2 + p,
  .basic h3 + ul,
  .basic h3 + ol,
  .basic h3 + p {
    margin-top: 1.27vw;
  }
  .basic ul + h1,
  .basic ul + h2,
  .basic ul + h3,
  .basic ol + h1,
  .basic ol + h2,
  .basic ol + h3,
  .basic p + h1,
  .basic p + h2,
  .basic p + h3 {
    margin-top: 3.13vw;
  }
  .basic * + img img + * {
    margin-top: 5.86vw;
  }
  .basic blockquote {
    margin-top: calc(1em + 5.86vw);
    margin-left: 1em;
    margin-right: 20vw;
  }
  .basic blockquote:before {
    left: auto;
    right: 100%;
    margin-right: 0.39vw;
  }
  .basic blockquote + * {
    margin-top: 5.86vw;
  }
  .basic blockquote * + cite {
    margin-top: 1.95vw;
  }
  .basic ul li + li,
  .basic ol li + li {
    margin-top: 0.39vw;
  }
}
@media screen and (min-width: 1024px) {
  .basic h1 + h1,
  .basic h1 + h2,
  .basic h1 + h3,
  .basic h2 + h1,
  .basic h2 + h2,
  .basic h2 + h3,
  .basic h3 + h1,
  .basic h3 + h2,
  .basic h3 + h3 {
    margin-top: 2.15vw;
  }
  .basic h1 + ul,
  .basic h1 + ol,
  .basic h1 + p {
    margin-top: 2.15vw;
  }
  .basic h2 + ul,
  .basic h2 + ol,
  .basic h2 + p,
  .basic h3 + ul,
  .basic h3 + ol,
  .basic h3 + p {
    margin-top: 0.9vw;
  }
  .basic * + img img + * {
    margin-top: 4.17vw;
  }
  .basic blockquote {
    margin-top: calc(1em + 4.17vw);
    margin-left: 0.75em;
    margin-right: 0vw;
  }
  .basic blockquote:before {
    margin-right: 0.28vw;
  }
  .basic blockquote + * {
    margin-top: 4.17vw;
  }
  .basic blockquote * + cite {
    margin-top: 1.39vw;
  }
  .basic ul + h1,
  .basic ul + h2,
  .basic ul + h3,
  .basic ol + h1,
  .basic ol + h2,
  .basic ol + h3,
  .basic p + h1,
  .basic p + h2,
  .basic p + h3 {
    margin-top: 2.22vw;
  }
  .basic ul li + li,
  .basic ol li + li {
    margin-top: 0.28vw;
  }
}

a.hover,
a.link {
  display: inline-block;
  transition: transform 0.5s, opacity 0.5s;
}
a.hover:hover,
a.link:hover {
  opacity: 0.5;
}
a.hover:active,
a.link:active {
  transform: scale(0.95);
  opacity: 0.75;
  transition: transform 0.15s, opacity 0.15s;
}

a .hover,
a .link {
  display: inline-block;
  transition: transform 0.5s, opacity 0.5s;
}
a:hover .hover,
a:hover .link {
  opacity: 0.5;
}
a:active .hover,
a:active .link {
  transform: scale(0.95);
  opacity: 0.75;
  transition: transform 0.15s, opacity 0.15s;
}

.link {
  display: inline-flex;
  position: relative;
  font-family: "Archivo", system-ui;
  font-optical-sizing: auto;
  font-weight: 500;
  font-style: normal;
  font-variation-settings: "wdth" 100;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 13px;
  line-height: 2;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}
@media screen and (min-width: 500px) {
  .link {
    font-size: 2.6vw;
  }
}
@media screen and (min-width: 768px) {
  .link {
    font-size: 1.69vw;
  }
}
@media screen and (min-width: 1024px) {
  .link {
    font-size: max(13px, 0.9vw);
  }
}

input.hs-button,
button.button {
  padding: 0;
  border: 0;
  color: currentColor;
  appearance: none;
  -webkit-appearance: none;
  background-color: transparent;
  outline: none;
  cursor: pointer;
}

input.hs-button,
.button {
  display: inline-flex;
  position: relative;
  font-family: "Archivo", system-ui;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
  font-variation-settings: "wdth" 100;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 13px;
  line-height: 2;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}
input.hs-button.underline:after,
.button.underline:after {
  content: "";
  display: block;
  position: absolute;
  top: 100%;
  right: 0;
  width: 22px;
  height: 1px;
  background-color: currentColor;
}
@media screen and (min-width: 500px) {
  input.hs-button,
  .button {
    font-size: 2.6vw;
  }
}
@media screen and (min-width: 768px) {
  input.hs-button,
  .button {
    font-size: 1.69vw;
  }
}
@media screen and (min-width: 1024px) {
  input.hs-button,
  .button {
    font-size: max(13px, 0.9vw);
  }
  input.hs-button.underline:after,
  .button.underline:after {
    width: max(22px, 1.53vw);
  }
}

body.canPoint .bigButton:hover .button.underline:after {
  width: 100%;
}
body.canPoint .bigButton:active .link,
body.canPoint .bigButton:active .button {
  transform: scale(0.95);
  opacity: 0.75;
  transition: opacity 0.15s cubic-bezier(0.65, 0.05, 0.36, 1), transform 0.15s cubic-bezier(0.65, 0.05, 0.36, 1);
}
body.canPoint .linkGroup {
  pointer-events: none;
}
body.canPoint .linkGroup:hover .link {
  opacity: 0.5;
}
body.canPoint .linkGroup .link {
  transition: opacity 0.5s cubic-bezier(0.65, 0.05, 0.36, 1), transform 0.5s cubic-bezier(0.65, 0.05, 0.36, 1);
  will-change: opacity, transform;
  pointer-events: all;
}
body.canPoint .linkGroup .link:hover {
  opacity: 1;
}
body.canPoint .link:active,
body.canPoint .button:active {
  transform: scale(0.95);
  opacity: 0.75;
  transition: opacity 0.15s cubic-bezier(0.65, 0.05, 0.36, 1), transform 0.15s cubic-bezier(0.65, 0.05, 0.36, 1);
  will-change: opacity, transform;
}
body.canPoint .button.underline:after {
  transition: 0.75s cubic-bezier(0.65, 0.05, 0.36, 1);
  will-change: width;
}
body.canPoint .button.underline:hover:after {
  width: 100%;
}

:root {
  --vp-height: 100%;
}

html,
body {
  width: 100%;
  min-height: 100vh;
  min-height: var(--vp-height);
}

body {
  background-color: #2B2B2B;
  color: #fff;
  overflow-y: scroll;
  transition: opacity 0.5s;
}
body.theme-ad {
  --theme-color: #CFA85F;
  --footer-color: #C69F56;
}
body.theme-aviation {
  --theme-color: #1C5040;
  --footer-color: #154334;
}
body.noscroll {
  height: var(--vp-height);
  overflow: hidden;
}
body main,
body footer {
  transition: opacity 0.5s;
}
body.is-loading main,
body.is-loading footer {
  opacity: 0;
}
body.is-loading #smooth-wrapper {
  pointer-events: none;
}
body.is-loading #smooth-wrapper:before {
  transform: translateX(0);
  transition: transform 1s cubic-bezier(0.22, 0.61, 0.36, 1);
}
@media screen and (min-width: 768px) {
  body.is-loading #smooth-wrapper:before {
    transform: translateY(0);
  }
}

#smooth-wrapper:before {
  content: "";
  display: block;
  position: fixed;
  z-index: 105;
  transform: translateX(-100%);
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #F6F0E4;
  pointer-events: none;
}
@media screen and (min-width: 768px) {
  #smooth-wrapper:before {
    transform: translateY(100%);
  }
}

#smooth-content {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

main {
  flex: 1;
}

.image .desktop, .video .desktop, .media .desktop {
  display: none;
}
@media (min-width: 768px) {
  .image .mobile, .video .mobile, .media .mobile {
    display: none;
  }
  .image .desktop, .video .desktop, .media .desktop {
    display: block;
  }
}

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

a {
  color: inherit;
}

[data-split-chars],
[data-split-words],
[data-split-lines],
[data-split] {
  font-kerning: none;
}
[data-split-chars] div,
[data-split-words] div,
[data-split-lines] div,
[data-split] div {
  will-change: transform, opacity;
  font-kerning: none;
  text-rendering: optimizeSpeed;
  transform: translateZ(0);
}

[data-appear-media] {
  overflow: hidden;
}

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

.splide__list {
  backface-visibility: hidden;
  display: -ms-flexbox;
  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;
  align-items: center;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -ms-flex-pack: 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 {
  backface-visibility: hidden;
  box-sizing: border-box;
  -ms-flex-negative: 0;
  flex-shrink: 0;
  list-style-type: none !important;
  margin: 0;
  position: relative;
}

.splide__slide img {
  vertical-align: bottom;
}

.splide__spinner {
  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;
}

@keyframes splide-loading {
  0% {
    transform: rotate(0);
  }
  to {
    transform: rotate(1turn);
  }
}
.splide__track--draggable {
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -ms-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;
  align-items: center;
  background: #ccc;
  border: 0;
  border-radius: 50%;
  cursor: pointer;
  display: -ms-flexbox;
  display: flex;
  height: 2em;
  -ms-flex-pack: center;
  justify-content: center;
  opacity: 0.7;
  padding: 0;
  position: absolute;
  top: 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 {
  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;
  transition: transform 0.2s linear;
  width: 8px;
}

.splide__pagination__page.is-active {
  background: #fff;
  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 {
  transform: scaleX(1);
}

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

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

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

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

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

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

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

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

footer {
  padding-top: 63px;
  padding-bottom: 39px;
}
@media screen and (min-width: 500px) {
  footer {
    padding-top: 12.6vw;
    padding-bottom: 7.8vw;
  }
}
@media screen and (min-width: 768px) {
  footer {
    padding-top: 14.84vw;
    padding-bottom: 4.56vw;
  }
}
@media screen and (min-width: 1024px) {
  footer {
    padding-top: 4.44vw;
    padding-bottom: 2.43vw;
  }
}
footer .center {
  padding: 0 20px;
}
@media screen and (min-width: 500px) {
  footer .center {
    padding: 0 4vw;
  }
}
@media screen and (min-width: 768px) {
  footer .center {
    display: flex;
    flex-wrap: wrap;
    padding: 0 3.91vw;
  }
}
@media screen and (min-width: 1024px) {
  footer .center {
    align-items: flex-end;
    padding: 0 4.79vw 0 3.68vw;
  }
}
footer nav ul {
  display: flex;
  flex-direction: column;
  gap: 34px;
}
footer nav a {
  color: #fff;
}
@media screen and (min-width: 500px) {
  footer nav ul {
    gap: 6.8vw;
  }
}
@media screen and (min-width: 768px) {
  footer nav ul {
    flex-direction: row;
    gap: 2.6vw;
  }
}
@media screen and (min-width: 1024px) {
  footer nav {
    width: 56.25vw;
    min-width: 556px;
  }
  footer nav ul {
    gap: 3.19vw;
  }
}
footer .newsletter {
  position: relative;
  margin-top: 65px;
}
footer .newsletter .form {
  margin-top: 19px;
}
footer .newsletter form {
  position: relative;
  z-index: 2;
}
footer .newsletter form.is-submitting .input {
  pointer-events: none;
  opacity: 0.5;
  transition: opacity 0.5s;
}
footer .newsletter form.is-submitted .input {
  opacity: 0;
  transition: opacity 0.5s;
}
footer .newsletter form.is-submitted .message {
  opacity: 1;
  transform: translateY(0);
  transition: opacity 0.5s ease-out 0.2s, transform 0.5s ease-out 0.2s;
  pointer-events: unset;
}
footer .newsletter form.has-error .error {
  display: block;
}
footer .newsletter .input {
  position: relative;
}
footer .newsletter .error {
  display: none;
  margin-top: 0.5em;
}
footer .newsletter .message {
  display: flex;
  align-items: center;
  position: absolute;
  transform: translateY(20px);
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  pointer-events: none;
}
footer .newsletter input {
  padding: 7px 0;
  border-bottom: 1px solid #E6E6E6;
  width: 100%;
}
footer .newsletter button {
  margin-top: 11px;
  padding: 7px 0;
}
@media screen and (min-width: 500px) {
  footer .newsletter {
    margin-top: 13vw;
  }
  footer .newsletter .form {
    margin-top: 3.8vw;
  }
  footer .newsletter .message {
    transform: translateY(4vw);
  }
  footer .newsletter input {
    padding: 1.4vw 0;
  }
  footer .newsletter button {
    margin-top: 2.2vw;
    padding: 1.4vw 0;
  }
}
@media screen and (min-width: 768px) {
  footer .newsletter {
    margin-top: 9.11vw;
    width: 50%;
  }
  footer .newsletter .form {
    margin-top: 2.47vw;
  }
  footer .newsletter .message {
    transform: translateY(2.6vw);
  }
  footer .newsletter input {
    padding: 0.91vw 0;
    font-size: 2.21vw;
    line-height: 1.29;
  }
  footer .newsletter button {
    margin-top: 2.34vw;
    padding: 0;
  }
}
@media screen and (min-width: 1024px) {
  footer .newsletter {
    margin-top: 0;
    flex: 1;
    width: auto;
  }
  footer .newsletter .copy {
    width: 100%;
  }
  footer .newsletter .form {
    margin-top: 0.21vw;
  }
  footer .newsletter .message {
    transform: translateY(1.39vw);
  }
  footer .newsletter input {
    padding: 0.83vw 0;
    font-size: max(17px, 1.18vw);
  }
  footer .newsletter button {
    display: flex;
    align-items: center;
    position: absolute;
    top: 0;
    right: 0;
    height: 100%;
    margin-top: 0;
    padding: 0;
  }
}
@media screen and (min-width: 768px) {
  footer .group {
    display: flex;
    align-items: flex-end;
    flex-direction: column;
    justify-content: space-between;
    margin-top: 9.11vw;
    width: 50%;
  }
}
@media screen and (min-width: 1024px) {
  footer .group {
    flex-direction: row;
    margin-top: 4.51vw;
    width: 100%;
  }
}
footer .social {
  margin-top: 70px;
}
footer .social ul {
  display: flex;
  justify-content: center;
  gap: 35px;
}
footer .social a {
  color: #fff;
}
footer .social svg {
  display: block;
  width: 19px;
  height: 19px;
}
footer .social svg path {
  fill: currentColor;
}
@media screen and (min-width: 500px) {
  footer .social {
    margin-top: 14vw;
  }
  footer .social ul {
    gap: 7vw;
  }
  footer .social svg {
    width: 3.8vw;
    height: 3.8vw;
  }
}
@media screen and (min-width: 768px) {
  footer .social {
    order: 2;
    margin-top: 0;
  }
  footer .social ul {
    justify-content: flex-start;
    gap: 4.56vw;
  }
  footer .social svg {
    width: 2.73vw;
    height: 2.73vw;
  }
}
@media screen and (min-width: 1024px) {
  footer .social {
    flex: 1;
  }
  footer .social ul {
    gap: 2.43vw;
  }
  footer .social svg {
    width: 1.46vw;
    min-width: 21px;
    height: 1.46vw;
    min-height: 21px;
  }
}
footer .logo {
  display: flex;
  justify-content: center;
  margin-top: 51px;
}
footer .logo img {
  width: 181px;
}
@media screen and (min-width: 500px) {
  footer .logo {
    margin-top: 10.2vw;
  }
  footer .logo img {
    width: 36.2vw;
  }
}
@media screen and (min-width: 768px) {
  footer .logo {
    order: 1;
    justify-content: flex-end;
    margin-top: 0;
    width: 100%;
  }
  footer .logo img {
    width: 28.13vw;
  }
}
@media screen and (min-width: 1024px) {
  footer .logo {
    width: 56.25vw;
    min-width: 556px;
    justify-content: flex-start;
  }
  footer .logo img {
    width: 15vw;
    max-width: 216px;
  }
}
footer .copyright {
  margin-top: 29px;
  text-align: center;
  opacity: 0.61;
}
@media screen and (min-width: 500px) {
  footer .copyright {
    margin-top: 5.8vw;
  }
}
@media screen and (min-width: 768px) {
  footer .copyright {
    display: flex;
    order: 3;
    gap: 3.78vw;
    margin-top: 0;
    text-align: left;
  }
  footer .copyright p + p {
    margin-top: 0;
  }
}
@media screen and (min-width: 1024px) {
  footer .copyright {
    gap: 2.01vw;
  }
}

.form .formRow {
  position: relative;
}
.form .formRow label {
  position: absolute;
  top: 0;
  left: 0;
  transition: 1s;
}
.form .formRow .line {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 1px;
  background-color: currentColor;
}
.form .formRow + .formRow {
  margin-top: 3.13vw;
  margin-top: 5.87vw;
}
.form .formRow + .submitForm {
  margin-top: 2.01vw;
  margin-top: 4vw;
}
.form .formRow[data-observe] label {
  transition: 0s;
}
.form .formRow[data-observe].observed label {
  transition: 1s;
}
@media screen and (min-width: 768px) {
  .form .formRow + .formRow {
    margin-top: 2.22vw;
  }
  .form .formRow + .submitForm {
    margin-top: 2.01vw;
  }
}
.form .submitForm {
  display: flex;
  justify-content: flex-end;
}
.form input,
.form button,
.form textarea,
.form select {
  padding: 0;
  border: 0;
  color: currentColor;
  appearance: none;
  -webkit-appearance: none;
  background-color: transparent;
  outline: none;
}

/* .form {
  input,
  button,
  textarea,
  select {
    width: 100%;
    padding: 0;
    border: 0;
    color: currentColor;
    appearance: none;
    -webkit-appearance: none;
    background-color: transparent;
    outline: none;
    @include placeholderColor(rgba($cpine, .42));
  }

  select,
  input[type="text"],
  input[type="password"],
  input[type="number"],
  input[type="email"],
  textarea {
    padding-top: 5px;
    padding-bottom: 5px;
    // border-bottom: 1px solid $cpine;
  }

  .dropdown {
    position: relative;
    width: 100%;
    transition: .5s;
    cursor: pointer;

    i {
      position: absolute;
      top: 50%;
      right: 22px;
      margin-top: -2px;
      transition: .5s;
      pointer-events: none;

      svg {
        width: 10px;
        height: auto;
      }
    }

    &:hover {
      opacity: .5;
    }
  }

  .underline {
    position: relative;
    width: 100%;

    &:after {
      content: '';
      display: block;
      position: absolute;
      bottom: 0;
      left: 0;
      width: 100%;
      height: 1px;
      background-color: $cpine;
    }
  }

  input[type="checkbox"].radio {
    margin: 0;
    width: 0;
    height: 0;
    visibility: hidden;

    + label {
      align-items: center;
      position: relative;
      padding-left: 36px;

      &:before {
        content: '';
        display: block;
        position: absolute;
        top: 50%;
        left: 0;
        margin-top: -12px;
        width: 24px;
        height: 24px;
        border-radius: 50%;
        border: 1px solid $cpine;
      }

      &:after {
        content: '';
        display: block;
        position: absolute;
        top: 50%;
        left: 4px;
        margin-top: -8px;
        width: 16px;
        height: 16px;
        border-radius: 50%;
        background-color: $cpine;
        opacity: 0;
        transition: .5s;
      }

      &:hover {
        &:after {
          opacity: .5;
        }
      }

      &:active {
        &:after {
          opacity: .75;
          transform: scale(.9);
          transition: .15s;
        }
      }
    }

    &:checked {
      + label {
        &:after {
          opacity: 1;
          transform: scale(1);
        }
      }
    }
  }
} */
@media (max-width: 767px) {
  .page-template-page-projects header,
  .page-template-page-clients header {
    background-color: #2B2B2B;
  }
}
header {
  position: fixed;
  z-index: 10;
  top: 0;
  left: 0;
  width: 100%;
}
@media (max-width: 767px) {
  header.is-loading nav {
    display: none;
  }
}
@media screen and (min-width: 768px) {
  header.is-loading {
    display: none;
  }
}
@media (max-width: 767px) {
  header.is-open .hamburger:before, header.is-open .hamburger:after {
    transform: translateY(0);
  }
  header.is-open .hamburger:before {
    transform: rotate(45deg);
  }
  header.is-open .hamburger:after {
    transform: rotate(-45deg);
  }
  header.is-open nav {
    pointer-events: all;
  }
  header.is-open nav:before {
    transform: scaleY(1);
  }
}
header:before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 300%;
  background: transparent;
  background: linear-gradient(to bottom, #181818, transparent);
  background-size: auto 100%;
  background-repeat: repeat-x;
  pointer-events: none;
}
header .center {
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: relative;
  z-index: 2;
  height: 60px;
}
header .center > .logo {
  padding: 0 20px;
}
header img {
  width: 116px;
  height: auto;
}
header .hamburger {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  z-index: 3;
  height: 100%;
  padding: 0;
  border: 0;
  padding: 15px 20px 12px;
  color: currentColor;
  appearance: none;
  -webkit-appearance: none;
  background-color: transparent;
  outline: none;
}
header .hamburger:before, header .hamburger:after {
  content: "";
  display: block;
  width: 23px;
  height: 1px;
  background-color: #fff;
  transform-origin: center;
  transition: 0.5s;
}
header .hamburger:before {
  transform: translateY(-5px);
}
header .hamburger:after {
  transform: translateY(5px);
}
@media (max-width: 767px) {
  header nav {
    display: flex;
    flex-direction: column;
    position: fixed;
    z-index: 2;
    top: 0;
    left: 0;
    width: 100%;
    height: 100svh;
    padding: 3.75vh 20px;
    pointer-events: none;
  }
  header nav:before {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100lvh;
    background-color: #1A1A1A;
    transform: scaleY(0);
    transform-origin: top;
    transition: 0.75s cubic-bezier(0.65, 0.05, 0.36, 1);
  }
  header nav .logo {
    display: flex;
    z-index: 2;
    justify-content: center;
    padding-bottom: 9.77vh;
  }
  header ul {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4.2vh;
    padding-top: 7.5vh;
    padding-bottom: 3.75vh;
  }
  header li a {
    padding: 5px;
  }
}
@media screen and (max-width: 767px) and (min-width: 500px) {
  header nav {
    padding: 3.75vh 4vw;
  }
  header li a {
    padding: 1vw;
  }
}
@media screen and (min-width: 768px) {
  header {
    padding: min(1.81vw, 26px) 0;
  }
  header:before {
    height: 191px;
    background-image: url(../images/png/gradient.png);
    background-size: auto 100%;
    background-repeat: repeat-x;
  }
  header .center {
    height: auto;
    padding: 0 3.91vw;
  }
  header .center > .logo {
    padding: 0;
  }
  header img {
    width: 16.04vw;
    max-width: 231px;
  }
  header .hamburger {
    display: none;
  }
  header nav .logo {
    display: none;
  }
  header ul {
    display: flex;
    gap: 3.33vw;
  }
}
@media screen and (min-width: 1024px) {
  header .center {
    padding: 0 3.82vw;
  }
}

body.canPoint header .hamburger,
body.canPoint header a {
  transition: opacity 0.5s, transform 1s;
}
body.canPoint header .hamburger:hover,
body.canPoint header a:hover {
  opacity: 0.5;
}
body.canPoint header .hamburger:active,
body.canPoint header a:active {
  transform: scale(0.95);
  opacity: 0.75;
  transition: opacity 0.15s, transform 0.15s;
}
@media (max-width: 767px) {
  body.canPoint header .linkGroup .link {
    pointer-events: none;
  }
  body.canPoint header.is-open .linkGroup .link {
    pointer-events: all;
  }
}
@media screen and (min-width: 768px) {
  body.canPoint header .linkGroup .link {
    pointer-events: all;
  }
}

main.about .content {
  padding-top: 97px;
  padding-bottom: 82px;
}
main.about .content .center {
  padding: 0 20px;
}
main.about .content .block + .block {
  margin-top: 67px;
}
@media (max-width: 767px) {
  main.about .content .col-a {
    display: flex;
    flex-direction: column;
  }
  main.about .content .col-a .copy {
    order: 2;
  }
  main.about .content .col-a .media {
    order: 1;
  }
}
main.about .content .col-a .copy {
  margin-top: 54px;
}
main.about .content .col-a .media {
  padding: 0 38px;
}
main.about .content .col-a .media {
  display: block;
  position: relative;
}
main.about .content .col-a .media:before {
  content: "";
  display: block;
  width: 100%;
  height: 0;
  padding-top: 145.1171875%;
}
main.about .content .col-a .media picture,
main.about .content .col-a .media img,
main.about .content .col-a .media video,
main.about .content .col-a .media iframe {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
main.about .content .col-a .media video,
main.about .content .col-a .media img {
  object-fit: cover;
}
main.about .content .col-a .media video.is-loaded {
  z-index: 2;
}
main.about .content .col-b {
  margin-top: 76px;
}
main.about .content .col-b .media {
  display: block;
  position: relative;
}
main.about .content .col-b .media:before {
  content: "";
  display: block;
  width: 100%;
  height: 0;
  padding-top: 127.850877193%;
}
main.about .content .col-b .media picture,
main.about .content .col-b .media img,
main.about .content .col-b .media video,
main.about .content .col-b .media iframe {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
main.about .content .col-b .media video,
main.about .content .col-b .media img {
  object-fit: cover;
}
main.about .content .col-b .media video.is-loaded {
  z-index: 2;
}
main.about .content .col-b .copy {
  margin-top: 37px;
}
@media screen and (min-width: 500px) {
  main.about .content {
    padding-top: 19.4vw;
    padding-bottom: 16.4vw;
  }
  main.about .content .center {
    padding: 0 4vw;
  }
  main.about .content .block + .block {
    margin-top: 13.4vw;
  }
  main.about .content .col-a .copy {
    margin-top: 10.8vw;
  }
  main.about .content .col-a .media {
    padding: 0 7.6vw;
  }
  main.about .content .col-b {
    margin-top: 15.2vw;
  }
  main.about .content .col-b .copy {
    margin-top: 7.4vw;
  }
}
@media screen and (min-width: 768px) {
  main.about .content {
    padding-top: 26.43vw;
    padding-bottom: 12.76vw;
  }
  main.about .content .center {
    padding: 0 3.91vw;
  }
  main.about .content .block + .block {
    margin-top: 10.16vw;
  }
  main.about .content .block-col {
    display: flex;
    align-items: flex-start;
    gap: 4.56vw;
  }
  main.about .content .col-b {
    flex: 1;
  }
  main.about .content .col-a {
    flex: none;
    width: 55%;
  }
  main.about .content .col-a .media {
    margin-top: 5.86vw;
    padding: 0;
  }
  main.about .content .col-a .copy {
    margin-top: 0;
  }
  main.about .content .col-b {
    margin-top: 11.59vw;
  }
  main.about .content .col-b .copy {
    margin-top: 5.08vw;
  }
  main.about .content .block-text .copy {
    padding: 0 3.91vw;
  }
}
@media screen and (min-width: 1024px) {
  main.about .content {
    padding-top: 14.1vw;
    padding-bottom: 6.81vw;
  }
  main.about .content .center {
    padding: 0 11.81vw;
  }
  main.about .content .block + .block {
    margin-top: 5.42vw;
  }
  main.about .content .block-col {
    gap: 9.1vw;
  }
  main.about .content .col-a {
    width: 35.56vw;
  }
  main.about .content .col-a .media {
    margin-top: 3.13vw;
  }
  main.about .content .col-b {
    margin-top: 6.18vw;
  }
  main.about .content .col-b .copy {
    margin-top: 2.71vw;
  }
  main.about .content .block-text .copy {
    padding: 0 14.65vw;
  }
}
main.about .history {
  background-color: #3C3A37;
  padding-bottom: 74px;
}
main.about .history .media {
  display: block;
  position: relative;
}
main.about .history .media:before {
  content: "";
  display: block;
  width: 100%;
  height: 0;
  padding-top: 118.6666666667%;
}
main.about .history .media picture,
main.about .history .media img,
main.about .history .media video,
main.about .history .media iframe {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
main.about .history .media video,
main.about .history .media img {
  object-fit: cover;
}
main.about .history .media video.is-loaded {
  z-index: 2;
}
main.about .history .copy {
  padding: 0 20px;
  margin-top: 76px;
}
@media screen and (min-width: 500px) {
  main.about .history {
    padding-bottom: 14.8vw;
  }
  main.about .history .copy {
    padding: 0 4vw;
    margin-top: 15.2vw;
  }
}
@media screen and (min-width: 768px) {
  main.about .history {
    padding-bottom: 11.2vw;
  }
  main.about .history .media {
    display: block;
    position: relative;
  }
  main.about .history .media:before {
    content: "";
    display: block;
    width: 100%;
    height: 0;
    padding-top: 54.8484848485%;
  }
  main.about .history .media picture,
  main.about .history .media img,
  main.about .history .media video,
  main.about .history .media iframe {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
  }
  main.about .history .media video,
  main.about .history .media img {
    object-fit: cover;
  }
  main.about .history .media video.is-loaded {
    z-index: 2;
  }
  main.about .history .copy {
    padding: 0 3.91vw;
    margin-top: 11.46vw;
  }
}
@media screen and (min-width: 1024px) {
  main.about .history {
    padding-top: 3.96vw;
    padding-bottom: 5.97vw;
  }
  main.about .history .center {
    padding: 0 4.17vw;
  }
  main.about .history .copy {
    padding: 0 10.35vw;
    margin-top: 6.11vw;
  }
  main.about .history .p {
    column-count: 2;
    column-gap: 6.25vw;
  }
}
main.about .team {
  padding: 81px 0 60px;
}
main.about .team .center {
  display: flex;
  padding: 0 20px;
}
main.about .team .media {
  display: block;
  position: relative;
}
main.about .team .media:before {
  content: "";
  display: block;
  width: 100%;
  height: 0;
  padding-top: 86.5671641791%;
}
main.about .team .media picture,
main.about .team .media img,
main.about .team .media video,
main.about .team .media iframe {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
main.about .team .media video,
main.about .team .media img {
  object-fit: cover;
}
main.about .team .media video.is-loaded {
  z-index: 2;
}
@media (max-width: 767px) {
  main.about .team .center {
    flex-direction: column;
  }
  main.about .team .copy {
    order: 2;
    margin-top: 40px;
  }
}
@media screen and (max-width: 767px) and (min-width: 500px) {
  main.about .team .copy {
    margin-top: 7.8vw;
  }
}
@media (max-width: 767px) {
  main.about .team .media {
    order: 1;
  }
}
@media screen and (min-width: 500px) {
  main.about .team {
    padding: 16.2vw 0 12vw;
  }
  main.about .team .center {
    padding: 0 4vw;
  }
}
@media screen and (min-width: 768px) {
  main.about .team {
    padding: 12.24vw 0 4.43vw;
  }
  main.about .team .center {
    align-items: center;
    padding: 0 3.91vw;
    gap: 3.91vw;
  }
  main.about .team .copy {
    width: 40%;
  }
  main.about .team .media {
    flex: 1;
  }
}
@media screen and (min-width: 1024px) {
  main.about .team {
    padding: 6.53vw 0 2.36vw;
  }
  main.about .team .center {
    padding: 0 9.17vw;
    gap: 10.07vw;
  }
  main.about .team .copy {
    width: 26.53vw;
  }
  main.about .team .media {
    display: block;
    position: relative;
  }
  main.about .team .media:before {
    content: "";
    display: block;
    width: 100%;
    height: 0;
    padding-top: 61.3251155624%;
  }
  main.about .team .media picture,
  main.about .team .media img,
  main.about .team .media video,
  main.about .team .media iframe {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
  }
  main.about .team .media video,
  main.about .team .media img {
    object-fit: cover;
  }
  main.about .team .media video.is-loaded {
    z-index: 2;
  }
}
main.clients .content {
  padding-top: 58px;
}
main.clients .content .center {
  display: flex;
  padding: 0 20px;
}
main.clients .content picture {
  display: block;
  position: relative;
}
main.clients .content picture:before {
  content: "";
  display: block;
  width: 100%;
  height: 0;
  padding-top: 86.5671641791%;
}
main.clients .content picture picture,
main.clients .content picture img,
main.clients .content picture video,
main.clients .content picture iframe {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
main.clients .content picture video,
main.clients .content picture img {
  object-fit: cover;
}
main.clients .content picture video.is-loaded {
  z-index: 2;
}
@media (max-width: 767px) {
  main.clients .content .center {
    flex-direction: column;
  }
  main.clients .content .copy {
    order: 2;
    margin-top: 44px;
  }
}
@media screen and (max-width: 767px) and (min-width: 500px) {
  main.clients .content .copy {
    margin-top: 8.8vw;
  }
}
@media (max-width: 767px) {
  main.clients .content .media {
    order: 1;
  }
}
@media screen and (min-width: 500px) {
  main.clients .content {
    padding-top: 11.6vw;
  }
  main.clients .content .center {
    padding: 0 4vw;
  }
}
@media screen and (min-width: 768px) {
  main.clients .content {
    padding: 21.09vw 0 12.24vw;
  }
  main.clients .content .center {
    align-items: center;
    padding: 0 3.91vw;
    gap: 3.91vw;
  }
  main.clients .content .copy {
    width: 40%;
  }
  main.clients .content .media {
    flex: 1;
  }
}
@media screen and (min-width: 1024px) {
  main.clients .content {
    padding: 11.25vw 0 6.53vw;
  }
  main.clients .content .center {
    padding: 0 6.94vw;
    gap: 5.42vw;
  }
  main.clients .content .copy {
    width: 27.57vw;
  }
  main.clients .content picture {
    display: block;
    position: relative;
  }
  main.clients .content picture:before {
    content: "";
    display: block;
    width: 100%;
    height: 0;
    padding-top: 45.2879581152%;
  }
  main.clients .content picture picture,
  main.clients .content picture img,
  main.clients .content picture video,
  main.clients .content picture iframe {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
  }
  main.clients .content picture video,
  main.clients .content picture img {
    object-fit: cover;
  }
  main.clients .content picture video.is-loaded {
    z-index: 2;
  }
}
main.clients .list {
  position: relative;
  padding: 74px 0 54px;
}
main.clients .list .wrap {
  position: sticky;
  top: calc(var(--header-height) - 1px);
  z-index: 2;
  margin-bottom: 39px;
}
@media screen and (min-width: 500px) {
  main.clients .list .wrap {
    margin-bottom: 7.8vw;
  }
}
main.clients .list .selector {
  display: flex;
  flex-direction: column;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  background-color: #3C3A37;
}
main.clients .list .selector.is-open button {
  display: flex;
}
main.clients .list .selector.is-open svg {
  transform: rotate(180deg);
}
main.clients .list button {
  order: 2;
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 39px;
  width: 100%;
  padding: 0 20px;
  transform: none;
}
main.clients .list button:active {
  transform: none;
}
main.clients .list button.is-active {
  order: 1;
}
main.clients .list button.is-active svg {
  opacity: 1;
}
main.clients .list button:not(.is-active) {
  display: none;
}
main.clients .list svg {
  display: block;
  width: 17px;
  opacity: 0;
}
@media (max-width: 1023px) {
  main.clients .list .single:not(.is-active) {
    display: none;
  }
}
@media (max-width: 1023px) {
  main.clients .list h3 {
    display: none;
  }
}
main.clients .list ul {
  padding: 29px 20px 0;
}
@media screen and (min-width: 500px) {
  main.clients .list {
    padding: 14.8vw 0 10.8vw;
  }
  main.clients .list button {
    height: 7.8vw;
    padding: 0 4vw;
  }
  main.clients .list ul {
    padding: 5.8vw 4vw 0;
  }
}
@media screen and (min-width: 768px) {
  main.clients .list {
    padding-bottom: 7.03vw;
  }
  main.clients .list button {
    height: 5.08vw;
    padding: 0 2.6vw;
  }
  main.clients .list ul {
    padding: 3.78vw 2.6vw 0;
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  main.clients .list ul {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
}
@media screen and (min-width: 1024px) {
  main.clients .list {
    padding-top: 6.11vw;
    padding-bottom: 5.42vw;
    background-color: #3C3A37;
  }
  main.clients .list .center {
    padding: 0 6.94vw;
  }
  main.clients .list .wrap {
    display: none;
  }
  main.clients .list .categories {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 4.17vw;
  }
  main.clients .list ul {
    margin-top: 1.53vw;
    padding: 0;
  }
  main.clients .list ul + h3 {
    margin-top: 3.06vw;
  }
  main.clients .list .single.hide {
    display: none;
  }
}
@media screen and (min-width: 1280px) {
  main.clients .list .center {
    padding: 0 13.89vw;
  }
  main.clients .list .categories {
    display: flex;
    justify-content: space-evenly;
    gap: 6.94vw;
  }
}

main.contact .inquire {
  position: relative;
  padding-top: 76px;
  padding-bottom: 103px;
  background-color: #3C3A37;
}
main.contact .inquire .center {
  padding: 0 20px;
}
main.contact .inquire .form {
  margin-top: 36px;
}
main.contact .inquire form {
  position: relative;
  z-index: 2;
}
main.contact .inquire form.is-submitting .input {
  pointer-events: none;
  opacity: 0.5;
  transition: opacity 0.5s;
}
main.contact .inquire form.is-submitted .input {
  opacity: 0;
  transition: opacity 0.5s;
}
main.contact .inquire form.is-submitted .message {
  opacity: 1;
  transform: translateY(0);
  transition: opacity 0.5s ease-out 0.2s, transform 0.5s ease-out 0.2s;
  pointer-events: unset;
}
@media screen and (min-width: 768px) {
  main.contact .inquire form.has-error .submit {
    justify-content: space-between;
  }
}
main.contact .inquire form.has-error .error {
  display: block;
}
main.contact .inquire .input + .input,
main.contact .inquire .input + .hs-form-field,
main.contact .inquire .hs-form-field + .input,
main.contact .inquire .hs-form-field + .hs-form-field {
  margin-top: 19px;
}
main.contact .inquire .hs-form-field {
  position: relative;
}
main.contact .inquire .hs-form-field label {
  position: absolute;
  visibility: hidden;
}
main.contact .inquire .message {
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  transform: translateY(20px);
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  pointer-events: none;
}
main.contact .inquire input:not([type=submit]),
main.contact .inquire textarea {
  padding: 8px 15px;
  background-color: #2B2B2B;
  width: 100%;
}
main.contact .inquire input:not([type=submit])::placeholder,
main.contact .inquire textarea::placeholder {
  color: #fff;
  opacity: 1;
}
main.contact .inquire input:not([type=submit]):-ms-input-placeholder,
main.contact .inquire textarea:-ms-input-placeholder {
  color: #fff;
  opacity: 1;
}
main.contact .inquire input:not([type=submit])::-ms-input-placeholder,
main.contact .inquire textarea::-ms-input-placeholder {
  color: #fff;
  opacity: 1;
}
main.contact .inquire .hs-input,
main.contact .inquire .hs-error-msgs,
main.contact .inquire .submitted-message {
  font-family: "Archivo", system-ui;
  font-optical-sizing: auto;
  font-weight: 300;
  font-style: normal;
  font-variation-settings: "wdth" 100;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 15px;
  line-height: 1.67;
  letter-spacing: 0.03em;
}
@media screen and (min-width: 500px) {
  main.contact .inquire .hs-input,
  main.contact .inquire .hs-error-msgs,
  main.contact .inquire .submitted-message {
    font-size: 3vw;
  }
}
@media screen and (min-width: 768px) {
  main.contact .inquire .hs-input,
  main.contact .inquire .hs-error-msgs,
  main.contact .inquire .submitted-message {
    font-size: 1.95vw;
  }
}
@media screen and (min-width: 1024px) {
  main.contact .inquire .hs-input,
  main.contact .inquire .hs-error-msgs,
  main.contact .inquire .submitted-message {
    font-size: max(15px, 1.04vw);
  }
}
main.contact .inquire .textarea {
  margin-top: 60px;
}
main.contact .inquire textarea {
  min-height: 281px;
}
main.contact .inquire .hs-error-msgs {
  margin-top: 0.5em;
}
main.contact .inquire .hs-submit,
main.contact .inquire .submit {
  margin-top: 33px;
}
main.contact .inquire .hs-submit {
  display: flex;
}
main.contact .inquire .hs-submit .actions {
  position: relative;
}
main.contact .inquire .hs-submit .actions:after {
  content: "";
  display: block;
  position: absolute;
  top: 100%;
  right: 0;
  width: 22px;
  height: 1px;
  background-color: currentColor;
}
main.contact .inquire button {
  padding: 7px 0 0;
}
@media screen and (min-width: 500px) {
  main.contact .inquire {
    padding-top: 15.2vw;
    padding-bottom: 20.6vw;
  }
  main.contact .inquire .center {
    padding: 0 4vw;
  }
  main.contact .inquire .form {
    margin-top: 7.2vw;
  }
  main.contact .inquire .message {
    transform: translateY(4vw);
  }
  main.contact .inquire .input + .input,
  main.contact .inquire .input + .hs-form-field,
  main.contact .inquire .input + .hs-submit,
  main.contact .inquire .hs-form-field + .input,
  main.contact .inquire .hs-form-field + .hs-form-field,
  main.contact .inquire .hs-form-field + .hs-submit {
    margin-top: 3.8vw;
  }
  main.contact .inquire input:not([type=submit]),
  main.contact .inquire textarea {
    padding: 1.6vw 3vw;
  }
  main.contact .inquire .textarea {
    margin-top: 12vw;
  }
  main.contact .inquire textarea {
    min-height: 56vw;
  }
  main.contact .inquire .hs-submit,
  main.contact .inquire .submit {
    margin-top: 6.6vw;
  }
  main.contact .inquire button {
    padding: 1.4vw 0 0;
  }
}
@media screen and (min-width: 768px) {
  main.contact .inquire {
    padding-top: 12.24vw;
    padding-bottom: 12.24vw;
  }
  main.contact .inquire .center {
    padding: 0 3.91vw;
  }
  main.contact .inquire .copy {
    width: 57.55vw;
    min-width: 442px;
  }
  main.contact .inquire .form {
    margin-top: 5.73vw;
  }
  main.contact .inquire form {
    display: grid;
    grid-template-columns: 300px 1fr;
    grid-template-rows: 1fr 1fr 1fr 1fr 1fr 1fr;
    column-gap: 8.59vw;
    row-gap: 2.47vw;
  }
  main.contact .inquire .message {
    transform: translateY(2.6vw);
  }
  main.contact .inquire .input + .input,
  main.contact .inquire .input + .hs-form-field,
  main.contact .inquire .input + .hs-submit,
  main.contact .inquire .hs-form-field + .input,
  main.contact .inquire .hs-form-field + .hs-form-field,
  main.contact .inquire .hs-form-field + .hs-submit {
    margin-top: 0;
  }
  main.contact .inquire .input .input,
  main.contact .inquire .hs-form-field .input {
    height: 100%;
  }
  main.contact .inquire .hs-form-field:nth-child(1) {
    grid-column: 1/2;
    grid-row: 1/2;
  }
  main.contact .inquire .hs-form-field:nth-child(2) {
    grid-column: 1/2;
    grid-row: 2/3;
  }
  main.contact .inquire .hs-form-field:nth-child(3) {
    grid-column: 1/2;
    grid-row: 3/4;
  }
  main.contact .inquire .hs-form-field:nth-child(4) {
    grid-column: 1/2;
    grid-row: 4/5;
  }
  main.contact .inquire .hs-form-field:nth-child(5) {
    grid-column: 1/2;
    grid-row: 5/6;
  }
  main.contact .inquire .hs-form-field:nth-child(6) {
    grid-column: 2/3;
    grid-row: 1/6;
  }
  main.contact .inquire input:not([type=submit]),
  main.contact .inquire textarea {
    width: 100%;
    padding: 1.04vw 1.95vw;
  }
  main.contact .inquire .textarea {
    flex: 1;
    margin-top: 0;
  }
  main.contact .inquire textarea {
    min-height: 0;
    height: 100%;
  }
  main.contact .inquire .hs-submit,
  main.contact .inquire .submit {
    grid-column: 2/3;
    grid-row: 6/7;
    width: 100%;
    display: flex;
    justify-content: flex-end;
    align-items: flex-start;
  }
  main.contact .inquire button {
    padding: 0;
  }
}
@media screen and (min-width: 1024px) {
  main.contact .inquire {
    padding-top: 6.53vw;
    padding-bottom: 6.53vw;
  }
  main.contact .inquire .center {
    padding: 0 9.38vw;
  }
  main.contact .inquire .copy {
    width: 30.69vw;
  }
  main.contact .inquire .form {
    margin-top: 3.06vw;
  }
  main.contact .inquire form {
    column-gap: 4.58vw;
    row-gap: 1.32vw;
  }
  main.contact .inquire .message {
    transform: translateY(1.39vw);
  }
  main.contact .inquire input:not([type=submit]),
  main.contact .inquire textarea {
    padding: 0.56vw 1.04vw;
  }
  main.contact .inquire .hs-submit,
  main.contact .inquire .submit {
    margin-top: 1.94vw;
  }
  main.contact .inquire .hs-submit .actions:after {
    width: max(22px, 1.53vw);
  }
}
@media screen and (min-width: 1440px) and (min-height: 560px) {
  main.contact .inquire .center {
    padding: 0 20.07vw;
  }
  main.contact .inquire form {
    grid-template-columns: 20.83vw 1fr;
  }
}
main.contact .content {
  padding-top: 59px;
  padding-bottom: 81px;
}
main.contact .content .center {
  padding: 0 20px;
}
main.contact .content picture {
  display: block;
  position: relative;
}
main.contact .content picture:before {
  content: "";
  display: block;
  width: 100%;
  height: 0;
  padding-top: 86.5671641791%;
}
main.contact .content picture picture,
main.contact .content picture img,
main.contact .content picture video,
main.contact .content picture iframe {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
main.contact .content picture video,
main.contact .content picture img {
  object-fit: cover;
}
main.contact .content picture video.is-loaded {
  z-index: 2;
}
main.contact .content .copy {
  margin-top: 44px;
}
main.contact .content .address {
  margin-top: 55px;
}
main.contact .content .social {
  margin-top: 35px;
}
main.contact .content .social ul {
  display: flex;
  justify-content: flex-start;
  gap: 35px;
}
main.contact .content .social a {
  color: #fff;
}
main.contact .content .social svg {
  display: block;
  width: 19px;
  height: 19px;
}
main.contact .content .social svg path {
  fill: currentColor;
}
@media screen and (min-width: 500px) {
  main.contact .content {
    padding-top: 11.8vw;
    padding-bottom: 16.2vw;
  }
  main.contact .content .center {
    padding: 0 4vw;
  }
  main.contact .content .copy {
    margin-top: 8.8vw;
  }
  main.contact .content .address {
    margin-top: 11vw;
  }
  main.contact .content .social {
    margin-top: 7vw;
  }
  main.contact .content .social ul {
    gap: 7vw;
  }
  main.contact .content .social svg {
    width: 3.8vw;
    height: 3.8vw;
  }
}
@media screen and (min-width: 768px) {
  main.contact .content {
    padding-top: 22.79vw;
    padding-bottom: 12.24vw;
  }
  main.contact .content .center {
    display: flex;
    align-items: center;
    padding: 0 3.91vw;
    gap: 3.91vw;
  }
  main.contact .content .media {
    flex: 1;
  }
  main.contact .content .copy {
    margin-top: 0;
    width: 40%;
  }
  main.contact .content .address {
    margin-top: 5.34vw;
  }
  main.contact .content .social {
    margin-top: 4.56vw;
  }
  main.contact .content .social ul {
    justify-content: flex-start;
    gap: 4.56vw;
  }
  main.contact .content .social svg {
    width: 2.73vw;
    height: 2.73vw;
  }
}
@media screen and (min-width: 1024px) {
  main.contact .content {
    padding-top: 12.15vw;
    padding-bottom: 6.53vw;
  }
  main.contact .content .center {
    padding: 0 7.01vw;
    gap: 5.35vw;
  }
  main.contact .content picture {
    display: block;
    position: relative;
  }
  main.contact .content picture:before {
    content: "";
    display: block;
    width: 100%;
    height: 0;
    padding-top: 59.554973822%;
  }
  main.contact .content picture picture,
  main.contact .content picture img,
  main.contact .content picture video,
  main.contact .content picture iframe {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
  }
  main.contact .content picture video,
  main.contact .content picture img {
    object-fit: cover;
  }
  main.contact .content picture video.is-loaded {
    z-index: 2;
  }
  main.contact .content .copy {
    width: 29.17vw;
    min-width: 420px;
  }
  main.contact .content .address {
    margin-top: 2.85vw;
  }
  main.contact .content .social {
    margin-top: 2.43vw;
  }
  main.contact .content .social ul {
    gap: 2.43vw;
  }
  main.contact .content .social svg {
    width: 1.46vw;
    min-width: 21px;
    height: 1.46vw;
    min-height: 21px;
  }
}

body.canPoint .inquire .hs-submit .actions:after {
  transition: 0.75s cubic-bezier(0.65, 0.05, 0.36, 1);
  will-change: width;
}
body.canPoint .inquire .hs-submit .actions:hover:after {
  width: 100%;
}

.splash {
  position: fixed;
  z-index: 15;
  top: 0;
  left: 0;
  width: 100%;
  height: 100dvh;
  background-color: #2B2B2B;
}
.splash .media {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  will-change: opacity, transform;
}
.splash .media img,
.splash .media video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.splash .text {
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 2;
  text-align: center;
  opacity: 0;
}
.splash .text p {
  font-family: "Archivo", system-ui;
  font-optical-sizing: auto;
  font-weight: 300;
  font-style: normal;
  font-variation-settings: "wdth" 100;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 29px;
  line-height: 1;
  letter-spacing: 0;
  color: #fff;
}
@media screen and (min-width: 500px) {
  .splash .text p {
    font-size: 5.8vw;
  }
}
@media screen and (min-width: 768px) {
  .splash .text p {
    font-size: 6.51vw;
  }
}
@media screen and (min-width: 1024px) {
  .splash .text p {
    font-size: max(50px, 3.47vw);
  }
}
.splash .text p div {
  will-change: opacity, transform;
}
.splash.is-ready .media,
.splash.is-ready .text {
  opacity: 1;
}

main.home .hero {
  position: relative;
  height: 100svh;
  width: 100%;
  overflow: hidden;
}
main.home .hero:after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  height: 185px;
  width: 100%;
  background: linear-gradient(to top, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.77));
  opacity: 0.64;
}
main.home .hero .wrap {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
main.home .hero .wrap.is-deactivating {
  z-index: 2;
}
main.home .hero .wrap.is-active {
  z-index: 3;
}
main.home .hero img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
main.home .hero .scroll {
  display: flex;
  justify-content: center;
  position: absolute;
  z-index: 3;
  bottom: 20px;
  width: 100%;
  text-align: center;
}
main.home .hero .scroll svg {
  display: flex;
  width: 30px;
}
@media screen and (min-width: 500px) {
  main.home .hero .scroll {
    bottom: 4vw;
  }
  main.home .hero .scroll svg {
    width: 6vw;
  }
}
@media screen and (min-width: 768px) {
  main.home .hero .scroll {
    bottom: 2.6vw;
  }
  main.home .hero .scroll svg {
    width: 3.91vw;
  }
}
@media screen and (min-width: 1024px) {
  main.home .hero .scroll {
    bottom: max(20px, 1.39vw);
  }
  main.home .hero .scroll svg {
    width: max(30px, 2.08vw);
  }
}
main.home .content {
  padding-top: 79px;
  padding-bottom: 79px;
}
main.home .content .block + .block {
  margin-top: 81px;
}
main.home .content .block-col {
  padding: 0 20px;
}
@media (max-width: 767px) {
  main.home .content .col:not(.col-text) {
    display: none;
  }
}
main.home .content .col:not(.col-text) picture {
  display: block;
  position: relative;
}
main.home .content .col:not(.col-text) picture:before {
  content: "";
  display: block;
  width: 100%;
  height: 0;
  padding-top: 145.0431034483%;
}
main.home .content .col:not(.col-text) picture picture,
main.home .content .col:not(.col-text) picture img,
main.home .content .col:not(.col-text) picture video,
main.home .content .col:not(.col-text) picture iframe {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
main.home .content .col:not(.col-text) picture video,
main.home .content .col:not(.col-text) picture img {
  object-fit: cover;
}
main.home .content .col:not(.col-text) picture video.is-loaded {
  z-index: 2;
}
main.home .content .col:not(.col-text) video {
  z-index: 2;
}
main.home .content .col:not(.col-text) video + picture {
  position: absolute;
  top: 0;
  left: 0;
}
main.home .content .col-text .media {
  padding: 0 38px;
}
main.home .content .col-text picture {
  display: block;
  position: relative;
}
main.home .content .col-text picture:before {
  content: "";
  display: block;
  width: 100%;
  height: 0;
  padding-top: 127.9126213592%;
}
main.home .content .col-text picture picture,
main.home .content .col-text picture img,
main.home .content .col-text picture video,
main.home .content .col-text picture iframe {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
main.home .content .col-text picture video,
main.home .content .col-text picture img {
  object-fit: cover;
}
main.home .content .col-text picture video.is-loaded {
  z-index: 2;
}
main.home .content .col-text video {
  z-index: 2;
}
main.home .content .col-text video + picture {
  position: absolute;
  top: 0;
  left: 0;
}
main.home .content .col-text .copy {
  margin-top: 54px;
}
main.home .content .block-hero picture {
  display: block;
  position: relative;
}
main.home .content .block-hero picture:before {
  content: "";
  display: block;
  width: 100%;
  height: 0;
  padding-top: 118.6666666667%;
}
main.home .content .block-hero picture picture,
main.home .content .block-hero picture img,
main.home .content .block-hero picture video,
main.home .content .block-hero picture iframe {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
main.home .content .block-hero picture video,
main.home .content .block-hero picture img {
  object-fit: cover;
}
main.home .content .block-hero picture video.is-loaded {
  z-index: 2;
}
main.home .content .block-hero .copy {
  padding: 0 20px;
  margin-top: 32px;
}
@media screen and (min-width: 500px) {
  main.home .content {
    padding-top: 15.8vw;
    padding-bottom: 15.8vw;
  }
  main.home .content .block + .block {
    margin-top: 16.2vw;
  }
  main.home .content .block-col {
    padding: 0 4vw;
  }
  main.home .content .col-text .media {
    padding: 0 7.6vw;
  }
  main.home .content .col-text .copy {
    margin-top: 10.8vw;
  }
  main.home .content .block-hero .copy {
    padding: 0 4vw;
    margin-top: 6.4vw;
  }
}
@media screen and (min-width: 768px) {
  main.home .content {
    padding-top: 12.24vw;
    padding-bottom: 12.37vw;
  }
  main.home .content .block + .block {
    margin-top: 12.24vw;
  }
  main.home .content .block-col {
    display: flex;
    align-items: flex-end;
    gap: 4.56vw;
    padding: 0 3.91vw;
  }
  main.home .content .col {
    flex: 1;
  }
  main.home .content .col-text {
    flex: none;
    width: 60%;
  }
  main.home .content .col-text .media {
    padding: 0;
  }
  main.home .content .col-text .copy {
    margin-top: 8.46vw;
  }
  main.home .content .block-hero picture {
    display: block;
    position: relative;
  }
  main.home .content .block-hero picture:before {
    content: "";
    display: block;
    width: 100%;
    height: 0;
    padding-top: 54.8484848485%;
  }
  main.home .content .block-hero picture picture,
  main.home .content .block-hero picture img,
  main.home .content .block-hero picture video,
  main.home .content .block-hero picture iframe {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
  }
  main.home .content .block-hero picture video,
  main.home .content .block-hero picture img {
    object-fit: cover;
  }
  main.home .content .block-hero picture video.is-loaded {
    z-index: 2;
  }
  main.home .content .block-hero .copy {
    padding: 0 3.91vw;
    margin-top: 4.17vw;
  }
}
@media screen and (min-width: 1024px) {
  main.home .content {
    padding-top: 6.53vw;
    padding-bottom: 6.6vw;
  }
  main.home .content .center {
    padding: 0 4.17vw;
  }
  main.home .content .block + .block {
    margin-top: 6.53vw;
  }
  main.home .content .block-col {
    gap: 14.24vw;
    padding: 0 8.33vw;
  }
  main.home .content .col-text {
    width: 28.61vw;
  }
  main.home .content .col-text .copy {
    margin-top: 4.51vw;
  }
  main.home .content .block-hero {
    position: relative;
  }
  main.home .content .block-hero .copy {
    position: absolute;
    bottom: 0;
    right: 0;
    padding: 3.47vw 2.36vw;
    margin-top: 0;
    width: 33.33vw;
  }
}
main.home .projects {
  background-color: #3C3A37;
  padding: 73px 0 80px;
}
main.home .projects .center {
  padding: 0 20px;
}
main.home .projects .a {
  margin-top: 71px;
}
main.home .projects .project a {
  display: flex;
  flex-direction: column;
}
main.home .projects .project + .project {
  margin-top: 52px;
}
main.home .projects .images {
  display: block;
  position: relative;
  overflow: hidden;
}
main.home .projects .images:before {
  content: "";
  display: block;
  width: 100%;
  height: 0;
  padding-top: 64.1791044776%;
}
main.home .projects .images picture,
main.home .projects .images img,
main.home .projects .images video,
main.home .projects .images iframe {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
main.home .projects .images video,
main.home .projects .images img {
  object-fit: cover;
}
main.home .projects .images video.is-loaded {
  z-index: 2;
}
main.home .projects .text {
  position: relative;
  display: flex;
  gap: 14px;
  margin-top: 21px;
}
main.home .projects figcaption {
  font-family: "Archivo", system-ui;
  font-optical-sizing: auto;
  font-weight: 300;
  font-style: normal;
  font-variation-settings: "wdth" 100;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 18px;
  line-height: 1.5;
  letter-spacing: 0;
}
@media (max-width: 1023px) {
  main.home .projects .text {
    flex-direction: column;
    align-items: flex-start;
  }
}
@media screen and (min-width: 500px) {
  main.home .projects {
    padding: 14.6vw 0 16vw;
  }
  main.home .projects .center {
    padding: 0 4vw;
  }
  main.home .projects .a {
    margin-top: 14.2vw;
  }
  main.home .projects .project + .project {
    margin-top: 10.4vw;
  }
  main.home .projects .text {
    gap: 2.8vw;
    margin-top: 4.2vw;
  }
  main.home .projects figcaption {
    font-size: 3.6vw;
  }
}
@media screen and (min-width: 768px) {
  main.home .projects {
    padding: 11.85vw 0 11.07vw;
  }
  main.home .projects .center {
    padding: 0 3.91vw;
  }
  main.home .projects .a {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2.6vw;
    margin-top: 9.24vw;
  }
  main.home .projects .project + .project {
    margin-top: 0;
  }
  main.home .projects .text {
    gap: 1.82vw;
    margin-top: 2.73vw;
  }
  main.home .projects figcaption {
    font-size: 2.99vw;
  }
}
@media screen and (min-width: 1024px) {
  main.home .projects {
    padding: 6.32vw 0 6.25vw;
  }
  main.home .projects .center {
    padding: 0 4.17vw;
  }
  main.home .projects .copy {
    width: 44.72vw;
  }
  main.home .projects .a {
    gap: 2.22vw;
    margin-top: 3.82vw;
  }
  main.home .projects .text {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2.22vw;
    margin-top: 1.81vw;
  }
  main.home .projects .text:after {
    content: "";
    display: block;
    position: absolute;
    top: 100%;
    right: 0;
    width: 22px;
    height: 1px;
    background-color: currentColor;
  }
  main.home .projects button:after {
    content: none;
  }
  main.home .projects figcaption {
    font-size: max(23px, 1.6vw);
  }
}
main.home .clients {
  padding: 81px 0 50px;
}
main.home .clients .center {
  display: flex;
  padding: 0 20px;
}
main.home .clients .cards {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 12px;
}
main.home .clients .card {
  position: relative;
}
main.home .clients .back {
  display: block;
  position: relative;
  opacity: 0.61;
}
main.home .clients .back:before {
  content: "";
  display: block;
  width: 100%;
  height: 0;
  padding-top: 140.3587443946%;
}
main.home .clients .back picture,
main.home .clients .back img,
main.home .clients .back video,
main.home .clients .back iframe {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
main.home .clients .back video,
main.home .clients .back img {
  object-fit: cover;
}
main.home .clients .back video.is-loaded {
  z-index: 2;
}
main.home .clients .logo {
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
main.home .clients .logo picture {
  display: block;
  width: 69.95%;
  height: 23%;
}
main.home .clients .logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
@media (max-width: 767px) {
  main.home .clients .center {
    flex-direction: column;
  }
  main.home .clients .copy {
    order: 2;
    margin-top: 39px;
  }
}
@media screen and (max-width: 767px) and (min-width: 500px) {
  main.home .clients .copy {
    margin-top: 7.8vw;
  }
}
@media (max-width: 767px) {
  main.home .clients .media {
    order: 1;
  }
}
@media screen and (min-width: 500px) {
  main.home .clients {
    padding: 16.2vw 0 10vw;
  }
  main.home .clients .center {
    padding: 0 4vw;
  }
  main.home .clients .cards {
    gap: 2.4vw;
  }
}
@media screen and (min-width: 768px) {
  main.home .clients {
    padding: 12.5vw 0 4.82vw;
  }
  main.home .clients .center {
    align-items: center;
    padding: 0 3.91vw;
    gap: 3.91vw;
  }
  main.home .clients .copy {
    width: 40%;
  }
  main.home .clients .media {
    flex: 1;
  }
  main.home .clients .cards {
    gap: 2.15vw;
  }
}
@media screen and (min-width: 1024px) {
  main.home .clients {
    padding: 6.67vw 0 2.57vw;
  }
  main.home .clients .center {
    padding: 0 7.5vw;
    gap: 6.74vw;
  }
  main.home .clients .copy {
    width: 27.57vw;
  }
  main.home .clients .p {
    font-size: max(22px, 1.53vw);
    line-height: 1.36;
  }
}

body.canPoint main.home .projects .a {
  pointer-events: none;
}
body.canPoint main.home .projects .a:hover .project {
  opacity: 0.5;
}
body.canPoint main.home .projects .a .project {
  transition: 1s cubic-bezier(0.65, 0.05, 0.36, 1);
}
body.canPoint main.home .projects .a .project:hover {
  opacity: 1;
}
body.canPoint main.home .projects .project {
  pointer-events: all;
}
body.canPoint main.home .projects a:hover picture {
  transform: scale(1.05);
}
body.canPoint main.home .projects a:hover .text:after {
  width: 100%;
}
body.canPoint main.home .projects picture,
body.canPoint main.home .projects .text:after,
body.canPoint main.home .projects figcaption {
  transition: 1s cubic-bezier(0.65, 0.05, 0.36, 1);
}
body.canPoint main.home .projects picture {
  will-change: transform;
}
body.canPoint main.home .projects .text:after {
  will-change: width;
}
body.canPoint main.home .projects figcaption {
  will-change: opacity;
}

main.process .steps {
  padding: 136px 0 76px;
}
main.process .steps .center {
  padding: 0 20px;
}
main.process .steps .list {
  margin-top: 79px;
}
main.process .steps ol {
  counter-set: step 0;
}
main.process .steps li {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  counter-increment: step 1;
}
main.process .steps li + li {
  margin-top: 74px;
}
main.process .steps .number {
  flex: 1;
  display: flex;
  align-items: center;
  position: relative;
  line-height: 0.6;
}
main.process .steps .number p {
  will-change: transform, opacity;
}
main.process .steps .line {
  display: block;
  margin-right: 16px;
  width: 32px;
  height: 1px;
  background-color: #fff;
  transform-origin: left;
  will-change: transform;
}
main.process .steps .image {
  display: block;
  position: relative;
  width: 201px;
}
main.process .steps .image:before {
  content: "";
  display: block;
  width: 100%;
  height: 0;
  padding-top: 124.8756218905%;
}
main.process .steps .image picture,
main.process .steps .image img,
main.process .steps .image video,
main.process .steps .image iframe {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
main.process .steps .image video,
main.process .steps .image img {
  object-fit: cover;
}
main.process .steps .image video.is-loaded {
  z-index: 2;
}
main.process .steps .text {
  margin-top: 39px;
  width: 100%;
}
@media (max-width: 767px) {
  main.process .steps .images {
    display: none;
  }
}
@media screen and (min-width: 500px) {
  main.process .steps {
    padding: 27.2vw 0 15.2vw;
  }
  main.process .steps .center {
    padding: 0 4vw;
  }
  main.process .steps .list {
    margin-top: 15.8vw;
  }
  main.process .steps li + li {
    margin-top: 14.8vw;
  }
  main.process .steps .line {
    margin-right: 3.2vw;
    width: 6.4vw;
  }
  main.process .steps .image {
    width: 40.2vw;
  }
  main.process .steps .text {
    margin-top: 7.8vw;
  }
}
@media screen and (min-width: 768px) {
  main.process .steps {
    padding: 23.31vw 0 11.46vw;
  }
  main.process .steps .center {
    padding: 0 3.91vw;
  }
  main.process .steps .copy {
    width: 49.09vw;
    min-width: 377px;
  }
  main.process .steps h1 {
    width: 36.46vw;
    min-width: 280px;
  }
  main.process .steps h1 + .p {
    margin-top: 1.82vw;
  }
  main.process .steps .list {
    display: flex;
    align-items: flex-start;
    gap: 8.4vw;
    margin-top: 7.94vw;
  }
  main.process .steps .list.in ol:before {
    height: 100%;
    transition: 5s;
  }
  main.process .steps .wrapper {
    flex: 1;
    position: relative;
  }
  main.process .steps .track {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 1px;
    height: 100%;
  }
  main.process .steps .track div {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 1px;
    height: 100%;
    background-color: #fff;
    transform-origin: top;
    will-change: transform;
  }
  main.process .steps ol {
    position: relative;
    padding-top: 8.68vw;
  }
  main.process .steps li {
    position: relative;
    padding-left: 7.57vw;
  }
  main.process .steps li + li {
    margin-top: 23.44vw;
  }
  main.process .steps li:last-child {
    padding-bottom: 17.29vw;
  }
  main.process .steps li:last-child:before {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 1px;
    height: 100%;
    background-color: #2B2B2B;
  }
  main.process .steps .images {
    display: flex;
    position: sticky;
    top: 0vw;
    max-height: 100lvh;
    width: 24.03vw;
  }
  main.process .steps .images .media {
    margin: auto;
    width: 100%;
    display: block;
    position: relative;
    overflow: hidden;
  }
  main.process .steps .images .media:before {
    content: "";
    display: block;
    width: 100%;
    height: 0;
    padding-top: 124.8554913295%;
  }
  main.process .steps .images .media picture,
  main.process .steps .images .media img,
  main.process .steps .images .media video,
  main.process .steps .images .media iframe {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
  }
  main.process .steps .images .media video,
  main.process .steps .images .media img {
    object-fit: cover;
  }
  main.process .steps .images .media video.is-loaded {
    z-index: 2;
  }
  main.process .steps .images .wrap {
    transition: 0.5s;
  }
  main.process .steps .images .wrap picture,
  main.process .steps .images .wrap video {
    transition: 1s;
  }
  main.process .steps .images .wrap.is-active {
    opacity: 1;
  }
  main.process .steps .images .wrap.is-active picture,
  main.process .steps .images .wrap.is-active video {
    transform: scale(1.005);
  }
  main.process .steps .images .wrap:not(.is-active) {
    opacity: 0;
  }
  main.process .steps .images .wrap:not(.is-active) picture,
  main.process .steps .images .wrap:not(.is-active) video {
    transform: scale(1.05);
  }
  main.process .steps .number {
    position: absolute;
    top: 0;
    left: -2.08vw;
    line-height: 1.4;
    background-color: #2B2B2B;
  }
  main.process .steps .line {
    position: relative;
    margin-right: 2.08vw;
    width: 4.17vw;
  }
  main.process .steps .image {
    display: none;
    width: 26.17vw;
  }
  main.process .steps .text {
    margin-top: 0;
  }
}
@media screen and (min-width: 1024px) {
  main.process .steps {
    padding: 12.43vw 0 6.11vw;
  }
  main.process .steps .center {
    padding: 0 13.61vw;
  }
  main.process .steps .copy {
    width: 26.18vw;
  }
  main.process .steps h1 {
    width: 19.44vw;
  }
  main.process .steps h1 + .p {
    margin-top: 0.97vw;
  }
  main.process .steps .list {
    margin-top: 4.24vw;
  }
  main.process .steps li + li {
    margin-top: 12.5vw;
  }
  main.process .steps .number {
    left: -1.11vw;
  }
  main.process .steps .line {
    margin-right: 1.11vw;
    width: 2.22vw;
  }
  main.process .steps .text {
    width: 26.18vw;
  }
}
main.process .content {
  padding: 81px 0 50px;
  background-color: #3C3A37;
}
main.process .content .center {
  display: flex;
  padding: 0 20px;
}
main.process .content .media {
  display: block;
  position: relative;
}
main.process .content .media:before {
  content: "";
  display: block;
  width: 100%;
  height: 0;
  padding-top: 86.5671641791%;
}
main.process .content .media picture,
main.process .content .media img,
main.process .content .media video,
main.process .content .media iframe {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
main.process .content .media video,
main.process .content .media img {
  object-fit: cover;
}
main.process .content .media video.is-loaded {
  z-index: 2;
}
@media (max-width: 767px) {
  main.process .content .center {
    flex-direction: column;
  }
  main.process .content .copy {
    order: 2;
    margin-top: 39px;
  }
}
@media screen and (max-width: 767px) and (min-width: 500px) {
  main.process .content .copy {
    margin-top: 7.8vw;
  }
}
@media (max-width: 767px) {
  main.process .content .media {
    order: 1;
  }
}
@media screen and (min-width: 500px) {
  main.process .content {
    padding: 16.2vw 0 10vw;
  }
  main.process .content .center {
    padding: 0 4vw;
  }
}
@media screen and (min-width: 768px) {
  main.process .content {
    padding: 12.11vw 0 12.37vw;
  }
  main.process .content .center {
    align-items: center;
    padding: 0 3.91vw;
    gap: 3.91vw;
  }
  main.process .content .copy {
    width: 40%;
  }
  main.process .content .media {
    flex: 1;
  }
}
@media screen and (min-width: 1024px) {
  main.process .content {
    padding: 6.46vw 0 6.6vw;
  }
  main.process .content .center {
    padding: 0 7.29vw;
    gap: 4.65vw;
  }
  main.process .content .copy {
    width: 22.29vw;
  }
  main.process .content .media {
    display: block;
    position: relative;
  }
  main.process .content .media:before {
    content: "";
    display: block;
    width: 100%;
    height: 0;
    padding-top: 56.2277580071%;
  }
  main.process .content .media picture,
  main.process .content .media img,
  main.process .content .media video,
  main.process .content .media iframe {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
  }
  main.process .content .media video,
  main.process .content .media img {
    object-fit: cover;
  }
  main.process .content .media video.is-loaded {
    z-index: 2;
  }
}
@media screen and (min-width: 1440px) and (min-height: 560px) {
  main.process .content .copy {
    margin-top: 7.22vw;
  }
}
main.process .projects {
  padding: 76px 0 61px;
}
main.process .projects .copy {
  padding: 0 20px;
}
main.process .projects ul {
  display: flex;
  width: fit-content;
  gap: 21px;
  margin-top: 57px;
  padding: 0 20px;
}
main.process .projects li {
  width: 260px;
}
main.process .projects .media {
  display: block;
  position: relative;
}
main.process .projects .media:before {
  content: "";
  display: block;
  width: 100%;
  height: 0;
  padding-top: 129.6153846154%;
}
main.process .projects .media picture,
main.process .projects .media img,
main.process .projects .media video,
main.process .projects .media iframe {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
main.process .projects .media video,
main.process .projects .media img {
  object-fit: cover;
}
main.process .projects .media video.is-loaded {
  z-index: 2;
}
main.process .projects .text {
  margin-top: 27px;
}
@media screen and (min-width: 500px) {
  main.process .projects {
    padding: 15.2vw 0 12.2vw;
  }
  main.process .projects .copy {
    padding: 0 4vw;
  }
  main.process .projects ul {
    gap: 4.2vw;
    margin-top: 11.4vw;
    padding: 0 4vw;
  }
  main.process .projects li {
    width: 52vw;
  }
  main.process .projects .text {
    margin-top: 5.4vw;
  }
}
@media screen and (min-width: 768px) {
  main.process .projects {
    padding: 11.98vw 0 4.56vw;
  }
  main.process .projects .copy {
    padding: 0 3.91vw;
    width: 75.39vw;
    min-width: 579px;
  }
  main.process .projects ul {
    gap: 2.6vw;
    margin-top: 8.59vw;
    padding: 0 3.91vw;
  }
  main.process .projects li {
    width: 38.93vw;
    min-width: 299px;
  }
  main.process .projects .text {
    margin-top: 4.04vw;
  }
}
@media (max-width: 1023px) {
  main.process .projects {
    overflow: hidden;
  }
  main.process .projects .list {
    overflow: auto;
  }
}
@media screen and (min-width: 1024px) {
  main.process .projects {
    padding: 6.39vw 0 2.43vw;
  }
  main.process .projects .center {
    padding: 0 4.17vw;
  }
  main.process .projects .copy {
    padding: 0;
    width: 40.21vw;
  }
  main.process .projects ul {
    display: grid;
    width: 100%;
    grid-template-columns: 1fr 1fr 1fr 1fr;
    gap: 2.78vw;
    margin-top: 4.58vw;
    padding: 0;
  }
  main.process .projects li {
    width: auto;
    min-width: 0;
  }
  main.process .projects .text {
    margin-top: 2.15vw;
  }
}

.videoModal {
  display: flex;
  justify-content: center;
  align-items: center;
  position: fixed;
  z-index: 20;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  padding: 20px;
  pointer-events: none;
}
.videoModal.is-active {
  pointer-events: all;
}
.videoModal.is-active .overlay {
  opacity: 1;
}
.videoModal.is-active .inner,
.videoModal.is-active .closeButtonContainer {
  opacity: 1;
  transform: translateY(0);
}
.videoModal.is-active .closeButtonContainer {
  transition-delay: 0.25s;
}
.videoModal .overlay {
  position: fixed;
  z-index: 1;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.85);
  opacity: 0;
  transition: 1s;
}
.videoModal .inner {
  z-index: 2;
  opacity: 0;
  transform: translateY(20px);
  transition: 0.75s;
}
.videoModal .inner video {
  margin: auto;
  max-height: 75vh;
  width: auto;
  max-width: 100%;
  aspect-ratio: 16/9;
}
.videoModal .inner iframe {
  width: 100%;
  height: auto;
  max-height: 75vh;
  aspect-ratio: 640/360;
}
.videoModal .closeButtonContainer {
  position: absolute;
  z-index: 3;
  top: 14px;
  right: 12px;
  opacity: 0;
  transform: translateY(20px);
  transition: 0.75s;
}
.videoModal .closeVideo {
  display: block;
  padding: 10px;
  border-radius: 50%;
  background-color: rgba(255, 255, 255, 0.73);
}
.videoModal .closeVideo svg {
  display: block;
  width: 16px;
}
.videoModal .closeVideo path {
  fill: rgba(0, 0, 0, 0.73);
}
@media (min-width: 500px) {
  .videoModal {
    padding: 4vw;
  }
  .videoModal .closeButtonContainer {
    top: 2.8vw;
    right: 2.4vw;
  }
  .videoModal .closeVideo {
    padding: 2vw;
  }
  .videoModal .closeVideo svg {
    width: 3.2vw;
  }
}
@media (min-width: 768px) {
  .videoModal {
    padding: 5vw;
  }
  .videoModal .closeButtonContainer {
    top: 14px;
    right: 12px;
  }
  .videoModal .closeVideo {
    padding: 15px;
  }
  .videoModal .closeVideo svg {
    width: 16px;
  }
}
@media (min-width: 1024px) {
  .videoModal {
    padding: 5vw;
  }
  .videoModal .closeButtonContainer {
    top: 1.67vw;
    right: 1.67vw;
  }
  .videoModal .closeVideo {
    padding: 1.04vw;
  }
  .videoModal .closeVideo svg {
    width: 1.11vw;
  }
}

body.canPoint main.process .content .media.openVideo {
  cursor: pointer;
}
body.canPoint .videoModal .closeVideo {
  transition: 0.5s;
}
body.canPoint .videoModal .closeVideo:hover {
  opacity: 0.7;
}
body.canPoint .videoModal .closeVideo:active {
  transform: scale(0.95);
  transition: 0.15s;
}

main.project .center {
  padding: 0 20px;
}
@media screen and (min-width: 500px) {
  main.project .center {
    padding: 0 4vw;
  }
}
@media screen and (min-width: 768px) {
  main.project .center {
    padding: 0 3.91vw;
  }
}
main.project .content {
  padding-top: 129px;
}
main.project .content h1 + h2 {
  margin-top: 5px;
}
main.project .content h2 + .p {
  margin-top: 23px;
}
main.project .content .credits {
  margin-top: 43px;
}
main.project .content .credit + .credit {
  margin-top: 22px;
}
@media screen and (min-width: 500px) {
  main.project .content {
    padding-top: 25.8vw;
  }
  main.project .content h1 + h2 {
    margin-top: 1vw;
  }
  main.project .content h2 + .p {
    margin-top: 4.6vw;
  }
  main.project .content .credits {
    margin-top: 8.6vw;
  }
  main.project .content .credit + .credit {
    margin-top: 4.4vw;
  }
}
@media screen and (min-width: 768px) {
  main.project .content {
    padding-top: 27.6vw;
  }
  main.project .content .center {
    display: flex;
    justify-content: space-between;
    gap: 3.91vw;
    width: 100%;
  }
  main.project .content .copy {
    flex: 1;
  }
  main.project .content h1 + h2 {
    margin-top: 0.65vw;
  }
  main.project .content h2 + .p {
    margin-top: 5.34vw;
  }
  main.project .content .credits {
    margin-top: 0;
    width: 25.52vw;
    min-width: 196px;
  }
  main.project .content .credit + .credit {
    margin-top: 2.86vw;
  }
}
@media screen and (min-width: 1024px) {
  main.project .content {
    padding-top: 14.72vw;
  }
  main.project .content .center {
    padding: 0 8.13vw;
  }
  main.project .content .copy {
    flex: none;
    width: 36.32vw;
    min-width: 523px;
  }
  main.project .content h1 + h2 {
    margin-top: 0.35vw;
  }
  main.project .content h2 + .p {
    margin-top: 2.85vw;
  }
  main.project .content .credits {
    margin-top: 0;
    width: 13.61vw;
    min-width: 196px;
  }
  main.project .content .credit + .credit {
    margin-top: 1.53vw;
  }
}
@media screen and (min-width: 1440px) and (min-height: 560px) {
  main.project .content .center {
    padding: 0 16.32vw;
  }
}
main.project .gallery {
  padding-top: 78px;
  overflow: hidden;
}
main.project .gallery .splide__track {
  overflow: visible;
}
main.project .gallery li + li {
  margin-top: 20px;
}
@media screen and (min-width: 500px) {
  main.project .gallery {
    padding-top: 15.6vw;
  }
  main.project .gallery li + li {
    margin-top: 4vw;
  }
}
@media screen and (min-width: 768px) {
  main.project .gallery {
    padding-top: 11.46vw;
  }
}
@media (max-width: 1023px) {
  main.project .gallery {
    visibility: visible;
  }
  main.project .gallery .splide__list {
    flex-direction: column;
  }
  main.project .gallery .cursor {
    display: none;
  }
}
@media screen and (min-width: 1024px) {
  main.project .gallery {
    padding-top: 6.11vw;
  }
  main.project .gallery .center {
    padding: 0 2.78vw;
  }
  main.project .gallery li + li {
    margin-top: 0;
    margin-left: 40px;
  }
  main.project .gallery img,
  main.project .gallery video {
    height: 38.89vw;
    max-height: 63.64vh;
    width: auto;
  }
}
main.project .more {
  padding-top: 92px;
  padding-bottom: 92px;
}
@media screen and (min-width: 500px) {
  main.project .more {
    padding-top: 18.4vw;
    padding-bottom: 18.4vw;
  }
}
@media screen and (min-width: 768px) {
  main.project .more {
    padding-top: 11.46vw;
    padding-bottom: 6.12vw;
  }
  main.project .more .center {
    width: 100%;
  }
}
@media screen and (min-width: 1024px) {
  main.project .more {
    padding-top: 6.11vw;
    padding-bottom: 3.26vw;
  }
  main.project .more .center {
    padding: 0 8.13vw;
  }
}
@media screen and (min-width: 1440px) and (min-height: 560px) {
  main.project .more .center {
    padding: 0 16.32vw;
  }
}

@media screen and (min-width: 1024px) {
  body:not(.canTouch) main.project .gallery .cursor {
    display: flex;
    justify-content: center;
    align-items: center;
    position: fixed;
    top: 0;
    left: 0;
    width: 5vw;
    height: 5vw;
    width: 72px;
    height: 72px;
    background-color: rgba(0, 0, 0, 0.73);
    border-radius: 50%;
    pointer-events: none;
    will-change: opacity, transform;
  }
  body:not(.canTouch) main.project .gallery .cursor svg {
    display: block;
    width: 2.57vw;
    width: 37px;
    transition: 0.5s;
  }
  body:not(.canTouch) main.project .gallery .cursor.is-right svg {
    transform: rotate(180deg);
  }
}
body:not(.canTouch) main.project .gallery .buttons {
  display: none;
}

@media screen and (min-width: 1024px) {
  body.canTouch main.project .gallery .cursor {
    display: none;
  }
  body.canTouch main.project .gallery .buttons {
    display: flex;
    align-items: center;
    justify-content: space-between;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
  }
  body.canTouch main.project .gallery .button {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 48px;
    height: 48px;
    background-color: rgba(0, 0, 0, 0.73);
    pointer-events: all;
    will-change: opacity, transform;
  }
  body.canTouch main.project .gallery .button svg {
    display: block;
    width: 24px;
    transition: 0.5s;
  }
  body.canTouch main.project .gallery .button-prev svg {
    transform: rotate(90deg) translateY(15%);
  }
  body.canTouch main.project .gallery .button-next svg {
    transform: rotate(-90deg) translateY(15%);
  }
  body.canTouch main.project .gallery .button.is-right svg {
    transform: rotate(180deg);
  }
}

@media (max-width: 767px) {
  main.projects nav {
    position: sticky;
    z-index: 3;
    top: calc(var(--header-height) - 1px);
    left: 0;
    width: 100%;
  }
  main.projects nav.is-open li:not(.is-active) {
    display: flex;
  }
  main.projects nav.is-open svg {
    transform: rotate(180deg);
  }
  main.projects nav .center {
    position: relative;
  }
  main.projects nav ul {
    display: flex;
    flex-direction: column;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    background-color: #3C3A37;
  }
  main.projects nav li {
    order: 2;
    display: flex;
    align-items: center;
    height: 39px;
    width: 100%;
    padding: 0 20px;
  }
  main.projects nav li.is-active {
    order: 1;
  }
  main.projects nav li.is-active svg {
    opacity: 1;
  }
  main.projects nav li:not(.is-active) {
    display: none;
  }
  main.projects nav a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
  }
}
@media (max-width: 767px) and (max-width: 767px) {
  main.projects nav a:active {
    transform: none !important;
  }
}
@media (max-width: 767px) {
  main.projects nav svg {
    display: block;
    width: 17px;
    opacity: 0;
  }
  main.projects nav .underline:after {
    content: none;
  }
}
@media screen and (max-width: 767px) and (min-width: 500px) {
  main.projects nav li {
    height: 7.8vw;
    padding: 0 4vw;
  }
}
@media screen and (min-width: 768px) {
  main.projects nav {
    padding-top: 21.74vw;
  }
  main.projects nav .center {
    padding: 0 3.91vw;
  }
  main.projects nav ul {
    display: flex;
    gap: 4.17vw;
  }
  main.projects nav li:not(.is-active) a:after {
    width: 0;
  }
  main.projects nav svg {
    display: none;
  }
}
@media screen and (min-width: 1024px) {
  main.projects nav {
    padding-top: 11.6vw;
  }
  main.projects nav .center {
    padding: 0 5.76vw;
  }
  main.projects nav ul {
    gap: 4.17vw;
  }
}
@media screen and (min-width: 1440px) and (min-height: 560px) {
  main.projects nav .center {
    padding: 0 11.6vw;
  }
}
main.projects .content {
  padding-top: 141px;
}
main.projects .content .center {
  padding: 0 20px;
}
@media screen and (min-width: 500px) {
  main.projects .content {
    padding-top: 28.2vw;
  }
  main.projects .content .center {
    padding: 0 4vw;
  }
}
@media screen and (min-width: 768px) {
  main.projects .content {
    padding-top: 11.07vw;
  }
  main.projects .content .center {
    padding: 0 3.91vw;
  }
}
@media screen and (min-width: 1024px) {
  main.projects .content {
    padding-top: 5.9vw;
  }
  main.projects .content .center {
    padding: 0 5.76vw;
  }
  main.projects .content .copy {
    width: 41.67vw;
    min-width: 600px;
  }
}
@media screen and (min-width: 1440px) and (min-height: 560px) {
  main.projects .content .center {
    padding: 0 11.6vw;
  }
}
main.projects .list {
  position: relative;
  padding-top: 53px;
  padding-bottom: 47px;
}
main.projects .list ul {
  display: grid;
  grid-template-columns: 1fr;
  gap: 50px;
}
main.projects .list li {
  padding: 0 20px;
}
main.projects .list li .media {
  display: block;
  position: relative;
}
main.projects .list li .media:before {
  content: "";
  display: block;
  width: 100%;
  height: 0;
  padding-top: 129.8507462687%;
}
main.projects .list li .media picture,
main.projects .list li .media img,
main.projects .list li .media video,
main.projects .list li .media iframe {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
main.projects .list li .media video,
main.projects .list li .media img {
  object-fit: cover;
}
main.projects .list li .media video.is-loaded {
  z-index: 2;
}
main.projects .list .text {
  margin-top: 13px;
  text-align: center;
}
@media screen and (min-width: 500px) {
  main.projects .list {
    padding-top: 10.6vw;
    padding-bottom: 9.4vw;
  }
  main.projects .list ul {
    gap: 10vw;
  }
  main.projects .list li {
    padding: 0 4vw;
  }
  main.projects .list .text {
    margin-top: 2.6vw;
  }
}
@media screen and (min-width: 768px) {
  main.projects .list {
    padding-top: 7.42vw;
    padding-bottom: 10.55vw;
  }
  main.projects .list .center {
    padding: 0 3.91vw;
  }
  main.projects .list ul {
    grid-template-columns: 1fr 1fr 1fr;
    column-gap: 4.24vw;
    row-gap: 5.63vw;
  }
  main.projects .list li {
    padding: 0;
  }
  main.projects .list li:not(.wide):not(.full) .media {
    display: block;
    position: relative;
  }
  main.projects .list li:not(.wide):not(.full) .media:before {
    content: "";
    display: block;
    width: 100%;
    height: 0;
    padding-top: 129.7872340426%;
  }
  main.projects .list li:not(.wide):not(.full) .media picture,
  main.projects .list li:not(.wide):not(.full) .media img,
  main.projects .list li:not(.wide):not(.full) .media video,
  main.projects .list li:not(.wide):not(.full) .media iframe {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
  }
  main.projects .list li:not(.wide):not(.full) .media video,
  main.projects .list li:not(.wide):not(.full) .media img {
    object-fit: cover;
  }
  main.projects .list li:not(.wide):not(.full) .media video.is-loaded {
    z-index: 2;
  }
  main.projects .list li.wide {
    grid-column: span 2;
  }
  main.projects .list li.wide .media {
    display: block;
    position: relative;
  }
  main.projects .list li.wide .media:before {
    content: "";
    display: block;
    width: 100%;
    height: 0;
    padding-top: 59.4707520891%;
  }
  main.projects .list li.wide .media picture,
  main.projects .list li.wide .media img,
  main.projects .list li.wide .media video,
  main.projects .list li.wide .media iframe {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
  }
  main.projects .list li.wide .media video,
  main.projects .list li.wide .media img {
    object-fit: cover;
  }
  main.projects .list li.wide .media video.is-loaded {
    z-index: 2;
  }
  main.projects .list li.wide .text {
    padding: 0;
  }
  main.projects .list li.full {
    grid-column: span 3;
  }
  main.projects .list li.full .media {
    display: block;
    position: relative;
  }
  main.projects .list li.full .media:before {
    content: "";
    display: block;
    width: 100%;
    height: 0;
    padding-top: 52.935862692%;
  }
  main.projects .list li.full .media picture,
  main.projects .list li.full .media img,
  main.projects .list li.full .media video,
  main.projects .list li.full .media iframe {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
  }
  main.projects .list li.full .media video,
  main.projects .list li.full .media img {
    object-fit: cover;
  }
  main.projects .list li.full .media video.is-loaded {
    z-index: 2;
  }
  main.projects .list .text {
    margin-top: 1.82vw;
    text-align: left;
  }
}
@media screen and (min-width: 1024px) {
  main.projects .list {
    padding-top: 3.96vw;
    padding-bottom: 5.63vw;
  }
  main.projects .list .center {
    padding: 0 5.76vw;
  }
  main.projects .list .text {
    margin-top: 0.97vw;
  }
}
@media screen and (min-width: 1440px) and (min-height: 560px) {
  main.projects .list .center {
    padding: 0 11.6vw;
  }
}

body.canPoint main.projects nav ul {
  pointer-events: none;
}
body.canPoint main.projects nav ul:hover a {
  opacity: 0.5;
}
body.canPoint main.projects nav ul:hover a:after {
  width: 0;
}
body.canPoint main.projects nav ul a {
  will-change: opacity;
  transition: 1s cubic-bezier(0.65, 0.05, 0.36, 1);
}
body.canPoint main.projects nav ul a:hover {
  opacity: 1;
}
body.canPoint main.projects nav li {
  pointer-events: all;
}
body.canPoint main.projects nav a:hover picture,
body.canPoint main.projects nav a:hover video {
  transform: scale(1.05);
}
body.canPoint main.projects .list ul {
  pointer-events: none;
}
body.canPoint main.projects .list ul:hover a {
  opacity: 0.5;
}
body.canPoint main.projects .list ul a {
  will-change: opacity;
  transition: 1s cubic-bezier(0.65, 0.05, 0.36, 1);
}
body.canPoint main.projects .list ul a:hover {
  opacity: 1;
}
body.canPoint main.projects .list li {
  pointer-events: all;
}
body.canPoint main.projects .list a:hover picture,
body.canPoint main.projects .list a:hover video {
  transform: scale(1.05);
}
body.canPoint main.projects .list .media {
  overflow: hidden;
}
body.canPoint main.projects .list picture,
body.canPoint main.projects .list video {
  transition: 1s cubic-bezier(0.65, 0.05, 0.36, 1);
  will-change: transform;
}