.center {
    text-align: center;
}

.section {
    padding: 75px 0;
}

.title {
    font-family: "Montserrat", serif;
    font-weight: 200;
    font-size: 2.6rem;
    text-transform: uppercase;
    margin-bottom: 50px;
}

.title:has(+.title-text) {
    margin-bottom: var(--bs-gutter-x);
}

.title-text {
    max-width: 1100px;
    font-size: 1.3rem;
    margin-bottom: 40px;
    font-weight: 200;
}

.title-link {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 30px;
    margin-bottom: 50px;
}

.title-link .title {
    margin-bottom: 0;
}



.main {
    min-height: 100vh;
    position: relative;
    z-index: 1;
    display: flex;
    align-items: flex-end;
    color: #fff;
    padding-bottom: 135px;
}

.main:before {
    content: "";
    background: linear-gradient(transparent, rgb(0 0 0 / 70%));
    position: absolute;
    z-index: -1;
    top: 0;
    height: 100%;
    width: 100%;
}

.main:after {
    content: "";
    background: linear-gradient(90deg, transparent, rgb(0 0 0 / 70%));
    position: absolute;
    z-index: -2;
    top: 0;
    height: 100%;
    width: 100%;
}

.main > img, .main > video {
    position: absolute;
    z-index: -3;
    top: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}



.main .text {
    white-space: nowrap;
}

.main .text h1 {
    font-family: "Montserrat", serif;
    text-transform: uppercase;
    font-size: 3rem;
    font-weight: 200;
    line-height: 140%;
    margin-bottom: 20px;
}

.main .text .area {
    font-size: 2rem;
    font-weight: 200;
}




#cursorBar {
    position: absolute;
    height: 100%;
    width: 2px;
    background: #656667;
    padding: 0;
}

#posMenu.active {
    opacity: 1;
}

#posMenu {
    position: absolute;
    background: var(--color-1);
    width: 4px;
    height: 50px;
    opacity: 0;
    transition: all 0.4s ease;
    -o-transition: all 0.4s;
    -webkit-transition: all 0.4s ease 0s;
    padding: 0;
}

.services-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
    max-width: 402px;
    margin-left: auto;
    /* border-left: 1px solid #656667; */
    position: relative;
    overflow: hidden;
}

.services-list > * {
    padding: 20px 40px;
    text-transform: uppercase;
    /* border-left: 3px solid transparent; */
    /* margin-left: -1px; */
    cursor: pointer;
    color: #fff;
    /* transition: none; */
}

.services-list > *:hover {
    color: inherit;
}

/* .services-list > *:not(.all-btn):hover {
    background: rgb(255 255 255 / 20%);
    border-radius: 0 10px 10px 0;
    backdrop-filter: blur(20px);
    overflow: hidden;
    border-color: var(--color-1);
    color: #fff;
} */

.services-list > *.all-btn {
    margin-top: 150px;
    padding: 10px 40px;
    text-transform: none;
    font-size: 0.85rem;
    font-weight: 400;
}

.services-list > *.all-btn:hover {
    color: var(--color-1);
}

.all-btn {
    display: flex;
    align-items: center;
    white-space: nowrap;
    gap: 10px;
    color: inherit;
    font-weight: 500;
}

.all-btn svg {
    fill: var(--color-1);
    width: 15px;
    height: 15px;
}

.services-list .all-btn svg {
    fill: #fff;
}


.service-buttons-mobile {
    display: none;
}





/* Категория */

.category-head {
    padding: 180px 0 0;
}

.category-head h1 {
    font-family: "Montserrat", serif;
    font-size: 3.5rem;
    font-weight: 200;
    line-height: 120%;
    margin-bottom: 0;
}


/* .category-filter {
    margin-bottom: 50px;
} */

.filter-list {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
}

.filter-list > *:not(.all-btn) {
    border: 1px solid #979FA7;
    border-radius: 6px;
    padding: 13px 18px;
    font-size: 0.9rem;
    letter-spacing: -0.01em;
    color: #6C7074;
    cursor: pointer;
}

.filter-list > *:not(.all-btn):hover {
    color: #333;
    border-color: #333;
}

.filter-list > *.active {
    border-color: #333333;
    background: #333333;
    color: #fff !important;
    font-weight: 500;
    cursor: default;
}

.filter-list .all-btn {
    margin-left: auto;
    font-weight: 600;
    font-size: 0.9rem;
    cursor: pointer;
}

.filter-list .all-btn:hover {
    color: var(--color-1);
}



#projects.tag-novoe-stroitelstvo > *:not(.tag-novoe-stroitelstvo) {display: none;}
#projects.tag-rekonstrukczii-posle-boevyh-dejstvij > *:not(.tag-rekonstrukczii-posle-boevyh-dejstvij) {display: none;}
#projects.tag-dorozhnoe-stroitelstvo > *:not(.tag-dorozhnoe-stroitelstvo) {display: none;}





.category-body {
    padding-top: 50px;
}

#projects {
    display: flex;
    flex-direction: column;
    row-gap: 60px;
}

#projects .row {
    background: #fff;
    margin: 0;
    border-radius: 10px;
    /* height: 100%; */
    gap: 0;
}

#projects .image-wrap {
    flex: 0 0 645px;
    position: relative;
    padding: 0;
    overflow: hidden;
}

#projects .image {
    position: relative;
    height: 100%;
}

#projects .image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    position: absolute;
    border-radius: 10px;
    filter: grayscale(1);
    aspect-ratio: 3 / 2;
}

#projects .image .site-carousel img {
    position: relative;
    width: auto;
}


#projects .image .site-carousel, #projects .image .site-carousel .owl-stage-outer, #projects .image .site-carousel .owl-stage {
    height: 100%;
}


.project-photos .owl-prev {
    left: 15px !important;
}

.project-photos .owl-next {
    right: 15px !important;
}


/* #projects .image .cd-image-container img {
    position: relative;
} */

img-comparison-slider img {
    position: relative !important;
}


#projects > *:hover .image img {
    filter: grayscale(0);
}

#projects .text-wrap {
    padding: 0;
    height: 100%;
    flex: 2 0 0%;
}

#projects .text {
    padding: 40px 60px;
}

#projects .text .tag {
    color: var(--color-1);
    background: var(--color-2);
    display: inline-block;
    padding: 5px 10px;
    border-radius: 6px;
    font-size: 0.75rem;
    font-weight: 600;
    line-height: 1.1rem;
    margin-bottom: 20px;
}

#projects .text h3 {
    font-family: "Montserrat", serif;
    font-size: 2rem;
    font-weight: 200;
    line-height: 115%;

}

.address_customer {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 40px;
}

.parameters {
    display: flex;
    flex-direction: column;
    gap: 20px;
    margin-top: 40px;
}

.parameters > * {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.parameters > div > span {
    display: flex;
    align-items: center;
    gap: 7px;
}

.parameters svg {
    width: 16px;
    height: 16px;
    fill: var(--color-1);
}

.parameters .sep {
    border-bottom: 1px dashed #929292;
    height: 1px;
    flex: 1 0 0%;
}





.more-btn {
    display: inline-flex;
    align-items: center;
    white-space: nowrap;
    gap: 10px;
    background: #333;
    color: #fff;
    border-radius: 6px;
    margin-top: 75px;
    font-size: 0.85rem;
    padding: 13px 17px;
    cursor: pointer;
}

.more-btn:hover {
    background: #111;
    color: #fff;
}

.more-btn svg {
    fill: #fff;
    width: 15px;
    height: 15px;
    transform: rotate(90deg);
}

.more-btn.right-arrow svg {
    transform: unset;
}



.contacts {
    position: relative;
    z-index: 1;
    overflow: hidden;
}

.contacts-bg {
    opacity: 0.15;
    position: absolute;
    z-index: -1;
    right: 0;
    bottom: 0;
    height: 100%;
}

.contacts-bg img {
    height: 100%;
}

.contacts-bg:before {
    content: "";
    background: linear-gradient(90deg, #fafafa, rgb(250 250 250 / 0%));
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
}

.contacts-bg:after {
    content: "";
    background: linear-gradient(#fafafa, rgb(250 250 250 / 0%));
    position: absolute;
    top: 0;
    left: 0;
    height: 25%;
    width: 100%;
}


.contacts h2 {
    font-family: Montserrat;
    font-size: 2.6rem;
    font-weight: 200;
    text-transform: uppercase;
    margin-bottom: 50px;
}

.contacts .form {
    background: #fff;
    border-radius: 10px;
    padding: 40px;
    margin-right: 150px;
}

.contacts .form h3 {
    font-size: 1.3rem;
    font-weight: 400;
    margin-bottom: 20px;
}

.contacts .form .row {
    row-gap: 20px;
}

.contacts .form .form-field label.submit {
    display: block;
}

.contacts .form small {
    font-size: 0.65rem;
}

.contacts .form small a {
    color: var(--color-1);
    text-decoration: underline;
}


.contacts .contacts-wrap {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

/* .contacts .contacts-wrap p {
    font-size: 1.3rem;
    font-weight: 300;
    line-height: 2rem;
    padding-right: 100px;
}

.contacts .contacts-wrap p span {
    color: var(--color-1);
} */

.contacts-list {
    display: flex;
    flex-direction: column;
    flex-wrap: wrap;
    /* gap: 40px; */
}

.contacts-list > * {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 10px;
    font-weight: 300;
    padding: 20px 0;
}

.contacts-list > * a {
    color: inherit;
}

.contacts-list > * a:hover {
    color: var(--color-1);
}

.contacts-list > * i {
    color: var(--color-1);
}

.contacts-list h3 {
    margin: 0;
    margin-top: 30px;
    font-weight: 400;
}







.footer {
    margin-top: 130px;
}

.footer-links {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 30px;
    margin-bottom: 15px;
}

.footer-links a {
    font-size: 0.75rem;
    font-weight: 700;
    line-height: 19.6px;
    color: inherit;
}

.footer-links a:hover {
    color: var(--color-1);
}

.copyright {
    font-size: 0.75rem;
}

.foot-menu p {
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    margin-bottom: 15px;
}

.footer .service-list {
    row-gap: 10px;
}

.footer .service-list > * {
    /* width: 50%; */
    font-size: 0.75rem;
}

.footer .service-list > * a {
    color: #6C7074;
}

.footer .service-list > * a:hover {
    color: var(--color-1);
}


.foot-menu-wrap .menu {
    flex-direction: column;
    font-size: 0.75rem;
    row-gap: 10px;
}

.foot-menu-wrap .menu a {
    padding: 0;
    color: #6C7074;
}

.foot-menu-wrap .menu a:hover {
    color: var(--color-1);
}






/* About */

.page-head {
    position: relative;
    z-index: 1;
    height: 418px;
    display: flex;
    align-items: flex-end;
    color: #fff;
    overflow: hidden;
}

.page-head:before {
    content: "";
    background: linear-gradient(-45deg, transparent, rgb(0 0 0 / 70%));
    position: absolute;
    z-index: -1;
    top: 0;
    height: 100%;
    width: 100%;
}

.page-head:after {
    content: "";
    background: linear-gradient(90deg, transparent, rgb(0 0 0 / 70%));
    position: absolute;
    z-index: -2;
    top: 0;
    height: 100%;
    width: 100%;
}

.page-head img {
    width: 100%;
    position: absolute;
    z-index: -2;
    object-fit: cover;
    height: 100%;
}

.page-head h1 {
    font-family: "Montserrat", serif;
    font-size: 3.5rem;
    font-weight: 200;
    text-transform: uppercase;
    margin-bottom: 50px;
}

.page-head #path {
    margin-bottom: 20px;
}

.page-head #path a, .page-head #path svg {
    color: #fff;
    fill: #fff;
}



.description .text {
    font-weight: 300;
}

.description .text ul {
    display: flex;
    gap: 50px;
}

.description .text ul li {
    width: auto;
    font-weight: 500;
}


.download-btn {
    display: flex;
    justify-content: center;
    gap: 20px;
    align-items: center;
    border: 1px solid #EDEDED;
    height: 100px;
    font-size: 1.1rem;
    font-weight: 600;
    border-radius: 6px;
    color: inherit;
    margin-bottom: 30px;
}

.download-btn svg  {
    width: 28px;
    height: 32px;
}


.description .numbers {
    margin-top: 75px;
}

.number {
    font-size: 0.9rem;
}

.number {
    font-size: 1.3rem;
}

.number span {
    font-size: 2.6rem;
    color: var(--color-1);
}






.mission-wrap {
    background: #f5f5f5;
    text-align: center;
    padding: 60px;
    font-size: 1.5rem;
    font-family: "Montserrat", serif;
    font-weight: 300;
    border-radius: 10px;
}

.mission-wrap h2 {
    text-transform: uppercase;
    font-size: 2rem;
    font-weight: 500;
}

.mission-wrap p {
    line-height: 150%;
}

.mission-wrap p span {
    color: var(--color-1);
}






.res_block .image {
    position: relative;
}

.res_block .image img {
    border-radius: 16px;
}

.res_block .image .icon {
    position: absolute;
    top: -15px;
    right: -15px;
}

.res_block .text {
    padding-left: 50px;
    font-size: 1rem;
}

.res_block .text h2 {
    font-size: 2.6rem;
    font-weight: 200;
    line-height: 130%;
}

.res_block .text ul {
    font-weight: 500;
    margin-bottom: calc(var(--bs-gutter-x) / 2);
}

.res_block .text ul li {
    margin-bottom: calc(var(--bs-gutter-x) / 4);
    line-height: 1.4;
}

.res_block .text p {
    font-size: 1.3rem;
    font-weight: 200;
    line-height: 1.4;
}






.marker-lines .text {
    border-left: 3px solid var(--color-1);
    padding: 30px;
    height: 100%;
}

.marker-lines .text h3 {
    font-size: 1.3rem;
    font-weight: 500;
    margin-bottom: 0;
}

.marker-lines .text h3:has(+ *) {
    margin-bottom: 15px;
}

.marker-lines .text p {
    line-height: 140%;
    font-weight: 200;
}




#projects.projects-columns {
    flex-direction: row;
}

#projects.projects-columns .row {
    flex-direction: column;
}

#projects.projects-columns .image-wrap {
    flex: 1 0 0%;
}

#projects.projects-columns .image img {
    position: relative;
    aspect-ratio: 3 / 2;
}

#projects .text-wrap {
    flex: 2 0 0%;
}

#projects.projects-columns .text {
    display: flex;
    flex-direction: column;
    /* height: 100%; */
    height: 370px;
    padding: 30px;
}

#projects.projects-columns .address_customer {
    margin-top: auto;
}

#projects.projects-columns .parameters {
    gap: 10px;
    margin-top: 30px;
}




.geography .title-text {
    margin-bottom: 0;
}

.years-list {
    display: flex;
    flex-direction: column;
    gap: 30px;
    font-size: 0.85rem;
}

.years-list .year {
    color: var(--color-1);
    font-family: "Play", serif;
    font-weight: 700;
    font-size: 2rem;
}



/* .partners {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.partners img {
    display: block;
} */

.partners .owl-item > * {
    display: flex;
    align-items: center;
    background: #fff;
    width: 100%;
    justify-content: center;
    padding: 5px 15px;
    border-radius: 10px;
}

.partners .owl-item > * img {
    width: auto !important;
}

.owl-carousel.logos .owl-nav button.owl-next, 
.owl-carousel.logos .owl-nav button.owl-prev {
    background: var(--color-1);
}





/* Service */

.service {
    min-height: 100vh;
    position: relative;
    z-index: 1;
    display: flex;
    color: #fff;
    padding-top: 150px;
}

.service:before {
    content: "";
    background: linear-gradient(90deg, rgb(0 0 0 / 70%), transparent);
    position: absolute;
    z-index: -1;
    top: 0;
    height: 100%;
    width: 75%;
}

.service:after {
    content: "";
    background: linear-gradient(90deg, transparent, rgb(0 0 0 / 70%));
    position: absolute;
    z-index: -2;
    top: 0;
    height: 100%;
    width: 25%;
    right: 0;
}

.service > img, .service .slider-bg {
    position: fixed;
    z-index: -3;
    top: 0;
    width: 100%;
    height: 100%;
}

.slider-bg img {
    object-fit: cover;
    width: 100%;
    height: 100%;
}

.slider-bg .owl-stage-outer, .slider-bg .owl-stage {
    height: 100%;
}

.service .container {
    display: flex;
    flex-direction: column;
}

.service #path {
    margin-bottom: 75px;
}

.service #path a, .service #path svg, .service #path i {
    color: #C1C3C6;
    fill: #C1C3C6;
}

.service .row {
    height: 100%;
}

.title-wrap > div {
    position: sticky;
    top: 120px;
}

.service h1 {
    font-family: "Montserrat", serif;
    font-size: 3.5rem;
    line-height: 120%;
    font-weight: 200;
    max-width: 760px;
    text-transform: uppercase;
}

body.page-id-80 .service h1 {
    font-size: 2.5rem;
}

.service .text {
    padding: 40px;
    background: rgb(0 0 0 / 60%);
    border-radius: 10px;
    backdrop-filter: blur(15px);
    /*font-size: 1.1rem;*/ /* 1.2rem */
    font-weight: 100;
    height: 100%;
}

.service .text p, .service .text ul {
    line-height: 160%;
}

.service .text strong {
    font-weight: 300;
}

.service .text .area a {
    color: var(--color-1);
    font-weight: 400;
}

.service .text .area {
    max-height: 300px;
    overflow: hidden;
    transition: all 0.3s ease;
    -o-transition: all 0.3s;
    -webkit-transition: all 0.3s ease 0s;
}

.service .text .area.active {
    max-height: 100%;
}

.text_content_more {
    width: 100%;
    height: 50px;
    position: relative;
    pointer-events: none;
    transition: all 0.3s ease;
    -o-transition: all 0.3s;
    -webkit-transition: all 0.3s ease 0s;
    transform: translateY(-100%);
}

.text_content_more:after {
    content: "\eb60";
    font-family: 'icomoon';
    position: absolute;
    bottom: -30px;
    background: var(--color-1);
    color: #fff;
    width: 100px;
    line-height: 20px;
    text-align: center;
    border-radius: 2px;
    font-size: 0.8rem;
    cursor: pointer;
    left: 50%;
    transform: translateX(-50%);
    pointer-events: auto;
}

.text_content_more.active:after {
    content: "\eab4";
}

.realize {
    display: flex;
    align-items: center;
    gap: 15px;
    font-weight: 400;
    font-size: 1rem;
    margin-top: 50px;
}

.realize svg {
    fill: var(--color-1);
    width: 36px;
    min-width: 36px;
    height: 29px;
}



.services-nav {
    margin-top: auto;
    margin-bottom: 75px;
    color: #AFAFAF;
    display: flex;
    /* align-items: flex-end; */
    align-items: center;
    gap: 15px;
    font-size: 0.9rem;
    line-height: 100%;
}

.services-nav a {
    color: #AFAFAF;
}

.services-nav span {
    color: #fff;
    font-size: 2.2rem;
}

.services-nav i {
    font-size: 1.3rem;
}



.services-slider {
    padding: 0 50px;
    /* display: flex; */
    /* justify-content: space-between; */
    /* margin-top: auto; */
    margin-bottom: 110px;
    font-size: 0.85rem;
    position: relative;
    /* gap: 30px; */
}

.services-slider .owl-stage-outer {
    padding-bottom: 25px;
}

.services-slider:after {
    content: "";
    height: 2px;
    left: 50px;
    right: 50px;
    position: absolute;
    bottom: 5px;
    background: #333;
    z-index: -1;
}

.services-slider .owl-item > * {
    /* max-width: 224px; */
    position: relative;
    display: flex;
    align-items: center;
    color: #fff;
}

.services-slider .owl-item span {
    opacity: 0.7;
}

/* .services-slider > *:hover:after,  */
.services-slider .owl-item .current:after {
    content: "";
    height: 2px;
    left: 0;
    width: 100%;
    position: absolute;
    bottom: -20px;
    background: var(--color-1);
    z-index: 1;
}

/* .services-slider > *:hover span,  */
.services-slider .owl-item .current span {
    opacity: 1;
}





.service.template-white:before {
    background: linear-gradient(90deg, rgb(255 255 255 / 90%), transparent);
    width: 100%;
}

.service.template-white:after {
    background: linear-gradient(90deg, transparent, rgb(255 255 255 / 70%));
}

.service.template-white #path {
    color: #333;
}

.service.template-white #path a, .service.template-white #path svg, .service.template-white #path i {
    color: #6C7074;
    fill: #6C7074;
}

.service.template-white h1 {
    color: initial;
}

.service.template-white .text {
    color: initial;
    background: rgb(255 255 255 / 70%);
    backdrop-filter: blur(5px);
    font-weight: 200;
}

.services-gradient {
    height: 40%;
    position: absolute;
    z-index: -1;
    bottom: 0;
    background: linear-gradient(transparent, rgb(0 0 0 / 80%));
    width: 100%;
    left: 0;
}

body:has(.service) #header-contact .phone {
    color: inherit;
}




/* Услуги */

.category-body .services {
    display: flex;
    flex-direction: column;
    row-gap: 60px;
    margin-bottom: 75px;
}

.category-body .services .item > * {
    display: flex;
    color: inherit;
    background: #fff;
    border-radius: 10px;
}

.category-body .services .item > * .image-wrap {
    flex: 0 0 40%;
    position: relative;
}

.category-body .services.news .item > * .image-wrap {
    flex: 0 0 30%;
}

.category-body .services .item > * .image-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 10px;
    aspect-ratio: 3 / 2;
}

.category-body .services .item > * .image-wrap h3 {
    display: none;
    position: absolute;
    bottom: 0;
    background: linear-gradient(0, black, transparent);
    margin-bottom: 0;
    color: #fff;
    font-size: 0.8rem;
    font-weight: 400;
    padding: 15px;
    width: 100%;
}

.category-body .services .item > * .text-wrap {
    display: flex;
    align-items: center;
}

.category-body .services .item > * .text {
    padding: 50px 50px 50px 75px;
    font-size: 0.9rem;
}

.category-body .services .text h3 {
    font-family: "Montserrat", serif;
    font-size: 2rem;
    font-weight: 200;
    line-height: 135%;
}

.category-body .services .text p, .category-body .services .text ul {
    margin-bottom: calc(var(--bs-gutter-x) / 3);
}

.category-body .services .text ul li {
    margin-bottom: 0;
}

.category-body .services .text ul li::marker {color: inherit;}

.category-body .services .text .buttons {
    margin-top: 30px;
}


.services_more_mobile {
    display: none;
    padding-bottom: 75px;
    font-size: 0.9rem;
    font-weight: 300;
}

.services_more_mobile h3 {
    font-size: 1.2rem;
    font-weight: 300;
    text-align: center;
}

.services_more_mobile ul {
    padding: 0 20px;
}

.services_more_mobile ul li {
    margin-bottom: 5px;
}



.mobile-item {
    display: none;
}






.page-body .area {
    font-weight: 300;
    padding-right: 100px;
}

.page-body .area .marker-lines {
    margin-top: 50px;
    margin-bottom: 50px;
}

.contact_us {
    background: #f5f5f5;
    padding: 60px 40px;
    border-radius: 10px;
    margin-top: 50px;
}

.contact_us > p {
    font-size: 2rem;
    margin-bottom: 40px;
}

.contact_us > div {
    display: flex;
    gap: 20px 40px;
}

.contact_us > div p {
    margin: 0;
    font-size: 1.5rem;
}

.contact_us > div a {
    display: flex;
    align-items: center;
    gap: 10px;
    font-weight: 300;
}

.contact_us > div a i {
    color: var(--color-1);
}






.side-menu {
    top: 0;
    position: sticky;
}

.side-menu ul {
    flex-direction: column;
    background: #fff;
    padding: 30px;
    gap: 10px;
    font-weight: 500;
    border-radius: 10px;
}

.side-menu ul li a {
    padding: 15px 25px;
    border-radius: 3px;
}

.side-menu ul li a:hover {
    background: #fafafa;
}

.side-menu ul li.current_page_item a {
    background: var(--color-1);
    color: #fff;
}



/* Контакты */

.category-body .contacts-wrap {
    display: flex;
    /* justify-content: center; */
}

body.page-template-contacts .contacts h2 {
    display: none;
}

#YMapsID, #YMapsID2, #YMapsID3 {
    height: 400px;
    width: 100%;
    padding-right: 150px;
}

.all_contacts {
    display: flex;
    flex-direction: column;
    gap: 30px;
}





/* Высота */

@media (max-height: 1000px) {  
    .services-list > * {padding: 15px 40px;}
    .services-list > *.all-btn { margin-top: 75px;}
}

/* Ширина */

@media (max-width: 1400px) {  

    .main .text h1 {font-size: 2.5rem;}
    .main .text .area {font-size: 1.7rem;}
    .services-list {max-width: 380px; font-size: 0.9rem;}
    .services-list > * {padding: 15px 40px;}
    .services-list > *.all-btn { margin-top: 75px;}

    .title {font-size: 2.4rem;}
    .number {font-size: 1.1rem;}
    .number span {font-size: 2.2rem;}
    .service-icon-text > * {width: 33.33%;}
    .res_block .text {font-size: 0.9rem;}
    .res_block .text h2 {font-size: 2.4rem;}
    .res_block .text p {font-size: 1.2rem;}
    #projects.projects-columns > * {width: 50%;}
    #projects.projects-columns > *:last-child {display: none;}
    .contacts .form {margin-right: 0;}

    #projects .image-wrap {flex: 0 0 50%;}
    #projects .text h3 {font-size: 1.7rem;}

    .service h1 {font-size: 2.7rem;}
    body.page-id-80 .service h1 {font-size: 2.2rem;}
    .service .text .area {font-size: 1rem;}
    .realize {font-size: 0.9rem; margin-top: 40px;}

    .contact_us > p {font-size: 1.7rem;}
    .contact_us > p br {display: none;}

    #YMapsID, #YMapsID2, #YMapsID3 {padding-right: 0;}
}


@media (max-width: 1200px) {  

    .main .text h1 {font-size: 2.1rem;}
    .main .text .area {font-size: 1.5rem;}
    .services-list {max-width: 300px;}
    .services-list > * {padding: 15px 30px;}

    .title {font-size: 2.2rem;}
    .description .empty {display: none;}
    .description .sidebar {width: 33.33%;}
    .download-btn {font-size: 1rem;}
    .number {font-size: 1rem;}
    .number span {font-size: 1.8rem;}
    .features-image-text .item > * .text {font-size: 1.1rem;}
    .mission-wrap {font-size: 1.3rem;}
    .mission-wrap h2 {font-size: 1.8rem;}
    .res_block .text h2 {font-size: 2.2rem;}
    .geography .title-text {margin-bottom: 15px;}
    .years-list {gap: 20px;}
    .years-list .year {font-size: 1.7rem;}
    .contacts .contacts-wrap {width: 100% !important;}
    .contacts .form-wrap {width: 100%;}

    /* .category-head {padding: 100px 0 75px;} */
    .category-head h1 {font-size: 3rem;}
    #projects .text h3 {font-size: 1.5rem;}
    .parameters {font-size: 0.9rem;}

    .service:before {width: 100%; background: rgb(0 0 0 / 50%);}
    .service:after {display: none;}
    .service h1 {font-size: 2.3rem;}
    body.page-id-80 .service h1 {font-size: 1.8rem;}
    .service .title-wrap {width: 100%; /*margin-bottom: 100%;*/}
    .service .text-wrap {width: 100%; /*margin-top: 300px;*/}
    .services-nav {margin-top: 50px;}

    .contact_us > div {flex-direction: column;}

    #YMapsID, #YMapsID2, #YMapsID3 {height: 350px;}
}


@media (max-width: 992px) {  

    .main {padding-top: 90px;}
    .main .text h1 {margin-bottom: 20px;}
    .services-list {max-width: unset; margin-top: 50px;}

    .page-head {height: 318px;}
    .page-head h1 {font-size: 3rem;}
    .download-btn {font-size: 0.8rem; height: 80px;}
    .description .text ul {gap: 5px; flex-direction: column;}
    .description .numbers > * {width: 50%;}
    .service-icon-text > * {width: 50%;}
    .features-image-text > * {width: 100%;}
    .mission-wrap {font-size: 1.2rem; padding: 50px;}
    .mission-wrap h2 {font-size: 1.6rem;}
    .res_block > * {width: 100%;}
    .res_block .image img:first-child {width: 100%; display: block;}
    .res_block .text {padding-left: 0;}
    .marker-lines > * {width: 100%;}
    #projects.projects-columns > * {width: 100%;}
    .geography .row > * {width: 100%;}
    .years-list {flex-direction: row; flex-wrap: wrap;}
    .years-list > * {width: 45%;}
    .geography .row .col-9 {order: 9;}
    .contacts h2 {font-size: 2.4rem;}
    .footer {row-gap: calc(var(--bs-gutter-y)* 2);}
    .footer > * {width: 50%;}
    .list-service-wrap {order: 11; width: 100%;}

    #projects .image-wrap {flex: 0 0 100%;}
    #projects .image img {position: relative; filter: grayscale(0);}

    .category-head {padding: 30px 0 0;}
    .category-head h1 {font-size: 2.7rem;}
    .category-body {padding-top: 30px;}
    .category-body .services .item > * {flex-wrap: wrap;}
    .category-body .services .item > * .image-wrap {flex: 0 0 100%;}
    .category-body .services.news .item > * .image-wrap {flex: 0 0 100%;}
    .category-body .services .item > * .text {padding: 50px;}

    .service {padding-top: 90px;}
    .service #path {margin-bottom: 30px;}

    .page-body .text-wrap {width: 100%;}
    .page-body .area {padding-right: 0;}
    .contact_us > div {flex-direction: row;}
    .page-body .sidebar {width: 100%; text-align: center;}

    body.privacy-policy h1 {font-size: 2.5rem;}
}


@media (max-width: 768px) {  

    .main .text h1 {font-size: 2.2rem;}
    .services-list {gap: 5px;}
    .services-list > *.all-btn {margin-top: 50px;}

    .section {padding: 50px 0;}
    .title {font-size: 2rem;}
    .title-text {font-size: 1.2rem;}
    .page-head {height: 280px;}
    .description .row {row-gap: calc(var(--bs-gutter-y)* 2);}
    .description .row > * {width: 100%;}
    .page-head h1 {font-size: 2.7rem;}
    .download-btn {font-size: 1rem; height: 100px;}
    .download-btn br {display: none;}
    .side-menu ul {text-align: center;}
    .description .numbers {padding-left: 100px;}
    .service-icon-text {row-gap: 10px; margin-right: -5px; margin-left: -5px;}
    .service-icon-text > * {padding-right: 5px; padding-left: 5px;}
    .service-icon-text .item > * {flex-direction: column;}
    .service-icon-text .item > * > * {width: 100%; text-align: center;}


    .res_block .text h2 {font-size: 2rem;}
    .more-btn {margin-top: 50px;}
    .contacts h2 {font-size: 2.2rem;}
    #feedback-form .form-field {width: 100%;}

    /* .category-head {padding: 75px 0 50px;} */
    .category-head h1 {font-size: 2.2rem;}
    #projects .text {padding: 40px;}

    .service {padding-top: 0; flex-wrap: wrap; background: #333;}
    .service .row {position: relative;}
    .service:before {background: 0;}
    .service #path {display: none;}
    .service h1 {font-size: 2rem;}
    body.page-id-80 .service h1 {font-size: 1.6rem;}
    .service > img, .service .slider-bg {position: relative; height: unset; margin-bottom: 40px;}
    .service .slider-bg:before {
        content: "";
        background: linear-gradient(0, rgb(0 0 0 / 70%), transparent);
        position: absolute;
        z-index: 1;
        bottom: 0;
        height: 50%;
        width: 100%;
    }
    .service .title-wrap {transform: translateY(calc(-100% - 40px)); position: absolute;}
    .service .title-wrap .buttons {display: none;}
    .service-buttons-mobile {display: block; margin-left: auto;}

    .category-body .services .text h3 {font-size: 1.5rem; font-weight: 300;}
    .category-body .services .text p, .category-body .services .text ul {font-weight: 300;}

    .contact_us > div {flex-direction: column;}
    .contact_us {padding: 40px;}
    .contact_us > p {font-size: 1.5rem;}

    body.page-template-contacts .category-body .row > * {width: 100%;}
    .category-body .contacts-wrap {justify-content: flex-start;}
    #YMapsID, #YMapsID2, #YMapsID3 {height: 300px;}

    body.privacy-policy h1 {font-size: 1.9rem;}
}


@media (max-width: 576px) {  
    .main {padding-top: 50px; padding-bottom: 50px; align-items: flex-start;}
    .main .text h1 {font-size: 2rem;}
    .services-list {font-size: 0.8rem;}
    .services-list > * {padding-right: 0 !important;}
    .services-list > *.all-btn {font-size: 0.75rem;}

    .title {font-size: 1.7rem;}
    .title-text {font-size: 1.1rem;}
    .page-head {height: 220px;}
    .page-head h1 {font-size: 2.1rem;}
    .description .numbers {padding-left: 75px;}
    .title-link {flex-wrap: wrap;}
    .all-btn {font-size: 0.9rem;}
    .mission-wrap {font-size: 1.1rem; padding: 50px 30px;}
    .mission-wrap h2 {font-size: 1.5rem;}
    .res_block .text h2 {font-size: 1.7rem;}
    .res_block .text p {font-size: 1.1rem;}
    .years-list {font-size: 0.75rem;}
    .years-list .year {font-size: 1.5rem;}
    .contacts h2 {font-size: 2rem; margin-bottom: 30px;}
    .footer > * {width: 100%;}
    .list-service-wrap {order: 10;}
    .footer .service-list > * {width: 100%;}

    .category-head {padding: 50px 0 0;}
    .filter-list {gap: 10px; margin-top: 30px;}
    #projects {row-gap: 40px;}
    #projects .text h3 {font-size: 1.4rem;}
    .parameters > div > span span {display: none;}

    .category-head {padding: 30px 0 0;}
    .category-body .services {row-gap: 30px; margin: 0 -15px; flex-direction: row; flex-wrap: wrap;}
    .category-body .services > * {width: 50%; padding: 0 15px;}
    .category-body .services.news > * {width: 100%;}
    .category-body .services .item > * .image-wrap {aspect-ratio: 1 / 1; border-radius: 7px; overflow: hidden;}
    .category-body .services .item > * .image-wrap h3 {display: block;}
    .category-body .services.news .item > * .image-wrap h3 {display: none;}
    .category-body .services .item > * .image-wrap img {border-radius: 0;}
    .category-body .services .item > * .text-wrap {display: none;}
    .category-body .services.news .item > * .text-wrap {display: block;}
    /* .category-body .services .text h3 {font-size: 1.7rem;} */

    .category-body .services.news .text h3 {font-size: 1.3rem; font-weight: 400;}
    .category-body .services.news .text p, .category-body .services.news .text ul {font-weight: 300;}

    .mobile-item {display: block;}
    .desktop-item {display: none;}

    /* .service {padding-top: 75px;} */
    .service h1 {font-size: 1.7rem;}
    body.page-id-80 .service h1 {font-size: 1.4rem;}
    /* .service .text-wrap {margin-top: 450px;} */
    .services-nav {margin: 30px 0 50px;}
    .services-nav > *:not(.service-buttons-mobile) {display: none;}
    .service-buttons-mobile {margin: 0 auto;}
    .services-slider {display: none !important;}
    .services_more_mobile {display: block;}

    body.privacy-policy h1 {font-size: 1.6rem;}
}


@media (max-width: 480px) {  
    .main:before {background: rgb(0 0 0 / 60%);}
    .main:after {display: none;}
    .main .text h1 {font-size: 1.5rem; margin-bottom: 15px;}
    .main .text .area {font-size: 1.2rem;}
    .services-list {gap: 0; margin-top: 30px;}
    .services-list > * {padding: 7px 20px;}
    .services-list > *.all-btn {padding: 10px 20px; margin-top: 20px;}

    .section {padding: 30px 0;}
    .title {font-size: 1.2rem; font-weight: 300; margin-bottom: 30px;}
    .title:has(+.title-text) {margin-bottom: 15px;}
    .title-text {font-size: 1rem; margin-bottom: 30px;}
    .page-head {height: 160px;}
    .page-head h1 {font-size: 1.6rem; margin-bottom: 30px;}
    .download-btn {font-size: 0.9rem;}
    .description .row {row-gap: var(--bs-gutter-y);}
    .description .numbers {padding-left: 0; margin-top: 50px; font-size: 0.9rem;}
    .number span {font-size: 1.6rem;}
    .all-btn {font-size: 0.75rem;}
    .title-link {margin-bottom: 30px;}
    .service-icon-text {font-size: 0.8rem;}
    .service-icon-text .item > * {gap: 10px; padding: 15px;}
    .service-icon-text.icon-text > * .text {line-height: 1rem;}
    .features-image-text .item > * .text {font-size: 0.9rem; font-weight: 400;}
    .mission-wrap {font-size: 0.9rem;padding: 30px 15px;}
    .mission-wrap h2 {font-size: 1.2rem; margin-bottom: 15px;}
    .res_block .text {font-size: 0.8rem;}
    .res_block .text h2 {font-size: 1.1rem;}
    .res_block .text p {font-size: 0.9rem;}
    .res_block .text ul {font-weight: 400;}
    .more-btn {font-size: 0.75rem;}
    .marker-lines .text {border-left: 2px solid var(--color-1); padding: 15px;}
    .marker-lines .text h3 {font-size: 1.1rem;}
    .marker-lines .text p {font-size: 0.9rem;}

    .years-list > * {width: 100%;}
    .contacts-list > * {width: auto;}

    .category-head {padding: 15px 0;}
    .category-head h1 {font-size: 1.7rem;}
    .filter-list > *:not(.all-btn) {font-size: 0.8rem;width: 100%; text-align: center;}
    .filter-list .all-btn {font-size: 0.8rem; margin: 15px auto 0;}
    #projects {row-gap: 30px;}
    #projects .text {padding: 20px;}
    #projects .text .tag {margin-bottom: 15px;}
    #projects.projects-columns .text {padding: 20px; height: auto;}
    #projects .text h3 {font-size: 1rem; font-weight: 300; margin-bottom: 20px;}
    .parameters {font-size: 0.8rem; gap: 10px; margin-top: 20px;}
    #projects.projects-columns .parameters {margin-top: 20px;}
    .address_customer {font-size: 0.8rem;}
    .cd-image-label {font-size: 0.8rem;}
    .more-btn {margin-top: 30px;}
    .years-list .year {font-size: 1.3rem;}
    .contacts h2 {font-size: 1.5rem; margin-bottom: 15px;}
    .contacts-list > * {padding: 12px 0;}
    .contacts .form {padding: 30px;}
    .contacts .form h3 {font-size: 1.1rem;}
    .footer {margin-top: 75px;}

    .category-body {padding-top: 0;}
    .category-filter {margin-bottom: 30px;}
    .filter-list {margin-top: 0;}
    .category-body .services {row-gap: 14px; margin: 0 -7px;}
    .category-body .services > * {padding: 0 7px;}
    .category-body .services .item > * .image-wrap h3 {font-size: 0.7rem;}
    /* .category-body .services .item > * .text {padding: 40px;} */
    /* .category-body .services .text h3 {font-size: 1.4rem;} */

    .category-body .services.news .item > * .text {padding: 30px;}

    .service h1 {font-size: 1.2rem; margin-bottom: 15px; font-weight: 300;}
    body.page-id-80 .service h1 {font-size: 1rem;}
    .service .title-wrap {transform: translateY(calc(-100% - 20px));}
    .service > img, .service .slider-bg {margin-bottom: 20px;}
    .service .text {padding: 20px;}
    .service .text .area {font-size: 0.9rem;}
    .service .text p, .service .text ul {line-height: 135%;}
    .realize {font-size: 0.8rem; margin-top: 20px; font-weight: 300;}
    .services_more_mobile h3 {font-size: 1rem;}
    .services_more_mobile {font-size: 0.8rem;}

    .contact_us {margin-top: 30px; padding: 20px;}
    .contact_us > p {font-size: 1rem; margin-bottom: 20px;}
    .side-menu ul {font-size: 0.9rem;}
    .side-menu ul li a {padding: 10px 20px;}

    body.privacy-policy h1 {font-size: 1.3rem;}
}


@media (max-width: 380px) {  
    .main {padding-bottom: 30px;}
    .main .text h1 {font-size: 1.1rem;}
    .services-list {margin-top: 15px; font-size: 0.7rem;}

    .download-btn {font-size: 0.85rem; height: 80px; padding: 0 20px;}
    .service-icon-text .item > * {flex-wrap: wrap;}
    .service-icon-text .item > * > * {width: 100%; text-align: center;}
    .service-icon-text .item > * .image {margin: 0 auto;}
    .mission-wrap {font-size: 1rem; padding: 40px 30px;}
    .mission-wrap h2 {font-size: 1.3rem;}
    .responsibility .container {padding: 0;}
    .res_block {margin: 0;}
    .res_block .image-wrap {padding: 0;}
    .res_block .image img {border-radius: 0;}
    .res_block .image .icon {width: 50px; top: 15px; right: 15px;}
    .res_block .text-wrap {padding-right: var(--bs-gutter-x); padding-left: var(--bs-gutter-x);}
    .mission .container {padding: 0;}
    .mission-wrap {border-radius: 0; padding-right: var(--bs-gutter-x, 1.5rem); padding-left: var(--bs-gutter-x, 1.5rem);}
    .marker-lines .text h3 {font-size: 1rem;}
    /* .contacts h2 {font-size: 1.7rem;} */
    .contacts-list {font-size: 0.9rem;}
    .contacts .form {background: none; padding: 30px 0 0;}
    .contacts h2 {font-size: 1.3rem;}
    .contacts .form h3 {font-size: 1rem;}


    /* .category-body .container {padding: 0;} */
    /* #projects .row {border-radius: 0;} */
    /* #projects .image img {border-radius: 0;} */
    /* #projects .text {padding-right: var(--bs-gutter-x, 1.5rem); padding-left: var(--bs-gutter-x, 1.5rem);} */
    .category-body:has(.services) {padding-top: 0;}

    .category-head h1 {font-size: 1.5rem;}

    /* .category-head {padding: 50px 0 25px;} */
    .category-body .services {overflow: hidden;}
    .category-body .services .item > * .text {padding: 30px; padding-right: var(--bs-gutter-x); padding-left: var(--bs-gutter-x);}
    .category-body .services .text h3 {font-size: 1.2rem; font-weight: 300;}
    .category-body .services .item > * .image-wrap img {border-radius: 0;}

    .category-body .services.news .text h3 {font-size: 1.1rem;}
    .category-body .services.news .text p, .category-body .services.news .text ul {font-size: 0.8rem;}
    .category-body .services.news .text .date {font-size: 0.7rem;}

    .service h1 {font-size: 0.9rem; font-weight: 400;}
    body.page-id-80 .service h1 {font-size: 0.8rem;}
    .service .container {padding: 0;}
    .service .row {margin: 0;}
    .service .title-wrap {padding-right: var(--bs-gutter-x); padding-left: var(--bs-gutter-x);}
    .service .text-wrap {padding: 0;}
    .service .text {padding-right: var(--bs-gutter-x); padding-left: var(--bs-gutter-x); border-radius: 0;}
    .service .text .area {font-size: 0.85rem;}
    .realize {font-size: 0.8rem; margin-top: 30px;}
    .services-nav {padding-right: var(--bs-gutter-x); padding-left: var(--bs-gutter-x);}
    .services-slider {padding: 0 30px;}
    .service .title-wrap {transform: translateY(-100%);}
    .service > img, .service .slider-bg {margin-bottom: 0;}
    .services_more_mobile {font-size: 0.75rem;}
    .services_more_mobile ul {padding: 0 20px 0 40px;}

    /* .contact_us {padding: 30px 15px;} */
    /* .contact_us > p {margin-bottom: 30px;} */
    .contact_us > p {font-size: 0.9rem; line-height: 1.4;}
    .contact_us > div p {line-height: 100%;}

    body.privacy-policy h1 {font-size: 1.1rem;}
}


@media (max-width: 360px) {  

    .service-icon-text > * {width: 100%;}

    .category-body .services > * {width: 100%;}
    .category-body .services .item > * .image-wrap h3 {font-size: 0.9rem;}
}


@media (max-width: 330px) {  
    .main .text h1 {font-size: 1.3rem; margin-bottom: 10px;}
    .main .text .area {font-size: 0.9rem;}
    .main .text .area p {line-height: 1.25;}
}


@media (max-width: 300px) {  
    .main .text h1 {font-size: 1.2rem;}
}


@media (max-width: 280px) {  
    .main {padding-top: 30px;}
    .main .text h1 {font-size: 1rem;}
    .services-list {font-size: 0.7rem;}

    .title {font-size: 1.1rem;}
    .page-head h1 {font-size: 1.2rem;}
    .all-btn {font-size: 0.75rem;}
    .features-image-text .item > * .text {font-size: 0.8rem;}
    .res_block .text h2 {font-size: 0.9rem;}
    .marker-lines .text {font-size: 0.9rem;}
    .marker-lines .text h3 {font-size: 1rem;}
    .contacts-list > * {font-size: 0.9rem;}
    .contacts .form h3 {font-size: 1rem;}

    .category-head h1 {font-size: 1.4rem;}
    #projects .text h3 {font-size: 1rem; overflow-wrap: break-word;}

    .category-body .services .text h3 {font-size: 1rem; overflow-wrap: break-word;}
    .category-body .services .text p, .category-body .services .text ul {overflow-wrap: break-word;}

    .service h1 {overflow-wrap: break-word;}
    .realize svg {display: none;}
    .services-slider {display: none !important;}

    .contact_us > div {font-size: 0.75rem;}
    .contact_us > p {font-size: 0.9rem;}
    .contact_us > div a i {display: none;}
    .side-menu ul {padding: 15px; font-size: 0.9rem;}
}