:root{
    --color-main:rgb(41, 55, 145);
}
body.loading{
    visibility:visible;
}
header{
    height:100px;
}
#header{
    align-items:center;
    justify-content:space-between;
    height:100px;
    font-weight:500;
    font-size:16px;
}
#header>*{
    max-width:295px;
    line-height:1.5em;
}
#top-menu{
    bottom:0;
    position:relative;
    height:60px;
    z-index:999;
}
header{
    box-shadow:0 5px 5px rgba(154,147,140,.5);
}
#top-menu ul{
    display:flex;
    justify-content:space-between;
}
#top-menu>ul>li:first-child{
    margin-left:32px;
}
#top-menu>ul>li:last-child{
    margin-right:32px;
}
#top-menu li{
    position:relative;
    font-weight:600;
    font-size:18px;
}
#top-menu li ul{
    display:none;
}
#top-menu li:hover ul,
#top-menu li ul:hover{
    display:flex;
    flex-direction:column;
    position:absolute;
    left:0;
    top:60px;
    background-color:rgb(100%,100%,100%);
    width:290px;
    align-items:baseline;
}
#top-menu li:hover li{
    /*text-align:center;*/
}
#top-menu li li:hover,
#top-menu li li:hover a{
    color:white;
    background-color: var(--color-main);
}
#top-menu a{
    text-decoration:none;
    color:rgb(250,250,250);
}
#top-menu li ul a{
    text-decoration:none;
    color:rgb(25,25,25);
}
#mobile-menu-list li.active{
    background:linear-gradient(to bottom,var(--color-main) 0%,var(--color-main) 48px,rgb(255,255,255) 49px,rgb(255,255,255) 100%);
}
#mobile-menu-list li.active ul{
    color:rgb(12,12,12);
    background-color:rgb(255,255,255);
}
#top-menu li:not(.active) a:hover,
#mobile-menu-list li:not(.active) a:hover{
    /*color:rgb(30,42,197);*/
}
#mobile-menu-list li.active>a{
    color:rgb(100%,100%,100%);
}
#mobile-menu-list ul {
    list-style:none;
}
#top-menu li>ul>li{
    width: 240px;
}
main{
    max-width:1280px;
    margin:84px auto 32px;
    font-size:18px;
}
main img{
    max-width:calc(100vw - 24px);
}
#send-request{
    /*margin-top: 123px;*/
    padding-top: 74px;
}
#feedback-form{
    max-width:1280px;
    margin:0 auto 100px;
    display:flex;
    justify-content:space-around;
}
#feedback-form input[type="text"]{
    padding:20px;
    width:300px;
    border:1px solid rgba(50%,56%,61%,50%);
}
#feedback-form input[type="submit"]{
    border:none;
    box-shadow:none;
    width:325px;
}
#map{
    position:relative;
}
#map-overlay{
    position:relative;
    top:80px;
    background-color:rgb(100%,100%,100%);
    z-index:999;
    left:calc(50vw - 600px);
    width:400px;
    height:300px;
    display:flex;
    flex-direction:column;
    justify-content:space-around;
    padding:20px;
    font-size:18px;
    color:rgb(32,32,32);
}
#map-overlay>div{
    position:relative;
    padding-left:60px;
}
#map-overlay>div::before{
    content:"";
    position:absolute;
}
#m-address::before{
    background-image:url(/files/imgs/icon-addr.png);
    height:44px;
    width:32px;
    left:0;
    top:-12px;
}
#m-phone{
    line-height:2em;
}
#m-phone::before{
    background-image:url(/files/imgs/icon-phone.png);
    height:41px;
    width:41px;
    left:0;
    top:0;
}
#m-mail::before{
    background-image:url(/files/imgs/icon-mail.png);
    height:32px;
    width:44px;
    top:-6px;
    left:0;
}
#map-container{
    min-height:500px;
    margin-top:-340px;
}
footer div{
    font-size:18px;
    color:rgb(109,109,109);
}
footer>div{
    margin:0 auto;
    max-width:1280px;
    display:flex;
    justify-content:space-between;
    align-items:center;
}
footer #upper{
    height:150px;
}
#upper>div{
    width:200px;
    text-align:right;
}
#upper>img{
    /*height:100px;*/
}
footer #lower{
    height:100px;
}
footer hr{
    box-sizing:border-box;
    background-color:rgba(23,23,23,.23);
    height:1px;
    margin:3px 0;
    width:100%;
    box-shadow:none;
    border:none;
}
/* common */
html,body{
    background-color:rgb(100%,100%,100%);
    color:rgb(7%,7%,7%);
    font-family:'Lato',sans-serif;
}
ul{
    margin:0;
    padding:0;
    align-items:center;
}
nav li{
    padding: 20px 25px;
    list-style-type:none;
}
main li{
    list-style-type:initial;
    list-style-position:outside;
    padding-left:0;
    margin-left:20px;
}
ul,nav{
    width:100%;
}
.color-set{
    color:rgb(100%,100%,100%);
    background-color:rgb(30,42,197);
}
.color-reset{
    background-color:var(--color-main);
    color:rgb(250,250,250);
}
.center-flex{
    display:flex;
    flex-wrap:wrap;
    margin:0 auto;
    max-width:1280px;
}
.visual-flex{
    display:flex;
    flex-wrap:wrap;
    /*justify-content:space-between;*/
    justify-content:center;
}
.visual-flex a{
    margin:10px;
}
.vertical-block{
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    text-align:center;
}
.gray-zone,
.gray-zone-2{
    background-color:rgb(249,249,249);
}
.gray-zone-2{
    padding: 0 0 1px;
}
.button{
    text-decoration:none;
    padding:16px 42px;
    box-sizing:border-box;
    cursor:pointer;
    font-weight:bold;
    font-size:16px;
    border:1px solid rgba(1,1,1,0);
    transition:.5s;
}
.button.white{
    background-color:rgb(100%,100%,100%);
    border:1px solid var(--color-main);
    color:var(--color-main);
}
.button.white:hover{
    background-color:var(--color-main);
    border-color:var(--color-main);
    color:#fff;
}
.button.solid{
    background-color:var(--color-main);
    color:rgb(100%,100%,100%);
}
.button.solid:hover{
    border:1px solid var(--color-main)!important;
    background-color:rgb(100%,100%,100%);
    color:var(--color-main);
}
.button.red{
    border:1px solid var(--color-main)!important;
    background-color:rgb(100%,100%,100%);
    color:var(--color-main);
}
.button.red:hover{
    background-color:var(--color-main);
    border:1px solid rgb(30,42,197);
    color:rgb(100%,100%,100%);
}
.section-header{
    clear:both;
    color:rgb(24,24,24);
    text-align:center;
    font-size:40px;
    font-weight:700;
    padding:30px 0;
}
.section-sub-header{
    text-align:center;
    font-size:24px;
    font-weight:500;
    padding:0 0 30px;
    width:920px;
    max-width:90vw;
    color:rgb(50%,56%,61%);
    margin:0 auto; 
}
[class*="ymaps-2-1"][class*="-ground-pane"] {
    filter:grayscale(1);
}
#m-mail a{
    color:rgb(32,32,32);
}
.separator{
    height:32px;
    border:.5px solid rgb(0,0,0);
    margin:0 -50px;
    opacity:.2;
}
a{
    color:rgb(30,42,197);
}
.phones{
    text-align:right;
}
.phones div{
    margin:10px;
}
#upper>#recall2{
    text-align:center;
    padding:16px 0 0;
    height:50px;
}
div#hidden{
    display:none;
}
input[placeholder],
textarea[placeholder]{
    color:rgb(109,109,109);
    font-size:18px;
}
#wayback{
    position:absolute;
    bottom:-56px;
    right:0;
    font-size:18px;
}
#wayback a{
    color:rgb(30,42,197);;
    text-decoration:underline;
}
@media screen and (max-width:1279px) {
    .advantage {
        max-width:28vw;
    }
    .direction {
        max-width:45vw;
    }
    #map-overlay-0,
    #map-overlay-1 {
        left:5vw;
    }
}
@media screen and (max-width:1023px) {
    header{
        display:none;
    }
    div#hidden{
        display:block;
    }
    .advantage,
    .direction {
        max-width:100vw;
    }
/*}*/
/*@media screen and (max-width:1023px){*/
    main{
        padding:16px;
    }
    #feedback-form{
        flex-direction:column;
        align-items:center;
    }
    #map-overlay-0,
    #map-overlay-1 {
        position:static;
        max-width:90vw;
    }
    #map-container{
        min-height:400px;
        margin-top:0;
    }
    #feedback-form input[type="text"]{
        margin:16px 0;
        width:64vw;
    }
    #feedback-form input[type="submit"]{
        margin:16px 0;
        width:274px;
        text-align:center;
    }
    #mobile-menu{
        /*background-color:rgb(30,42,197);*/
        background-color:var(--color-main);
        display:flex;
        justify-content:space-between;
    }
    #mobile-menu img,
    #mobile-menu a img{
        margin:10px;
        height:30px;
        width:30px;
    }
    #mobile-logo{
        background-color:rgb(255,255,255);
        display:flex;
        align-items:center;
        height:80px;
        justify-content:center;
    }
    #mobile-logo img{
        height:70px;
    }
    #mobile-menu-list{
        display:none;
    }
    #mobile-menu-list.show{
        display:block;
    }
    #mobile-menu-list>ul{
        position: absolute;
        top:45px;
        right:0;
        left:0;
        background-color:rgb(255,255,255);
        z-index:99;
        padding-bottom:16px;
        border-bottom:1px solid rgb(30,42,197);
    }
    #mobile-menu-list li{
        padding:10px 20px;
        font-size:20px;
        font-weight:500;
        width:100%;
    }
    #mobile-menu-list li a{
        text-decoration:none;
        color:rgb(12,12,12);
    }
    #mobile-menu-list li li{
        font-size:16px;
        font-weight:600;
        position:relative;
    }
    #mobile-menu-list li li:before{
        content:"—";
        position:absolute;
        left:3px;
        color:rgb(12,12,12);
    }
    #mobile-menu-list li li.active:before,
    #mobile-menu-list li.active>a:hover{
        color:rgb(255,255,255);
    }
    #mobile-menu-list li:hover:before{
        color:rgb(30,42,197);
    }
    #mobile-menu-list li.active:after{
        content:"";
        position:absolute;
        left:-20px;
        height:38px;
        width:20px;
        /*background-color:rgb(30,42,197);*/
        background-color:var(--color-main);
        top:0;
    }
    #mobile-menu-list li ul{
        margin-top:16px;
    }
    #upper>img,
    #upper .logo-link{
        display:none;
    }
    #upper{
        flex-direction:column;
        justify-content:center;
    }
    #upper #social{
        text-align:center;
        margin-top:15px;
    }
    #social a{
        margin:5px;
    }
    #branding{
        display:flex;
        flex-direction:column;
        align-items:center;
    }
    #branding>*{
        margin:10px;
    }
    #lower{
        flex-direction:column-reverse;
    }
}
@media screen and (max-width:1023px){
    main{
        margin:0;
    }
    #reviews-form input[type="submit"]{
        width:324px;
    }
    .over-text>br{
        display:none;
    }
    .on-slider {
        position:absolute;
        top:194px;
        right:0px;
        left:0px;
        margin-top:0px!important;
    }
    main img{
        height:auto;
        margin:0 0 10px 0 !important;
    }
    main h1{
        font-size:1.5em;
    }
}

@media (max-width: 500px){
    #mobile-logo img {
        height: 30px;
    }
}