@import "https://fonts.googleapis.com/css2?family=Onest:wght@300;400;500;600&display=swap";

html {
    position: relative;
    line-height: 1.15;
    -webkit-text-size-adjust: 100%;
    scroll-behavior: smooth;
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased
}

body, h1, h2, h3, h4, h5, h6, p, blockquote {
    margin: 0
}

main {
    display: block
}

h1 {
    font-size: 2em
}

hr {
    box-sizing: content-box;
    height: 0;
    overflow: visible
}

pre {
    font-family: monospace, monospace;
    font-size: 1em
}

a {
    background-color: rgba(0, 0, 0, 0);
    text-decoration: none
}

abbr[title] {
    border-bottom: none;
    text-decoration: underline;
    text-decoration: underline dotted
}

b, strong {
    font-weight: bolder
}

code, kbd, samp {
    font-family: monospace, monospace;
    font-size: 1em
}

small {
    font-size: 80%
}

sub, sup {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline
}

sub {
    bottom: -0.25em
}

sup {
    top: -0.5em
}

img {
    border-style: none;
    display: block
}

button, input, optgroup, select, textarea {
    font-family: inherit;
    font-size: 100%;
    line-height: 1.15;
    margin: 0
}

button, input {
    overflow: visible
}

button, select {
    text-transform: none
}

button, [type=button], [type=reset], [type=submit] {
    -webkit-appearance: button
}

button::-moz-focus-inner, [type=button]::-moz-focus-inner, [type=reset]::-moz-focus-inner, [type=submit]::-moz-focus-inner {
    border-style: none;
    padding: 0
}

button:-moz-focusring, [type=button]:-moz-focusring, [type=reset]:-moz-focusring, [type=submit]:-moz-focusring {
    outline: 1px dotted ButtonText
}

fieldset {
    padding: .35em .75em .625em
}

legend {
    box-sizing: border-box;
    color: inherit;
    display: table;
    max-width: 100%;
    padding: 0;
    white-space: normal
}

progress {
    vertical-align: baseline
}

textarea {
    overflow: auto
}

[type=checkbox], [type=radio] {
    box-sizing: border-box;
    padding: 0
}

[type=number]::-webkit-inner-spin-button, [type=number]::-webkit-outer-spin-button {
    height: auto
}

[type=search] {
    -webkit-appearance: textfield;
    outline-offset: -2px
}

[type=search]::-webkit-search-decoration {
    -webkit-appearance: none
}

::-webkit-file-upload-button {
    -webkit-appearance: button;
    font: inherit
}

details {
    display: block
}

summary {
    display: list-item
}

template {
    display: none
}

[hidden] {
    display: none
}

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

html {
    box-sizing: border-box
}

body {
    font-family: "Onest", sans-serif
}

.h1 {
    font: 500 32px/1.15 "Onest", sans-serif;
    color: #231f20
}

.h2 {
    font: 500 28px/1.2 "Onest", sans-serif;
    color: #231f20
}

.h3, .text-content h2 {
    font: 500 24px/1.2 "Onest", sans-serif;
    color: #231f20
}

.h4 {
    font: 500 18px/1.2 "Onest", sans-serif;
    color: #231f20
}

.p-small {
    font: 300 15px/1.45 "Onest", sans-serif
}

.p-medium {
    font: 400 16px/1.4 "Onest", sans-serif
}

.p-large {
    font: 400 18px/1.4 "Onest", sans-serif
}

p, ul {
    font: 400 16px/1.4 "Onest", sans-serif;
    color: #5a5a5a
}

@media only screen and (min-width: 1024px) {
    .h1 {
        font-size: 48px
    }

    .h2 {
        font-size: 36px
    }

    .h3, .text-content h2 {
        font-size: 26px
    }

    .h4 {
        font-size: 20px
    }

    .p-small {
        font-size: 16px
    }

    .p-medium {
        font-size: 18px
    }

    .p-large {
        font-size: 22px
    }
}

.container {
    max-width: 720px;
    padding: 0 24px;
    margin: 0 auto
}

@media only screen and (min-width: 1024px) {
    .container {
        max-width: 1248px
    }
}

.btn {
    box-sizing: border-box;
    display: inline-block;
    font: 600 18px/1 "Onest", sans-serif;
    text-align: center
}

.btn--primary {
    font: 600 18px/1 "Onest", sans-serif;
    color: #0155cb;
    background: linear-gradient(90deg, #FCFDFD 0%, #E6EFFC 50.93%, #D8E7FE 100%) no-repeat 100% 100%;
    background-size: 200% 100%;
    padding: 15px 29px 17px;
    border: 3px solid #0155cb;
    border-radius: 6px;
    box-shadow: 0 2px 4px 0 rgba(1, 94, 223, .08), 0 7px 7px 0 rgba(1, 94, 223, .07), 0 17px 10px 0 rgba(1, 94, 223, .04), 0 30px 12px 0 rgba(1, 94, 223, .01), 0 47px 13px 0 rgba(1, 94, 223, 0)
}

.btn--small {
    font-size: 16px;
    padding: 10px 22px 12px
}

@media only screen and (min-width: 1024px) {
    .btn--primary {
        transition: background-position 200ms ease-in-out, margin 200ms ease-in-out, padding 200ms ease-in-out
    }

    .btn--primary:hover {
        background-position: 0 100%;
        margin-left: -4px;
        margin-right: -4px;
        padding: 15px 33px 17px
    }
}

.header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 999;
    padding: 16px;
    transition: transform 200ms ease-in-out
}

.header .container {
    position: relative;
    display: flex;
    flex-flow: row wrap;
    align-items: center;
    justify-content: space-between;
    padding: 12px 16px;
    border-radius: 6px;
    transition: background-color 200ms ease-in-out, box-shadow 200ms ease-in-out
}

.header__logo-img {
    width: 150px;
    height: auto
}

.header__hamburger {
    background: rgba(0, 0, 0, 0);
    border: 0;
    outline: 0;
    padding: 8px 16px;
    cursor: pointer
}

.header__hamburger-line {
    display: block;
    width: 22px;
    height: 2px;
    background: #231f20;
    margin: 6px 0;
    border-radius: 5px;
    transition: transform 200ms ease-in-out, opacity 200ms ease-in-out
}

.header__hamburger-line--1 {
    transform-origin: 1px 6px
}

.header__hamburger-line--3 {
    transform-origin: 2px -3px
}

.header__content {
    width: 100%;
    height: 0;
    overflow: hidden;
    transition: height 200ms ease-in-out
}

.header__content-inner {
    height: 100%;
    display: flex;
    flex-flow: column;
    align-items: center;
    padding: 24px 12px
}

.header__menu {
    flex: 1;
    width: 100%;
    margin: 0;
    padding: 0;
    list-style: none
}

.header__menu li {
    position: relative;
    text-align: center;
    margin-bottom: 24px
}

.header__menu li a {
    display: block;
    font: 500 16px/1.5 "Onest", sans-serif;
    color: #5a5a5a;
    padding: 8px 16px;
    transition: color 200ms ease-in-out
}

.header__menu li a:hover {
    color: #231f20
}

.header__menu li::after {
    content: "";
    position: absolute;
    width: 0;
    height: 3px;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    border-radius: 5px;
    background: #aecfff;
    transition: width 200ms ease-in-out
}

.header__menu li.active::after {
    width: 18px
}

.header__menu li.active a {
    color: #014db7
}

.header__btn {
    width: 100%;
    padding: 10px 21px 12px
}

.header.active .container {
    background: #fff;
    box-shadow: 0 10px 22px 0 rgba(0, 0, 0, .08), 0 40px 40px 0 rgba(0, 0, 0, .07), 0 89px 54px 0 rgba(0, 0, 0, .04), 0 159px 64px 0 rgba(0, 0, 0, .01), 0 248px 70px 0 rgba(0, 0, 0, 0)
}

.header.active .header__content {
    height: 70vh
}

.header.active .header__hamburger-line--1 {
    transform: rotate(45deg)
}

.header.active .header__hamburger-line--2 {
    transform: translateX(-100%);
    opacity: 0
}

.header.active .header__hamburger-line--3 {
    transform: rotate(-45deg)
}

.header.hide {
    transform: translateY(-100%)
}

.header.show .container {
    box-shadow: 0 10px 22px 0 rgba(0, 0, 0, .08), 0 40px 40px 0 rgba(0, 0, 0, .07), 0 89px 54px 0 rgba(0, 0, 0, .04), 0 159px 64px 0 rgba(0, 0, 0, .01), 0 248px 70px 0 rgba(0, 0, 0, 0);
    background: #fff
}

@media only screen and (min-width: 1024px) {
    .header {
        padding: 24px
    }

    .header .container {
        max-width: 1276px;
        padding: 12px 24px;
        border-radius: 16px
    }

    .header__logo-img {
        width: 187px
    }

    .header__hamburger {
        display: none
    }

    .header__content {
        position: initial;
        flex: 1;
        height: auto;
        overflow: visible
    }

    .header__content-inner {
        flex-flow: row nowrap;
        justify-content: flex-end;
        gap: 24px;
        padding: 0
    }

    .header__menu {
        flex: initial;
        width: auto;
        display: flex;
        align-items: center;
        gap: 8px
    }

    .header__menu li {
        margin-bottom: 0
    }

    .header__btn {
        width: fit-content
    }

    .header__btn:hover {
        padding: 10px 25px 12px
    }

    .header.active .header__content {
        height: auto
    }
}

.footer {
    background: linear-gradient(110deg, #2D292A 0%, #231F20 100%);
    padding: 56px 0 96px
}

.footer .container {
    display: grid;
    grid-template-columns:1fr;
    gap: 72px
}

.footer__logo {
    display: block;
    margin-bottom: 48px
}

.footer__logo-img {
    width: 187px;
    margin: 0 auto
}

.footer__socials {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 18px
}

.footer__social {
    display: block;
    width: 40px;
    height: auto;
    transition: filter 200ms ease-in-out
}

.footer__social:hover {
    filter: brightness(2)
}

.footer__bottom {
    display: grid;
    grid-template-columns:1fr;
    gap: 72px;
    text-align: center
}

.footer__quote {
    font-weight: 300;
    color: #f1f2f2;
    margin-bottom: 16px
}

.footer__copyright {
    font-weight: 300;
    color: #919191
}

.footer__links {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 40px
}

.footer__link {
    font: 500 16px/1.5 "Onest", sans-serif;
    color: #c1c1c1;
    transition: color 200ms ease-in-out
}

.footer__link:hover {
    color: #fff
}

@media only screen and (min-width: 1024px) {
    .footer__top {
        display: flex;
        align-items: flex-start;
        justify-content: space-between
    }

    .footer__logo {
        margin-bottom: 0
    }

    .footer__bottom {
        display: flex;
        align-items: center;
        justify-content: space-between;
        text-align: left
    }

    .footer__quote {
        margin-bottom: 8px
    }
}

.text-content {
    padding: 56px 0
}

@media (min-width: 1024px) {
    .text-content {
        max-width: 720px;
        padding: 72px 0;
        margin: 0 auto
    }
}

.text-content h2 {
    margin-top: 32px;
    margin-bottom: 16px
}

@media (min-width: 1024px) {
    .text-content h2 {
        margin-top: 40px;
        margin-bottom: 20px
    }
}

.text-content p, .text-content ul, .text-content ol {
    margin-bottom: 10px
}

@media (min-width: 1024px) {
    .text-content p, .text-content ul, .text-content ol {
        margin-bottom: 16px
    }
}

@media (max-width: 1023px) {
    .text-content p, .text-content ul, .text-content ol {
        font: 400 15px/1.45 "Onest", sans-serif
    }
}

.text-content ul, .text-content ol {
    margin-top: 0;
    padding-left: 30px
}

.text-content ul ul, .text-content ul ol, .text-content ol ul, .text-content ol ol {
    margin-bottom: 0
}

.text-content li {
    margin-top: 4px;
    margin-bottom: 4px
}

@media (min-width: 1024px) {
    .text-content li {
        margin-top: 8px;
        margin-bottom: 8px
    }
}

.text-content a {
    color: #217dfe
}

.text-content a:hover, .text-content a:focus {
    text-decoration: underline
}

.heading__content {
    max-width: 279px
}

.heading__eyebrow {
    display: inline-block;
    font: 600 14px/1.15 "Onest", sans-serif;
    color: #0155cb;
    letter-spacing: 3px;
    text-transform: uppercase;
    background: linear-gradient(94deg, #EBF3FF 1.71%, #D6E7FF 100%);
    padding: 8px 16px;
    margin-bottom: 20px;
    border-radius: 15px
}

.heading__title {
    margin-bottom: 20px
}

.heading.center {
    text-align: center
}

.heading.center .heading__content {
    margin: 0 auto
}

@media only screen and (min-width: 1024px) {
    .heading__content {
        max-width: 768px
    }
}

.card-info {
    padding: 16px 20px 32px;
    background: #fff;
    border: 1px solid #f7f7f7;
    border-radius: 8px;
    box-shadow: 0 1px 3px 0 rgba(0, 0, 0, .04), 0 6px 6px 0 rgba(0, 0, 0, .03), 0 13px 8px 0 rgba(0, 0, 0, .02), 0 24px 9px 0 rgba(0, 0, 0, .01), 0 37px 10px 0 rgba(0, 0, 0, 0)
}

.card-info__icon {
    display: block;
    width: 40px;
    height: 40px;
    margin-bottom: 24px
}

.card-info__icon img {
    width: 100%
}

.card-info__text {
    padding: 32px 4px 0;
    border-top: 1px solid #f1f2f2
}

.card-info__title {
    margin-bottom: 12px
}

@media only screen and (min-width: 1024px) {
    .card-info {
        padding: 24px 28px 48px
    }

    .card-info__text {
        padding-top: 48px
    }
}

.card-model {
    width: 100%;
    background: #fff;
    border-radius: 0 0 12px 12px;
    overflow: hidden;
    box-shadow: 0 1px 3px 0 rgba(0, 0, 0, .04), 0 6px 6px 0 rgba(0, 0, 0, .03), 0 13px 8px 0 rgba(0, 0, 0, .02), 0 24px 9px 0 rgba(0, 0, 0, .01), 0 37px 10px 0 rgba(0, 0, 0, 0)
}

.card-model__heading {
    background: rgba(214, 231, 255, .32)
}

.card-model__thumbnail {
    position: relative;
    width: 100%;
    height: 312px;
    aspect-ratio: 1/1;
    border-radius: 12px 12px 0 0;
    overflow: hidden
}

.card-model__img {
    width: 100%;
    height: 100%;
    object-fit: cover
}

.card-model__gradient {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(0deg, rgba(13, 18, 28, 0.48) 0%, rgba(13, 18, 28, 0) 40%, rgba(13, 18, 28, 0) 100%)
}

.card-model__text {
    background: #fff;
    padding: 24px 24px 48px
}

.card-model__title {
    margin-bottom: 24px
}

.card-model__description {
    margin-bottom: 24px
}

.card-model__points {
    display: grid;
    grid-template-columns:1fr;
    gap: 12px
}

.card-model__point {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    color: #231f20
}

.card-model__point svg {
    display: block;
    width: 24px;
    height: auto;
    flex-shrink: 0
}

@media only screen and (min-width: 1024px) {
    .card-model__text {
        padding: 32px 48px 56px 32px
    }
}

.card-study {
    display: flex;
    flex-direction: column;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 1px 3px 0 rgba(0, 0, 0, .04), 0 6px 6px 0 rgba(0, 0, 0, .03), 0 13px 8px 0 rgba(0, 0, 0, .02), 0 24px 9px 0 rgba(0, 0, 0, .01), 0 37px 10px 0 rgba(0, 0, 0, 0);
    transition: box-shadow 200ms ease-in-out
}

.card-study__top {
    position: relative;
    width: 100%;
    height: auto;
    aspect-ratio: 3/2
}

.card-study__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 16px 16px 0 0
}

.card-study__overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #aecfff;
    mix-blend-mode: color
}

.card-study__client {
    position: absolute;
    width: 100%;
    left: 0;
    bottom: -1px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: rgba(214, 231, 255, .92);
    backdrop-filter: blur(4px);
    padding: 12px 16px;
    z-index: 2
}

.card-study__client-name, .card-study__client-detail {
    color: #014db7
}

.card-study__client-name {
    font: 600 16px/1.12 "Onest", sans-serif
}

.card-study__client svg {
    display: block;
    width: 24px;
    height: auto
}

.card-study__bottom {
    flex: 1;
    padding: 24px 16px;
    background: #fff;
    border-radius: 0 0 16px 16px
}

.card-study__title {
    margin-bottom: 8px;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    line-clamp: 3;
    -webkit-box-orient: vertical
}

.card-study__excerpt {
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 5;
    line-clamp: 5;
    -webkit-box-orient: vertical
}

.card-study:hover {
    box-shadow: 0 10px 22px 0 rgba(0, 0, 0, .08), 0 40px 40px 0 rgba(0, 0, 0, .07), 0 89px 54px 0 rgba(0, 0, 0, .04), 0 159px 64px 0 rgba(0, 0, 0, .01), 0 248px 70px 0 rgba(0, 0, 0, 0)
}

@media only screen and (min-width: 1024px) {
    .card-study__top {
        aspect-ratio: 5/3
    }

    .card-study__client {
        padding: 12px 32px
    }

    .card-study__client-name {
        font-size: 18px
    }

    .card-study__bottom {
        padding: 32px
    }
}

.card-map {
    background: #fff;
    box-shadow: 0 1px 3px 0 rgba(0, 0, 0, .04), 0 6px 6px 0 rgba(0, 0, 0, .03), 0 13px 8px 0 rgba(0, 0, 0, .02), 0 24px 9px 0 rgba(0, 0, 0, .01), 0 37px 10px 0 rgba(0, 0, 0, 0);
    border-radius: 16px;
    padding: 24px
}

.card-map__text {
    margin-bottom: 24px
}

.card-map__country {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 14px
}

.card-map__country svg {
    flex-shrink: 0;
    display: block;
    width: 24px;
    height: auto
}

.card-map__info {
    padding-left: 34px
}

.card-map__street {
    margin-bottom: 2px
}

.card-map__img {
    width: 100%;
    height: auto;
    aspect-ratio: 10/9;
    object-fit: cover;
    border: 2px solid #f1f2f2;
    border-radius: 6px
}

@media only screen and (min-width: 1024px) {
    .card-map {
        padding: 32px
    }

    .card-map__text {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: 34px
    }

    .card-map__country {
        margin-bottom: 0
    }

    .card-map__info {
        min-width: 320px
    }
}

.services {
    overflow: hidden;
    padding: 56px 0 32px
}

.services .heading {
    margin-bottom: 64px
}

.services__list {
    display: flex;
    gap: 16px;
    padding: 0 28px 24px;
    margin: 0 -28px;
    overflow-x: auto
}

.services .card-info {
    width: 296px;
    flex-shrink: 0
}

@media only screen and (min-width: 1024px) {
    .services {
        padding: 72px 0
    }

    .services .heading {
        margin: 0 24px 64px
    }

    .services__list {
        display: grid;
        grid-template-columns:1fr 1fr 1fr;
        column-gap: 32px;
        row-gap: 40px;
        padding: 0;
        margin: 0 24px;
        overflow: visible
    }

    .services .card-info {
        width: 100%
    }
}

.models {
    padding: 56px 0
}

.models .heading {
    margin-bottom: 64px
}

.models__list {
    display: grid;
    grid-template-columns:1fr;
    gap: 48px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.8) 24.64%, rgba(255, 255, 255, 0) 58.79%);
    padding: 24px;
    margin: 0 -24px;
    border-radius: 30px
}

@media only screen and (min-width: 1024px) {
    .models {
        padding: 72px 0
    }

    .models .heading {
        margin-bottom: 72px
    }

    .models__list {
        grid-template-columns:1fr 1fr;
        gap: 64px;
        margin: 0
    }
}

.studies {
    padding: 56px 0
}

.studies .heading {
    margin-bottom: 64px
}

.studies__list {
    display: grid;
    grid-template-columns:1fr;
    gap: 48px
}

@media only screen and (min-width: 1024px) {
    .studies {
        padding: 72px 0
    }

    .studies .heading {
        margin-bottom: 72px
    }

    .studies__list {
        grid-template-columns:1fr 1fr;
        margin: 0 32px
    }
}

.hero {
    padding-top: 144px
}

.hero__bg {
    position: absolute;
    width: 300%;
    height: auto;
    top: 0;
    left: 50%;
    transform: translate(-50%);
    z-index: -1
}

.hero__main {
    margin-bottom: 56px
}

.hero__title {
    font: 500 32px/1.15 "Onest", sans-serif;
    margin-bottom: 24px
}

.hero__subtitle {
    margin-bottom: 64px
}

.hero .btn {
    width: 100%
}

.hero__logos {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 32px 0
}

.hero__logos-title {
    text-align: center;
    margin-bottom: 48px
}

.hero__logos-list {
    display: flex;
    flex-flow: row wrap;
    align-items: center;
    justify-content: center;
    width: 99%;
    gap: 20px
}

.hero__logos-item {
    width: auto;
    height: 50px;
    max-width: 100%;
    mix-blend-mode: luminosity
}

@media only screen and (min-width: 768px) {
    .hero__bg {
        width: 150%
    }
}

@media only screen and (min-width: 1024px) {
    .hero {
        padding-top: 222px;
        overflow: visible
    }

    .hero__bg {
        width: 130%;
        height: auto;
        object-fit: cover
    }

    .hero .container {
        height: 100%
    }

    .hero__main {
        padding-left: 32px;
        margin-bottom: 107px
    }

    .hero__title {
        font: 400 58px/1 "Onest", sans-serif;
        margin-bottom: 16px;
        max-width: 552px
    }

    .hero__subtitle {
        max-width: 460px;
        margin-bottom: 48px
    }

    .hero .btn {
        width: fit-content
    }

    .hero__logos {
        padding: 56px 0 72px
    }

    .hero__logos-title {
        margin-bottom: 32px
    }

    .hero__logos-list {
        column-gap: 40px;
        row-gap: 32px
    }

    .hero__logos-item {
        height: 64px
    }
}

@media only screen and (min-width: 1440px) {
    .hero__bg {
        width: 100%
    }
}

.locations {
    padding: 56px 0
}

.locations .heading {
    margin-bottom: 42px
}

.locations__list {
    display: grid;
    grid-template-columns:1fr;
    gap: 48px
}

@media only screen and (min-width: 1024px) {
    .locations {
        padding: 72px 0
    }

    .locations .heading {
        margin: 0 24px 72px
    }

    .locations__list {
        grid-template-columns:1fr 1fr;
        margin: 0 24px
    }
}

.contact {
    position: relative;
    padding: 57px 0;
    background: url("/assets/img/background-grid.png") no-repeat 50% 0;
    background-size: 1920px;
    overflow: hidden
}

.contact__bg {
    position: absolute;
    width: 150%;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    z-index: -1
}

.contact .heading {
    margin-bottom: 64px
}

.contact__content {
    margin: 24px 0 72px;
    border-radius: 12px;
    box-shadow: 0 10px 22px 0 rgba(0, 0, 0, .08), 0 40px 40px 0 rgba(0, 0, 0, .07), 0 89px 54px 0 rgba(0, 0, 0, .04), 0 159px 64px 0 rgba(0, 0, 0, .01), 0 248px 70px 0 rgba(0, 0, 0, 0);
    overflow: hidden
}

.contact__img {
    display: none
}

.contact__form {
    display: grid;
    grid-template-columns:1fr;
    gap: 32px;
    background: #fff;
    padding: 28px 21px
}

.contact__form-field {
    position: relative
}

.contact__form-field label {
    display: block;
    width: 100%;
    font: 400 14px/1 "Onest", sans-serif;
    color: #5a5a5a;
    margin-bottom: 8px;
    cursor: pointer
}

.contact__form-field input, .contact__form-field textarea {
    width: 100%;
    font: 300 16px/1 "Onest", sans-serif;
    color: #231f20;
    background: #f1f2f2;
    border: 1px solid #f1f2f2;
    border-radius: 4px;
    padding: 10px 14px;
    resize: none;
    transition: background-color 200ms ease-in-out, border 200ms ease-in-out
}

.contact__form-field input::placeholder, .contact__form-field textarea::placeholder {
    color: #5a5a5a
}

.contact__form-field input:focus, .contact__form-field input:active, .contact__form-field textarea:focus, .contact__form-field textarea:active {
    outline: 0;
    background: #fff
}

.contact__form-field input:hover, .contact__form-field textarea:hover {
    border: 1px solid #c1c1c1
}

.contact__form-field textarea {
    height: 138px
}

.contact__form-field button[type=submit] {
    width: 100%;
    cursor: pointer;
    transition: background-position 200ms ease-in-out, margin 200ms ease-in-out, width 200ms ease-in-out
}

.contact__form-field button[type=submit]:hover {
    width: calc(100% + 8px)
}

.contact__form-field button[type=submit].success {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: rgba(57, 127, 62, .1);
    border: 3px solid rgba(57, 127, 62, .15);
    color: #397f3e
}

.contact__form-field button[type=submit].success::before {
    content: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none"><g clip-path="url(%23clip0_610_14473)"><path d="M2.8125 10.125L6.75 14.0625L15.75 5.0625" stroke="%23397F3E" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></g><defs><clipPath id="clip0_610_14473"><rect width="18" height="18" fill="white"/></clipPath></defs></svg>');
    display: block
}

.contact__form-field--required label::after {
    content: "*"
}

.contact__form-field--required.error input, .contact__form-field--required.error textarea {
    background: #fff;
    border: 1px solid #e01600
}

.contact__form-field--checkbox {
    display: flex;
    align-items: flex-start;
    gap: 12px
}

.contact__form-field--checkbox input {
    display: block;
    width: 18px;
    height: 18px;
    border: 1px solid #919191;
    margin: 3px 1px
}

.contact__form-field--checkbox input::before, .contact__form-field--checkbox input::after {
    content: "";
    display: block;
    position: absolute
}

.contact__form-field--checkbox input::before {
    top: 1px;
    left: 0;
    width: 20px;
    height: 20px;
    border: 2px solid #919191;
    background: #fff;
    border-radius: 3px;
    pointer-events: none;
    z-index: 2
}

.contact__form-field--checkbox input::after {
    top: 3px;
    left: 1px;
    width: 9px;
    height: 5px;
    border-left: 2px solid #fff;
    border-bottom: 2px solid #fff;
    transform: rotate(-45deg) translateY(6px);
    pointer-events: none;
    transition: border-color 200ms ease-in-out;
    z-index: 3
}

.contact__form-field--checkbox input:checked::before {
    background: #014db7;
    border: 2px solid #014db7
}

.contact__form-field--checkbox input:checked:hover::after {
    border-color: #fff
}

.contact__form-field--checkbox input:hover::after {
    border-color: #c1c1c1
}

.contact__form-field--checkbox label {
    font: 300 15px/1.4 "Onest", sans-serif;
    margin-bottom: 0
}

.contact__form-field--checkbox label a {
    color: #015edf
}

.contact__form-field--submit {
    margin-top: 32px
}

.contact__form-field--submit .contact__form-field-message {
    bottom: auto;
    top: -10px;
    transform: translateY(-100%)
}

.contact__form-field-message {
    position: absolute;
    bottom: -5px;
    left: 0;
    width: 100%;
    transform: translateY(100%);
    font: 300 13px/1 "Onest", sans-serif;
    color: #e01600
}

@media only screen and (min-width: 1024px) {
    .contact {
        padding-top: 72px
    }

    .contact__bg {
        top: 0;
        width: 100%;
        min-width: 1920px
    }

    .contact__content {
        display: grid;
        grid-template-columns:1fr 1fr;
        margin: 24px 64px 72px
    }

    .contact__img {
        display: block;
        position: relative
    }

    .contact__img img {
        position: absolute;
        width: 100%;
        height: 100%;
        top: 0;
        left: 0;
        object-fit: cover
    }

    .contact__form {
        grid-template-columns:1fr 1fr;
        padding: 32px
    }

    .contact__form-field {
        grid-column: span 2
    }

    .contact__form-field--half {
        grid-column: span 1
    }

    .contact__form-field--checkbox input {
        cursor: pointer
    }

    .contact__form-field--checkbox label {
        font-size: 16px
    }

    .contact__form-field--checkbox label a {
        color: #015edf
    }

    .contact__form-field--checkbox label a:hover {
        text-decoration: underline
    }
}

.no-header {
    padding-top: 26px
}

.no-header .back {
    display: flex;
    align-items: center;
    gap: 4px;
    font: 600 16px/1 "Onest", sans-serif;
    color: #015edf;
    padding: 6px 0;
    margin-bottom: 28px
}

.no-header .back svg {
    flex-shrink: 0;
    display: block;
    width: 24px;
    height: auto
}

.no-header__heading {
    text-align: center;
    margin-bottom: 32px
}

.no-header__eyebrow {
    display: inline-block;
    font: 600 14px/1.15 "Onest", sans-serif;
    color: #0155cb;
    letter-spacing: 3px;
    text-transform: uppercase;
    background: linear-gradient(94deg, #EBF3FF 1.71%, #D6E7FF 100%);
    padding: 8px 16px;
    margin-bottom: 20px;
    border-radius: 15px
}

@media only screen and (min-width: 1024px) {
    .no-header {
        padding-top: 48px
    }

    .no-header .back {
        margin-bottom: 36px
    }

    .no-header__heading {
        max-width: 768px;
        margin: 0 auto 72px
    }
}

.case-study {
    padding-top: 144px
}

.case-study__heading {
    text-align: center;
    max-width: 768px;
    margin: 0 auto 32px
}

.case-study__title {
    margin-bottom: 20px
}

.case-study__img {
    width: 100%;
    height: 240px;
    object-fit: cover;
    border-radius: 16px;
    margin-bottom: 54px
}

.case-study__content-heading {
    margin: 32px 0 16px
}

.case-study__content-description {
    margin-bottom: 16px
}

@media only screen and (min-width: 1024px) {
    .case-study {
        padding-top: 184px
    }

    .case-study__heading {
        margin-bottom: 72px
    }

    .case-study__img {
        height: 384px;
        margin-bottom: 72px
    }
}

.error-404 {
    padding: 225px 0 177px
}

.error-404__content {
    text-align: center
}

.error-404__title {
    max-width: 880px;
    color: #231f20;
    margin: 0 auto 24px
}

.error-404__subtitle {
    max-width: 560px;
    margin: 0 auto
}

.error-404 .btn {
    width: 100%;
    margin-top: 64px
}

@media only screen and (min-width: 1024px) {
    .error-404 {
        height: 80vh;
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 24px 0 0
    }

    .error-404 .btn {
        width: fit-content
    }
}

html {
    background: #fafafa
}

.page-content {
    position: relative;
    background: url("/assets/img/background-grid.png") no-repeat top center;
    background-size: 300%;
    overflow: hidden
}

.page-content .background-grid-middle {
    position: absolute;
    width: 100%;
    min-width: 1920px;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -30%);
    z-index: -1
}

@media only screen and (min-width: 768px) {
    .page-content {
        background-size: 150%
    }
}

@media only screen and (min-width: 1024px) {
    .page-content {
        background-size: 130%
    }

    .page-content .background-grid-middle {
        transform: translate(-50%, -80%)
    }
}

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