/* container */

div.container {
    max-width: 65rem;
}

/* title */

div.title h2 {
    font-size: 2.5rem;
    font-weight: 600;
    line-height: 1.2;

    margin-bottom: 1rem;
}

div.title p {
    font-size: 1rem;
    font-weight: 500;

    color: var(--color-dark-64);
}

@media (max-width: 991px) {
    div.title h2 {
        font-size: 1.65rem;
    }

    div.title p {
        font-size: 1rem;
    }
}

/* hero */

section.hero {
    padding: 8rem 0;
}

section.hero h1 {
    font-size: 3.125rem;
    font-weight: 600;
    line-height: 1.2;

    margin-bottom: 1.25rem;
}

section.hero h1 span {
    color: var(--color-primary);
}

section.hero p {
    font-size: .9rem;
    font-weight: 400;

    color: var(--color-dark-64);
}

section.hero .image {
    display: flex;
    align-items: center;
    justify-content: center;

    position: relative;
}

section.hero .image img {
    max-width: 110%;
}

section.hero .image span.float-text {
    position: absolute;

    background: var(--color-white-16);

    backdrop-filter: blur(.25rem);

    border-radius: 10rem;

    padding: .375rem;

    display: flex;

    transition: .1s ease-out;
}

section.hero .image span.float-text > span {
    color: var(--color-primary);
    background: var(--color-white-88);

    padding: .75rem 1.5rem;

    border-radius: 10rem;

    font-size: 1rem;
    font-weight: 500;
    white-space: nowrap;

    display: block;

    box-shadow: -0.25rem .25rem 3rem 0 var(--color-dark-08);
}

section.hero .image span.float-text:nth-of-type(1) {
    top: 2%;
    left: -10%;
}

section.hero .image span.float-text:nth-of-type(2) {
    top: 20%;
    right: -16%;
}

section.hero .image span.float-text:nth-of-type(3) {
    bottom: 12%;
    left: -8%;
}

section.hero .image span.float-text:nth-of-type(4) {
    bottom: 24%;
    right: -14%;
}

@media (max-width: 991px) {

    section.hero {
        padding: 8rem 0 5rem;
    }
    
    section.hero h1 {
        font-size: 2.25rem;
    }

    section.hero p {
        font-size: 1rem;
    }

}

/* slider */

section.slider {
    padding: 0 0 4rem;
}

section.slider div.slide-container {
    position: relative;
}

section.slider div.slide-container::before {
    content: "";

    position: absolute;
    top: 0;
    left: 0;

    width: 20%;
    height: 100%;
    
    background: linear-gradient(to right, var(--color-white), transparent);

    z-index: 4;
}

section.slider div.slide-container::after {
    content: "";

    position: absolute;
    top: 0;
    right: 0;

    width: 20%;
    height: 100%;

    background: linear-gradient(to left, var(--color-white), transparent);

    z-index: 4;
}

section.slider div.slide {
    display: flex;
    gap: 1.25rem;

    scroll-snap-type: x mandatory;

    overflow-x: auto;
    scroll-behavior: smooth;

    -webkit-overflow-scrolling: touch;
    -ms-overflow-style: none;
    scrollbar-width: none;
}

section.slider div.slide div.item {
    display: flex;
    flex-direction: column;
    gap: 1rem;

    scroll-snap-align: center;

    width: 35%;
    min-width: 35%;
}

section.slider div.slide div.item .image {
    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 1rem;

    overflow: hidden;

    width: 100%;
    padding-top: 60%;   

    background: linear-gradient(to right bottom, var(--color-primary), var(--color-blue));
    background: var(--color-primary);

    position: relative;
}

section.slider div.slide div.item .image > img {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);

    height: 80%;

    filter: drop-shadow(0 0 2rem var(--color-dark-48));
}

section.slider div.slide div.item div.content h4 {
    font-size: 1.125rem;
    font-weight: 600;
    line-height: 1.2;

    margin-bottom: .5rem;
}

section.slider div.slide div.item div.content p {
    font-size: .9rem;
    font-weight: 400;

    color: var(--color-dark-72);
}

section.slider div.slide-container {
    display: flex;
    flex-direction: column;
}

section.slider div.slide-container div.scroll {
    display: flex;
    align-self: center;

    width: 10rem;
    height: .5rem;

    background: var(--color-dark-08);

    border-radius: 10rem;

    overflow: hidden;

    margin: 3rem 0 1rem;
}

section.slider div.slide-container div.scroll div.bar {
    min-width: 2rem;
    height: 100%;

    background: var(--color-primary);

    border-radius: 10rem;

    position: relative;
}

@media (max-width: 991px) {

    section.slider div.slide div.item {
        width: 100%;
        min-width: 100%;
    }

    section.slider div.slide div.item:first-child {
        display: none;
    }

    section.slider div.slide div.item:last-child {
        display: none;
    }

    section.slider div.slide-container::before,
    section.slider div.slide-container::after {
        width: 15%;
        height: 45%;

        display: none;
    }
}

/* functions */

section.functions div.block {
    padding: 3rem 1.5rem;

    background: var(--color-primary);

    border-radius: 1rem;

    position: relative;
}

section.functions div.block > * {
    position: relative;
    z-index: 1;
}

section.functions div.block::after {
    content: "";

    width: 100%;
    height: 10rem;

    background: linear-gradient(to top, var(--color-white-72), transparent);

    position: absolute;
    bottom: 0;
    left: 0;

    z-index: 0;
}

section.functions div.block div.title h2 {
    color: var(--color-white);
}

section.functions div.block div.title p {
    color: var(--color-white-80);
}

section.functions div.block div.item {
    display: flex;
    flex-direction: column;
    gap: 1rem;

    padding: 1.25rem 1.25rem 1rem 1.25rem;

    border-radius: 1rem;

    background: var(--color-white-32);
    border: 1px solid var(--color-white-16);

    transition: all .2s ease;
}

section.functions div.block div.item.active {
    background: var(--color-white);
}

section.functions div.block div.item span.title {
    color: var(--color-white);

    font-weight: 500;

    display: block;
}

section.functions div.block div.item.active span.title {
    color: var(--color-dark);
}

section.functions div.block div.item .icon {
    width: 3rem;
    height: 3rem;

    background: var(--color-white-16);
    border: 1px solid var(--color-white-08);

    border-radius: 50%;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: .5rem;
}

section.functions div.block div.item .icon svg {
    max-width: 100%;
}

section.functions div.block div.item.active .icon {
    background: var(--color-primary);
}

@media (max-width: 991px) {

    section.functions div.block div.item {
        align-items: center;

        text-align: center;

        border-radius: 1.5rem;

        padding: 1.5rem 3rem;
    }

    section.functions div.block div.item .icon {
        width: 3.5rem;
        height: 3.5rem;
    }
    
    section.functions div.block div.item span.title {
        font-size: 1.125rem;
    }

}

/* benefits */

section.benefits {
    padding: 7rem 0;
}

section.benefits ul {
    display: flex;
    flex-direction: column;
    gap: 1rem;

    margin-bottom: 1.75rem;
    margin-top: 1.75rem;
}

section.benefits ul li {
    display: flex;
    align-items: center;
    gap: .75rem;

    font-weight: 500;
}

section.benefits ul li .icon {
    width: 1.5rem;
    height: 1.5rem;
    
    background: var(--color-primary);
    color: var(--color-white);

    border-radius: 50%;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: .5rem;
}

section.benefits ul li .icon i {
    width: 1rem;
    height: 1rem;

    font-size: .85rem;

    display: flex;
    align-items: center;
    justify-content: center;

    padding-top: 1px;
}

section.benefits div.spotlight {
    font-size: 1rem;
    font-weight: 500;

    color: var(--color-primary);
}

section.benefits div.image {
    width: 100%;

    border-radius: 1rem;

    overflow: hidden;

    padding-top: 75%;

    background: var(--color-dark-08);
}

@media (max-width: 991px) {
    section.benefits {
        padding: 5rem 0 0;
    }
}

/* cta */

section.cta {
    padding: 10rem 0;
}

section.cta p.desc {
    font-size: 1rem;
}

section.cta div.container {
    position: relative;
}

section.cta div.container > div.images {
    width: 100%;
    height: 100%;

    position: absolute;
    top: 0;
    left: 0;

    z-index: 1;
}

section.cta div.container > div.images > img {
    position: absolute;

    width: 9rem;
}

section.cta div.container > div.images > img:nth-of-type(1) {
    top: -37.5%;
    left: 7.5%;
}

section.cta div.container > div.images > img:nth-of-type(2) {
    top: -37.5%;
    right: 7.5%;
}

section.cta div.container > div.images > img:nth-of-type(3) {
    top: 60%;
    left: 4%;
}

section.cta div.container > div.images > img:nth-of-type(4) {
    top: 60%;
    right: 4%;
}

section.cta div.container > div.images > img:nth-of-type(5) {
    top: calc(60% + 6rem);
    right: calc(4% + 10rem);
    width: 12rem;
}

section.cta div.container > div.images > img:nth-of-type(6) {
    top: calc(-37.5% + 5.75rem);
    left: calc(7.5% + 7.5rem);

    width: 10.5rem;
}

@media (max-width: 991px) {

    section.cta {
        padding: 5rem 0;
    }

    section.cta div.container > div.images {
        display: none;
    }

}

/* faq */

section.faq {
    padding: 0 0 7rem;
}

section.faq div.accordion {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

section.faq div.accordion div.item {
    display: flex;
    flex-direction: column;

    border: 1px solid var(--color-dark-16);

    border-radius: 1rem;
}

section.faq div.accordion div.item.active {
    background: var(--color-dark-04);
}

section.faq div.accordion div.item div.header {
    display: flex;
    align-items: center;
    justify-content: space-between;

    padding: 1rem 1.25rem;

    cursor: pointer;
}

section.faq div.accordion div.item div.header span.title {
    font-size: 1.125rem;
    font-weight: 500;
}

section.faq div.accordion div.item.active div.header i {
    transform: rotate(180deg);

    width: 1rem;
    height: 1rem;

    display: flex;
    align-items: center;
    justify-content: center;
}

section.faq div.accordion div.item div.body {
    display: none;

    padding: 0 1.25rem 1.25rem;

    color: var(--color-dark-72);
}

section.faq div.accordion div.item.active div.body {
    display: block;
}

@media (max-width: 991px) {

    section.faq {
        padding: 0 0 4rem;
    }

    section.faq div.accordion div.item div.header {
        gap: 1.5rem;
    }

}

/* responsive */

@media (max-width: 991px) {
    
    section.hero .image span.float-text {
        display: none;
    }

    section.hero .image img {
        max-width: 100%;
    }

}