.only_mobile{
    display: none;
}
.w_def{
    width: 90%;
    margin: auto;
}
.space{
    clear: both;
    height: 100px;
}
.title{
    font-size: 50px;
    margin-bottom: 30px;
}
.title_primary{
    font-size: 60px;
}
.subtitle{
    font-size: 30px;
}
.logo{
    gap: 20px;
}
.logo .info p:first-of-type{
    font-size: 25px;
}
.logo .info p:last-of-type{
    letter-spacing: .45px;
    font-size: 16px;
}
header .logo img{
    width: 70px;
}
header #wrap_menu{
    display: flex;
    gap: 50px;
    align-items: center;
}
header .menu .submenu{
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    width: max-content;    
    visibility: hidden;
    opacity: 0;
    transition: 400ms ease;
    padding-top: 20px;
}
header .menu .submenu ul{
    background-color: white;
    border: 1px solid rgba(26,88,135,.2);
    border-bottom-right-radius: 15px;
    border-bottom-left-radius: 15px;
    list-style-type: none;
    display: flex;
    flex-direction: column;
    position: relative;
    box-shadow: 0 10px 20px rgba(0,0,0,.2);
}
header .menu .submenu ul::before{
    content: '';
    position: absolute;
    width: 20px;
    height: 20px;
    background-color: #3378a3;
    top: -10px;
    left: 50%;
    transform: translateX(-50%) rotate(45deg);
    z-index: -1;
}
header .menu .submenu ul li{
    background-color: #E3F2F7;
    border-bottom: 1px solid #3378a3;
    padding: 15px 50px;
    transition: 400ms ease;
    text-align: center;
}
header .menu .submenu ul li:hover{
    background-color: white;
    padding: 15px 45px 15px 55px;
}
header .menu .submenu ul li:last-of-type{
    border-bottom-right-radius: 15px;
    border-bottom-left-radius: 15px;
    border-bottom: unset;
}
header .menu li:hover .submenu{
    opacity: 1;
    visibility:visible;
}

.subheader_home .info .maintitle{
    font-size: 60px;
    line-height: 50px;
}
.subheader_home .info .subtitle{
    font-size: 40px;
}
.subheader_home .info .thirdtitle{
    font-size: 40px;
}
.subheader_home .info .grid{
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 100px;
}
.about .grid > div{
    flex: 1;
}
.grid_why{
    grid-template-columns: repeat(5, 1fr);
    gap: 50px;
    padding: 0 10px;
}
.grid_sponsor{
    grid-template-columns: repeat(4, 1fr);
    gap: 200px;
    padding: 0 10px;
}
.grid_services{
    grid-template-columns: repeat(3,1fr);
    gap: 50px;
    padding: 0 50px;
}
footer{
    padding: 100px 0;
}
footer .grid{
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 70px;
}
footer .pad_tp{
    padding-top: 120px;
}
.bck_light.primary{
    padding: 100px 0;
    position: relative;
}
.primarytitle_text{
    justify-content: space-between;
    gap: 200px;
}
.primarytitle_text > div:first-of-type{
    flex: 0 0 auto;
}
.primarytitle_text > div:last-of-type{
    flex: 1 1 0;
    min-width: 0;
}
.img_text > div{
    width: 50%;
    min-width: 0;
}
.img_text .wrap_text{
    padding: 0 5vw 0 50px;
    position: relative;
}
.img_text .wrap_text .text{
    padding-left: 30px;
}
.img_text .wrap_text > .info{
    padding: 50px 0;
}
.img_text.reverse{
    flex-direction: row-reverse;
}

img.phone{
    height: 600px;
}
.custom_btn.stores{
    display: inline-block;
}
.grid_alloggi{
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 50px;
}
#sticky_bar{
    padding: 30px 0; 
    position: sticky; 
    top: 0; 
    left: 0; 
    width: 100%; 
    z-index: 5;
}
.location_info{
    gap: 100px;
}
.location_info > div{
    flex:1 1 0;            
    min-width:0;
}
.contact_section{
    padding: 50px 0;
}
form .grid{
    grid-template-columns: 1fr 1fr;
    gap: 30px;
}
form .privacy{
    gap: 30px;
}
.poi .title{
    font-size: 40px;
}
.poi p{
    margin: 10px 0 10px 20px;
}
.poi .gallery{
    margin-left: 20px;
    max-width: calc(100% - 20px);
}
.grid_desks{
    grid-template-columns: repeat(3,1fr);
    gap: 100px;
}
.grid_desks > div .info{
    padding: 30px;
}
.grid_desks > div{
    border-top-left-radius: 50px;
    border-bottom-right-radius: 50px;
}
.grid_desks h2{
    min-height: 82px;
}
.app_not_available{
    font-size: 25px;
}

@media screen and (max-width: 1300px){
    .grid_alloggi{
        grid-template-columns: repeat(2, 1fr);
    }
    .grid_desks{
        grid-template-columns: repeat(2, 1fr);
        gap: 50px;
    }
    .grid_services{
        grid-template-columns: repeat(2, 1fr);
    }
    footer .grid{
        grid-template-columns: 1fr;
        gap: 50px;
    }
    footer .pad_tp{
        padding-top: 0;
    }
}
@media screen and (max-width: 1450px){
    .grid_why{
        grid-template-columns: repeat(3, 1fr);
    }
    .grid_sponsor{
        grid-template-columns: repeat(2, 1fr);
        gap: 20px;
        padding: 0 10px;
    }
}



