/* Структурные блоки */

header,
footer,
section,
.shell {
    position: relative;
}

.shell, .content {
    position: relative;
    margin: 0 auto;
    padding: 0 10px;
}

.shell {
    max-width: 1200px
}

.itemBlock {
    max-width: 1180px
}

.content {
    padding-top: 180px;
}

.content.index {
    padding-top: 0
}

/* Шапка */

header {
    position: fixed;
    top: 0; left: 0; right: 0;
    padding: 0 20px;
    height: 150px;
    background-color: #fff;
    background: -webkit-gradient(linear, left top, left bottom, from(#dbe0e8), to(#fff));
    background: linear-gradient(to bottom, #dbe0e8, #fff);
    z-index: 5000;
    -webkit-transition: .5s;
    transition: .5s
}

.darkPage header {
    background-color: transparent;
    background: linear-gradient(to bottom, #2d3d4d, #405162);    
}

.mainPage header {
    background: none !important;
}

header.indexHeader {
    height: 300px;
    background: none;
    background: -webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.7)), to(rgba(255, 255, 255, 0)));
    background: linear-gradient(to bottom, rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0))
}

.mainLogo {
    position: absolute;
    top: 8px; left: 50%;
    width: 200px;
    margin-left: -100px;
    text-align: center
}

.hoverRotate img {
    -webkit-transition: 1s;
    transition: 1s
}

.mainLogo a, .logoSignM a, .logoTextM a, .mainLogoBase a {
    border-bottom: none
}

.logoText {
    margin-top: 13px;
}

.logoSignM {
    display: none;
    position: absolute;
    top: 17px; left: 0;
    width: 58px; height: 40px
}

.logoTextM {
    display: none;
    position: absolute;
    top: 23px; left: 0;
    width: 220px; height: 24px    
}

.mainPhone, .mainTagline {
    top: 35px;
    position: absolute;
    font-weight: 600;
    text-transform: uppercase;
    color: #af6464
}

.darkPage .mainPhone a, .darkPage .mainTagline {
    color: rgba(255, 255, 255, 0.9)    
}

.mainTagline {
    left: 0;
}

.mainPhone {
    right: 0;
    text-align: right;
}

.mainPhone a {
    color: #af6464;
    border: none;
}

.mainTagline .headerLink {
    text-align: left;
}

.mainPhone .headerLink {
    text-align: right;
}

.headerLink {
    margin-top: 7px;
    font-size: 13px;
    font-weight: 600;
    text-transform: none
}

.headerLink a {
    position: relative;
    padding-bottom: 3px;
    color: #4d555c;
    border-bottom: 1px dashed #aab2b9
}

.headerLink a:hover {
    color: #bc2526
}

.headerLink a::before {
    content: "";
    position: absolute;
    bottom: -1px;
    left: 50%; right: 50%;
    height: 1px;
    background-color: #ce7f80;
    -webkit-transition: .4s;
    transition: .4s
}

.headerLink a:hover::before {
    left: 0; right: 0;
}

.darkPage .headerLink a {
    color: rgba(255, 255, 255, 0.75);
    border-bottom: 1px dotted rgba(255, 255, 255, 0.6)
}

.darkPage .headerLink a:hover {
    color: #e67f80
}

.darkPage .headerLink a::before {
    background-color: #af6464;
}

/* Иконка меню */

.icoMenu {
    position: absolute;
    visibility: hidden;
    opacity: 0;
    right: 0;
    top: 20px;
    width: 30px;
    height: 30px;
    cursor: pointer;
    -webkit-transition: all .3s;
    transition: all .3s
}

.icoMenu span,
.icoMenu span:before,
.icoMenu span:after {
    content: '';
    display: block;
    position: absolute;
    width: 24px;
    height: 3px;
    background: #0085B3;
    opacity: 1;
    visibility: visible;
}

.icoMenu span {
    top: 13px;
    left: 4px;
}

.icoMenu span:before {
    top: -9px;
    -webkit-transition: all .3s;
    transition: all .3s
}

.icoMenu span:after {
    top: 9px;
    -webkit-transition: all .3s;
    transition: all .3s
}

.icoMenu.opened span {
    opacity: 0 !important;
    visibility: hidden;
}

.icoMenu.opened span:before, .icoMenu.opened span:after {
    visibility: visible !important;
    opacity: 1 !important;
    height: 2px;
}

.icoMenu.opened span:before {
    top: 1px; left: -3px;
    width: 30px;
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg)
}

.icoMenu.opened span:after {
    top: 1px; left: -3px;
    width: 30px;
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg)
}

/* Основное меню, десктоп */

nav, menu {
    font-family: 'Fira Sans Extra Condensed', sans-serif; 
    font-family: 'Roboto Condensed', sans-serif;
    text-transform: uppercase   
}

nav#desktop {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    position: absolute;
    top: 100px; left: 0; right: 0;
    font-size: 16px;
    font-weight: 700;
    text-transform: uppercase;
    pointer-events: none;
    -webkit-transition: .3s;
    transition: .3s
}

nav#desktop ul, nav#desktop li {
    margin: 0; padding: 0;
    line-height: 1em;
    list-style-type: none;
    vertical-align: top;
}

nav#desktop li {
    display: inline-block;
    vertical-align: top;
    pointer-events: auto
}

nav#desktop li:first-child {
    margin-right: 20px
}

nav#desktop li:last-child {
    margin-left: 20px
}

nav#desktop ul {
    -webkit-box-flex: 1;
    -ms-flex-positive: 1;
    flex-grow: 1
}

nav#desktop ul:last-child {
    text-align: right
}

nav#desktop ul li a {
    display: block;
    position: relative;
    padding: 2px 0 6px 0;
    color: #0085B3;
    border-bottom: none;
    border-bottom: 2px dotted rgba(0, 133, 179, 0.5);
}

nav#desktop ul li a.active, nav#desktop ul li a:hover {
    color: #bc2526;
}

nav#desktop ul li a::before {
    content: "";
    position: absolute;
    bottom: -2px;
    left: 50%; right: 50%;
    height: 2px;
    background-color: #ce7f80;
    -webkit-transition: .4s;
    transition: .4s
}

nav#desktop ul li a:hover::before, nav#desktop ul li a.active::before {
    left: 0; right: 0;
}

nav#desktop ul li a::after {
    content: "";
    position: absolute;
    bottom: -7px;
    left: 50%;
    margin-left: -6px;
    width: 12px; height: 7px;
    background-image: url(/img/icoMenuArr.png);
    z-index: 1000;
    opacity: 0;
    -webkit-transition: all 0.4s;
    transition: all 0.4s; 
}

.darkPage nav#desktop ul li a::after {
    background-image: url(/img/icoMenuArrDark.png);    
}

nav#desktop ul li a.active::after {
    opacity: 1;
}

.darkPage nav#desktop ul li a {
    color: #9ee6ff;
    border-bottom: 2px dotted rgba(158, 230, 255, 0.5);
}

.darkPage nav#desktop ul li a.active, .darkPage nav#desktop ul li a:hover {
    color: #e67f80;
}

.darkPage nav#desktop ul li a::before {
    background-color: #af6464;
}

/* Подменю */

menu.sub {
    margin: 6px 0 30px 0;
    text-align: center;
    font-size: 15px;
    font-weight: 700;
}

menu.sub ul, menu.sub ul li {
    display: inline-block;
    margin: 0; padding: 0;
}

menu.sub ul li {
    margin: 4px 10px 0 10px
}

menu.sub ul li a {
    display: block;
    position: relative;
    padding: 3px 0 3px 0;
    color: #7b8d9e;
    border-bottom: 2px dotted #aab2b9;
}

.darkPage menu.sub ul li a {
    color: rgba(255, 255, 255, 0.75);
    border-bottom: 2px dotted rgba(255, 255, 255, 0.5);
}
    
menu.sub ul li a:hover, menu.sub ul li.active a {
    color: #bc2526;
}

.darkPage menu.sub ul li a:hover, .darkPage menu.sub ul li.active a {
    color: #e67f80;
}

menu.sub ul li a::before {
    content: "";
    position: absolute;
    bottom: -2px;
    left: 50%; right: 50%;
    height: 2px;
    background-color: #ce7f80;
    -webkit-transition: .4s;
    transition: .4s
}

.darkPage menu.sub ul li a::before {
    background-color: #af6464;    
}

menu.sub ul li a:hover::before, menu.sub ul li.active a::before {
    left: 0; right: 0;
}

menu.sub ul li a::after {
    content: "";
    position: absolute;
    bottom: -7px;
    left: 50%;
    margin-left: -6px;
    width: 12px; height: 7px;
    background-image: url(/img/icoMenuArr.png);
    z-index: 1000;
    opacity: 0;
    -webkit-transition: all 0.4s;
    transition: all 0.4s; 
}

.darkPage menu.sub ul li a::after {
    background-image: url(/img/icoMenuArrDark.png);
}

menu.sub ul li.active a::after {
    opacity: 1;
}

/* Основное меню, мобайл */

nav#mobile {
    position: fixed;
    display: none;
    top: 70px; left: 0; right: 0; bottom: 0;
    padding: 30px 0;
    background: #edeff2;
    overflow: auto;
    z-index: 10001
}

nav#mobile ul {
    margin: 0 auto;
    padding: 0;
    max-width: 280px;
    font-weight: 600
}

nav#mobile li {
    list-style-type: none;
}

nav#mobile>ul>li>a {
    display: inline-block;
    padding: 1px 15px 2px 15px;
    border-bottom: none;
    color: #7b8d9e
}

nav#mobile>ul>li>a:hover, nav#mobile>ul>li>a.active {
    color: #af6464;
}

nav#mobile .level1 {
    margin-top: 10px;
    padding-top: 10px;
    margin-bottom: 3px;
    font-size: 17px;
    border-top: 2px dotted #7b8d9e
}

nav#mobile ul:last-child {
    padding-bottom: 7px;
    border-bottom: 2px dotted #7b8d9e    
}

nav#mobile .level2 {
    margin-top: 8px;
    padding-left: 10px;
    font-size: 15px
}

nav#mobile .level3 {
    margin-top: 4px;
    padding-left: 20px;
    font-size: 13px
}

/**/

.contactsFlex {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center
}

.contactsItem {
    width: calc(50% - 5px);
    margin-top: 10px;
    padding: 10px 20px 15px 20px;
    background-color: #e6eaef;
    background-color: rgba(189, 195, 208, 0.35)
}

/*
.contactsItem:nth-child(odd) {
    margin-right: 5px
}

.contactsItem:nth-child(even) {
    margin-left: 5px
}
*/

.contactsItem h3 {
    text-align: left;
    text-transform: none
}

.contactsItem p {
    margin-top: 5px
}


/**/

.stuffSection {
    margin-bottom: 50px
}

.stuffSection:last-child {
    margin-bottom: 0
}

.stuffItem h3, .stuffItem .submitButton  {
    text-align: center
}

.stuffItem h3 {
    font-size: 20px
}

.abAnons {
    margin-top: 5px;
    margin-bottom: 15px;
    text-align: center
}

.abAnons p {
    margin-top: 0
}

.abAnons a {
    display: inline-block;
    margin-top: 5px;
    font-size: 18px
}

.stuffItem {
    width: calc(50% - 10px);
    margin-top: 10px;
    padding: 7px 20px;
    background-color: #e6eaef;
    background-color: rgba(189, 195, 208, 0.35)
}

.stuffItem:nth-child(odd) {
    margin-right: 5px
}

.stuffItem:nth-child(even) {
    margin-left: 5px
}

.stuffItem h3, .stuffItem .submitButton a {
    text-transform: none
}

.stuffItem .submitButton.small {
    margin-top: 10px
}

.stuffFlex {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center
}

.stuffItem p {
    margin-top: 30px
}

/**/

/* .servicesFlex {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center
} */

.servicesFlex {
    display: grid;
    grid-column-gap: 10px;
    grid-row-gap: 10px;
    grid-template-columns: repeat(2,1fr);
}

.clausesList {
    margin-bottom: 40px
}

.serviceItem {
    display: flex;
    position: relative;
    background-color: #4e6174;
    background-color: rgba(179, 200, 222, 0.15)
    
}

.serviceItem.full {
    width: 100%;
    text-align: left !important
}

.serviceItem.full h3 {
    text-align: left
}

.servicePic {
    height: 220px;
    background-size: cover;
    overflow: hidden    
}

.serviceItem.odd .servicePic {
    -webkit-clip-path: polygon(5% 0, 90% 10%, 100% 80%, 0% 100%);
    clip-path: polygon(5% 0, 90% 10%, 100% 80%, 0% 100%);    
}

.serviceItem.even .servicePic {
    -webkit-clip-path: polygon(10% 10%, 95% 0, 100% 100%, 0% 80%);
    clip-path: polygon(10% 10%, 95% 0, 100% 100%, 0% 80%);    
}

.serviceImg {
    flex: 0 0 160px;   
}

.serviceInfo {
    padding: 0 10px 10px 20px
}

.serviceInfo p {
    font-size: 12px;
}


.serviceInfo ul {
    margin: 10px 0 0 0; padding: 0;
    font-size: 12px;
    list-style-type: none
}

.serviceInfo ul li::before {
    font-size: 10px;
    color: rgba(255, 255, 255, 0.6)
}

.serviceInfo ul li:nth-child(1)::before {
    content: 'Регион и период: '
}

.serviceInfo ul li:nth-child(2)::before {
    content: 'Заказчик: '
}

.serviceInfo ul li:nth-child(3)::before {
    content: 'Характеристика: '
}

.odd .serviceInfo h3, .odd .serviceInfo p, .odd .serviceInfo ul {
    text-align: left
}

.even .serviceInfo h3, .even .serviceInfo p {
    text-align: left
}

.serviceInfo h3 {
    margin-top: 10px;
    font-weight: 500;
    text-transform: none;
    color: #0085B3;
}

.clausesProjects .serviceInfo h3 {
    text-transform: none
}

.darkPage .serviceInfo h3 {
    color: #6ec3e0;
}

.serviceInfo p {
    margin-top: 5px;
}

.serviceInfo .options p {

}

.darkPage .serviceInfo .options p {
    color: #fff
}

.serviceText {
    text-align: center
}

/* Фотогалерея */

.photoHeader {
    margin-top: 50px
}

.flexPhotos {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: distribute;
    justify-content: space-around;
    -ms-flex-line-pack: start;
    align-content: flex-start;
    -webkit-box-align: start;
    -ms-flex-align: start;
    align-items: flex-start;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    border-radius: 3px;
    margin: 10px auto 30px auto;
    padding-bottom: 30px;
    max-width: 1400px
}

.indexPhotos {
    margin: 0 auto
}

.flexPhotos a {
    border-bottom: none
}

.flexPhotos.index {
    margin: 0 auto;
    padding-bottom: 0; 
    background-color: transparent;   
}

.photoItem {
    max-width: 250px;
    text-align: center;
    vertical-align: top;
}

.photoItem figure {
    display: inline-block;
    position: relative;
    margin: 20px 0 0 0;
    width: 180px;
    height: 180px;
    background-position: center center;
    background-size: cover;
    border-radius: 1px;
    -webkit-transition: .4s;
    transition: .4s
}

.photoItem figure:hover {
    -webkit-transform: scale(1.05);
    transform: scale(1.05) translateY(-5px)
}

.photoItem figure a {
    position: absolute;
    left: 0; top: 0; right: 0; bottom: 0;
    border: none
}

.lettersItem {
    flex: 1 1 280px;
    margin-bottom: 10px;
    margin-right: 10px;
    padding: 40px 0;
    text-align: center;
    background-color: #4e6174;
    background-color: rgba(179, 200, 222, 0.15)
}

.lettersItem img {
    border: 5px solid #9ee6ff;
    transition: all .4s
}

.lettersItem img:hover {
    border-color: #e67f80
}

.partnersItem {
    flex: 1 1 280px;
    margin-bottom: 10px;
    margin-right: 10px;
    padding: 40px 0;
    text-align: center;
    background-color: #e6eaef;
    background-color: rgba(189, 195, 208, 0.35)
}

/**/

.yandexMap {
    margin-top: 10px;
    border: 4px solid #eff1f5
}

#feedback {
    display: none;
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    margin-top: 0;
    padding-bottom: 30px;
    font-size: 16px;
    background: #dfe2e6;
    z-index: 10000;
    overflow: auto
}

#feedback {
    top: 150px;
    text-align: center; 
}

.feedbackForm {
    margin-top: 40px
}

.feedbackCloseButton {
    margin-top: 20px;
    padding: 1px 0;
    font-family: 'Fira Sans Extra Condensed', sans-serif;
    font-family: 'Roboto Condensed', sans-serif;
    font-size: 13px;
    text-transform: uppercase
}

.feedbackCloseButton a {
    padding: 3px 15px;
    color: #fff;
    background-color: #7b8d9e
}

.feedbackCloseButton a:hover {
    background-color: #0085B3
}

/**/

.columns {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    margin-bottom: 40px
}

.columns>div:first-child {
    width: 350px;
    padding-right: 40px;
    font-family: 'Fira Sans Extra Condensed', sans-serif;
    font-family: 'Roboto Condensed', sans-serif;
    font-size: 19px;
    font-weight: 300;
    text-align: right;
    color: #0085B3
}

.columns>div:first-child p {
    line-height: 1.4em
}

.columns.center {
    margin-bottom: 20px
}

.columns.center>div:first-child {
    padding-left: 30px;
    max-width: 50%;
    width: 50%;
    font-size: 20px;
    text-align: right    
}

.columns.center>div:first-child p {
    margin-top: 11px
}

.columns>div:last-child {
    max-width: 70%;
    min-width: 350px;
}

.columns.center>div:last-child {
    max-width: 50%;
}

.columns.center>div:last-child p + p {
    margin-top: 10px
}

.emphList {
    margin: 15px 0 0 20px; padding: 0;
}

.emphList li {
    margin-bottom: 5px
}

/**/

.newsList .columns {
    margin-bottom: 60px
}

date {
    display: block;
    margin-top: 20px;
    font-size: 14px;
    color: #677581
}

.newsList figure {
    display: block;
    position: relative;
    width: 100%;
    height: 150px;
    margin-top: 20px;
    background-size: cover;
    background-color: #aab2b9;
    -webkit-clip-path: polygon(0 0, 100% 10%, 100% 90%, 0% 100%);
    clip-path: polygon(0 0, 100% 10%, 100% 90%, 0% 100%);
    overflow: hidden
}

.newsList figure a {
    position: absolute;
    top: 0; bottom: 0; left: 0; right: 0;
    border-bottom: none
}

/**/

.submitButton.big {
    text-align: center;
    margin-top: 40px;    
}

.submitButton.small {
    margin-top: 20px;    
}

.submitButton a {
    color: #fff;
    background-color: #98a5b2;
    font-family: 'Fira Sans Extra Condensed', sans-serif;
    font-family: 'Roboto Condensed', sans-serif;
    font-weight: 400;
    border: none;
    border-radius: 1px;
    text-transform: uppercase;
    cursor: pointer;
    -webkit-transition: .4s;
    transition: .4s 
}

.submitButton a:hover {
    background: #0085B3;
    
}

.submitButton.big a {
    padding: 6px 15px 5px 15px;
    font-size: 17px;
    
}

.submitButton.small a {
    padding: 3px 15px 3px 15px;  
    font-size: 15px; 
}

/**/

.topPic, .bottomPic {
    text-align: center
}

.topPic {
    margin-bottom: 30px
}

.bottomPic {
    margin-top: 20px
}

/* Подвал */

footer {
    margin-top: 30px;
    padding: 0 20px;
    font-size: 12px;
    line-height: 1.6em;
    text-align: center;
}

.darkPage footer {

    color: rgba(255, 255, 255, 0.8)
}

footer .shell {
    border-top: 2px dotted rgba(0, 133, 179, 0.6);
    padding: 30px 0
}

.darkPage footer .shell {
    border-top: 2px dotted rgba(158, 230, 255, 0.6);
}

.darkPage footer a {
    color: #9ee6ff
}

footer p {
    margin-top: 3px
}

footer p:last-child {
    margin-top: 12px
}

