﻿body {
    font-family: "Sofia Sans", sans-serif;
    font-size: 18px;
    font-weight: bold;
    
}

::selection {
    background: var(--secondary-color); /* colore evidenziazione */
    color: black; /* colore del testo selezionato */
}

:root {
   --background-color: #333;
    --secondary-color: #cccc0c;
    --text-color: #212529;
    --black-color: #000;
    --grey-text: rgba(0, 0, 0, .4);
    --white-color: #fff;
    --red-color: #e30612;
}

body::-webkit-scrollbar {
    width: 5px; /* width of the entire scrollbar */
}

body::-webkit-scrollbar-track {
    background: var(--background-color); /* color of the tracking area */
}

body::-webkit-scrollbar-thumb {
    background-color: var(--secondary-color); /* color of the scroll thumb */
}

.modal-body::-webkit-scrollbar {
    width: 5px; /* width of the entire scrollbar */
}

.modal-body::-webkit-scrollbar-track {
    background: var(--background-color); /* color of the tracking area */
}

.modal-body::-webkit-scrollbar-thumb {
    background-color: var(--secondary-color); /* color of the scroll thumb */
}

/**/
button.learn-more {
    width: 12rem;
    height: auto;
    background: transparent;
    border: none;
    position: relative !important;
}

    button.learn-more .circle {
        transition: all 0.45s cubic-bezier(0.65, 0, 0.076, 1);
        position: relative;
        display: block;
        margin: 0;
        width: 3rem;
        height: 3rem;
        background: var(--secondary-color);
        border-radius: 1.625rem;
    }

        button.learn-more .circle .icon {
            transition: all 0.45s cubic-bezier(0.65, 0, 0.076, 1);
            position: absolute;
            top: 0;
            bottom: 0;
            margin: auto;
            background: #fff;
        }

            button.learn-more .circle .icon.arrow {
                transition: all 0.45s cubic-bezier(0.65, 0, 0.076, 1);
                left: 0.625rem;
                width: 1.125rem;
                height: 0.125rem;
                background: none;
            }

                button.learn-more .circle .icon.arrow::before {
                    position: absolute;
                    content: "";
                    top: -0.25rem;
                    right: 0.0625rem;
                    width: 0.625rem;
                    height: 0.625rem;
                    border-top: 0.125rem solid #fff;
                    border-right: 0.125rem solid #fff;
                    transform: rotate(45deg);
                }

    button.learn-more .button-text {
        transition: all 0.45s cubic-bezier(0.65, 0, 0.076, 1);
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        padding: 0.75rem 0;
        margin: 0 0 0 1.85rem;
        color: white;
        font-weight: 700;
        line-height: 1.6;
        text-align: center;
        text-transform: uppercase;
    }

button:hover .circle {
    width: 100%;
}

    button:hover .circle .icon.arrow {
        background: #fff;
        transform: translate(1rem, 0);
    }

button:hover .button-text {
    color: #fff;
}
/**/

.btn_primary {
    border: 1px solid var(--secondary-color);
    background: rgb(184, 180, 42);
    background: -moz-linear-gradient(266deg, rgba(184, 180, 42, 1) 20%, rgba(189, 185, 50, 1) 88%);
    background: -webkit-linear-gradient(266deg, rgba(184, 180, 42, 1) 20%, rgba(189, 185, 50, 1) 88%);
    background: linear-gradient(266deg, rgba(184, 180, 42, 1) 20%, rgba(189, 185, 50, 1) 88%);
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#b8b42a",endColorstr="#cccc0c",GradientType=1);
    width: auto;
    max-width: fit-content;
    height: 64px;
    display: flex;
    display: -webkit-flex;
    align-items: center;
    -webkit-align-items: center;
    justify-content: center;
    -webkit-justify-content: center;
    color: #fff;
    text-transform: uppercase;
    letter-spacing: .04em;
    font-size: 14px;
    -webkit-border-radius: 8px;
    -moz-border-radius: 8px;
    border-radius: 8px;
    text-decoration: none;
    border: 0;
    padding: 10px 20px;
    text-align: center;
    line-height: 110%;
    font-weight: bold;
    display: none;
}

.btn-effect {
    border: 1px solid;
    overflow: hidden;
    position: relative;
}

    .btn-effect span {
        z-index: 20;
    }

    .btn-effect:after {
        background: #fff;
        content: "";
        height: 155px;
        left: -75px;
        opacity: 0.2;
        position: absolute;
        top: -50px;
        transform: rotate(35deg);
        transition: all 550ms cubic-bezier(0.19, 1, 0.22, 1);
        width: 50px;
        z-index: 9999;

    }

    .btn-effect:hover:after {
        left: 120%;
        transition: all 550ms cubic-bezier(0.19, 1, 0.22, 1);
    }

.header-btn {
    min-width: 143.5px;
    height: 50px;
    align-items: center;
    border-radius: 12px;
    color: #fff;
    font-size: 14px;
    letter-spacing: .08em;
    border: 1px solid var(--secondary-color);
    background: rgb(184,180,42);
    background: -moz-linear-gradient(266deg, rgba(184,180,42,1) 20%, rgba(189,185,50,1) 88%);
    background: -webkit-linear-gradient(266deg, rgba(184,180,42,1) 20%, rgba(189,185,50,1) 88%);
    background: linear-gradient(266deg, rgba(184,180,42,1) 20%, rgba(189,185,50,1) 88%);
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#b8b42a",endColorstr="#cccc0c",GradientType=1);
}

    .header-btn span {
        color: #fff;
        font-weight: bold;
    }

.color-reverse {
    background: #252525;
}

#solution{
    position:sticky;
    top:0;
}

@media screen and (min-width:694px) and ( max-width: 1096px) {
    #solution {
        top: -70%;
    }
}

@media (max-width:694px){
    #solution{
        position:relative;
    }
}

    #services {
        background-color: white;
        position: sticky;
        border-top: 1px solid #212529;
        margin-top: 4rem;
        -webkit-box-shadow: 0px -4px 16px -7px rgba(0,0,0,0.75);
        -moz-box-shadow: 0px -4px 16px -7px rgba(0,0,0,0.75);
        box-shadow: 0px -4px 16px -7px rgba(0,0,0,0.75);
    }

    #advantages {
        background-color: white;
        position: sticky;
    }

    .number-area {
        background-color: white;
        position: relative;
    }

    .footer {
        background-color: var(--background-color);
        position: relative;
    }
    /* ! Cover */
    .cover {
        padding: 20px;
        min-height: 100vh;
        display: flex;
        flex-flow: column;
        justify-content: center;
        align-items: center;
        text-align: center;
        position: relative;
        background-color: #333;
    }

.cover__bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 101%;
    height: 100%;
    background: url(../img/BackgroundNew.gif) center;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    z-index: 0;
    border: 1px solid #1a191d;
}

@media (max-width: 1300px) {

    .cover__bg {
        background-size: contain;
    }
}

    .cover__bg:after {
        content: ' ';
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        /*background: linear-gradient(0deg, rgba(255,255,255,0) 0%, rgba(0,0,0,0.7) 100%);*/
        background-size: cover;
    }


    .small-icon {
        position: absolute;
        bottom: 30px;
        right: 10px;
    }

        .small-icon img {
            height: 45px;
        }

    .cover--intro {
        overflow: hidden;
    }
    /*Service / Products*/
    .container {
        width: 100%;
        max-width: 1310px;
        margin-right: auto;
        margin-left: auto;
        padding-left: 20px;
        padding-right: 20px;
        position: relative;
    }


    .text-area {
        padding-top: 30px;
    }

        .text-area h1 {
            color: var(--black-color);
        }

        .text-area p {
            font-size: 20px;
            color: var(--text-color);
        }



    .product-list {
        display: flex;
        display: -webkit-flex;
        flex-wrap: wrap;
        -webkit-flex-wrap: wrap;
    }

    .solution-area .text-area {
        color: white;
    }


    .container-solution {
        background-color:var(--secondary-color) !important;
        border-radius: 12px;
        padding: 20px 64px 35px;
    }

    /****** Advantage *******/

    .advantage-area .text-area p, .solution-area .text-area p, .product-area .text-area p {
        color: var(--grey-text);
    }

    .box-text {
        margin-top: 5%;
    }

        .box-text p {
            font-size: 18px;
            color: rgba(0, 0, 0, .4);
            letter-spacing: 0.2px;
        }


    /****** Number *******/

    .product-list {
        margin-right: -12px;
        margin-left: -12px;
    }

    .max-width {
        max-width: 950px;
    }


    .number-area .container-solution img {
        position: absolute;
        bottom: 0;
        right: 1%;
    }

    @media (max-width: 1091px) {
        .number-area .container-solution img {
            display: none;
        }

        .max-width {
            max-width: 100%;
        }

        .p-40 {
            padding-right: 0px;
            padding-left: 15px;
        }
    }


    /**/

    .wrapper-area {
        width: 100%;
        padding-left: 40px;
        padding-right: 40px;
        background-color: var(--secondary-color);
    }

    /**************FOOTER AREA **********************/
    .footer-area {
        background-color: var(--background-color);
    }

    .footer a {
        text-decoration: none;
        color: rgba(255, 255, 255, .8);
        transition: .3s ease;
    }

        .footer a:hover {
            color: var(--secondary-color);
            cursor: pointer;
        }

    .lets-talk {
        text-decoration: none;
        font-size: 114px;
        width: 60%;
        position: relative;
        overflow: hidden;
    }

    @media (max-width: 1350px) {
        .lets-talk {
            font-size: 92px;
            width: 100%;
            max-width: 520px;
        }

            .lets-talk .inner-text {
                width: calc(100% + 145px);
                transform: translate(-145px);
            }
    }

    .lets-talk .inner-text {
        position: relative;
        display: flex;
        justify-content: space-between;
        align-items: center;
        transition: .3s ease;
        white-space: nowrap;
        color: #fff;
        width: calc(100% + 180px);
        transform: translate(-180px);
    }

        .lets-talk .inner-text::after, .lets-talk .inner-text::before {
            content: "";
            display: flex;
            min-width: 160px;
            width: 160px;
            height: 80px;
            background-image: url(../img/icon/arrow_80_white.svg);
            background-position: center right;
            background-repeat: no-repeat;
            background-size: auto 100%;
            transition: .3s ease;
            position: relative;
            top: 5px;
        }

        .lets-talk .inner-text::before {
            margin-right: 15px;
        }

    .lets-talk .inner-line {
        position: absolute;
        bottom: 0;
        left: 0;
        right: 0;
        height: 3pt;
        border-radius: 8px;
        background-color: #fff;
    }

    .lets-talk .inner-text:hover {
        transform: translate(-25px);
    }


    .footer-top {
        display: flex;
        justify-content: space-between;
        align-items: center;
    }

    @media (max-width: 650px) {
        .lets-talk .inner-text {
            font-size: 45px;
            width: calc(100% + 99px);
            transform: translate(-99px);
        }

            .lets-talk .inner-text::after, .lets-talk .inner-text::before {
                height: 40px;
            }


            .lets-talk .inner-text::after, .lets-talk .inner-text::before {
                height: 35px;
                min-width: 80px;
                width: 80px;
            }

        .footer-top {
            display: grid;
            justify-content: center;
        }
    }

    .footer-wrapper {
        border-radius: 30px;
        border: 1.2pt solid #333331;
        overflow: hidden;
        margin-top: 105px;
        padding: 50px;
        max-width: 1310px;
        margin: 0 auto;
        margin-top: 105px;
    }


    .footer-top .footer-logo {
        width: 15%;
    }

        .footer-top .footer-logo img {
            width: 100%;
            display: block;
        }

    .footer-menu {
        overflow: hidden;
        padding-bottom: 30px;
        display: flex;
        flex-direction: row;
        flex-wrap: wrap;
        max-height: 700px;
    }

        .footer-menu li {
            padding: 30px;
            padding-bottom: 0;
            position: relative;
            color: white;
        }

        .footer-menu > li > .menu-item-link .menu-item__title {
            font-size: 22px;
            padding: 25px 10px 20px 15px;
            margin-bottom: 30px;
            display: flex;
            border-bottom: 1.2pt solid #333331;
            justify-content: space-between;
            align-items: center;
        }

        .footer-menu li, .footer-menu ul {
            list-style: none;
            padding: 0;
            margin: 0;
            padding-left: 8px;
        }

        .footer-menu .sub-menu li a {
            font-size: 14px;
        }

        .footer-menu > li::before {
            content: "";
            width: 1.2pt;
            position: absolute;
            left: 0;
            top: -500px;
            height: 1500px;
            background-color: #333331;
        }


        .footer-menu .sub-menu li {
            margin-bottom: 15px;
        }

        .footer-menu > li:first-child::before {
            display: none;
        }

    .footer-text-area {
        width: 80%;
        text-align: center;
        margin: 0 auto;
    }

        .footer-text-area p {
            color: rgba(255,255,255,.56);
        }

    .width {
        width: 25%;
    }

    @media (max-width: 1091px) {

        .width {
            width: 50%;
        }
    }

    @media (max-width: 650px) {
        .footer-top .footer-logo img {
            display: none;
        }

        .width {
            width: 100%;
        }

        .footer-menu > li > .menu-item-link .menu-item__title {
            display: flow;
            text-align: center;
        }

        .sub-menu {
            text-align: center;
        }

        .footer-menu > li::after {
            content: "";
            width: 1.2pt;
            position: absolute;
            right: 0;
            top: -500px;
            height: 1500px;
            background-color: #333331;
        }

        .footer-menu .sub-menu li:last-child {
            margin-bottom: 50px;
        }

        .footer-menu li, .footer-menu ul {
            padding-left: 0px;
        }
    }


    /* ! Helpers */
    .br {
        border: 1px solid red;
    }

    .img-res {
        width: 100%;
    }

    .video-res {
        width: 100%;
        height: 100%;
        overflow: hidden;
    }

        .video-res video {
            width: 100%;
            height: 100%;
            object-fit: cover
        }

    .mt-0 {
        margin-top: 0;
    }

    .mt-1 {
        margin-top: 1rem;
    }

    .mt-2 {
        margin-top: 2rem;
    }

    .mt-3 {
        margin-top: 3rem;
    }

    .mt-4 {
        margin-top: 4rem;
    }

    .mb-0 {
        margin-bottom: 0;
    }

    .mb-1 {
        margin-bottom: 1rem;
    }

    .mb-2 {
        margin-bottom: 2rem;
    }

    .mb-3 {
        margin-bottom: 3rem;
    }

    .mb-4 {
        margin-bottom: 4rem;
    }

    .text-center {
        text-align: center
    }

    .text-left {
        text-align: left
    }

    .text-right {
        text-align: right
    }

    .p-0 {
        padding: 0;
    }

    .p-1 {
        padding: 1rem;
    }

    .p-2 {
        padding: 2rem;
    }

    .p-3 {
        padding: 3rem;
    }

    .p-4 {
        padding: 4rem;
    }

    .pt-0 {
        padding-top: 0;
    }

    .pt-1 {
        padding-top: 1rem;
    }

    .pt-2 {
        padding-top: 2rem;
    }

    .pt-3 {
        padding-top: 3rem;
    }

    .pt-4 {
        padding-top: 4rem;
    }

    .pt-5 {
        padding-top: 5rem !important;
    }

    .pb-0 {
        padding-bottom: 0;
    }

    .pb-1 {
        padding-bottom: 1rem;
    }

    .pb-2 {
        padding-bottom: 2rem;
    }

    .pb-3 {
        padding-bottom: 3rem;
    }

    .pb-4 {
        padding-bottom: 4rem;
    }


    .icon-small {
        width: 40px;
        padding: 8px;
    }

    .icon-white {
        filter: invert(1);
    }

    .bg-dark {
        background: #000;
    }

    .text-white {
        color: #fff
    }

    .v-center {
        display: flex;
        justify-content: center;
        flex-flow: column;
        align-items: flex-start;
    }

    .font-normal {
        font-weight: 400;
    }

    .none {
        display: none;
    }

    @media (max-width: 768px) {
        .sma-none {
            display: none;
        }
    }

    @media (min-width: 768px) {
        .desktop-none {
            display: none;
        }
    }



    /* ! Animation */
    /* --------------------------------------------------------- */

    .fade-in {
        opacity: 0;
        transform: translateY(3rem);
    }


    .fade-apple {
        --transition-timing: .6s;
        --copy-fade-transition: opacity var( --transition-timing) linear, transform var(--transition-timing) cubic-bezier(0.16,1,0.3,1);
        --copy-fade-y-start: 30px;
        transition: var(--copy-fade-transition);
        opacity: 0;
        transform: translateY(--copy-fade-y-start);
    }


    .box {
        width: 100%;
        height: 100vh;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 2rem;
        color: white;
    }

