*, html, body {
    padding: 0;
    margin: 0;
    text-decoration: none;
    outline: none;
    box-sizing: border-box;
    cursor: default;
}
body {
    color: white;
}

@font-face {
    font-family: "Proxima Nova";
    font-style: normal;
    font-weight: 900;
    src: url("../fonts/ProximaNova-Black.eot") format("truetype");
}

@font-face {
    font-family: "Proxima Nova";
    font-style: normal;
    font-weight: 900;
    src: url("../fonts/ProximaNova-Black.ttf") format("truetype");
}

@font-face {
    font-family: "Proxima Nova";
    font-style: normal;
    font-weight: 900;
    src: url("../fonts/ProximaNova-Black.woff") format("truetype");
}

@font-face {
    font-family: "Proxima Nova";
    font-style: normal;
    font-weight: 900;
    src: url("../fonts/ProximaNova-Black.woff2") format("truetype");
}

@font-face {
    font-family: "Proxima Nova";
    font-style: normal;
    font-weight: 400;
    src: url("../fonts/ProximaNova-Regular_2607783814.eot") format("truetype");
}

@font-face {
    font-family: "Proxima Nova";
    font-style: normal;
    font-weight: 400;
    src: url("../fonts/ProximaNova-Regular_2607783814.ttf") format("truetype");
}

@font-face {
    font-family: "Proxima Nova";
    font-style: normal;
    font-weight: 400;
    src: url("../fonts/ProximaNova-Regular_2607783814.woff") format("truetype");
}

@font-face {
    font-family: "Proxima Nova";
    font-style: normal;
    font-weight: 400;
    src: url("../fonts/ProximaNova-Regular_2607783814.woff2") format("truetype");
}

@font-face {
    font-family: "Open Sans";
    font-style: normal;
    font-weight: 400;
    src: url("../fonts/OpenSans-Regular.ttf") format("truetype");
}
@font-face {
    font-family: "Open Sans";
    font-style: normal;
    font-weight: bold;
    src: url("../fonts/OpenSans-Bold.ttf") format("truetype");
}

/*/ BUTTONS /*/
a {
    cursor: pointer!important;
    & > * {
        cursor: pointer!important;
    }
}

.button-primary {
    padding: 14px 40px;
    align-items: center;
    background: #000;
    color: #FFF;
    text-align: center;
    font-family: "Proxima Nova", sans-serif;
    font-size: 16px;
    font-style: normal;
    font-weight: 900;
    line-height: 20px; /* 125% */
    text-transform: uppercase;
    transition: 0.5s;
    z-index: 200;
    cursor: pointer!important;
}

.button-primary:hover {
    /* Black Hover Shadow */
    box-shadow: 0px 0px 21.7px 0px rgba(29, 29, 29, 0.80);
}

@media only screen and (max-width: 800px) {
    .button-primary {
        height: 40px;
        padding: 11px 30px;
        font-size: 14px;
    }
}

.button-secondary {
    padding: 14px 40px;
    align-items: center;
    background: #3352D7;
    color: white;
    text-align: center;
    font-family: "Proxima Nova";
    font-size: 16px;
    font-style: normal;
    font-weight: 800;
    line-height: 20px; /* 125% */
    text-transform: uppercase;
    transition: 0.5s;
    cursor: pointer!important;

    &.button-margin {
        margin-top: 20px;
    }

    &:hover {
        /* Blue Hover Shadow */
        box-shadow: 0px 0px 21.7px 0px rgba(126, 195, 255, 0.80);
    }
}

.button-icon {
    display: flex;
    gap: 10px;
    color: #000;
    text-align: center;
    font-family: "Proxima Nova";
    font-size: 16px;
    font-style: normal;
    font-weight: 800;
    line-height: 20px; /* 125% */
    text-transform: uppercase;
    height: 48px;
    align-items: center;
    justify-content: center;
    cursor: pointer!important;

    & > * {
        cursor: pointer!important;
    }
}

@media only screen and (max-width: 800px) {
    .button-icon {
        height: 36px;
    }
}

.button-wrapper {
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
}

.main-container {
    max-width: 858px;
    min-width: 858px;
    display: flex;
    flex-flow: column;

    @media only screen and (max-width: 800px) {
        max-width: 100%;
        min-width: 100%;
        padding: 0 8px;
    }

    .container-title-white {
        color: #FFF;
        font-family: "Proxima Nova";
        font-size: 40px;
        font-style: normal;
        font-weight: 900;
        line-height: normal;
        text-transform: uppercase;

        @media only screen and (max-width: 800px) {
            font-size: 36px;
            text-align: center;
        }
    }

    .container-title-black {
        color: #000;
        font-family: "Proxima Nova";
        font-size: 40px;
        font-style: normal;
        font-weight: 900;
        line-height: normal;
        text-transform: uppercase;

        @media only screen and (max-width: 800px) {
            font-size: 36px;
            text-align: center;
        }
    }
}

/*/ HEADER /*/
.header-wrapper {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: #FFF;
    color: black;
    height: 80px;
    position: relative;
    z-index: 3;
    padding: 15px 76px;

}

@media only screen and (max-width: 800px) {
    .header-wrapper {
        height: 77px;
        padding: 15px 10px;
    }
}

.header-logo-wrapper {
    display: flex;
    align-items: center;
    gap: 64px;
}

@media only screen and (max-width: 800px) {
    .header-logo-wrapper {
        gap: 30px;
    }
}

.header-logo-softserve {
    max-width: 180px;
}

.buttons-wrapper {
    display: flex;
    gap: 80px;
}

@media only screen and (max-width: 800px) {
    .header-logo-softserve {
        width: 78px;
    }

    .buttons-wrapper {
        gap: 30px;
    }
}

@keyframes rotate {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(360deg);
    }
}

@keyframes animationLeft {
    from {
        opacity: 0;
        transform: translateX(-500px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

.animationLeft {
    animation: animationLeft 1s;
    animation-iteration-count: 1;
    animation-fill-mode: forwards;
}

@keyframes animationRight {
    from {
        opacity: 0;
        transform: translateX(500px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

.animationRight {
    animation: animationRight 1s;
    animation-iteration-count: 1;
    animation-fill-mode: forwards;
}

@keyframes animationTop {
    from {
        opacity: 0;
        transform: translateY(-500px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.animationTop {
    animation: animationTop 1s;
    animation-iteration-count: 1;
    animation-fill-mode: forwards;
}

@keyframes animationDown {
    from {
        opacity: 0;
        transform: translateY(500px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.animationDown {
    animation: animationDown 2s;
    animation-iteration-count: 1;
    animation-fill-mode: forwards;
}

.animationDown2 {
    animation: animationDown 3s;
    animation-iteration-count: 1;
    animation-fill-mode: forwards;
}

.animationDown3 {
    animation: animationDown 4s;
    animation-iteration-count: 1;
    animation-fill-mode: forwards;
}

.animationDown4 {
    animation: animationDown 5s;
    animation-iteration-count: 1;
    animation-fill-mode: forwards;
}

/*/ SECTION /*/

.main-content-wrapper {
    display: flex;
    flex-flow: column;
    justify-content: center;
    align-items: center;
    overflow: hidden;

    .banner-container {
        background-image: url("../images/bg.png");
        background-size: cover;
        background-repeat: no-repeat;
        width: 100%;
        min-height: 644px;
        display: flex;
        justify-content: center;
        padding: 180px 0;

        @media only screen and (max-width: 800px) {
            background-position-x: -500px;
        }

        .custom-cursor {
            position: fixed;
            opacity: 0;
            pointer-events: none;
            /*mix-blend-mode: difference;*/
            width: 100px;
            height: 100px;
            border-radius: 50%;
            background-color: black;
            transition: transform 350ms ease;
            transform: translate(-50%, -50%);
            z-index: 100000;
            filter:blur(10px);
            overflow: hidden;

            &.d-none {
                display: none;
            }
        }

        .subtitle-container {
            display: flex;
            margin: 0 0 60px;

            @media only screen and (max-width: 800px) {
                flex-flow: column;
                gap: 26px;
            }

            .subtitle-wrapper {
                display: flex;
                gap: 16px;
                margin-right: 60px;

                .banner-subtitle {
                    color: #E3E3E3;
                    font-family: "Proxima Nova", sans-serif;
                    font-size: 26px;
                    font-style: normal;
                    font-weight: 300;
                    line-height: normal;
                    text-transform: uppercase;
                }
            }
        }

        .banner-title {
            font-family: "Proxima Nova";
            font-size: 140px;
            font-style: normal;
            font-weight: 900;
            line-height: 116px; /* 82.857% */
            text-transform: uppercase;
            background: linear-gradient(90deg, #3352D7 0.14%, #D8DAE2 61.01%, #E3E3E3 99.93%);
            background-clip: text;
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            width: fit-content;

            @media only screen and (max-width: 800px) {
                font-size: 76px;
                line-height: 72px; /* 82.857% */
            }
        }

        .banner-description {
            margin-top: 46px;
            max-width: 461px;
            color: #FFF;
            font-family: "Proxima Nova", sans-serif;
            font-size: 18px;
            font-style: normal;
            font-weight: 900;
            line-height: normal;
        }
    }

    .video-container {
        width: 100%;
        background: #E3E3E3;
        padding: 100px 0;
        display: flex;
        flex-flow: column;
        align-items: center;

        @media only screen and (max-width: 800px) {
            padding: 60px 0;
        }

        &.video-landing {
            height: calc(100vh - 80px - 137px);
            display: flex;
            align-items: center;
            justify-content: center;
        }

        .video-description-container {
            display: flex;
            justify-content: space-between;

            @media only screen and (max-width: 800px) {
                flex-flow: column;
                gap: 10px;
            }

            .video-blue-container {
                display: flex;
                min-width: 286px;
                max-width: 286px;
                padding: 3px 12px;
                justify-content: center;
                align-items: center;
                align-content: center;
                border-radius: 5px;
                background: #3352D7;
                position: relative;

                @media only screen and (max-width: 800px) {
                    width: 100%;
                    max-width: 100%;
                }

                .rotate {
                    animation-name: rotate;
                    animation-duration: 15s;
                    animation-iteration-count: infinite;
                    animation-timing-function: linear;
                }

                .blue-text {
                    position: absolute;
                    color: #FFF;
                    text-align: center;
                    font-family: "Proxima Nova";
                    font-size: 18px;
                    font-style: normal;
                    font-weight: 900;
                    line-height: 28px; /* 155.556% */
                    top: 45%;
                }
            }

            .video-black-container {
                display: flex;
                max-width: 559px;
                height: 330px;
                width: 559px;
                padding: 30px 49px;
                flex-direction: column;
                align-items: flex-start;
                border-radius: 5px;
                background: #000;

                @media only screen and (max-width: 800px) {
                    width: 100%;
                    max-width: 100%;
                    height: fit-content;
                }

                .black-text {
                    color: #FFF;
                    font-family: "Open Sans";
                    font-size: 16px;
                    font-style: normal;
                    font-weight: 400;
                    line-height: normal;
                }
            }
        }

        .swiper {
            width: 100%;
            height: 100%;
            max-width: 1261px;
            margin-top: 30px;
        }

        .swiper-slide {
            display: flex!important;
            justify-content: space-between;
            align-items: center;
            gap: 10px;
            margin-bottom: 60px;
        }

        .swiper-slide img {
            width: 100%;
            height: 100%;
            max-height: 300px;
            max-width: 32%;
            object-fit: contain;
            border-radius: 5px;
        }

        .swiper-pagination {
            .swiper-pagination-bullet-active {
                height: 15px;
                width: 15px;
                background: black!important;
            }

            .swiper-pagination-bullet {
                height: 15px;
                width: 15px;
                background: transparent;
                opacity: 1;
                border: 1px solid black;
                margin: 0 10px;
            }
        }
    }

    .description-container {
        background: #040404;
        width: 100%;
        padding: 100px 0;
        display: flex;
        justify-content: center;

        @media only screen and (max-width: 800px) {
            padding: 60px 0;
        }

        .text-wrapper {
            margin-top: 60px;
            display: flex;
            flex-wrap: wrap;

            @media only screen and (max-width: 800px) {
                padding: 0 40px;
                gap: 50px;
            }

            .text-item {
                display: flex;
                flex-flow: column;
                gap: 20px;
                max-width: 277px;

                &:nth-child(1), &:nth-child(2) {
                    margin-bottom: 60px;

                    @media only screen and (max-width: 800px) {
                        margin-bottom: 0;
                    }
                }

                &:nth-child(odd) {
                    margin-right: 277px;

                    @media only screen and (max-width: 800px) {
                        margin-right: 0;
                    }
                }

                .text-header {
                    display: flex;
                    gap: 20px;
                    justify-content: flex-start;
                    align-items: center;

                    .text-header-title {
                        color: #FFF;
                        font-family: "Proxima Nova";
                        font-size: 26px;
                        font-style: normal;
                        font-weight: 900;
                        line-height: 24px; /* 92.308% */
                        text-transform: uppercase;
                    }
                }

                p {
                    color: #FFF;
                    font-family: "Open Sans";
                    font-size: 16px;
                    font-style: normal;
                    font-weight: 400;
                    line-height: 24px; /* 150% */
                }
            }
        }
    }

    .opinie-container {
        background: #FFF;
        width: 100%;
        padding: 100px 0;
        display: flex;
        justify-content: center;
        align-items: center;
        flex-flow: column;

        .opinie-wrapper {
            margin-top: 60px;
            display: flex;
            gap: 50px;

            @media only screen and (max-width: 800px) {
                flex-flow: column;
            }

            .opinie-item {
                position: relative;

                svg {
                    @media only screen and (max-width: 800px) {
                        width: 100%;
                        max-width: 380px;
                        height: 250px;
                    }
                }

                .opinie-text {
                    color: #000;
                    font-family: "Open Sans";
                    font-size: 16px;
                    font-style: normal;
                    font-weight: 400;
                    line-height: 24px; /* 150% */
                    width: 415px;
                    position: absolute;
                    top: 25px;
                    left: 67px;

                    @media only screen and (max-width: 800px) {
                        font-size: 12px;
                        line-height: 18px; /* 150% */
                        left: 17px;
                        width: 360px;
                    }
                }

                .opinie-expert {
                    margin-top: 23px;
                    display: flex;
                    gap: 11px;

                    .opinie-expert-text {
                        display: flex;
                        gap: 8px;
                        flex-flow: column;

                        .opinie-name {
                            color: #040404;
                            font-family: "Open Sans";
                            font-size: 16px;
                            font-style: normal;
                            font-weight: 700;
                            line-height: 24px; /* 150% */
                        }
                        .opinie-position {
                            color: #040404;
                            font-family: "Open Sans";
                            font-size: 16px;
                            font-style: normal;
                            font-weight: 400;
                            line-height: 24px; /* 150% */
                        }
                    }
                }
            }
        }
    }

    .form-container {
        background: #E3E3E3;
        width: 100%;
        padding: 100px 0;
        display: flex;
        justify-content: center;

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

        }

        .form-wrapper {
            display: flex;
            align-items: flex-start;
            gap: 60px;

            @media only screen and (max-width: 800px) {
                flex-flow: column;
                justify-content: center;
                align-items: center;
            }
        }

        img {
            width: 245px;
        }

        .form-title {
            color: #212121;
            font-family: "Open Sans";
            font-size: 16px;
            font-style: normal;
            font-weight: 700;
            line-height: normal;
            max-width: 550px;
        }

        .form-subtitle {
            color: #212121;
            font-family: "Open Sans";
            font-size: 16px;
            font-style: normal;
            font-weight: 400;
            line-height: normal;
            margin: 15px 0 34px;
            max-width: 550px;
        }
    }

    .experts-container {
        width: 100%;
        padding: 100px 0;
        display: flex;
        justify-content: center;
        background: #3352D7;

        @media only screen and (max-width: 800px) {
            padding: 60px 0;
        }

        .experts-wrapper {
            margin-top: 60px;
            display: flex;
            justify-content: space-between;
            flex-wrap: wrap;

            @media only screen and (max-width: 800px) {
                gap: 80px;
                justify-content: center;
            }

            .wrapper-item {
                display: flex;
                gap: 100px;
                margin-top: 100px;

                @media only screen and (max-width: 800px) {
                    flex-flow: column;
                    margin-top: 0;
                    gap: 0;
                }

                .wrapper-images {
                    position: relative;
                    max-width: 182px;
                    max-height: 182px;

                    .item-img {
                        width: 160px;
                        height: 160px;
                        min-height: 160px;
                        min-width: 160px;
                        object-fit: cover;
                        margin-bottom: 26px;
                        border-radius: 50%;
                        border: 0.5px solid #FFFFFF;
                        outline: 0.5px solid #FFFFFF;
                        outline-offset: 8px;
                        padding: 8px;

                        @media only screen and (max-width: 800px) {
                           margin-left: 10px;
                        }
                    }

                    .in-img {
                        position: absolute;
                        right: -10px;
                        bottom: 0px;

                        img {
                            cursor: pointer;
                        }
                    }
                }

                .item-name {
                    color: #FFF;
                    font-family: "Proxima Nova", sans-serif;
                    font-size: 40px;
                    font-style: normal;
                    font-weight: 900;
                    line-height: normal;
                    text-transform: uppercase;
                    max-width: 461px;

                    @media only screen and (max-width: 800px) {
                        font-size: 30px;
                    }
                }

                .item-position {
                    color: #FFF;
                    font-family: "Open Sans";
                    font-size: 16px;
                    font-style: normal;
                    font-weight: 700;
                    line-height: normal;
                    max-width: 461px;
                }

                .item-description {
                    color: #FFF;
                    font-family: "Open Sans";
                    font-size: 16px;
                    font-style: normal;
                    font-weight: 400;
                    line-height: normal;
                    margin-top: 26px;
                    max-width: 461px;
                }
            }
        }

    }
}

.footer-wrapper {
    background: #000;
    display: flex;
    flex-flow: column;
    padding: 100px 0;
    width: 100%;
    justify-content: center;
    align-items: center;

    .main-container {
        gap: 41px;
    }

    .main-footer-container {
        display: flex;
        justify-content: space-between;

        @media only screen and (max-width: 800px) {
            flex-wrap: wrap;
            align-items: center;
            justify-content: center;
            gap: 20px;
        }

        .footer-logos {
            display: flex;
            gap: 60px;

            div {
                display: flex;
                flex-flow: column;
                gap: 10px;
                align-items: center;

                .footer-partner {
                    color: #FFF;
                    font-family: "Open Sans", sans-serif;
                    font-size: 12px;
                    font-style: normal;
                    font-weight: 400;
                    line-height: normal;
                }
            }
        }

        .icons-wrapper {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 20px;

            a > img{
                width: 33px;
                height: 33px;
            }
        }
    }

    .partner-wrapper {
        display: flex;
        gap: 10px;


        p {
            color: #FFF;
            font-family: "Open Sans";
            font-size: 16px;
            font-style: normal;
            font-weight: 400;
            line-height: normal;
        }
    }

    .demo-items-wrapper {
        display: flex;
        justify-content: space-between;
        flex-wrap: wrap;

        @media only screen and (max-width: 800px) {
            gap: 60px;
            justify-content: center;
        }

        a > .demo-item {
            width: 200px;
            transition: 0.5s;

            &:hover {
                transform: scale(1.05);
                transform-origin: top;
            }

            img {
                width: 200px;
                height: 200px;
                margin-bottom: -5px;
            }

            .demo-text {
                display: flex;
                padding: 15px;
                gap: 20px;
                align-items: center;
                background: white;

                p {
                    color: #000;
                    font-family: "Open Sans";
                    font-size: 16px;
                    font-style: normal;
                    font-weight: 700;
                    line-height: normal;
                    width: 128px;
                }
            }
        }
    }

}

.footer-contact {
    display: flex;
    flex-flow: column;
    padding: 100px 0;
    width: 100%;
    justify-content: center;
    align-items: center;
    background: #E3E3E3;

    .contact-subtitle {
        color: #212121;
        font-family: "Open Sans", sans-serif;
        font-size: 16px;
        font-style: normal;
        font-weight: 700;
        line-height: normal;
        margin-top: 40px;

        @media only screen and (max-width: 800px) {
            text-align: center;
        }

        a {
            color: #212121;
            font-family: "Open Sans";
            font-size: 16px;
            font-style: normal;
            font-weight: 400;
            line-height: normal;
            text-decoration-line: underline;
            cursor: pointer;
        }
    }
}
