* {
    padding: 0;
    margin: 0;
    box-sizing: border-box;
}

body {
    font-family: 'roc-grotesk', sans-serif;
    font-weight: 400;
    position: relative;
}

@media screen and (min-width: 1024px) {
    h2 {
        font-size: 48px;
        line-height: 60px;
        font-weight: 600;
        margin-bottom: 24px;
    }

    h3 {
        font-size: 36px;
        line-height: 50px;
        font-weight: 500;
    }

    h4,
    .as-h4 {
        font-size: 44px;
        line-height: 60px;
        font-weight: 500;
    }

    h5 {
        font-size: 20px;
        line-height: 25px;
        font-weight: 400;
    }

    h6 {
        font-size: 16px;
        line-height: 20px;
        font-weight: 500;
        margin-bottom: 24px;
    }

    p {
        font-size: 32px;
        line-height: 40px;
        font-weight: 400;
        margin-bottom: 32px;
    }

    span {
        font-weight: 500;
    }

    hr {
        margin: 80px 0;
    }


    .phone {
        pointer-events: none;
        text-decoration: none !important;
        color: #fff !important;
    }

    .italic-font {
        font-family: 'freight-display-pro', serif;
    }

    .aligncenter {
        text-align: center;
    }

    .allupper {
        text-transform: uppercase;
    }

    .wrapper {
        overflow: hidden;
        position: relative;
    }

    .wrapper-padded {
        width: 100%;
        padding: 0 5vw;
        max-width: 1680px;
        margin: 0 auto;
    }

    .wrapper-padded-more-900 {
        position: relative;
        margin: 0 auto;
        max-width: 900px;
    }

    .wrapper-padded-more-600 {
        position: relative;
        margin: 0 auto;
        max-width: 600px;
    }

    .default-button {
        border: 1px solid #000;
        padding: 12px 38px 10px 12px;
        font-size: 20px;
        font-weight: 500;
        color: #000;
        text-decoration: none;
        border-radius: 80px;
        position: relative;
    }

    .default-button:hover {
        background-color: #000;
        color: #fff;
    }

    .default-button::after {
        content: " ";
        width: 16px;
        height: 16px;
        background-image: url('arrow-right.svg');
        background-size: contain;
        background-repeat: no-repeat;
        position: absolute;
        right: 12px;
        top: 20px
    }

    .default-button:hover::after {
        background-image: url('arrow-right-white.svg');
    }

    .top-cta {
        position: fixed;
        top: 50px;
        right: 50px;
        width: auto;
        z-index: 2;
    }

    .top-cta a {
        font-size: 20px;
        font-weight: 500;
        color: #000;
        text-decoration: none;
        position: relative;
        border: 1px solid #000;
        background-color: #fff;
        padding: 12px 38px 10px 12px;
        border-radius: 80px;
    }

    .top-cta a::after {
        content: " ";
        width: 16px;
        height: 16px;
        background-image: url('arrow-down.svg');
        background-size: contain;
        background-repeat: no-repeat;
        position: absolute;
        right: 12px;
        top: 18px
    }

    .top-cta a:hover::after {
        background-image: url('arrow-down-white.svg');
    }

    .top-cta a:hover {
        color: #fff;
        border: 1px solid #fff;
        background-color: #000;
    }

    .logo {
        margin: 200px 0 130px;
        text-align: center;
    }

    .quote {
        border-top: 1px solid #000;
        border-bottom: 1px solid #000;
        padding: 32px 0;
        margin: 98px 0;
    }

    .frase {
        font-size: 40px;
        line-height: 50px;
        font-weight: 500;
    }

    .author {
        font-size: 44px;
        margin-top: 16px;
        font-style: italic;
        margin-bottom: 0;
    }

    .dark {
        background-color: #1D1D1B;
        color: #fff;
        padding: 360px 0 300px;
        position: relative;
    }

    .dark p a,
    .contatti p a {
        color: #fff;
        text-decoration: underline;
    }

    .dark p a:hover,
    .contatti p a:hover {
        color: #d6d6d6;
    }

    .mask::after {
        content: "";
        width: 100%;
        height: 300px;
        background-image: url('mask.svg');
        background-size: contain;
        background-repeat: no-repeat;
        background-position: 50% -1px;
        bottom: 0;
        left: 0;
        position: absolute;
        display: inline-block;
        rotate: 180deg;

    }

    .mask::before {
        content: "";
        width: 100%;
        height: 300px;
        background-image: url('mask.svg');
        background-size: contain;
        background-repeat: no-repeat;
        background-position: 50% 0;
        top: -1px;
        left: 0;
        position: absolute;
        display: inline-block;
    }

    .banner {
        max-width: 1100px;
        background-color: #fff;
        border-radius: 16px;
        margin: 140px auto;
        color: #000;
        padding: 48px 100px 55px;
    }

    .flex-hold {
        display: flex;
        justify-content: space-around;
        align-items: center;
        flex-wrap: wrap;
    }

    .flex-hold-2 .flex-hold-child {
        width: 50%;
    }

    .flex-hold-3 {
        width: calc(100% + 24px * 2);
        left: -24px;
        align-items: baseline;
    }

    .flex-hold-3 .flex-hold-child {
        width: 33.333333%;
        padding: 100px 25px 0 25px;
        position: relative;
    }

    .flex-hold-3 .flex-hold-child:nth-child(1),
    .flex-hold-3 .flex-hold-child:nth-child(2),
    .flex-hold-3 .flex-hold-child:nth-child(3) {
        padding-top: 0 !important;
    }

    .flex-hold-3 .flex-hold-child p {
        margin-bottom: 0;
    }

    .flex-hold-3 .flex-hold-child .as-h4 {
        position: relative;
        top: -15px;
        left: 0;
        padding-bottom: 0;
    }

    .flex-hold-3 .flex-hold-child img {
        width: 100%;
        border-bottom: 1px solid #000;
        margin: 28px 0 20px;
    }

    .wrapper-padded-more-600 .aligncenter {
        margin-bottom: 98px;
    }

    .logo-qualitaly {
        text-align: right;
    }

    .flex-hold-2 .flex-hold-child img {
        width: 330px;
        height: auto;
    }

    .contact-text {
        margin-bottom: 45px;
    }

    .contatti {
        background-color: #1D1D1B;
        color: #fff;
        padding: 440px 0 0;
        position: relative;
        z-index: 3;
        margin-top: 50px;
    }

    .contatti::before {
        content: "";
        width: 100%;
        height: 300px;
        background-image: url('mask.svg');
        background-size: contain;
        background-repeat: no-repeat;
        background-position: 50% 0;
        top: -1px;
        left: 0;
        position: absolute;
        display: inline-block;
    }

    .footer {
        background-color: #fff;
        color: #000;
        padding: 50px 60px;
        margin-top: 140px;
        border-top-left-radius: 32px;
        border-top-right-radius: 32px;
    }

    .footer h6:last-child {
        margin-bottom: 0;
    }

    .footer a {
        text-decoration: underline;
        color: #000;
    }

    .footer .phone {
        color: #000 !important;
    }

}

@media screen and (min-width: 1px) and (max-width: 1023px) {

    h2 {
        font-size: 36px;
        line-height: 48px;
        font-weight: 600;
        margin-bottom: 32px;
    }

    h3 {
        font-size: 28px;
        line-height: 38px;
        font-weight: 500;
    }

    h4,
    .as-h4 {
        font-size: 35px;
        line-height: 40px;
        font-weight: 500;
        margin-bottom: 12px;
    }

    h5 {
        font-size: 18px;
        line-height: 25px;
        font-weight: 400;
    }

    h6 {
        font-size: 16px;
        line-height: 28px;
        font-weight: 500;
        margin-bottom: 24px;
    }

    p {
        font-size: 24px;
        line-height: 34px;
        font-weight: 400;
        margin-bottom: 32px;
    }

    span {
        font-weight: 500;
    }

    hr {
        margin: 50px 0;
    }

    .phone {
        pointer-events: auto;
        text-decoration: underline !important;
    }

    .italic-font {
        font-family: 'freight-display-pro', serif;
    }

    .aligncenter {
        text-align: center;
    }

    .allupper {
        text-transform: uppercase;
    }

    .wrapper {
        overflow: hidden;
        position: relative;
    }

    .wrapper-padded {
        width: 100%;
        padding: 0 5vw;
    }

    .wrapper-padded-more-900 {
        position: relative;
        margin: 0 auto;
        max-width: 900px;
    }

    .wrapper-padded-more-600 {
        position: relative;
        margin: 0 auto;
        max-width: 600px;
    }

    .default-button {
        border: 1px solid #000;
        padding: 12px 38px 10px 24px;
        font-size: 20px;
        font-weight: 500;
        color: #000;
        text-decoration: none;
        border-radius: 80px;
        position: relative;
        width: 100%;
        display: inline-block;
    }

    .default-button:hover {
        text-decoration: underline;
    }

    .default-button::after {
        content: " ";
        width: 16px;
        height: 16px;
        background-image: url('arrow-right.svg');
        background-size: contain;
        background-repeat: no-repeat;
        position: absolute;
        right: 24px;
        top: 38%;
    }

    .top-cta {
        position: fixed;
        bottom: 0;
        left: 0;
        border: 1px solid #000;
        background-color: #fff;
        padding: 16px 38px 16px 12px;
        border-radius: 0;
        width: 100%;
        text-align: center;
        z-index: 2;
    }

    .top-cta a {
        font-size: 20px;
        font-weight: 500;
        color: #000;
        text-decoration: none;
        position: relative;
    }

    .top-cta a::after {
        content: " ";
        width: 16px;
        height: 16px;
        background-image: url('arrow-down.svg');
        background-size: contain;
        background-repeat: no-repeat;
        position: absolute;
        right: -26px;
        top: 5px;
    }

    .top-cta:hover {
        text-decoration: underline;
    }


    .logo {
        margin: 80px 0;
        text-align: center;
    }

    .logo img {
        width: 100%;
    }

    .quote {
        border-top: 1px solid #000;
        border-bottom: 1px solid #000;
        padding: 32px 0;
        margin: 80px 0;
    }

    .frase {
        font-size: 32px;
        line-height: 38px;
        font-weight: 500;
    }

    .author {
        font-size: 36px;
        margin-top: 16px;
        font-style: italic;
        margin-bottom: 0;
    }

    .dark {
        background-color: #1D1D1B;
        color: #fff;
        padding: 150px 5vw;
        position: relative;
    }

    .dark p a:link,
    .dark p a:visited,
    .contatti p a:link,
    .contatti p a:visited {
        color: #fff;
        text-decoration: underline;
    }

    .dark p a:hover,
    .contatti p a:hover {
        color: #1D1D1B;
    }

    .mask::after {
        content: "";
        width: 100%;
        height: 100px;
        background-image: url('mask.svg');
        background-size: contain;
        background-repeat: no-repeat;
        background-position: 50% -1px;
        bottom: 0;
        left: 0;
        position: absolute;
        display: inline-block;
        rotate: 180deg;

    }

    .mask::before {
        content: "";
        width: 100%;
        height: 100px;
        background-image: url('mask.svg');
        background-size: contain;
        background-repeat: no-repeat;
        background-position: 50% 0;
        top: -1px;
        left: 0;
        position: absolute;
        display: inline-block;
    }

    .banner {
        background-color: #fff;
        border-radius: 16px;
        margin: 50px auto;
        color: #000;
        padding: 32px 20px;
    }

    .flex-hold {
        display: flex;
        justify-content: space-around;
        align-items: center;
        flex-wrap: wrap;
    }

    .flex-hold-2 .flex-hold-child {
        width: 100%;
        margin-bottom: 50px;
    }

    .flex-hold-2 .flex-hold-child:last-child {
        margin-bottom: 0;
    }

    .flex-hold-3 {
        width: 100%;
    }

    .flex-hold-3 .flex-hold-child {
        width: 100%;
        padding: 0 0 80px 0;
    }

    .flex-hold-3 .flex-hold-child p {
        margin-bottom: 0;
    }

    .flex-hold-3 .flex-hold-child img {
        width: 100%;
        border-bottom: 1px solid #000;
        margin: 28px 0 14px;
    }

    .flex-hold-3 .flex-hold-child .as-h4 {
        position: relative;
        top: -10px;
        left: 0;
        padding-bottom: 10px;
    }

    .wrapper-padded-more-600 .aligncenter {
        margin: 48px 0 60px;
    }

    .logo-qualitaly {
        text-align: left;
    }

    .logo-qualitaly img {
        width: 80% !important;
    }

    .flex-hold-2 .flex-hold-child img {
        width: 330px;
        height: auto;
    }

    .contact-text {
        margin-bottom: 45px;
    }

    .contatti {
        background-color: #1D1D1B;
        color: #fff;
        padding: 150px 0 0;
        position: relative;
        z-index: 3;
    }

    .contatti .wrapper-padded-more-600 {
        padding: 0 5vw;
    }

    .contatti::before {
        content: "";
        width: 100%;
        height: 100px;
        background-image: url('mask.svg');
        background-size: contain;
        background-repeat: no-repeat;
        background-position: 50% 0;
        top: -1px;
        left: 0;
        position: absolute;
        display: inline-block;
    }

    .footer {
        background-color: #fff;
        color: #000;
        padding: 56px 24px;
        margin-top: 80px;
        border-top-left-radius: 32px;
        border-top-right-radius: 32px;
    }

    .footer h6:last-child {
        margin-bottom: 0;
    }

    .footer a {
        text-decoration: underline;
        color: #000;
    }

    .footer a:hover {
        text-decoration: none;
    }

    .footer .phone {
        color: #000 !important;
    }
}