:root{
    /*========== Colors ==========*/
    --black: #101010;
    --white: #FFFFFF;
    /*========== Font and typography ==========*/
    --body-font: 'DM Sans', sans-serif;
    --large-font-size: 2.4rem;
    --medium-font-size: 1.6rem;
    --normal-font-size: 1.3rem;
    /*========== Font weight ==========*/
    --font-regular: 400;
    --font-bold: 700;
    /*========== Spacing ==========*/
    --xxsmall: .4rem;
    --xsmall: .8rem;
    --small: 1.6rem;
    --medium: 2.4rem;
    --large: 3.2rem;
    --xlarge: 4.8rem;
    /*========== Custom Spacing ==========*/
    --header-height: 3.9rem;
    --nav-item-height: 2.3rem;
    --margin-layout: 2rem;
    --banner-home-width: 23.4rem;
}
/*=============== BASE ===============*/
*{
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}
html{
    font-size: 62.5%;
    font-family: var(--body-font);
    scroll-behavior: smooth;
}
a {
    text-decoration: none;
    color: var(--black);
}
h2{
    font-size: var(--large-font-size);
    font-weight: var(--font-bold);
}
h3{
    font-size: var(--medium-font-size);
}
h4{
    font-size: var(--normal-font-size);
    color: var(--white);
}
span{
    font-size: var(--normal-font-size);
}
img, svg{
    display: block;
    overflow: hidden;
}
li{
    list-style: none;
}
/*=============== REUSABLE CSS CLASSES ===============*/
.container{
    margin-left: var(--margin-layout);
    margin-right: var(--margin-layout);
    max-width: 131.2rem;
}
.grid{
    display: grid;
}
/*=============== HEADER ===============*/
.header{
    width: 100%;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 100;
}
.nav{
    background-color: var(--white);
    box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.05);
    height: var(--header-height);
    padding: var(--xsmall) var(--margin-layout);
    display: grid;
    grid-template-columns: 1fr repeat(3, auto) 1fr;
    grid-column-gap: 5px;
    align-items: center;
}
.nav__button{
    background: none;
    border-style: none;
    margin-right: auto;
}
.nav__button-icon{
    height: var(--nav-item-height);
}
.nav__logo{
    height: var(--nav-item-height);
}
@media screen and (max-width: 1023px) {
    .nav__list{
        transform: translateY(-135%);
        width: 100%;
        position: fixed;
        background-color: var(--white);
        top: var(--header-height);
        left: 0;
        box-shadow: 0px 4px 4px 0px rgb(0 0 0 / 5%);
        transition: transform 0.3s;
        z-index: -1;
    }
    .nav__wo-shadow{
        box-shadow: none;
    }
    .nav__list--active{
        transform: translateY(0);
    }
    .nav__item:last-child{
        padding-bottom: var(--small);
    }
    .nav__item{
        padding: .8rem 2rem;
    }
}
.nav__link{
    text-decoration: none;
    color: var(--black);
    font-size: var(--medium-font-size);
    font-weight: var(--font-bold);
}
/*=============== HOME ===============*/
.home{
    padding-top: calc(var(--header-height) + var(--large));
    gap: var(--medium);
}
.home__data{
    display: flex;
    flex-direction: column;
}
.home__data-title{
    font-size: var(--large-font-size);
    font-weight: var(--font-bold);
    margin-bottom: var(--xsmall);
}
.home__data-divider{
    width: var(--large);
    border: .1rem solid var(--black);
    margin-bottom: var(--xsmall);
}
.home__data-subtitle{
    font-size: var(--normal-font-size);
    margin-bottom: var(--small);
}
.home__data-cta-container{
    display: flex;
    align-items: center;
}
.home__data-contact-button-container{
    background-color: var(--black);
    padding: .5rem 1rem;
    cursor: pointer;
    filter: drop-shadow(0px 2px 2px rgba(0, 0, 0, 0.25));
}
.home__data-contact-button-container:hover{
    background-color: #363636;
}
.home__data-contact-button{
    color: var(--white);
    font-weight: var(--font-bold);
    font-size: var(--normal-font-size);
}
.home__data-link{
    margin-left: var(--small);
    font-size: var(--normal-font-size);
}
.home__img{
    width: var(--banner-home-width);
    max-width: 41rem;
}
/*=============== ADVANTAGES ===============*/
.advantages{
    padding-top: var(--xlarge);
}
.advantages__container{
    gap: var(--large);
}
.advantages__h2{
    margin-bottom: var(--small);
}
.advantages__statics{
    gap: var(--small);
}
.advantages__banner{
    width: 100%;
}
.advantages__phrase-container{
    width: 100%;
    padding: var(--xsmall);
    background-color: var(--black);
}
.advantages__phrase{
    color: var(--white);
    font-size: var(--large-font-size);
}
@media screen and (min-width: 320px) {
    .advantages__data{
        gap: 3.2rem;
    }
}
.advantages__data{
    display: flex;
}
.advantages__data-span{
    font-size: var(--normal-font-size);
}
.advantages__info{
    gap: var(--large);
}
.advantages__info-item{
    margin-bottom: var(--xsmall);
}
 /*=============== SERVICES ===============*/
 .services{
    padding-top: var(--xlarge);
 }
 .services__h2{
    margin-left: var(--margin-layout);
    margin-bottom: var(--small);
 }
 .services__img{
    width: 100%;
 }
 .services__container-background{
     background-color: var(--black);
     padding: var(--large) var(--margin-layout);
     width: 100%;
     display: flex;
     justify-content: center;
 }
 .services__container-info{
     color: var(--white);
     gap: var(--large);
 }
.services__li{
    font-size: var(--normal-font-size);
    margin-bottom: calc(var(--xxsmall) - .1rem);
    list-style: none;
 }
 .services__li:last-child{
     margin: 0;
 }
  /*=============== FAQ ===============*/

/*=============== CONTACT ===============*/
.contact{
    padding: var(--xlarge) 0;
    gap: var(--medium);
}
.contact__h2{
    margin-bottom: var(--small);
}
.contact__form-container{
    position: relative;
    display: inline-block;
    width: 75%;
    padding: var(--medium) 0;
}
.contact__form-container:last-of-type {
    width: 100%;
}
.contact__form-input{
    border: none;
    border-bottom: .1rem solid rgba(0,0,0,.30);
    font-size: var(--medium-font-size);
    margin: 0;
    padding: .4rem 0;
    width: 100%;
    background: 0 0;
    text-align: left;
    color: inherit;
    display: block;
    background-color: var(--white);
}
.contact__form-input--focused{
    outline: none;
}
.contact__form-label{
    bottom: 0;
    color: rgba(0,0,0,.46);
    font-size: var(--medium-font-size);
    left: 0;
    right: 0;
    pointer-events: none;
    position: absolute;
    display: block;
    top: calc(var(--medium) + .2rem);
    width: 100%;
    overflow: hidden;
    white-space: nowrap;
    text-align: left;
    transition-duration: .2s;
    transition-timing-function: cubic-bezier(.4,0,.2,1);
}
.contact__form-label--focused{
    color: var(--black);
    font-size: var(--normal-font-size);
    top: var(--xxsmall);
}
.contact__form-line::after{
    background-color: var(--black);
    bottom: var(--medium);
    content: '';
    height: 2px;
    left: 45%;
    position: absolute;
    transition-duration: .2s;
    transition-timing-function: cubic-bezier(.4,0,.2,1);
    visibility: hidden;
    width: 10px;
}
.contact__form-line--focused::after{
    left: 0;
    visibility: visible;
    width: 100%;
}
.contact__form-text-area{
    width: 100%;
    font-family: var(--body-font);
}
.contact__form-button{
    background-color: var(--black);
    color: var(--white);
    padding: .4rem 2.4rem;
    font-weight: var(--font-bold);
    font-size: var(--medium-font-size);
    font-family: var(--body-font);
    border: none;
    cursor: pointer;
    filter: drop-shadow(0px 2px 2px rgba(0, 0, 0, 0.25));
}
.contact__form-button:hover{
    background-color: #363636;
}
/*=============== FOOTER ===============*/
.footer{
    background-color: var(--black);
}
.footer__container{
    padding: var(--large) 0;
    gap: var(--medium);
}
.footer__item:nth-child(4){
    margin-bottom: var(--xlarge);
}
.footer__logo{
    width: 19.5rem;
    height: auto;
}
.footer__h4{
    margin-bottom: var(--xxsmall);
}
.footer__span{
    font-size: var(--normal-font-size);
    color: var(--white);
    display: block;
}
/*=============== @media 375px===============*/
@media screen and (min-width: 375px) {
    :root{
        /*========== Font and typography ==========*/
        --large-font-size: 3.2rem;
        --medium-font-size: 2rem;
        --normal-font-size: 1.6rem;
        /*========== Spacing ==========*/
        --xxsmall: .8rem;
        --xsmall: 1.6rem;
        --small: 2.4rem;
        --medium: 3.2rem;
        --large: 4.8rem;
        --xlarge: 6.4rem;
        /*========== Custom Spacing ==========*/
        --header-height: 5.8rem; 
        --margin-layout: 2rem;
        --nav-item-height: 2.6rem;
        --banner-home-width: 29rem;
    }
    .home__data-contact-button-container{
        padding: .6rem 1.4rem;
    }
    .contact__form-button{
        padding: .6rem 3.2rem;
    }
}
@media screen and (min-width: 720px) {
    :root{
        /*========== Font and typography ==========*/
        --large-font-size: 3.2rem;
        --medium-font-size: 2rem;
        --normal-font-size: 1.6rem;
        /*========== Custom Spacing ==========*/
        --header-height: 6.4rem;
        --margin-layout: 2.8rem;
        --nav-item-height: 3.2rem;
        --banner-home-width: 32vw;
    }
    .home, .advantages__container, .contact{
        grid-template-columns: 1fr 1fr;
    }
    .home__data{
        align-self: center;
    }
    .home__banner-container{
        justify-self: flex-end;
    }
    .advantages__info{
        gap: var(--medium);
        align-content: flex-start;
    }
    .services__img{
        height: 38.4rem;
        object-fit: cover;
    }
    .services__container-info{
        grid-template: 1fr 1fr / 1fr 1fr;
        grid-row-gap: var(--large);
        grid-column-gap: var(--small);
    }
    .contact{
        gap: 2rem;
    }
    .footer__container{
        grid-template-columns: 1fr 1fr;
        grid-template-rows: auto;
        grid-template-areas: 
        "logo logo"
        "phones address"
        "email email"
        "copyright copyright";
    }
    .footer__item:nth-child(1){
        grid-area: logo;
    }
    .footer__item:nth-child(2){
        grid-area: phones;
    }
    .footer__item:nth-child(3){
        grid-area: email;
    }
    .footer__item:nth-child(4){
        grid-area: address;
        margin-bottom: 0;
    }
    .footer__item:nth-child(5){
        grid-area: copyright;
    }
    .footer__logo{
        width: 25.6rem;
    }
}
@media screen and (min-width: 1024px){
    :root{
        /*========== Font and typography ==========*/
        --large-font-size: 3.2rem;
        --medium-font-size: 2.2rem;
        --normal-font-size: 1.8rem;
        /*========== Custom Spacing ==========*/
        --header-height: 6.4rem;
        --margin-layout: 6.4rem;
        --nav-item-height: 3.2rem;
        --banner-home-width: 32vw;
    }
    .nav__button{
        display: none;
    }
    .nav__list{
        display: flex;
        gap: var(--medium);
    }
    .nav__item{
        list-style: none;
    }
    .nav__link{
        font-size: var(--normal-font-size);
    }
    .home__data{
        padding: 0;
        align-self: center;
    }
    .home__data-title{
        font-size: 4.8rem;
    }
}
@media screen and (min-width: 1366px){
    :root{
        --header-height: 6.4rem;
        --margin-layout: 6.4rem;
        --nav-item-height: 3.2rem;
    }
    .home, .advantages, .contact, .footer__container{
        margin: 0 auto;
    }
    .nav{
        display: flex;
        gap: var(--xlarge);
    }
    .home__data-title{
        font-size: 5.16rem;
    }
    .advantages__container {
        gap: 10rem;
    }
    .services__container{
        
    }
    .services__container-info{
        justify-content: center;
    }
    .contact{
        gap: 10rem;
    }
}
@media screen and (min-width: 1440px){
    :root{
        /*========== Spacing ==========*/
        --xlarge: 10rem;
    }
}