@import url("https://use.typekit.net/qkj3psa.css");
:root {
    --sans-serif: neue-haas-unica, sans-serif;
    --serif: the-seasons, sans-serif;
    --light-blue: #d7f0f4; /* (old)--light-blue: #bbe5eb */
    --lighter-blue: #ebf4ff;
    --blue: #3f7ebe;
    --blue-90: #dde8f4;
    --black: #212324;
    --white: #fff;
    --container-width: 1120px;
    --rounded-1: 4px;
    --rounded-2: 8px;
    --rounded-3: 16px;
    --rounded-4: 24px;
    --rounded-5: 9999px;
    --elevation-1: 0 10px 19px 7px rgb(0 0 0 / 4%);
    --elevation-2: 0 16px 65px 0 rgb(0 0 0 / 5%), 0 10.37px 38.067px 0 rgb(0 0 0 / 3%), 0 6.163px 20.704px 0 rgb(0 0 0 / 2%), 0 3.2px 10.563px 0 rgb(0 0 0 / 1%);
    --elevation-3: 0 177px 49px 0 transparent, 0 113px 45px 0 rgb(0 0 0 / 1%), 0 64px 38px 0 rgb(0 0 0 / 3%), 0 28px 28px 0 rgb(0 0 0 / 5%), 0 7px 16px 0 rgb(0 0 0 / 6%);
    --drop-elevation-1: drop-shadow(0 10px 19px rgb(0 0 0 / 8%));
    --drop-elevation-2: drop-shadow(0 12px 45px rgb(0 0 0 / 18%));
    --drop-elevation-3: drop-shadow(0 30px 30px rgba(0, 0, 0, .15));
    --rounded-1: 4px;
    --rounded-2: 8px;
    --rounded-3: 16px;
    --rounded-4: 24px;
    --rounded-5: 9999px;
}

a, a:hover { text-decoration: none; color: currentColor; }

body { font-family: var(--sans-serif); color: var(--black); font-size: 16px; line-height: 1.6; }
@media only screen and (min-width: 768px) { body { font-size: 18px; } }
@media only screen and (min-width: 1280px) { body { line-height: 1.4; } }

main {  background-color: var(--lighter-blue); padding-top: 124px; }
@media only screen and (min-width: 1280px) { main { padding-top: 144px; } }

.container { --h-padding: 20px; padding-inline: var(--h-padding); }
@media only screen and (min-width: 640px) { .container { --h-padding: 40px; } }

.home-section { height: calc(100vh - 144px); }
@media only screen and (min-width: 1280px) { .home-section { height: calc(100vh - 164px); } }

.home-content { text-align: inherit; }

.wrapper--section { z-index: 1; position: relative; }

.b-rounded-1 {  border-radius: var(--rounded-1);}
.b-rounded-2 {  border-radius: var(--rounded-2);}
.b-rounded-3 {  border-radius: var(--rounded-3);}
.b-rounded-4 {  border-radius: var(--rounded-4);}
.b-rounded-5 {  border-radius: var(--rounded-5);}

.drop-shadow-1 { filter: var(--drop-elevation-1); }
.drop-shadow-2 { filter: var(--drop-elevation-2); }
.drop-shadow-3 { filter: var(--drop-elevation-3); }

.box-shadow {box-shadow: var(--box-shadow);}
.box-shadow-strong {box-shadow: var(--box-shadow-strong);}
.box-shadow-block {box-shadow: var(--box-shadow-block);}
.box-shadow-block-strong {box-shadow: var(--box-shadow-block-strong);}

.mx-20 { margin-inline: 20px; }

.color-blue { color: var(--blue); }
.color-light-blue { color: var(--light-blue); }
.color-white { color: var(--white); }
.color-black { color: var(--black); }

.bg-blue { background-color: var(--blue); }
.bg-light-blue { background-color: var(--light-blue); }
.bg-white { background-color: var(--white); }
.bg-black { background-color: var(--black); }

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

.btn-white.btn-transparent { background-color: rgba( 255, 255, 255, .2); }

.btn-blur { backdrop-filter: blur(5px); }

a.btn-white:hover { background-color: var(--white); color: var(--color-primary-1); }

.mn-sub { background: rgba(63, 126, 190, .9927); }

.gap-8 { gap: 8px; }
.gap-12 { gap: 12px; }
.gap-16 { gap: 16px; }
.gap-24 { gap: 24px; }
.gap-32 { gap: 32px; }
.gap-48 { gap: 48px; }
.gap-60 { gap: 60px; }
.gap-100 { gap: 100px; }

.gap-x-8 { column-gap: 8px; }
.gap-x-12 { column-gap: 12px; }
.gap-x-16 { column-gap: 16px; }
.gap-x-24 { column-gap: 24px; }
.gap-x-32 { column-gap: 32px; }
.gap-x-48 { column-gap: 48px; }
.gap-x-60 { column-gap: 60px; }
.gap-x-100 { column-gap: 100px; }

.gap-y-8 { row-gap: 8px; }
.gap-y-12 { row-gap: 12px; }
.gap-y-16 { row-gap: 16px; }
.gap-y-24 { row-gap: 24px; }
.gap-y-32 { row-gap: 32px; }
.gap-y-48 { row-gap: 48px; }
.gap-y-60 { row-gap: 60px; }
.gap-y-100 { row-gap: 100px; }

.text-vtrim { margin-top: calc((1 - var(--line-height)) * .5em); margin-bottom: calc((1 - var(--line-height)) * .5em); }
.text-body-1 { font-size: 20px; letter-spacing: 0; line-height: var(--line-height); --line-height: 1.6; font-weight: 500; }
.text-body-2 { font-size: 18px; letter-spacing: 0; line-height: var(--line-height); --line-height: 1.6; font-weight: 600; }
.text-body-3 { font-size: 12px; letter-spacing: 0; line-height: var(--line-height); --line-height: 1.1; }

.text-display-2 { font-size: 44px; letter-spacing: -.03em; line-height: var(--line-height); --line-height: 1.1; }
.text-display-3 { font-size: 32px; letter-spacing: -.03em; line-height: var(--line-height); --line-height: 1.6; }
.text-display-4 { font-size: 28px; letter-spacing: -.03em; line-height: var(--line-height); --line-height: 1.4; }

.text-title-1 { font-size: 28px; letter-spacing: -.02em; line-height: var(--line-height); --line-height: 1.1;}

@media only screen and (min-width: 768px) {
    .text-body-1 { --line-height: 1.1; font-size: 24px; }
    .text-body-2 { font-size: 20px; }
    .text-display-2 { font-size: 64px; --line-height: 1.2; }
    .text-display-3 { --line-height: 1.2; font-size: 36px; }
    .text-display-4 { font-size: 32px; }
    .text-title-1 { font-size: 28px; }
    .md\:text-display-4 { font-size: 28px; letter-spacing: -.03em; line-height: var(--line-height); --line-height: 1.4; }
    
    @media only screen and (min-width: 768px) { .md\:text-display-4 { font-size: 32px; } }
    @media only screen and (min-width: 1280px) { .md\:text-display-4 { --line-height: 1.1; font-size: 36px; } }
}

@media only screen and (min-width: 1280px) {
    .text-body-1 { --line-height: 1; }
    .text-body-2 { --line-height: 1.4; }
    .text-body-3 { --line-height: 1.3; }
    .text-display-2 { font-size: 80px; }
    .text-display-3 { font-size: 48px; }
    .text-display-4 { --line-height: 1.1; font-size: 36px; }
    .xl\:text-title-2 { font-size: 20px; letter-spacing: -.02em; line-height: var(--line-height); --line-height: 1.75; }
    @media only screen and (min-width: 1280px) { .xl\:text-title-2 { --line-height: 1.3; font-size: 27px; }  }
}

.underline {
    background: linear-gradient(var(--underline-color, currentColor), var(--underline-color, currentColor));
    background-position: 0 95%;
    background-repeat: no-repeat;
    background-size: 100% .07em;
}

@media (hover: hover) and (pointer: fine) {
    .underline-trigger:focus .underline, .underline-trigger:hover .underline, .underline:focus, .underline:hover { animation: underline .8s cubic-bezier(.165, .84, .44, 1); }
}

@keyframes underline {
    0% { background-position-x: 100%; background-size: 100% .07em }
    50% { background-position-x: 100%; background-size: 0 .07em }
    51% { background-position-x: 0; background-size: 0 .07em }
    to { background-position-x: 0; background-size: 100% .07em }
}

.shadow-section.light-blue {
    filter: drop-shadow(0 0 70px 100px var(--page-color));
    --page-color: var(--blue);
}

.font-serif { font-family: var(--serif); letter-spacing: 0; }

.fw-400 { font-weight: 400;}
.fw-500 { font-weight: 500;}
.fw-600 { font-weight: 600;}
.fw-700 { font-weight: 700;}

.index-back { z-index: 0; }
.index-front { z-index: 10; }

.list-grid { display: grid; gap: 20px; }

@media only screen and (min-width: 768px) { .list-grid { gap: 40px; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); } }

.footer a i{ font-size: 26px; }

.display--1024 { display: none; }
.display--1600 { display: inline-block; }
.inner-nav { flex-direction: column; justify-content: space-between; }

@media only screen and (min-width: 1025px) {
    .display--1024 { display: inline-block; }
    .display--1600 { display: none; }
    .inner-nav { flex-direction: row; justify-content: center; }
    .transparent .mn-sub, .inner-nav .mn-sub .mn-sub, .mn-has-multi a { border-radius: 8px; }
}
@media only screen and (min-width: 1600px) {
    .display--1024 { display: none; }
    .display--1600 { display: inline-block; }
}
.parallax-wrapper {
    --v-padding: 80px;
    overflow: clip;
    min-height: 500px;
    padding-top: var(--v-padding);
    padding-bottom: var(--v-padding);
    background-color: var(--lighter-blue);
    color: var(--black);
    display: grid;
    align-items: center;
    position: relative;
    overflow: hidden;
    padding: 0;
    text-align: center;
    transform: translateZ(0);
    background-color: #000;
    filter: drop-shadow(0 0 70px 100px var(--lighter-blue));
}

@media only screen and (min-width: 640px) {
    .parallax-wrapper {
        --v-padding: 100px;
        min-height: 600px;
    }
}

@media only screen and (min-width: 1024px) {
    .parallax-wrapper {
        min-height: 800px;
    }
}

.parallax-wrapper-content {
    display: flex;
    width: 100%;
    height: 100%;
    padding: 100px 0;
    background-color: var(--lighter-blue);
    mix-blend-mode: lighten;
}

.parallax-wrapper-content-inner {
    --wrapper-max-width: 1120px;
    --h-padding: 20px;
    max-width: var(--wrapper-max-width);
    padding-right: var(--h-padding);
    padding-left: var(--h-padding);
    margin-right: auto;
    margin-left: auto;
    display: flex;
    flex-direction: column;
}

@media only screen and (min-width: 640px) {
    .parallax-wrapper-content-inner {
        --h-padding: 40px;
    }
}

@media only screen and (min-width: 1024px) {
    .parallax-wrapper-content-inner {
        padding: 0 140px;
    }
}

.parallax-grid { display: grid; flex: 1; place-items: center; }

.aspect-ratio-1 {
    position: absolute;
    top: calc(50% + var(--height) * var(--v-offset, 0) * 2.25);
    left: calc(50% + var(--width) * var(--h-offset, 0));
    width: var(--width);
    height: var(--height);
    --height: calc(var(--width) * var(--aspect-ratio));
    --aspect-ratio: 1.2213740458015268;
    --width: 200px;
    --h-offset: -0.2;
    --v-offset: -0.725;
}

.aspect-ratio-2 {
    position: absolute;
    top: calc(50% + var(--height) * var(--v-offset, 0));
    left: calc(50% + var(--width) * var(--h-offset, 0));
    width: var(--width);
    height: var(--height);
    transform: rotateZ(-5deg);
    --height: calc(var(--width) * var(--aspect-ratio));
    --aspect-ratio: 1.25;
    --width: 180px;
    --h-offset: -0.8;
    --v-offset: 0.625;
}

.aspect-ratio-1 img, .aspect-ratio-2 img {
    position: absolute;
    height: 100%;
    width: 100%;
    left: 0;
    top: 0;
    right: 0;
    bottom: 0;
    color: transparent;
    object-fit: cover;
}

.parallax-wrapper-content  .aspect-ratio-1, .parallax-wrapper-content .aspect-ratio-2 { background-color: var(--light-blue); mix-blend-mode: difference; }


@media only screen and (min-width: 640px) {
    .aspect-ratio-1 { --width: 240px; --h-offset: 0.1; --v-offset: -0.725; }
    .aspect-ratio-2 { --width: 218px; --h-offset: -1.2875; --v-offset: 0.375; }
}

@media only screen and (min-width: 992px) {
    .aspect-ratio-1 { --width: 310px; --h-offset: .45; --v-offset: -0.675; }
    .aspect-ratio-2 { --width: 288px; --h-offset: -1.4; --v-offset: 0.5; }
}

@media only screen and (min-width: 1295px) {
    .aspect-ratio-1 { --width: 360px; --h-offset: 0.575; --v-offset: -0.675; }
    .aspect-ratio-2 { --width: 348px; --h-offset: -1.6; --v-offset: 0.2; }
}

@media only screen and (min-width: 1600px) {
    .aspect-ratio-1 { --width: 360px; --h-offset: 0.8; --v-offset: -0.7; }
    .aspect-ratio-2 { --width: 348px; --h-offset: -1.6; --v-offset: 0.2; }
}



.swiper { overflow: visible; width: 100%; }
.swiper-wrapper { align-items: center; }

.swiper-slide {
    flex-shrink: 0;
    width: 100%;
    height: 100%;
    position: relative;
    transition-property: transform;
    max-width: 385px;   
}

/* .swiper, .swiper-wrapper, .swiper-slide { pointer-events: none; }

.swiper-slide.swiper-slide-prev,
.swiper-slide.swiper-slide-next,
.swiper-slide.swiper-slide-active { pointer-events: all; } */

.card-wrapper {
    --page-color: #ECDBCC;
    --page-text-color: #161616;
    --card-radius: var(--rounded-3);
    --card-gap: 30px;
    --card-padding: 20px 20px 30px;
    --card-media-radius: var(--rounded-2);
    --card-media-padding: 30px;
        
    background-color: var(--page-color);
    position: relative;
    display: flex;
    flex-flow: column wrap;
    padding: var(--card-padding);
    border-radius: var(--card-radius);
    aspect-ratio: .77;
    color: var(--page-text-color);
    gap: var(--card-gap);
    filter: var(--drop-elevation-1);
}

.swiper .card-wrapper { transform: scale(0.825) translateZ(0) !important; }
.swiper .swiper-slide-active .card-wrapper { transform: scale(1) translateZ(0) !important; }

.card-media { --card-media-radius: var(--rounded-2); position: relative; overflow: hidden; flex: 1; border-radius: var(--card-media-radius); }

.card-media img { position: absolute; height: 100%; width: 100%; inset: 0px; color: transparent; -o-object-fit: cover; object-fit: cover; -o-object-position: center center; object-position: center center; transition: transform .5s cubic-bezier(.165, .84, .44, 1); }

.card-content { display: flex; flex-flow: column wrap; align-items: center; text-align: center; gap: 18px; }

.card-link { display: flex; flex-direction: column; gap: 8px; }
.card-link:after { position: absolute; display: block; content: ""; inset: 0; }

.card-header_title { min-width: 14ch; }


@media (hover: hover) and (pointer: fine) {
    .card-wrapper:has(a) { transition: all .3s cubic-bezier(.165, .84, .44, 1); }
    .card-wrapper:has(a):hover { filter: var(--drop-elevation-3); }
    .card-wrapper:has(a):hover img { transform: scale(1.15); }
}

.grid-wrapper {
    --grid-gap: 24px;

    display: grid;
    width: 100%;
    gap: var(--grid-gap);
    grid-template-columns: 1fr;
}

.grid-item, .grid-item-two, .grid-item-three { grid-column: auto; }

@media only screen and (min-width: 640px) { .grid-wrapper { grid-template-columns: repeat(2, 1fr); } }

@media only screen and (min-width: 768px) { .grid-item-three .card-wrapper { aspect-ratio: 1; } }

@media only screen and (min-width: 1024px) {
    .grid-wrapper { --grid-gap: 42px; grid-template-columns: repeat(3, 1fr); }
    .aspect-ratio-3 { aspect-ratio: 1.63; }
    .grid-item-two { grid-column-end: span 2; }
    .grid-item-three { grid-column-end: span 3; }
    .grid-item-two .card-wrapper { aspect-ratio: 1.63; }
    .grid-item-three .card-wrapper { aspect-ratio: 1.9; }
    .card-header_title { max-width: 26ch; }
}

.px-20 { padding-inline: 20px; }
.px-30 { padding-inline: 30px;}
.px-40 { padding-inline: 40px;}
.px-50 { padding-inline: 50px;}
.px-60 { padding-inline: 60px; }
.px-80 { padding-inline: 80px; }
.px-100 { padding-inline: 100px;}
.px-120 { padding-inline: 120px;}

.min-height-500 {min-height: 500px;}
.min-height-600 {min-height: 600px;}
.min-height-700 {min-height: 700px;}
.min-height-800 {min-height: 800px;}
.min-height-auto {min-height: 100%;}
.max-height-400 {max-height: 400px;}
.max-height-500 {max-height: 500px;}
.max-height-600 {max-height: 600px;}
.max-height-700 {max-height: 700px;}
.max-height-800 {max-height: 800px;}
.max-height-auto {max-height: 100%;}

@media only screen and (min-width: 576px) { 
    .px-sm-20 { padding-inline: 20px; }
    .px-sm-30 { padding-inline: 30px;}
    .px-sm-40 { padding-inline: 40px;}
    .px-sm-50 { padding-inline: 50px;}
    .px-sm-60 { padding-inline: 60px; }
    .px-sm-80 { padding-inline: 80px; }
    .px-sm-100 { padding-inline: 100px;}
    .px-sm-120 { padding-inline: 120px;}

    .min-sm-height-500 {min-height: 500px;}
    .min-sm-height-600 {min-height: 600px;}
    .min-sm-height-700 {min-height: 700px;}
    .min-sm-height-800 {min-height: 800px;}
    .min-sm-height-auto {min-height: 100%;}

    .max-sm-height-400 {max-height: 400px;}
    .max-sm-height-500 {max-height: 500px;}
    .max-sm-height-600 {max-height: 600px;}
    .max-sm-height-700 {max-height: 700px;}
    .max-sm-height-800 {max-height: 800px;}
    .max-sm-height-auto {max-height: 100%;}
}
@media only screen and (min-width: 768px) { 
    .px-md-20 { padding-inline: 20px; }
    .px-md-30 { padding-inline: 30px;}
    .px-md-40 { padding-inline: 40px;}
    .px-md-50 { padding-inline: 50px;}
    .px-md-60 { padding-inline: 60px; }
    .px-md-80 { padding-inline: 80px; }
    .px-md-100 { padding-inline: 100px;}
    .px-md-120 { padding-inline: 120px;}

    .min-md-height-500 {min-height: 500px;}
    .min-md-height-600 {min-height: 600px;}
    .min-md-height-700 {min-height: 700px;}
    .min-md-height-800 {min-height: 800px;}
    .min-md-height-auto {min-height: 100%;}
    .max-md-height-400 {max-height: 400px;}
    .max-md-height-500 {max-height: 500px;}
    .max-md-height-600 {max-height: 600px;}
    .max-md-height-700 {max-height: 700px;}
    .max-md-height-800 {max-height: 800px;}
    .max-md-height-auto {max-height: 100%;}
}

@media only screen and (min-width: 991px) { 
    .px-lg-20 { padding-inline: 20px; }
    .px-lg-30 { padding-inline: 30px;}
    .px-lg-40 { padding-inline: 40px;}
    .px-lg-50 { padding-inline: 50px;}
    .px-lg-60 { padding-inline: 60px; }
    .px-lg-80 { padding-inline: 80px; }
    .px-lg-100 { padding-inline: 100px;}
    .px-lg-120 { padding-inline: 120px;}

    .min-lg-height-500 {min-height: 500px;}
    .min-lg-height-600 {min-height: 600px;}
    .min-lg-height-700 {min-height: 700px;}
    .min-lg-height-800 {min-height: 800px;}
    .min-lg-height-auto {min-height: 100%;}
    .max-lg-height-400 {max-height: 400px;}
    .max-lg-height-500 {max-height: 500px;}
    .max-lg-height-600 {max-height: 600px;}
    .max-lg-height-700 {max-height: 700px;}
    .max-lg-height-800 {max-height: 800px;}
    .max-lg-height-auto {max-height: 100%;}
}
@media only screen and (min-width: 1200px) { 
    .px-xl-20 { padding-inline: 20px; }
    .px-xl-30 { padding-inline: 30px;}
    .px-xl-40 { padding-inline: 40px;}
    .px-xl-50 { padding-inline: 50px;}
    .px-xl-60 { padding-inline: 60px; }
    .px-xl-80 { padding-inline: 80px; }
    .px-xl-100 { padding-inline: 100px;}
    .px-xl-120 { padding-inline: 120px;}

    .min-xl-height-500 {min-height: 500px;}
    .min-xl-height-600 {min-height: 600px;}
    .min-xl-height-700 {min-height: 700px;}
    .min-xl-height-800 {min-height: 800px;}
    .min-xl-height-auto {min-height: 100%;}
    .max-xl-height-400 {max-height: 400px;}
    .max-xl-height-500 {max-height: 500px;}
    .max-xl-height-600 {max-height: 600px;}
    .max-xl-height-700 {max-height: 700px;}
    .max-xl-height-800 {max-height: 800px;}
    .max-xl-height-auto {max-height: 100%;}
}

@media only screen and (min-width: 1440px) { 
    .px-xxl-20 { padding-inline: 20px; }
    .px-xxl-30 { padding-inline: 30px;}
    .px-xxl-40 { padding-inline: 40px;}
    .px-xxl-50 { padding-inline: 50px;}
    .px-xxl-60 { padding-inline: 60px; }
    .px-xxl-80 { padding-inline: 80px; }
    .px-xxl-100 { padding-inline: 100px;}
    .px-xxl-120 { padding-inline: 120px;}

    .min-xxl-height-500 {min-height: 500px;}
    .min-xxl-height-600 {min-height: 600px;}
    .min-xxl-height-700 {min-height: 700px;}
    .min-xxl-height-800 {min-height: 800px;}
    .min-xxl-height-auto {min-height: 100%;}
    .max-xxl-height-400 {max-height: 400px;}
    .max-xxl-height-500 {max-height: 500px;}
    .max-xxl-height-600 {max-height: 600px;}
    .max-xxl-height-700 {max-height: 700px;}
    .max-xxl-height-800 {max-height: 800px;}
    .max-xxl-height-auto {max-height: 100%;}
}

.position {
    display: block;
    font-size: 12px;
    font-weight: 400;
    opacity: 0.618;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.partners-img {
    display: block;
    max-width: 440px !important;
    max-height: 320px;
    margin-left: auto;
    margin-right: auto;
    object-fit: contain;
}

.pafic-gradient {
    background: linear-gradient(270deg, #ffffff, #ebf4ff, #d7f0f4, #dde8f4, #dde8f4, #d7f0f4, #ebf4ff, #ffffff);
    background-size: 2700% 2700%;

    -webkit-animation: pafic-gradient 28s ease infinite;
    -moz-animation: pafic-gradient 28s ease infinite;
    animation: pafic-gradient 28s ease infinite;
}

@-webkit-keyframes pafic-gradient {
    0%{background-position:0% 50%}
    50%{background-position:100% 50%}
    100%{background-position:0% 50%}
}
@-moz-keyframes pafic-gradient {
    0%{background-position:0% 50%}
    50%{background-position:100% 50%}
    100%{background-position:0% 50%}
}
@keyframes pafic-gradient {
    0%{background-position:0% 50%}
    50%{background-position:100% 50%}
    100%{background-position:0% 50%}
}

.bg-transparent {
    background-color: transparent;
}