@font-face {
    font-family: neue;
    src: url(/imgs/helvetica-neue-5/HelveticaNeueLight.otf);
}
@keyframes slideUp {
    from {
        transform: translateY(100px);
        opacity: 0;
    }
    to {
        transform: translateY(0);
        opacity: 1;
    }
}

@keyframes slideLeft {
    from {
        transform: translateX(100px);
        opacity: 0;
    }
    to {
        transform: translateX(0);
        opacity: 1;
    }
}

/* ---GLOBAL--- */
html{
    scroll-behavior: smooth;
}
body{
    margin: 0;
    color:#314083;
    font-family: neue;
    width: 100%;
    overflow-x: hidden;
}
a{
    text-decoration: none;
}
.background-img{
    position: absolute;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: -1;
    margin-left: -10%;
}


/* ---HEADER--- */
header #burger-menu-button, .burger-wrapper{ display: none;}
header{
    position: fixed;
    top: 0;
    height: 4rem;
    width: 100vw;
    z-index: 99;
}
.header-wrapper{
    width: 100%;
    height: 100%;
    align-items: center;
    display: flex;
    justify-content: space-between;
    
    background-color: rgba(255, 255, 255, 0.65);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    transition: box-shadow 0.3s ease, background-color 0.3s ease;

}
.header-wrapper.scrolled {
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
    background-color: rgba(255, 255, 255, 0.65);
}

.header-wrapper div, .header-wrapper > a{
    display: flex;
    margin: 0 2rem;
    height: 100%;
    align-items: center;
}
header a {
    color: #314083;
}
header img{
    width: 4rem;
    transform: scaleX(75%);
}
#header-name{
    padding-left: 1rem;
    font-size: 1.75rem;
}
.header-menu a{
    margin: 0 1rem;
    font-size: 1.5rem;
    opacity: 0;
    position: relative;
}
.header-menu a::after{
    content: '';
    position: absolute;
    width: 0;
    height: 2px;
    bottom: -4px;
    left: 0;
    background-color: #314083;
    transition: width .2s ease-in-out;
}
.header-menu a:hover::after{
    width: 100%;
}
.no-js .header-menu a{
    opacity: 1;
}


/* ---FINANCE SECTION---*/
#finance{
    position: relative;
    margin-top: 4rem;
    font-size: 1.25rem;
    height: calc(100vh - 4rem);
    min-height: fit-content;
    padding: 0 10%;
    overflow: hidden;
}
#finance img{
    filter:opacity(40%);
    position: absolute;
    top: 0;
    left: 0;
    width: 110%;
    height: 120%;
    object-fit: cover;
    z-index: -1;
    margin-left: -10%;
    will-change: transform;
    pointer-events: none;
}
#finance h2{
    animation: slideUp 0.4s ease-out forwards;
    font-size: 3rem;
    width: 50%;
    padding: 5rem 0 2rem;
}
#finance p{
    opacity: 0;
    animation: slideUp 0.5s ease-out .3s forwards;
    width: 35%;
}


/* ---POINT SECTION--- */
#points{
    padding-top: 3rem;
    display: flex;
}
#points > div:first-child{
    width: 40%;
    height: 400px;
    overflow: hidden;
}
#points > div:first-child > img{
    width: 100%;
    margin-top: -15%;
}
#points > .wrapper{
    margin: auto 0;
    width: 30%;
}
#points > .wrapper > div{
    display: flex;
    margin-bottom: 1rem;
    font-size: 1.3rem;
}
#points > .wrapper img{
    padding: 0 1rem 0 0
}


/* ---SERVICES SECTION--- */
#services {
    background-color: #f5f5f5;
    padding: 5%;
}
.services-grid{
    padding-top: 15px;
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    max-width: 1200px;
    margin: auto;
}
.bubble{
    font-size: 1.5rem;
    border-radius: 60px;
    display: flex;
    flex-direction: column;
    background-color: white;
    padding: 1rem 1rem;
    width: fit-content;
    text-align: center;
    justify-content: center;
}
.service{
    font-size: 1.3rem;
    width: unset;
    align-items: center;
    color: white;
    background-color: #314083;
    display: flex;
    flex-direction: column;
    align-items: center;
    min-height: 10rem;
    transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.3s ease;
}
.service:hover {
    transform: translateY(-8px) translateX(8px);
    box-shadow: 0 12px 24px rgba(49, 64, 131, 0.15);
    box-shadow: #d4d7e5 -6px 6px 5px 5px;
}
.service.hover{ /* pseudoclass workaround */
    transform: translateY(-8px) translateX(8px);
    box-shadow: 0 12px 24px rgba(49, 64, 131, 0.15);
    box-shadow: #d4d7e5 -6px 6px 5px 5px;
}
.service img{
    width: 2rem;
    filter: brightness(0) invert(1);
}
/* desktop view */
@media (min-width: 768px) {
  .services-grid {
    grid-template-columns: repeat(7, 1fr);
    gap: 2rem;
    grid-template-rows: auto auto;
  }

  .services-grid .service:nth-child(1){
   grid-column: span 3;
  }
  .services-grid .service:nth-child(2){
   grid-column: span 2;
  }
  .services-grid .service:nth-child(3){
   grid-column: span 2;
  }

  .services-grid .service:nth-child(4){
   grid-column: span 2;
  }
  .services-grid .service:nth-child(5){
   grid-column: span 1;
  }
  .services-grid .service:nth-child(6){
   grid-column: span 2;
  }
  .services-grid .service:nth-child(7){
   grid-column: span 2;
  }
}


/* ---DESCRIPTION SECTION--- */
#description{
    padding: 5% 10%;
    font-size: 1.3rem;
}
#description h2{
    font-size: 2rem;
}
#description > div{
    display: flex;
    gap: 3rem;
}
#description > div > div{
    width: 50%;
}
#description .bubble{
    background-color: #314083;
    color: white;
    font-size: 1.2rem;
    transition: all .3s ease-in-out;
}
#description .bubble:hover{
    background-color: black;
}


/* ---MID-SECTION--- */
.mid-section{
    height: 400px;
    max-width: 100vw;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 1.5rem;
    text-align: center;
    contain: paint;
    position: relative;
}
.mid-section p{
    max-width: 60%;
    overflow: hidden;
}
.mid-section img{
    position: absolute;
    height: 300px;
    z-index: 1;
}
.mid-section .left-logo{
    animation: midsectionLeft 1ms linear;
    animation-timeline: view();
    animation-range: entry 0% cover 30%;
    animation-fill-mode: both;
    left: -15%;
    transform: rotate(180deg);
}
.mid-section .right-logo{
    animation: midsectionRight 1ms linear;
    animation-timeline: view();
    animation-range: entry 0% cover 30%;
    animation-fill-mode: both;
    right: -15%;
}
@keyframes midsectionLeft {
    from {
        transform: rotate(180deg) translateX(150px);
    }
    to {
        transform: rotate(180deg) translateX(0);
    }
}
@keyframes midsectionRight {
    from {
        transform: translateX(150px);
    }
    to {
        transform: translateX(0);
    }
}
.mid-section.first{
    background-color: #314083;
    color: white;
}
.mid-section.second{
    background-color: #f5f5f5;
}


/* ---ADVICES SECTION--- */
#advices{
    padding: 5%;
}
#advices h2{
    font-size: 2rem;
}
#advices .wrapper{
    display: grid;
    grid-template-columns: auto auto;
    gap: 3rem;
    width: 70%;
    margin: auto;
}
#advices .advice{
    font-size: 1.3rem;
}
#advices .advice div{
    display: flex;
    align-items: center;
}
#advices .advice img{
    height: 3rem;
    filter: invert(21%) sepia(29%) saturate(4975%) hue-rotate(215deg) brightness(91%) contrast(93%);
}
#advices .advice h3{
    font-size: 1.6rem;
    margin: 0 0 0 1rem;
}
#advices .advice ul{
    margin-left: 3rem;
}
#advices .advice li{
    margin-bottom: 8px;
}
#mobile-advices{
    display: none;
}


/* ---REVIEWS SECTION--- */
#reviews{
    position: relative;
}
#reviews .background-img{
    margin-left: 0;
}
.review-wrapper{
    padding: 5%;
    display: flex;
    gap: 1.5rem;
}
.review{
    flex: 1 1 0px;
    background-color: white;
    border-radius: 10px;
    padding: 1rem;
    font-size: 1.2rem;
    height: fit-content;
    opacity: 0;
}
.no-js .review{opacity: 1;}
.review > div{
    display: flex;
    align-items: center;
}
.review > div p{
    margin: 0 0 0 1rem;
}
.review img{
    width: 3rem;
    filter: invert(21%) sepia(29%) saturate(4975%) hue-rotate(215deg) brightness(91%) contrast(93%);
}
.review .img-wrapper{
    height: 3rem;
    width: 3rem;
    min-width: 3rem;
    overflow: hidden;
    border-radius: 40px;
}


/* ---FOOTER--- */
footer{
    color: white;
    background-color: #314083;
    padding: 10% 5%;
}
footer h2{
    font-size: 3rem;
}
footer > p{
    font-size: 1.7rem;
    max-width: 450px;
}
footer > div{
    display: flex;
    align-items: center;
    gap: 3rem;
    margin-left: 10%;
    font-size: 1.3rem;
    position: relative;
}
footer img{
    height: 6rem;
    position: absolute;
}
footer > div > div{
    padding-left: 12rem;
}
    footer .link{
        color: #d4d7e5;
        text-decoration: underline;
    }


@media (max-width: 768px) {
    /* ---GLOBAL--- */
    #finance h2, #services a, #description h2, footer h2{
        font-size: 1.3rem;
    }
    #finance p, #points p, .service, #description p, footer p, footer a{
        font-size: 1rem;
    }


    /* ---HEADER--- */
    header{
        height:3rem;
    }
    header img{
        width: 2.5rem;
    }
    header #header-name{
        font-size: 1rem;
        padding-left: 0;
    }
    .header-wrapper .header-menu{
        display: none;
    }
    .header-wrapper > a{
        margin: 0 1rem;
    }
    header #burger-menu-button{
        display: block;
        transform: scaleX(85%);
        height: 2rem;
        margin: 0 1rem;
    }
    header .burger-wrapper{
        z-index: -2;
        display: block;
        opacity: 0;
        pointer-events: none;
        visibility: hidden;
        position: absolute;
        top: 3rem;
        left: 0;
        height: fit-content;
        box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
        background-color: rgba(255, 255, 255, 0.95);
        width: 100%;
        margin: 0;
        transition: all .3s ease-in-out;
        transform: translateY(-3rem);
    }
    header .burger-wrapper.active{
        opacity: 1;
        pointer-events: auto;
        visibility: visible;
        transform: translateY(0);
    }
    header .burger-wrapper a{
        display: block;
        margin: 10px 5%;
        font-size: 1.2rem;
    }


    /* ---FINANCE--- */
    #finance{
        margin-top: 3rem;
        height: fit-content;
        padding-bottom: 10%;
    }
    #finance img{
        height: 100%;
    }
    #finance h2{
        font-size: 1.5rem;
        width: unset;
    }
    #finance p{
        width: unset;
        line-height: 1.2;
    }


    #advices,
    #reviews{
        display: none;
    }

    /* ---MOBILE ADVICES--- */
    #mobile-advices{
        display: block;
        padding: 5%;
    }
    #mobile-advices .slider-item img{
        filter: invert(21%) sepia(29%) saturate(4975%) hue-rotate(215deg) brightness(91%) contrast(93%);
        padding-right: .5rem;
    }
    .slider-item{
        display: none;
        background-color: #d4d7e5;
        color: #314083;
        margin: 5%;
        padding: 5rem 1rem 0 3rem;
        font-size: 1.3rem;
        min-height: 450px;
        opacity: 0;
        transition: all .3s ease-in;
    }
    .slider-item.active{
        display: block;
        opacity: 1;
    }
    .slider-item ul{
        padding: 0 5%;
        margin: 0;
    }
    .slider-item > div{
        display: flex;
    }
    .slide-navigation{
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 10px;
    }
    .step{
        height: 15px;
        width: 15px;
        background-color: #d4d7e5;
        border-radius: 50%;
        display: inline-block;
        transition: all .3s ease-in-out;
    }
    .step.active{
        background-color: #314083;
    }
    .nav-arrow.left-arrow{
        transform: rotate(180deg);
    }


    /* ---POINTS--- */
    #points{
        position: relative;
        min-height: 250px;
        padding-top: 0;
    }
    #points > .wrapper{
        width: 80%;
        padding-left: 5%;
        display: flex;
        flex-direction: column;
        gap: .5rem;
    }
    #points > .wrapper > div{
        margin-bottom: 0;
    }
    #points > .wrapper > div:last-child{
        width: 65%;
    }
    #points > div:first-child{
        display: flex;
        align-items: start;
        min-width: 100px;
        position: absolute;
        overflow: hidden;
        height: 150px;
        bottom: 0;
        right: 0;
    }
    #points > div:first-child img{
        width: 250px;
        margin-left: -50px;
    }


    /* ---SERVICES--- */
    #services .service{
        min-height: 5%;
    }


    /* ---DESCRIPTION--- */
    #description > div{
        flex-direction: column;
        gap: 0;
    }
    #description > a {
        width: 90%;
        margin: 1rem 0;
    }
    #description > div > div{
        width: unset;
    }
    #description > div > div:last-child > p:first-child{
        margin-top: 0;
    }
    #advices .wrapper{
        grid-template-columns:  1fr;
        width: 100%;
        gap: 1rem;
    }
    #advices .advice ul{
        margin-left: 0;
    }


    /* ---REVIEWS--- */
    #reviews{
        flex-direction: column;
    }


    /* ---MID-SECTION--- */
    .mid-section{
        font-size: 1.2rem;
    }
    .mid-section p{
        max-width: 85%;
    }
    .mid-section .left-logo{
        transform: rotate(180deg);
        left: -90%;
    }
    .mid-section .right-logo{
        right: -90%;
    }


    /* ---FOOTER--- */
    footer > div{
        margin-left: 5%;
    }
    footer > div > div{
        padding-left: 0;
    }
    footer div p:first-child{
        padding-left: 4.5rem;
    }
    footer img{
        width: 3rem;
        top: -1rem;
    }
}