/* BASE
================================================== */

body {
    color: #171429;
    background: #fff;
}

body, input, button, textarea {
    font-family: Urbanist, Arial, sans-serif;
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
    line-height: 1.2;
    margin-top: 0;
    margin-bottom: 1.5rem;
    font-weight: 600;
}

p,
ul,
ol,
table,
figure {
    margin-bottom: 1.5rem;
}

a, input, textarea, button {
    transition: color .3s, background-color .3s, border-color .3s, opacity .3s;
}

a {
    text-decoration: none;
    color: #31219f;
}

a:hover {
    color: #6b57f0;
}

*, *:focus {
    outline: none !important;
}

img {
    max-width: 100%;
    height: auto;
}

figure img {
    width: 100%;
}

p > a {
    font-weight: 500;
}

/* LAYOUT
================================================== */

/*
	Header
*/

.header {
    position: fixed;
    display: flex;
    align-items: center;
    z-index: 1010;
	top: 0;
	right: 0;
	left: 0;
    height: 4rem;
	transition: all .5s;
}

	.header > .container {
		display: flex;
        justify-content: space-between;
		align-items: center;
	}

        .header__left {
            display: flex;
            align-items: center;
        }

            .header__logo {
                display: block;
                height: 1.875rem;
            }

                .header__logo img,
                .header__logo svg {
                    width: auto;
                    height: 100%;
                }

                .header__logo svg {
                    fill: #fff;
                    transition: fill .5s;
                }

        .header__right {
            display: flex;
            align-items: center;
        }

.header--sticky {
    background: #fff;
    box-shadow: 0 5px 20px rgba(0 0 0 / 4%);
}

/*
    Navigation
*/

.mobile-menu-btn {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 2rem;
    height: 2rem;
    margin-left: 1.5rem;
}

    .mobile-menu-btn span {
        display: block;
        width: 1.5rem;
        height: 2px;
        margin: 3px 0;
        background-color: #000;
    }

.main-menu {
    display: flex;
    align-items: center;
    font-size: 1rem;
    font-weight: 500;
}

    .main-menu ul {
        margin-bottom: 0;
        padding: 0;
        list-style-type: none;
    }

        .main-menu li {
            position: relative;
        }

            .main-menu li a {
                position: relative;
                display: block;
            }
    
    .main-menu > ul {
        display: flex;
        align-items: center;
    }

        .main-menu > ul > li {
            margin-left: 3rem;
        }

            .main-menu > ul > li > a:not(.btn) {
                padding: .5rem 0;
                color: #000;
            }

            .main-menu > ul > li:hover > a:not(.btn),
            .main-menu > ul > li.active > a:not(.btn) {
                color: #1AD2E5;
            }

    .main-menu ul ul {
        position: absolute;
        z-index: 1;
        visibility: hidden;
        top: 100%;
        left: -1.5rem;
        min-width: 15rem;
        padding: .75rem 0;
        text-align: left;
        background: #fff;
        box-shadow: 0 5px 20px rgba(0 0 0 / 6%);
        border-radius: 1rem;
        opacity: 0;
        transition: all .5s;
    }

        .main-menu ul ul a {
            padding: .375rem 1.5rem;
            color: #171429;
        }

        .main-menu ul ul li:hover > a,
        .main-menu ul ul li.active > a {
            color: #1AD2E5;
        }

        .main-menu ul ul ul {
            top: -.75rem;
            left: 100%;
        }

    .main-menu li:hover > ul {
        visibility: visible;
        opacity: 1;
    }


/*
	Footer
*/

.footer {
    position: relative;
    padding-top: 5rem;
    padding-bottom: 3.5rem;
    font-size: 1rem;
    font-weight: 500;
    color: #fff;
    background: #171429 url("../img/logo-line.svg") right bottom no-repeat;
    background-size: 70% auto;
}

.footer a {
    color: rgba(255 255 255 / 60%);
}

.footer a:hover {
    color: #fff;
}

    .footer__logo {
        margin-bottom: .875rem;
    }

        .footer__logo a {
            display: inline-block;
        }

            .footer__logo a img {
                display: block;
                height: 1.875rem;
            }

    .footer__title {
        text-transform: uppercase;
        margin-bottom: 1rem;
        font-size: .75rem;
        font-weight: 500;
    }

    .footer li {
        font-size: .875rem;
        margin-bottom: .5rem;
    }

.copyright {
    font-size: .875rem;
    color: rgba(255 255 255 / 60%);
}

/*
    Offcanvas
*/

.offcanvas {
    max-width: 80%;
    font-size: 1rem;
    background: #fff;
}

    .offcanvas-body {
        padding: 1rem 1rem;
    }

    .offcanvas ul {
        margin: 0 0 1rem;
        padding: 0 0 1rem;
        list-style-type: none;
    }

        .offcanvas ul a:not(.btn) {
            display: block;
            padding: .75rem 1.5rem;
            font-weight: 500;
            color: #171717;
        }

/* SECTIONS
================================================== */

/*
    Section
*/

.section {
    position: relative;
    padding-top: 4rem;
    padding-bottom: 2.5rem;
}

/*
    Section Figure
*/

.section-figure {
    position: relative;
}

    .section-figure > * {
        position: relative;
        z-index: 3;
    }

    .section-figure > figure {
        position: relative;
        width: 100%;
    }

/*
    Hero
*/

.hero {
    position: relative;
    display: flex;
    align-items: center;
    padding-top: 7rem;
    padding-bottom: 3rem;
}

    .hero > * {
        position: relative;
        z-index: 3;
    }

        .hero__bg {
            position: absolute;
            display: flex;
            align-items: center;
            justify-content: flex-end;
            z-index: 2;
            top: 50%;
            right: 3%;
            width: 40vw;
            max-width: 700px;
            min-width: 300px;
            margin-top: 2rem;
            opacity: 1;
            transform: translate(0, -50%);
        }

        .hero__bg:after {
            display: block;
            content: "";
            padding-bottom: 100%;
        }

            .hero__bg span {
                position: absolute;
                top: 0;
                right: 0;
                bottom: 0;
                left: 0;
                background: url("../img/logo-picture.png") center center no-repeat;
                background-size: contain;
            }

/* MODULES
================================================== */

/*
    Carousels
*/

.swiper-button-prev,
.swiper-button-next {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 3.125rem;
    height: 3.125rem;
    background: #fff;
    border-radius: 100%;
}

.swiper-button-prev:after,
.swiper-button-next:after {
    display: none;
}

    .swiper-button-prev img,
    .swiper-button-next img {
        width: .875rem;
        height: .875rem;
        transition: opacity .5s;
    }

.swiper-button-next.swiper-button-disabled,
.swiper-button-prev.swiper-button-disabled {
    opacity: 1;
}

    .swiper-button-next.swiper-button-disabled img,
    .swiper-button-next:hover img,
    .swiper-button-prev.swiper-button-disabled img,
    .swiper-button-prev:hover img {
        opacity: .4;
    }

.quote-carousel {
    overflow: initial;
    padding-bottom: 2rem;
}

    .quote-carousel .swiper-slide {
        height: auto;
    }

        .quote-carousel .swiper-slide .quote {
            transition: opacity .3s;
        }

    .quote-carousel .swiper-button-prev,
    .quote-carousel .swiper-button-next {
        top: 100%;
        margin: 0;
    }

    .quote-carousel .swiper-button-prev {
        
        right: 3.75rem;
        left: auto;
    }

    .quote-carousel .swiper-button-next {
        right: 0;
    }

.logo-carousel {
    text-align: center;
}

    .logo-carousel .swiper-wrapper {
        transition: linear;
    }

    .logo-carousel img {
        height: 2.5rem;
    }

/*
    Object Box
*/

.object-box {
    color: rgba(0 0 0 / 60%);
}

    .object-box figure {
        display: inline-block;
        width: auto;
        height: 8rem;
        transform: translate(-20%, 0);
    }

        .object-box figure img {
            width: 100%;
            height: 100%;
            object-fit: contain;
        }

    .object-box__title {
        font-size: 1.5rem;
        margin-bottom: 1rem;
        color: #171429;
    }

/*
    Team Box
*/

.team-box {
    text-align: center;
}

    .team-box figure {
        max-width: 200px;
        margin-left: auto;
        margin-right: auto;
    }

    .team-box__title {
        margin-bottom: .5rem;
        font-size: 1.375rem;
    }

    .team-box__subtitle {
        font-size: 1.25rem;
        font-weight: 600;
        opacity: .5;
    }

/*
    Pricing
*/

.pricing {
    position: relative;
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 3rem;
    font-weight: 500;
    border-radius: 1.875rem;
}

    .pricing__title {
        margin-bottom: .5rem;
        font-size: 1.875rem;
        font-weight: 700;
        color: #1AD2E5;
    }

    .pricing__description {
        margin-bottom: .75rem;
        font-size: 1.25rem;
        opacity: .6;
    }

    .pricing__price {
        margin-bottom: 1rem;
    }

        .pricing__price span {
            display: inline-block;
            margin-right: .5rem;
            font-size: 3.75rem;
            font-weight: 600;
        }

    .pricing ul + .btn {
        margin-top: auto;
    }

    .pricing .badge {
        position: absolute;
        z-index: 1;
        top: 0;
        left: 3rem;
        transform: translate(0, -50%);
    }

.pricing--transparent {
    color: #fff;
    background-color: rgba(255 255 255 / 10%);
    backdrop-filter: blur(1rem);
}

.pricing--primary {
    color: #fff;
    background-color: #31219F;
}

.pricing--white {
    color: #171429;
    background-color: #fff;
}

/*
    Quote
*/

.quote {
    margin-top: 2rem;
    margin-bottom: 0;
    padding: 2.5rem;
    background-color: #fff;
    border-radius: 1.875rem;
}

    .quote figure {
        overflow: hidden;
        width: 6.25rem;
        height: 6.25rem;
        margin-top: -4.5rem;
        border-radius: 100%;
    }

        .quote figure img {
            display: block;
            width: 100%;
            height: 100%;
            object-fit: cover;
        }

blockquote {
    font-size: 1.25rem;
}

    blockquote > p {
        margin-bottom: 1rem;
        font-family: "Zilla Slab", Arial, sans-serif;
        font-style: italic;
    }

    blockquote cite {
        font-style: normal;
        font-size: 1rem;
        font-weight: 600;
    }

        blockquote cite span {
            display: block;
            font-size: .875rem;
            font-weight: 500;
            opacity: .6;
        }

/*
    Panel
*/

.panel {
    position: relative;
    overflow: hidden;
    padding: 3rem 3rem 1.5rem;
    background-color: #31219F;
    border-radius: 1.875rem;
}

    .panel > * {
        position: relative;
        z-index: 2;
    }

    .panel__bg {
        position: absolute;
        z-index: 1;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        background-size: cover;
        mix-blend-mode: multiply;
        opacity: .3;
    }

.panel--primary {
    color: #fff;
}

/* COMPONENTS
================================================== */

/*
	Form components
*/

.form-label {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
    font-weight: 600;
    font-size: .875rem;
    margin-bottom: .25rem;
}

.form-control,
.form-control:focus,
.form-select,
.form-select:focus {
    background-color: #fff;
}

.form-control,
.form-select,
.custom-select__selected {
    min-height: 3.375rem;
    padding: .875rem 1.5rem;
    font-size: 1rem;
    border: 1px solid #dddce4;
    font-weight: 500;
    border-radius: 1.75rem;
    transition: all .3s;
}

.form-control:hover,
.form-select:hover,
.custom-select__selected:hover {
    border-color: #9896a6;
}

.form-control:focus,
.form-select:focus {
    border-color: #31219f;
    box-shadow: 0 0 0 1px #31219f;
}

.form-control:disabled,
.form-select:disabled {
    color: #9896a6;
    border-color: #dddce4;
    background-color: #ededf1;
}

.form-control::placeholder { color: rgba(0 0 0 / 50%) !important; opacity: 1; }
.form-control:-ms-input-placeholder { color: rgba(0 0 0 / 50%) !important; }
.form-control::-ms-input-placeholder { color: rgba(0 0 0 / 50%) !important; }

.form-check {
    margin-bottom: 0;
    padding-top: .25em;
    padding-bottom: .25em;
    padding-left: 3em;
    font-weight: 600;
    font-size: .875rem;
}

    .form-check .form-check-input {
        width: 2.142857em;
        height: 2.142857em;
        margin-left: -3em;
        margin-top: -.35714285em;
        border-color: rgba(0 0 0 / 20%);
        background-color: transparent;
    }

    .form-check .form-check-input[type="checkbox"] {
        background-size: 75%;
        border-radius: 100%;
    }

    .form-check .form-check-input:focus {
        box-shadow: 0 0 0 .25rem rgba(0 0 0 / 5%);
    }

    .form-check .form-check-input:checked {
        border-color: #31219f;
        background-color: #31219f;
    }

    .form-check-label {
        cursor: pointer;
    }

    .form-check a {
        color: inherit;
        text-decoration: underline;
    }

    .form-check a:hover {
        text-decoration: none;
    }

/*
    Custom select
*/

.custom-select {
  position: relative;
  font-size: 1rem;
  font-weight: 500;
}

    .custom-select select {
        position: absolute;
        overflow: hidden;
        width: 1px;
        height: 1px;
        opacity: 0;
    }

    .custom-select__selected {
        overflow: hidden;
        white-space: nowrap;
        text-overflow: ellipsis;
        padding-right: 3rem;
    }

    .custom-select__selected:after {
        position: absolute;
        content: "";
        top: 50%;
        right: 1.5rem;
        width: .875rem;
        height: .875rem;
        background: url("../img/icons/chevron-down.svg") center center no-repeat;
        background-size: contain;
        transform: translate(0, -50%);
    }

    .custom-select__options {
        position: absolute;
        overflow: auto;
        z-index: 10;
        top: 100%;
        left: 0;
        right: 0;
        margin-top: .375rem;
        padding: .5rem;
        list-style-type: none;
        border: 1px solid #dddce4;
        background-color: #fff;
        border-radius: 1.75rem;
        box-shadow: 0 .125rem .5rem rgba(0 0 0 / 10%);
    }

        .custom-select__options li {
            padding: .5rem 1rem;
            margin-bottom: 2px;
            cursor: pointer;
            border-radius: 1.75rem;
            transition: all .3s;
        }

        .custom-select__options li:hover {
            color: #31219f;
            background-color: #f5f5f8;
        }

        .custom-select__options li.selected {
            color: #fff;
            background-color: #31219f;
        }

    .custom-select__options--hide {
        display: none;
    }

/*
	Buttons
*/

.btn {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: .75rem 1.5rem;
    font-size: 1rem;
    font-weight: 600;
    box-shadow: none;
    border-radius: 2rem;
    transition: all .5s;
}

.btn:focus,
.btn:active:focus {
    box-shadow: 0 0 0 .25rem rgba(0 0 0 / 10%);
}

.btn-primary,
.btn-primary:focus {
    border-color: #31219F;
    background-color: #31219F;
}

.btn.btn-primary:active,
.btn-primary:hover {
    border-color: #4433bc;
    background-color: #4433bc;
}

.btn-secondary,
.btn-secondary:focus {
    border-color: #1AD2E5;
    background-color: #1AD2E5;
}

.btn.btn-secondary:active,
.btn-secondary:hover {
    border-color: #11b7c8;
    background-color: #11b7c8;
}

.btn--white,
.btn--white:focus {
    border-color: #fff;
    color: #31219F;
    background-color: #fff;
}

.btn.btn--white:active,
.btn--white:hover {
    border-color: transparent;
    color: #31219F;
    background-color: rgba(255 255 255 / 70%);
}

.btn--white-transparent,
.btn--white-transparent:focus {
    border-color: transparent;
    color: #fff;
    background-color: rgba(255 255 255 / 20%);
    backdrop-filter: blur(1rem);
}

.btn.btn--white-transparent:active,
.btn--white-transparent:hover {
    border-color: transparent;
    color: #fff;
    background-color: rgba(255 255 255 / 30%);
}

.btn.disabled,
.btn:disabled {
    border-color: #ededf1;
    color: #9896a6;
    background-color: #ededf1;
    opacity: 1;
}

/*
    Titles
*/

.page-title {
    font-size: 2.25rem;
}

.section-title {
    font-size: 1.75rem;
}

.section-pretitle {
    font-size: 1.25rem;
    color: #31219F;
}

.article-title {
    font-size: 1.375rem;
}

.muted-title {
    font-size: 1.25rem;
    opacity: .6;
}

.section-description {
    margin-bottom: 3rem;
    font-size: 1.125rem;
    opacity: .6;
}

/*
    Lists
*/

.list--icons {
    display: flex;
    flex-wrap: wrap;
    padding: 0;
    list-style-type: none;
}
    .list--icons li {
        margin-right: .5rem;
    }

        .list--icons a {
            display: flex;
            align-items: center;
            justify-content: center;
            width: 1.875rem;
            height: 1.875rem;
            background: rgba(255 255 255 / 15%);
            border-radius: 100%;
        }

            .list--icons a img {
                width: .875rem;
                height: .875rem;
                fill: #fff;
            }

        .list--icons a:hover {
            background: rgba(255 255 255 / 30%);
        }

.list--with-icon {
    padding: 0;
    font-size: 1rem;
    list-style-type: none;
}

    .list--with-icon li {
        position: relative;
        padding: 0 0 0 2em;
        margin-bottom: 1em;
    }

        .list--with-icon li img {
            position: absolute;
            top: .0625em;
            left: 0;
            width: 1.25em;
            height: 1.25em;
        }

.list--with-circle-icon {
    margin: 0;
    padding: 0;
    font-weight: 500;
    list-style-type: none;
}

    .list--with-circle-icon li {
        position: relative;
        display: flex;
        flex-direction: column;
        justify-content: center;
        min-height: 5rem;
        margin-bottom: 2rem;
        padding-left: 6.75rem;
    }

        .list--with-circle-icon li span {
            position: absolute;
            display: flex;
            align-items: center;
            justify-content: center;
            content: "";
            top: 50%;
            left: 0;
            width: 5rem;
            height: 5rem;
            border: 1px solid #DDDCE4;
            transform: translate(0, -50%);
            border-radius: 100%;
        }

            .list--with-circle-icon li span img {
                display: block;
                width: 2.25rem;
                height: 2.25rem;
            }

.list--logos {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    padding: 0;
    list-style-type: none;
}

    .list--logos li {
        margin: 0 1rem 1rem;
    }

        .list--logos li img {
            height: 1.5rem;
        }

/*
    Badge
*/

.badge {
    padding: .5rem 1rem;
    font-weight: 600;
    font-size: .875rem;
    border-radius: 2rem;
}

.badge--secondary {
    background: #1AD2E5;
}

/* GLOBALS
================================================== */

.bg--gradient-gray {
    position: relative;
}

.bg--gradient-gray:after {
    position: absolute;
    content: "";
    z-index: -1;
    top: 0;
    right: 0;
    left: 0;
    height: 600px;
    max-height: 100%;
    background: linear-gradient(to bottom, #F1F0F4 0%, rgba(255 255 255 / 0%) 100%);
}

.bg--wave {
    background: #171429 url("../img/bg-wave.jpg") top center;
    background-size: 100% auto;
}

.bg--primary {
    background-color: #31219f;
}

.bg--gray {
    background-color: #F1F0F4;
}

.text--lg {
    font-size: 1.125rem;
}

.z--1 {
    z-index: 1;
}

.z--2 {
    z-index: 2;
}

/* RESPONSIVE
================================================== */

/*
	XS
*/

@media screen and (max-width: 575px) {

}

/*
	SM and down
*/

@media screen and (max-width: 767px) {

}

/*
	MD and down
*/

@media screen and (max-width: 991px) {


}

/*
    MD and up
*/

@media screen and (min-width: 768px) {

    .footer {
        background-size: 35% auto;
    }

    .hero {
        min-height: 90vh;
    }

}

/*
	LG and up
*/

@media screen and (min-width: 992px) {
    .section-figure {
        display: flex;
        align-items: center;
        padding-top: 1.5rem;
    }

    .section-figure:before {
        top: 0;
        left: -15%;
        width: 50%;
    }

        .section-figure > figure {
            position: absolute;
            display: flex;
            overflow: hidden;
            top: 50%;
            right: 0;
            width: 47%;
            max-height: 100%;
            margin: 0;
            text-align: right;
            transform: translate(0, -50%);
            border-radius: 3rem 0 0 3rem;
        }

    .panel {
        padding: 8rem 6.25rem 6rem;
        border-radius: 3rem;
    }

    
    .quote-carousel .swiper-slide .quote {
        opacity: 0;
    }

        .quote-carousel .swiper-slide-active .quote,
        .quote-carousel .swiper-slide-active ~ .swiper-slide .quote {
            opacity: 1;
        }

    .logo-carousel img {
        height: 4rem;
    }

    .page-title {
        font-size: 3rem;
    }

    .section-title {
        font-size: 2.5rem;
    }

    .section-description {
        font-size: 1.5rem;
    }

    .text--lg {
        font-size: 1.25rem;
    }

}
 
/*
    XL and up
*/
 
@media screen and (min-width: 1200px) {

    body {
        font-size: 1.25rem;
    }

    .header {
        height: 6.875rem;
    }

        .header__logo {
            height: 2.75rem;
        }

        .header__buttons {
            display: flex;
            align-items: center;
            list-style-type: none;
            margin: 0;
            padding: 0;
        }

            .header__buttons li {
                margin-left: 2rem;
            }

                .header__buttons a {
                    display: flex;
                    align-items: center;
                    text-align: center;
                    min-height: 3.75rem;
                    padding: 1.125rem 1.5rem;
                    font-weight: 600;
                    font-size: .875rem;
                    color: #fff;
                    background-color: #008C93;
                    border-radius: 2rem;
                }

                .header__buttons a:hover,
                .header__buttons a:focus {
                    background: #006c72;
                }

    .footer {
        background-position: right 1rem;
    }

    .section {
        padding-top: 8rem;
        padding-bottom: 6rem;
    }

    .hero {
        position: relative;
        padding-top: 15rem;
        padding-bottom: 13rem;
        font-size: 1.875rem;
    }

        .hero__bg {
            margin-top: 0;
        }

    .hero + .section {
        margin-top: -6rem;
    }

    .quote-carousel {
        margin-right: 6rem;
    }

        .quote-carousel .swiper-button-prev,
        .quote-carousel .swiper-button-next {
            transform: translate(6rem, 0);
        }

    .logo-carousel img {
        height: 6.75rem;
    }

    .object-box figure {
        height: 11.875rem;
    }

    .page-title {
        font-size: 4.375rem;
    }

    .section-title {
        font-size: 3.125rem;
    }
    
    .section-pretitle {
        font-size: 1.875rem;
    }

    .section-description {
        font-size: 1.875rem;
    }

    .article-title {
        font-size: 2.5rem;
    }

    .text--sm {
        font-size: 1rem;
    }

    .text--lg {
        font-size: 1.5rem;
    }

    .list--logos li {
        margin: 0 2rem 2rem;
    }

        .list--logos li img {
            height: 2.5rem;
        }

}

/*
    XL
*/
 
@media screen and (min-width: 1200px) and (max-width: 1399px) {

    html {
        font-size: 85%;
    }

}

/*
	XXXL and up
*/

@media screen and (min-width: 1500px) {

    .container,
    .container-lg, 
    .container-md,
    .container-sm,
    .container-xl,
    .container-xxl {
        --bs-gutter-x: 5rem;
        max-width: calc(1400px + 2.5rem);
    }

    .row:not([class^="g-"]):not([class*=" g-"]):not([class^="gx-"]):not([class*=" gx-"]) {
        --bs-gutter-x: 2.5rem;
    }

    .g-4,
    .gy-4 {
        --bs-gutter-y: 2.5rem;
    }

}