@import url('https://fonts.googleapis.com/css2?family=Geologica:wght@100..900&family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap');
@import "normalize.css";
@import "grid.css";

:root {
    --black: #121517;
    --white: #fff;
    --gray: #626262;
    --gray-light: #AFAFAF;
    --white-bg: #FAFAFA;
    --pirple-dark: #003858;
    --pirple: #1b93d8;
    --pirple-50-dark: #0068a5;
    --fz-h1: 58px;
    --fz-p: 16px;
    --ff-head: "Geologica", sans-serif;
    --ff-p: "Montserrat", sans-serif;

    --fz-14: 14px;
    --fz-18: 18px;
    --fz-16: 16px;
    --fz-38: 38px;
    --fz-45: 45px;
    --fz-20: 20px;
}

.text-uppercase {
    text-transform: uppercase;
}

a {
    text-decoration: none;
    transition: .5s ease;
}

.link {
    color: var(--pirple-dark);
    text-decoration: underline;
}

/* Просто добавьте это в ваш CSS */
html {
    scroll-behavior: smooth;
}

/* Для браузеров, которые поддерживают */
@media (prefers-reduced-motion: no-preference) {
    html {
        scroll-behavior: smooth;
    }
}

body {
    scroll-behavior: smooth;
  font-family: var(--ff-p);
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal; 
  overflow-x: hidden;
  width: 100%;
  background-color: var(--white-bg);
  background-image: url('/wp-content/themes/ars/assets/img/lines_bg_white.png');
  background-repeat: repeat-y;
  background-position: center;
  background-size: auto;
}

main {
    overflow: hidden;
    max-width: 100%;
}


body.overflowed {
    overflow-y: hidden!important;
}

h1.plashk {
    position: relative;
    display: inline-block;
}

h1.plashk:before {
    content: '';
    display: block;
    width: 202px;
    height: 40px;
    background: url('/wp-content/themes/ars/assets/img/plashk.png') no-repeat center center / 100% 100%;
    position: absolute;
    top: 12px;
    right: -250px;
}

h1,h2,h3,h4,h5,h6 {
font-family: var(--ff-head);
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  font-variation-settings:
    "slnt" 0,
    "CRSV" 0,
    "SHRP" 0;
}

h2 {
    font-size: var(--fz-45);
    color: var(--pirple-dark);
    font-weight: 500;
}

h3 {
    color: var(--black);
    font-size: 30px;
}

.container {
    max-width: 1725px;
    padding: 0px 24px;
    margin: 0 auto;
}

.container-1270 {
    max-width: 1270px;
    padding: 0px 24px;
    margin: 0 auto;
}

.black {
    color: var(--black);
}

.gray-light {
    color: var(--gray-light);
}

.text-50-pirple {
    color: #0068a5;
}

.mt-0 {
    margin-top: 0;
}

.mt-25 {
    margin-top: 25px;
}

.mb-30 { margin-bottom: 30px; }

.mb-40 {
    margin-bottom: 40px;
}

.mb-60 {
    margin-bottom: 60px;
}

.py-20 {
    padding-top: 20px;
    padding-bottom: 20px;
}

.pt-40 {
    padding-top: 40px;
}

.py-40 {
    padding-top: 40px;
    padding-bottom: 40px;
}

.hr {
    margin: 25px 0px;
    background: #f0f0f0;
    width: 100%;
    height: 1px;
}

.fz-20 {
    font-size: var(--fz-20);
}

.gap-35 {
    gap: 35px;
}

.socials {
    display: flex; 
    flex-wrap: wrap;
    gap: 10px;
}

.socials a {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 40px;
    height: 40px;
    border-radius: 32px;
    background: #fff;
}

/* TAGS - START*/
.tags {
    display: flex;
    flex-wrap: wrap;
    max-width: 300px;
    gap: 10px;
}

.tags--absolute {
    position: absolute;
    top: 19px;
    left: 39px;
    z-index: 2;
}

.tag {
    font-weight: bold;
    font-size: 12px;
    padding: 6px 18px;
    line-height: 1;
    color: var(--black);
    border-radius: 16px;
    background-color: #fff;
}

.tag--yellow {
    background-color: #F4E25D;
}

.tag--pirple {
    background-color: var(--pirple);
    color: var(--white);
}

.tag--green {
    background-color: #50FF47;
}

/* TAGS - END */

.page-404 h1:not(.thanks-title) {
    font-size: 258px;
    margin: 0;
    line-height: 1;
    color: var(--pirple-dark);
}

.page-404 h1.thanks-title {
    font-size: 98px;
    margin: 0;
    line-height: 1;
    color: var(--pirple-dark);
}

.page-404 p {
    margin-bottom: 110px;
}

/* FAQ - START */
.faq {
    transition: .5s ease;
    padding: 24px;
    background: var(--white);
    border: 1px solid #e4e4e4;
    border-radius: 16px;
    margin-bottom: 24px;
}

.faq:hover {
    background: var(--pirple);
    color: var(--white);
}

.faq .faq__title {
    width: 100%;
    font-size: 18px;
    display: flex;
    font-weight: 500;
    cursor: pointer;
    justify-content: space-between;
    align-items: center;
}

.faq.faq--visible .faq__content {
    opacity: 1;
    margin-top: 20px;
    height: auto;
    transform: scaleY(1);
}

.faq .faq__content {
    opacity: 0;
    font-size: 14px;
    transition: .5s ease;
    height: 0;
    transform: scaleY(0);
}
/* FAQ - END */

.plashka {
    min-width: 200px;
    height: 92px;
    background: url('/wp-content/themes/ars/assets/img/plashk.png') no-repeat center center / 100% 100%;
    position: absolute;
    z-index: -1;
}

.heading-plashk {
    margin-bottom: 60px;
    color: var(--white);
    display: inline-block;
}

.reputation_block {
    background-color: #F0F0F0;
    padding: 35px;
    border-radius: 16px;
    position: relative;
    height: 100%;
}

.reputation_block:before {
    content: attr(data-count);
    position: absolute;
    font-size: 178px;
    line-height: .72;
    display: block;
    color: rgba(142,142,142, .15);
    font-weight: 600;
    bottom: 0;
    z-index: 0;
}

.reputation_block h3 {
    margin-top: 0;
    text-transform: normalize;
    font-size: 24px;
    z-index: 1;
}

.reputation_block p {
    margin-bottom: 0;
    z-index: 1;
    position: relative;
    color: rgba(16,16,16,.5);
    line-height: 150%;
}



/* BUTTONS & INPUTS */
.btn-link {
    display: inline-flex;
    align-items: center;
    font-size: var(--fz-18);
    color: var(--pirple-dark);
}


.btn-link:hover svg {
    transform: translate(5px, -5px)
}

.btn-link svg {
    transition: .5s ease;
    margin-left: 18px;
}

.btn {
    padding: 20px 67px;
    background: var(--pirple);
    color: var(--white);
    border: none;
    border-radius: 18px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    text-align: center;
    transition: .5s ease;
    font-family: var(--ff-p);
    font-weight: 600;
    font-size: 16px;
}

.btn--sm {
    padding: 10px 20px;
    font-size: 12px;
}

.btn--gray {
    background-color: transparent;
    border: 2px solid var(--gray-light);
    color: var(--gray-light);
}

.btn[type="submit"] {
    margin-bottom: 25px;
}

.btn:hover {
    box-shadow: 0px 0px 5px var(--pirple);
    background: var(--pirple-dark);
}

.input {
    margin-bottom: 25px;
    display: block;
    position: relative;
}

.input img {
    position: absolute;
    left: 22px;
    top: 50%;
    transform: translateY(-50%);
}

.input input {
    width: 100%;
    border-radius: 8px;
    font-size: 16px;
    height: 60px;
    border: none;
    outline: none;
    padding-left: 55px;
    color: var(--pirple-dark);
}

/* POST ITEM */
.post-item {
    height: 380px;
    padding: 24px;
    border-radius: 8px;
    background-color: var(--gray-light);
    background-repeat: no-repeat;
    background-size: cover;
    overflow: hidden;
    position: relative;
    display: flex!important;
    flex-direction: column;
    margin-bottom: 40px;
    justify-content: space-between;
}

.post-item__meta,
.post-item__heading {
    position: relative;
    z-index: 2;
}

.post-item:hover:before {
    top: -150px;
}

.post-item:hover .post-item__meta {
    opacity: 1;
}
.post-item:hover .post-item__heading h3,.post-item:hover .post-item__heading p {
    bottom: 0;
}

.post-item__heading h3 {
    margin: 0;
    transition: .5s ease;
    position: relative;
    font-size: 20px;
    color: var(--white);
}

.post-item__heading p {
    position: relative;
    transition: .5s ease;
    color: var(--white);
    font-size: 14px;
    margin: 20px 0px 0px 0px;
}

.post-item__meta {
    display: flex;
    transition: .5s ease;
    justify-content: space-between;
    align-items: center;
    padding-bottom: 15px;
    border-bottom: 1px solid #E4E4E4;
}

.post-item__meta,
.post-item a {
    font-size: 16px;
    color: var(--white);
}

.post-item:before {
    content: '';
    transition: .5s ease;
    width: 100%;
    background: linear-gradient(0, rgba(0,0,0) 30%,transparent);
    height: 150%;
    top: 0;
    left: 0;
    position: absolute;
    display: block;
    z-index: 0;
}

.map {
    border-radius: 16px;
}

.contact {
    width: 100%;
    padding: 32px;
    border-radius: 16px;
    background: var(--white);
    margin-bottom: 25px;
    min-height: 150px;
    text-align: center;
    line-height: 2;
}

.contact .contact__title {
    font-size: 26px;
    font-family: var(--ff-head);
    font-weight: 500;   
    margin-bottom: 10px;
}

/* OBJECT */
.catalog-item {
    display: flex;
}
.catalog-item .object__gallery {
    max-width: 600px;
}
.catalog-item .object__img img {
    width: auto!important;
}
.catalog-item .slick-track, .catalog-item .slick-list,
.catalog-item .object__img img {
    height: 100%;
}
.object {
    position: relative;
    width: 100%;
    background: var(--white);
    border-radius: 16px;
    overflow: hidden;
}

.object--home {
    min-height: 810px;
    margin-bottom: 40px;
}


.object-page h2 {
    font-size: 22px;
    text-transform: uppercase;
    font-weight: 700;
    margin: 30px 0px;
}

.object-page .object-page__params {
    font-size: 12px;
    display: flex;
    align-items: center;
    color: var(--gray-light);
    gap: 9px;
}

.object:not(.object-page):not(.object--home) {
    min-height: 534px;
    margin-bottom: 40px;
}

.objects-slider > .slick-list {
    margin: 0px -20px;
}
.objects-slider > .slick-list article.slick-slide {
    margin: 0px 20px;
}

.objects-slider > .slick-arrow {
    position: absolute;
    bottom: -50px;
    border: 0;
    cursor: pointer;
    transition: .5s ease;
    border-radius: 16px;
    font-size: 14px;
    padding: 6px 20px;
}

.objects-slider > .slick-prev {
    left: 40%;
    transform: translateX(-40%);
}

.object__gallery {
    position: relative;
}

.object__gallery .slick-dots li {
    list-style: none;
}

.object__gallery .slick-dots {
    position: absolute;
    display: flex;
    margin: 0;
    padding: 0;
    gap: 9px;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
}

.object__gallery .slick-dots li button {
    color: transparent;
    padding: 0;
    font-size: 0;
    width: 40px;
    transition: .5s ease;
    height: 2px;
    background-color: var(--gray-light);
    border-radius: 16px;
    border: 0;
}

.object__gallery .slick-dots li.slick-active button {
    background-color: var(--pirple-dark);
}

.object__gallery .slick-arrow {
    position: absolute;
    top: 20px;
    height: 55px;
    background: rgba(255,255,255,.15);
    border: 1px solid var(--white);
    border-radius: 12px;
    cursor: pointer;
    width: 55px;
    transition: .5s ease;
    display: flex;
    justify-content: center;
    z-index: 1;
    align-items: center;
}

.object__gallery .slick-arrow svg path {
    transition: .5s ease;
}

.object__gallery .slick-arrow:hover {
    background: rgba(250,250,250,.5);
}

.object__gallery .slick-arrow:hover svg path {
    fill: var(--pirple-50-dark);
}

.object__gallery .slick-next {
    right: 20px;
}

.object__gallery .slick-prev {
    right: 90px;
}

.objects-slider > .slick-next {
    right: 40%;
    transform: translateX(40%);
}

.object .object__img  {
    max-height: 300px;
    background: linear-gradient(45deg, rgba(0, 0, 0, .03), rgba(0, 0, 0, .07));
    overflow: hidden;
}
.object .object__img img {
    height: 100%;
    margin: 0 auto;
    box-shadow: 0px 0px 35px rgba(0, 0, 0, .3);
}

.object .object__content {
    padding: 40px;
}

.object .object__content h3 a,
.object .object__content h2 a {
    font-weight: bold;
    color: var(--pirple-dark);
}

.object .object__content h3 {
    margin: 0 0 23px 0;
    text-transform: uppercase;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.25px;
}

.object .object__content p {
    margin: 0;
    font-size: 12px;
}

.object__content__jobs > div:first-child {
    display: flex;
    align-items: center;
}

.object .object__content .object__content__jobs > div:nth-child(1) {
    text-transform: uppercase;
}

.object .object__content .object__content__jobs {
    font-size: 11px;
}

.object .object__content .object__content__jobs:not(:last-child) {
    margin-bottom: 15px;
}

/* HEADER */
.burger {
    position: fixed;
    top: 0;
    width: 100%;
    height: 100vh;
    z-index: 99999;
    left: -120vw;
    background: var(--white-bg);
    padding: 7px 24px;
    overflow-y: auto;
    overflow-x: hidden;
    transition: 1s ease;
}

.burger.active {
    left: 0;
}

.burger .burger__top {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.burger .burger__bottom nav ul {
    padding-left: 0;
}

.burger .burger__bottom nav li ul {
    padding-left: 24px;
    transition: .5s ease;
}

.burger .burger__bottom nav li ul a {
    padding-left: 24px;
    transition: .5s ease;
    font-size: 14px;
}

.burger .burger__bottom nav ul li {
    list-style: none;
}

.burger .burger__bottom nav ul li > a {
    display: flex;
    width: 100%;
    justify-content: space-between;
    align-items: center;
    position: relative;
    padding: 10px 0px;
}

.burger .burger__bottom .burger__contacts:not(.burger__contacts--last) {
    margin-bottom: 24px;
}

.burger .burger__bottom .burger__contacts.burger__contacts--last {
    margin-bottom: 48px;
}

.burger .burger__bottom .burger__contacts p {
    font-size: 14px;
}

.burger .burger__bottom .burger__contacts a {
    font-size: 18px;
    color: var(--black);
    text-decoration: underline;
}

.burger .burger__bottom nav ul li.has-dropdown > a:after {
    content: '';
    display: block;
    width: 16px;
    height: 16px;
    transition: .5s ease;
    background: url('/wp-content/themes/ars/assets/img/krest.svg') no-repeat center center / 100% 100%;
}

.burger .burger__bottom nav ul li.has-dropdown.active > a:after {
    transform: rotate(45deg);
}

.burger .burger__bottom nav ul li.has-dropdown:not(.active) > ul {
    height: 0;
    opacity: 0;
    margin: 0;
}

.burger .burger__bottom nav ul li ul {
    margin: 6px 0px;
}

.header-mobile {
    width: 100vw;
    position: fixed;
    top: 0;
    z-index: 111;
    /* max-height: 78px; */
    background-color: var(--white);
    padding: 7px 24px;   
    display: flex;
    justify-content: space-between;
    align-items: center;
    box-shadow: 0px 0px 12px rgba(0,0,0,.12);
    border-bottom-left-radius: 20px;
    border-bottom-right-radius: 20px;
}

.header-mobile__right {
    display: flex;
    gap: 20px;
    justify-content: space-between;
}

.header-mobile__phone {
    color: var(--black);
}

.header-mobile__burger {
    width: 48px;
    position: relative;
    height: 15px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
}

.header-mobile__burger:after,
.header-mobile__burger:before {
    content: '';
    width: 100%;
    height: 2px;
    border-radius: 16px;
    background-color: var(--black);
    display: block;
}

header {
    background: linear-gradient(0deg, transparent,rgba(250,250,250,1) 20%);
}

header.header .header__logo {
   width: 178px;
}

body.home-page header.header {
    padding-top: 20px;
}

body:not(.home-page) header.header {
    padding-top: 20px;
    padding-bottom: 20px;
}

.header__top {
    margin-bottom: 30px;
}

.header__bottom {
    border-bottom: 1px solid var(--pirple-dark);
    padding-bottom: 20px;
}

.header__phone {
    font-size: 25px;
    color: var(--black);
    font-weight: 600;
}

nav a {
    font-family: var(--ff-head);
    font-size: var(--fz-18);
    color: var(--black);
    align-items: center;
    display: inline-flex;
    letter-spacing: 1px;
    border-bottom: 1px solid transparent;
}

nav a:hover {
    border-bottom-color: var(--pirple-dark);
}

/* FORM */
.form {
    padding: 32px;
    background-color: #F2F2F2;
    border-radius: 16px;
}

.form--success {
    background-image: url('/wp-content/themes/ars/assets/img/trubi.png');
    background-repeat: no-repeat;
    background-size: cover;
    background-color: #fff;
}

.form h3 {
    margin-top: 0px;
    margin-bottom: 25px;
}

/* FOOTER */
footer {
    background: var(--white-bg);
    padding-top: 100px;
}

.footer__infolinks {
    gap: 20px;
}

.footer__links {
    margin: 60px 0px;
}

.footer__links__block {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 35px;
    text-align: center;
}

.footer__links__block a {
    color: var(--black);
    font-size: var(--fz-16);
}

/* ГЛАВНАЯ */
section.first {
    position: relative;
    overflow: hidden;
    padding-top: 50px;
    padding-bottom: 110px;
}

section.first:before {
    content: '';
    width: 100%;
    height: 100px;
    top: 0;
    position: absolute;
    left: 0;
    display: block;
    background: linear-gradient(0deg, transparent, var(--white-bg) 90%);
    z-index: -1;
}

section.first video {
    position: absolute;
    z-index: -2;
    top: 0;
    left: -1%;
    width: 102%;
    opacity: .2;
}

section.first h1 {
    font-size: 58px;
    color: var(--pirple-dark);
    font-weight: 600;
}

section.first .first__btn {
    margin: 50px 0px 100px 0px;
}

section.first .first__fact {
    color: var(--gray);
    padding-top: 30px;
    font-size: 18px;
    position: relative;
}

section.first .first__fact:before {
    content: '';
    position: absolute;
    top: 0;
    height: 3px;
    border-radius: 4px;
    background: #ECECEC;
    display: block;
    width: 100%;
}

section.first .first__img img {
    position: absolute;
    bottom: 0;
    border-radius: 12px;
}

section.first .first__fact h4 {
    font-size: 24px;
    font-weight: 500;
    color: var(--black);
    margin: 0px 0px 10px 0px;
}

section.second {
padding-top: 100px;

  background: url('/wp-content/themes/ars/assets/img/trubi.png') no-repeat center center / cover;
}

section.third {
    padding-top: 100px;
    background: url('/wp-content/themes/ars/assets/img/lines_bg.png') no-repeat center center;
    margin: 90px 0px;
    background-color: var(--pirple-dark);
}

section.third h2,
section.third p,
section.third h3,
section.third a {
    color: #fff;
}

section.third .third__quote {
    color: #BABABA;
    margin-bottom: 88px;
}

section.third .third__img {
    display: flex;
    align-items: flex-end;
}

section.third .reputation_block {
    background: var(--pirple);
}

.team-item {
    height: 100%;
    padding: 50px;
    background: var(--white);
    border: 1px solid #D9D2E3;
    border-radius: 16px;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    gap: 20px;
    font-size: 14px;
}

.team-item .team-item__fact {
    display: flex;
    align-items: center;
    gap: 30px;
}

.team-item .team-item__fact img {
    width: 90px;
    height: 62px;
    display: block;
}

/* COOKIE ALERT */
.cookie-alert {
    max-width: 840px;
    padding: 16px 24px;
    background: #fff;
    position: fixed;
    z-index: 11;
    font-size: 12px;
    box-shadow: 0px 0px 20px var(--gray);
    border-radius: 12px;
    bottom: 25px;
    right: 115px;
    gap: 20px;
    display: flex;
    border: 1px solid rgba(191, 191, 191, 1);
    align-items: flex-end;
}

.cookie-alert > p {
    margin: 0;
}

/* BANNER */
.banner {
    overflow: hidden;
    background: url('/wp-content/themes/ars/assets/img/banner_placeholder.png') no-repeat center center / cover;
    position: relative;
    display: flex;
    justify-content: flex-end;
    align-items: flex-end;
    padding: 24px;
    border-radius: 32px;
    width: 100%;
    height: 319px;
}

/* OTHER */
.breadcrumb {
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 14px;
}

.breadcrumb-item a,
.breadcrumb  a {
    color: var(--pirple-dark);
}

.breadcrumb-item:not(:last-child):after {
    content: '/';
    margin: 0px 10px;
}

.breadcrumb-item {
    list-style: none;
}

.other {
    padding-top: 50px;
}

.other__about h2 {
    margin-bottom: 60px;
}

.other__about h2:not(:first-child) {
    margin-top: 100px;
}

.other__about p {
    margin-bottom: 40px;
}

.other .other__breadcrumbs .breadcrumb {
    justify-content: flex-start;
    padding-left: 3px;
}

.other .other__content {
    font-size: 14px;
}

.other .other__content h2 {
    font-size: 24px;
    color: var(--black);
}

.other__title {
    font-size: 48px;
    color: var(--pirple-dark);
    font-weight: 500;
}

html.with-fancybox body.hide-scrollbar {
    margin-right: 0!important;
}

/* MAP */
.geo-map {
    overflow: scroll;
    cursor: grab;
    width: 100%;
    height: 700px;
    border-radius: 16px;
    border: 1px solid var(--gray-light);
}

.geo-map img.geo-map__map {
    user-select: none;
}

.geo-map__container {
    position: relative;
}

.geo-map__point {
    position: absolute;
    left: 0;
    top: 0;
    transition: .5s ease;
    width: 50px;
}

.geo-map__point:hover {
    cursor: pointer;
    transform: scale(1.1) translateY(-5px);
}

/* CONTACTS */
.contacts-page {
    background: url('/wp-content/themes/ars/assets/img/bg_contacts.png') no-repeat center center / cover;
    padding: 150px 24px;
}

.contacts-page__item {
    margin: 0 auto;
    padding: 40px;
    max-width: 657px;
    width: 100%;
    border-radius: 16px;
    border: 2px solid var(--pirple-50-dark);
    background: var(--white);
}

.contacts-page__item > img {
    margin-bottom: 24px;
    width: 100%;
}

.contacts-page__item > p:last-child {
    margin-bottom: 0px;
}

/* LOADER */
.loader {
    position: fixed;
    top: 0;
    overflow: hidden;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    gap: 60px;
    background: url('/wp-content/themes/ars/assets/img/bg_video_first.jpg') no-repeat center center / cover;
    z-index: 99999;
    opacity: 0;
    animation: loader-fade-in .55s ease-out forwards;
    transition: opacity .7s ease, visibility .7s ease;
}

@keyframes loader-fade-in {
    from { opacity: 0; }
    to   { opacity: 1; }
}

.loader::after {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse at center, rgba(0, 30, 50, .35) 0%, rgba(0, 30, 50, .85) 100%),
        linear-gradient(180deg, rgba(0, 30, 50, .3) 0%, rgba(0, 30, 50, .6) 100%);
    pointer-events: none;
    z-index: 0;
}

.loader video, .loader iframe {
    position: absolute;
    width: 102vw;
    left: -1vw;
    height: 100vh;
    object-fit: cover;
    z-index: -1;
}

.loader.loader--hidden {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

/* Дочерние элементы — отдельный fade-in после загрузчика */
.loader img.loader__logo,
.loader__title {
    animation: loader-content-in .8s ease-out both;
    animation-delay: .15s;
}
@keyframes loader-content-in {
    from { opacity: 0; transform: translateY(12px); }
    to   { opacity: 1; transform: translateY(0); }
}

.loader img.loader__logo,
.loader__title {
    position: relative;
    z-index: 1;
}

.loader img.loader__logo {
    width: 320px;
    max-width: 70vw;
    background: rgba(255, 255, 255, .92);
    padding: 24px 28px;
    border-radius: 24px;
    box-shadow: 0 20px 60px -20px rgba(0, 30, 50, .5);
}

.loader__title {
    font-size: clamp(40px, 8vw, 96px);
    text-transform: uppercase;
    font-family: var(--ff-head);
    color: var(--white);
    font-weight: 700;
    letter-spacing: 0.02em;
    text-shadow: 0 6px 24px rgba(0, 30, 50, .7), 0 2px 8px rgba(0, 30, 50, .5);
    display: inline-flex;
    align-items: center;
    gap: 18px;
}

.loader__title::after {
    content: '';
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: #F4E25D;
    box-shadow: 0 0 0 0 rgba(244, 226, 93, .7);
    animation: loader-dot 1.4s ease-in-out infinite;
}

@keyframes loader-dot {
    0%, 100% { transform: scale(.85); box-shadow: 0 0 0 0 rgba(244, 226, 93, .7); }
    50%      { transform: scale(1.15); box-shadow: 0 0 0 16px rgba(244, 226, 93, 0); }
}

/* MODAL */
.modal-placeholder {
    background: rgba(0,0,0,0.65);
    width: 100%;
    height: 100%;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 999999;
    transition: .5s ease;

    display: none;
    opacity:0;
}

.modal-showed {
    opacity: 1!important;
}

.modal {
    position: fixed;
    z-index: 9999999;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    max-width: 600px;
    transition: .5s ease;
    box-shadow: 0px 0px 30px rgba(0, 0, 0, .4);
    display: none;
    opacity:0;
}

.modal .form:not(.form--notpadding) {
    padding: 60px 32px;
}

.modal__close {
    z-index: 11;
    position: absolute;
    right: -49px;
    top: -1px;
    background: white;
    padding: 6px;
    border-radius: 6px;
    display: flex;
    justify-content: center;
    align-items: center;
}

/* WA WIDGET */
.wa-widget-popup {
    box-sizing: border-box;
    width: 320px;
    background: #fff;
    border-radius: 15px;
    box-shadow: 0px 5px 14px rgba(0,0,0,0.3);
    bottom: 80px;
    right: 85px;
    position: fixed;
    font-family: Arial, sans-serif;
    overflow: hidden;
    z-index: 9999;
    transition: .5s ease;

    opacity: 0;
}

.wa-hidden {
    display: none;
}

.wa-showed {
    opacity: 1;
}

.wa-widget-popup__avatar {
    width: 50px;
    height: 50px;
    border-radius: 50%;
    background-size: cover;
    display: block;
    margin-right: 10px;
    position: relative;
}

.wa-widget-popup__avatar:before {
    content: '';
    display: block;
    width: 10px;
    height: 10px;
    background: #25d366;
    border-radius: 50%;
    position: absolute;
    bottom: 3px;
    right: 3px;
}

.wa-widget-popup__contact__title {
    display: block;
    margin-bottom: 8px;
    color: #333;
}

.wa-widget-popup__header {
    background: #25d366;
    color: white;
    display: flex;
    padding: 12px;
    align-items: center;
    font-weight: bold;
}

.wa-widget-popup__contact__manager {
    line-height: 1!important;
}

.wa-widget-popup__header > svg {
    margin-right: 20px;
}

.wa-widget-popup__content {
    padding: 12px;
}

.wa-widget-popup__close {
    position: absolute;
    right: 20px;
}

.wa-widget-popup__contact {
    display: flex;
    box-sizing: border-box;
    text-decoration: none;
    color: #c2c2c2;
    position: relative;
    margin-bottom: 10px;
    border-radius: 15px;
    justify-content: flex-start;
    align-items: center;
    padding: 12px;
    border: 1px solid #e9e9e9;
    border-left-color: #25d366;
    width: 100%;
}

.wa-widget-popup__contact:last-child {
    margin-bottom: 0;
}

.wa-widget-popup__contact > svg {
    position: absolute;
    right: 15px;
}

.wa-widget {
    background: #25d366;
    display: flex;
    position: fixed;
    bottom: 25px;
    right: 25px;
    z-index: 9999;
    transition: .5s ease;
    padding: 10px;
    border-radius: 50%;
}
.wa-widget:before {
    content: '1';
    position: absolute;
    text-decoration: none;
    font-family: 'Arial', sans-serif;
    background-color: red;
    color: white;
    padding: 1px 5px;
    top: 0px;
    right: 0px;
    border-radius: 50%;
}

@media screen and (max-width: 560px) {
    .wa-widget-popup {
        width: 95%;
        left: 10px;
    }
}

/* ====================================================================
   MODERN PAGE TEMPLATES — Services / Catalog / Objects
   ==================================================================== */

/* HERO */
.page-hero {
    padding: 30px 0 60px;
    position: relative;
}
.page-hero__inner {
    background: linear-gradient(135deg, #003858 0%, #0068a5 60%, #1b93d8 100%);
    border-radius: 32px;
    padding: 70px 80px;
    color: var(--white);
    position: relative;
    overflow: hidden;
}
.page-hero__inner::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(255,255,255,.06) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.06) 1px, transparent 1px);
    background-size: 56px 56px;
    pointer-events: none;
    mask-image: radial-gradient(ellipse at top right, #000 0%, rgba(0,0,0,.4) 70%, transparent 100%);
    -webkit-mask-image: radial-gradient(ellipse at top right, #000 0%, rgba(0,0,0,.4) 70%, transparent 100%);
}
.page-hero__inner::after {
    content: '';
    position: absolute;
    top: -200px; right: -180px;
    width: 600px; height: 600px;
    background: radial-gradient(circle, rgba(27,147,216,.45) 0%, transparent 65%);
    pointer-events: none;
    filter: blur(40px);
}
.page-hero__inner > * { position: relative; z-index: 1; }

.page-hero__inner--centered { text-align: center; }
.page-hero__inner--centered .page-hero__content { margin: 0 auto; max-width: 920px; }

.page-hero__title {
    font-family: var(--ff-head);
    font-size: clamp(32px, 4.2vw, 64px);
    line-height: 1.05;
    font-weight: 600;
    color: var(--white);
    margin: 18px 0 24px;
    letter-spacing: -0.01em;
}
.page-hero__lead {
    font-size: clamp(16px, 1.1vw, 19px);
    color: rgba(255,255,255,.85);
    max-width: 720px;
    line-height: 1.55;
    margin: 0 0 36px;
}
.page-hero__inner--centered .page-hero__lead { margin-left: auto; margin-right: auto; }

.page-hero__cta {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    margin-bottom: 12px;
}
.page-hero__cta--center { justify-content: center; }

.page-hero__cta .btn {
    background: var(--white);
    color: var(--pirple-dark);
}
.page-hero__cta .btn:hover {
    background: var(--white);
    color: var(--pirple);
    box-shadow: 0 0 0 4px rgba(255,255,255,.2);
}
.page-hero__cta .btn--gray {
    background: transparent;
    border: 2px solid rgba(255,255,255,.4);
    color: var(--white);
}
.page-hero__cta .btn--gray:hover {
    background: rgba(255,255,255,.1);
    color: var(--white);
}

.page-hero__stats {
    margin-top: 56px;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    padding-top: 40px;
    border-top: 1px solid rgba(255,255,255,.18);
}
.page-hero__stats--objects {
    margin-top: 56px;
}
.page-hero__stat {
    display: flex;
    flex-direction: column;
    padding: 0 24px;
    border-left: 1px solid rgba(255,255,255,.12);
    position: relative;
}
.page-hero__stat:first-child { border-left: none; padding-left: 0; }
.page-hero__stat-num {
    font-family: var(--ff-head);
    font-size: clamp(32px, 3vw, 52px);
    font-weight: 700;
    line-height: 1;
    color: var(--white);
    margin-bottom: 10px;
    letter-spacing: -0.02em;
    font-variant-numeric: tabular-nums;
}
.page-hero__stat-label {
    font-size: 13px;
    color: rgba(255,255,255,.65);
    line-height: 1.45;
    text-transform: uppercase;
    letter-spacing: .04em;
    font-weight: 500;
}

.location-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 16px;
    background: rgba(255,255,255,.12);
    border: 1px solid rgba(255,255,255,.22);
    border-radius: 100px;
    font-size: 13px;
    font-weight: 500;
    color: var(--white);
    backdrop-filter: blur(4px);
}

/* FEATURED SERVICE (HDD highlight) */
.service-featured {
    padding: 40px 0 60px;
}
.service-featured__card {
    background: var(--white);
    border-radius: 32px;
    padding: 48px;
    position: relative;
    box-shadow: 0 30px 80px -40px rgba(0, 56, 88, .25);
    border: 1px solid rgba(27, 147, 216, .12);
}
.service-featured__card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 6px;
    background: linear-gradient(90deg, var(--pirple-dark), var(--pirple), var(--pirple-50-dark));
    border-radius: 32px 32px 0 0;
}
.service-featured__badge {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 9px 18px 9px 14px;
    background: #F4E25D;
    color: var(--pirple-dark);
    border-radius: 100px;
    font-size: 11.5px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
    margin-bottom: 28px;
    position: relative;
    z-index: 2;
}
.service-featured__badge::before {
    content: '';
    width: 8px; height: 8px;
    border-radius: 50%;
    background: var(--pirple-dark);
    box-shadow: 0 0 0 4px rgba(0, 56, 88, .15);
}
.service-featured__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 50px;
    align-items: start;
}
.service-featured__media {
    position: relative;
    border-radius: 20px;
    overflow: hidden;
    background: linear-gradient(45deg, rgba(0,56,88,.04), rgba(0,56,88,.08));
}
.service-featured__media .object__gallery {
    width: 100%;
    min-height: 420px;
}
.service-featured__media .object__img {
    width: 100%;
}
.service-featured__tags {
    position: absolute;
    top: 20px;
    left: 20px;
    z-index: 2;
}
.service-featured__body { position: relative; }
.service-featured__watermark {
    position: absolute;
    top: -42px;
    right: -10px;
    font-family: var(--ff-head);
    font-size: clamp(120px, 14vw, 220px);
    font-weight: 800;
    letter-spacing: -0.05em;
    line-height: .9;
    color: var(--pirple-dark);
    opacity: .04;
    pointer-events: none;
    user-select: none;
    z-index: 0;
}
.service-featured__title {
    font-size: clamp(28px, 2.6vw, 44px);
    color: var(--pirple-dark);
    font-weight: 600;
    margin: 0 0 20px;
    line-height: 1.1;
    letter-spacing: -0.02em;
    text-transform: none;
    position: relative;
    z-index: 1;
}
.service-featured__desc {
    color: var(--gray);
    font-size: 16px;
    line-height: 1.6;
    margin-bottom: 28px;
}
.service-featured__desc p { margin: 0 0 12px; }

.service-featured__benefits {
    list-style: none;
    padding: 0;
    margin: 0 0 28px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px 24px;
}
.service-featured__benefits li {
    position: relative;
    padding-left: 32px;
    font-size: 14.5px;
    line-height: 1.5;
    color: var(--black);
}
.service-featured__benefits li::before {
    content: '';
    position: absolute;
    left: 0; top: 2px;
    width: 20px; height: 20px;
    border-radius: 50%;
    background: var(--pirple) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'><path d='M5 12l5 5L20 7' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/></svg>") no-repeat center / 12px;
}

.service-featured__params {
    background: var(--white-bg);
    border-radius: 16px;
    padding: 20px 24px;
    margin-bottom: 28px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px 28px;
}
.service-featured__param {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 12px;
    border-bottom: 1px dashed rgba(0,56,88,.12);
    padding-bottom: 10px;
}
.service-featured__param-label {
    font-size: 13px;
    color: var(--gray);
    text-transform: uppercase;
    letter-spacing: .03em;
}
.service-featured__param-val {
    font-weight: 600;
    color: var(--pirple-dark);
    font-size: 15px;
    text-align: right;
}

.service-featured__cta {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
}
.service-featured__cta .btn { padding: 18px 40px; }
.service-featured__cta .btn--gray { color: var(--pirple-dark); border-color: var(--pirple-dark); }
.service-featured__cta .btn--gray:hover { background: var(--pirple-dark); color: var(--white); }

/* ADVANTAGES */
.services-advantages { padding: 40px 0; }
.services-advantages__title { text-align: center; margin: 0 0 48px; }
.services-advantages__grid > div { display: flex; }

.advantage-tile {
    background: var(--white);
    border-radius: 20px;
    padding: 32px 28px;
    border: 1px solid rgba(0,56,88,.06);
    transition: .35s ease;
    height: 100%;
    width: 100%;
    margin-bottom: 24px;
}
.advantage-tile:hover {
    transform: translateY(-4px);
    box-shadow: 0 16px 40px -20px rgba(0,56,88,.25);
    border-color: rgba(27,147,216,.25);
}
.advantage-tile__icon {
    width: 56px; height: 56px;
    border-radius: 16px;
    display: flex; align-items: center; justify-content: center;
    background: linear-gradient(135deg, var(--pirple), var(--pirple-50-dark));
    color: var(--white);
    margin-bottom: 20px;
}
.advantage-tile__icon svg { width: 28px; height: 28px; }
.advantage-tile h3 {
    font-size: 18px;
    color: var(--pirple-dark);
    margin: 0 0 10px;
    font-weight: 600;
    text-transform: none;
}
.advantage-tile p {
    margin: 0;
    color: var(--gray);
    font-size: 14px;
    line-height: 1.55;
}

/* STEPS */
.services-steps { padding: 40px 0 80px; }
.services-steps h2 { text-align: center; margin: 0 0 48px; }

.steps {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 20px;
    counter-reset: step;
}
.step {
    background: var(--white);
    border-radius: 20px;
    padding: 28px 24px;
    border: 1px solid rgba(0,56,88,.06);
    position: relative;
    transition: .35s ease;
}
.step::after {
    content: '';
    position: absolute;
    right: -14px; top: 50%;
    width: 8px; height: 8px;
    border-top: 2px solid var(--pirple);
    border-right: 2px solid var(--pirple);
    transform: translateY(-50%) rotate(45deg);
    opacity: .4;
}
.step:last-child::after { display: none; }
.step:hover {
    border-color: rgba(27,147,216,.3);
    transform: translateY(-3px);
    box-shadow: 0 16px 40px -20px rgba(0,56,88,.2);
}
.step__num {
    font-family: var(--ff-head);
    font-size: 38px;
    font-weight: 700;
    color: var(--pirple);
    line-height: 1;
    margin-bottom: 14px;
    opacity: .85;
}
.step h3 {
    font-size: 17px;
    color: var(--pirple-dark);
    margin: 0 0 8px;
    text-transform: none;
    font-weight: 600;
}
.step p {
    margin: 0;
    font-size: 13.5px;
    color: var(--gray);
    line-height: 1.5;
}

/* SERVICES LIST GRID */
.services-list { padding: 40px 0 60px; }
.services-list__subtitle {
    color: var(--gray);
    font-size: 16px;
    max-width: 720px;
    margin: 12px auto 0;
}

.service-card {
    background: var(--white);
    border-radius: 20px;
    overflow: hidden;
    height: 100%;
    margin-bottom: 30px;
    display: flex;
    flex-direction: column;
    border: 1px solid rgba(0,56,88,.06);
    transition: .35s ease;
}
.service-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 24px 50px -25px rgba(0,56,88,.25);
    border-color: rgba(27,147,216,.25);
}
.service-card__media {
    position: relative;
    overflow: hidden;
    background: linear-gradient(45deg, rgba(0,56,88,.04), rgba(0,56,88,.08));
    height: 300px;
    flex-shrink: 0;
}
.service-card__media .object__gallery {
    width: 100%;
    height: 100%;
    max-height: 300px;
}
.service-card__media .object__img {
    width: 100%;
    height: 300px;
    max-height: 300px;
}
.service-card__media a {
    transition: transform .6s ease !important;
}
.service-card:hover .service-card__media a { transform: scale(1.04); }

.service-card__body {
    padding: 26px 28px 28px;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
}
.service-card__title {
    font-size: 19px;
    color: var(--pirple-dark);
    margin: 0 0 12px;
    text-transform: none;
    font-weight: 600;
    line-height: 1.25;
    letter-spacing: 0;
}
.service-card__title a { color: inherit; }
.service-card__title a:hover { color: var(--pirple); }
.service-card__desc {
    color: var(--gray);
    font-size: 14px;
    line-height: 1.55;
    margin-bottom: 20px;
    flex-grow: 1;
    display: -webkit-box;
    -webkit-line-clamp: 4;
    -webkit-box-orient: vertical;
    overflow: hidden;
    word-break: break-word;
}
.service-card__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
}
.service-card__footer .btn--sm { padding: 12px 22px; }
.service-card__more {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--pirple-50-dark);
    font-weight: 600;
    font-size: 14px;
}
.service-card__more:hover { color: var(--pirple); gap: 10px; }

/* CATALOG features strip — sits on white page bg, BELOW the dark hero card */
.catalog-features {
    margin-top: 32px;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
}
.catalog-feature {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 22px 22px;
    background: var(--white);
    border: 1px solid rgba(0, 56, 88, .08);
    border-radius: 16px;
    color: var(--pirple-dark);
    text-align: left;
    transition: .35s ease;
    position: relative;
    overflow: hidden;
}
.catalog-feature::before {
    content: '';
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 3px;
    background: linear-gradient(180deg, var(--pirple), var(--pirple-50-dark));
    opacity: 0;
    transition: .35s ease;
}
.catalog-feature:hover {
    border-color: rgba(27, 147, 216, .35);
    transform: translateY(-2px);
    box-shadow: 0 16px 32px -16px rgba(0, 56, 88, .2);
}
.catalog-feature:hover::before { opacity: 1; }
.catalog-feature__icon {
    flex-shrink: 0;
    width: 46px; height: 46px;
    background: linear-gradient(135deg, var(--pirple-dark), var(--pirple-50-dark));
    border-radius: 12px;
    display: flex; align-items: center; justify-content: center;
    color: var(--white);
}
.catalog-feature__icon svg { width: 22px; height: 22px; }
.catalog-feature b {
    display: block;
    font-size: 14.5px;
    margin-bottom: 4px;
    color: var(--pirple-dark);
    font-weight: 600;
    line-height: 1.25;
}
.catalog-feature span {
    font-size: 12.5px;
    color: var(--gray);
    line-height: 1.4;
    display: block;
}

/* CATALOG list */
.catalog-list { padding: 50px 0 60px; }

.equipment-card {
    background: var(--white);
    border-radius: 20px;
    overflow: hidden;
    height: 100%;
    margin-bottom: 30px;
    display: flex;
    flex-direction: column;
    border: 1px solid rgba(0,56,88,.06);
    transition: .35s ease;
}
.equipment-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 24px 50px -25px rgba(0,56,88,.25);
    border-color: rgba(27,147,216,.25);
}
.equipment-card__media {
    position: relative;
    overflow: hidden;
    background: linear-gradient(45deg, rgba(0,56,88,.04), rgba(0,56,88,.08));
    height: 300px;
    flex-shrink: 0;
}
.equipment-card__media .object__gallery {
    width: 100%;
    height: 100%;
    max-height: 300px;
}
.equipment-card__media .object__img {
    width: 100%;
    height: 300px;
    max-height: 300px;
}
.equipment-card__media a { transition: transform .6s ease !important; }
.equipment-card:hover .equipment-card__media a { transform: scale(1.04); }

.equipment-card__body {
    padding: 24px 26px 26px;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
}
.equipment-card__id {
    font-size: 11px;
    color: var(--gray-light);
    text-transform: uppercase;
    letter-spacing: .08em;
    margin-bottom: 8px;
    font-weight: 600;
}
.equipment-card__title {
    font-size: 19px;
    color: var(--pirple-dark);
    margin: 0 0 10px;
    text-transform: none;
    font-weight: 600;
    line-height: 1.25;
    letter-spacing: 0;
}
.equipment-card__title a { color: inherit; }
.equipment-card__title a:hover { color: var(--pirple); }
.equipment-card__desc {
    color: var(--gray);
    font-size: 13.5px;
    line-height: 1.55;
    margin-bottom: 18px;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    word-break: break-word;
}
.equipment-card__specs {
    background: var(--white-bg);
    border-radius: 12px;
    padding: 14px 16px;
    margin-bottom: 18px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.equipment-card__spec {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
    font-size: 12.5px;
}
.equipment-card__spec-label {
    color: var(--gray);
    text-transform: uppercase;
    letter-spacing: .03em;
    font-size: 11.5px;
}
.equipment-card__spec-val {
    font-weight: 600;
    color: var(--pirple-dark);
    text-align: right;
}
.equipment-card__footer {
    margin-top: auto;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.equipment-card__footer .btn { padding: 14px 24px; }
.equipment-card__more {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    color: var(--pirple-50-dark);
    font-size: 13px;
    font-weight: 600;
    text-align: center;
}
.equipment-card__more:hover { color: var(--pirple); gap: 10px; }

/* OBJECTS list */
.objects-list { padding: 50px 0 60px; }

.project-card {
    position: relative;
    background: var(--white);
    border-radius: 20px;
    overflow: hidden;
    height: 100%;
    display: flex;
    flex-direction: column;
    margin-bottom: 30px;
    border: 1px solid rgba(0,56,88,.06);
    transition: .35s ease;
}
.project-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 24px 50px -25px rgba(0,56,88,.25);
    border-color: rgba(27,147,216,.25);
}
.project-card__link {
    position: absolute;
    inset: 0;
    z-index: 4;
}
.project-card__media {
    position: relative;
    overflow: hidden;
    background: linear-gradient(45deg, rgba(0,56,88,.04), rgba(0,56,88,.08));
    height: 300px;
    flex-shrink: 0;
}
.project-card__media .object__gallery {
    width: 100%;
    height: 100%;
    max-height: 300px;
}
.project-card__media .object__img {
    width: 100%;
    height: 300px;
    max-height: 300px;
}
.project-card__media a { transition: transform .6s ease !important; }
.project-card:hover .project-card__media a { transform: scale(1.06); }

.project-card__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0,56,88,0) 30%, rgba(0,56,88,.85) 100%);
    display: flex;
    align-items: flex-end;
    justify-content: flex-start;
    padding: 24px;
    opacity: 0;
    transition: .35s ease;
    z-index: 2;
}
.project-card:hover .project-card__overlay { opacity: 1; }
.project-card__overlay-cta {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--white);
    font-weight: 600;
    font-size: 15px;
    background: rgba(255,255,255,.18);
    backdrop-filter: blur(4px);
    border: 1px solid rgba(255,255,255,.4);
    padding: 12px 20px;
    border-radius: 100px;
}

.project-card__body {
    padding: 24px 26px 26px;
}
.project-card__title {
    font-size: 19px;
    color: var(--pirple-dark);
    margin: 0 0 10px;
    text-transform: none;
    font-weight: 600;
    line-height: 1.25;
    letter-spacing: 0;
}
.project-card__title a { color: inherit; }
.project-card__title a:hover { color: var(--pirple); }
.project-card__desc {
    color: var(--gray);
    font-size: 13.5px;
    line-height: 1.55;
    margin-bottom: 16px;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    word-break: break-word;
}
.project-card__specs {
    border-top: 1px solid rgba(0,56,88,.08);
    padding-top: 14px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.project-card__spec {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    font-size: 12.5px;
    line-height: 1.4;
}
.project-card__spec-label { color: var(--gray); }
.project-card__spec-val { color: var(--pirple-dark); font-weight: 600; text-align: right; }

/* CTA BANNER */
.cta-banner { padding: 40px 0 80px; }
.cta-banner__inner {
    background: linear-gradient(135deg, #003858 0%, #0068a5 100%);
    border-radius: 32px;
    padding: 60px 70px;
    color: var(--white);
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    gap: 50px;
    align-items: center;
    position: relative;
    overflow: hidden;
}
.cta-banner__inner::before {
    content: '';
    position: absolute;
    inset: 0;
    background: url('/wp-content/themes/ars/assets/img/lines_bg.png') no-repeat right center / cover;
    opacity: .1;
    pointer-events: none;
}
.cta-banner__inner > * { position: relative; z-index: 1; }
.cta-banner--alt .cta-banner__inner {
    background: linear-gradient(135deg, #0068a5 0%, #1b93d8 100%);
}
.cta-banner__title {
    font-size: clamp(26px, 2.2vw, 38px);
    color: var(--white);
    margin: 0 0 18px;
    line-height: 1.15;
    font-weight: 600;
}
.cta-banner__lead {
    font-size: 16px;
    color: rgba(255,255,255,.85);
    line-height: 1.55;
    margin: 0 0 24px;
}
.cta-banner__features {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: 8px;
}
.cta-banner__features li {
    position: relative;
    padding-left: 28px;
    font-size: 14.5px;
    color: rgba(255,255,255,.92);
}
.cta-banner__features li::before {
    content: '';
    position: absolute;
    left: 0; top: 4px;
    width: 16px; height: 16px;
    border-radius: 50%;
    background: rgba(255,255,255,.18) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'><path d='M5 12l5 5L20 7' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/></svg>") no-repeat center / 10px;
}
.cta-banner__action {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
    padding: 32px;
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 24px;
    backdrop-filter: blur(6px);
}
.cta-banner__action .btn {
    width: 100%;
    background: var(--white);
    color: var(--pirple-dark);
}
.cta-banner__action .btn:hover {
    background: var(--white);
    color: var(--pirple);
    box-shadow: 0 0 0 4px rgba(255,255,255,.18);
}
.cta-banner__phone {
    font-family: var(--ff-head);
    color: var(--white);
    font-size: 22px;
    font-weight: 600;
    letter-spacing: 0.01em;
}
.cta-banner__phone:hover { color: rgba(255,255,255,.85); }

/* Make sure nested .object overrides do not break new cards */
.equipment-card .object__img,
.service-card .object__img,
.project-card .object__img,
.service-featured__media .object__img {
    background: transparent;
    max-height: none;
}
.equipment-card .object__img img,
.service-card .object__img img,
.project-card .object__img img,
.service-featured__media .object__img img {
    box-shadow: none;
}

/* ==== Equal-height grid for new card layouts ==== */
.services-list .row,
.catalog-list .row,
.objects-list .row {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
}
/* Vertical spacing is owned by the COL — needed because Bootstrap 4 row
   has no row-gap and margin-bottom on a flex-item article gets eaten
   by the col's flex layout. */
.services-list [class*="col-"],
.catalog-list [class*="col-"],
.objects-list [class*="col-"] {
    display: flex;
    margin-bottom: 32px;
}
.services-list [class*="col-"] > article,
.catalog-list [class*="col-"] > article,
.objects-list [class*="col-"] > article {
    width: 100%;
    margin-bottom: 0;
}

/* ==== Slick slider compatibility for home-page cards ==== */
/* No flex-stretch — slick handles slide widths, and explicit min-height
   on the cards keeps them visually consistent without breaking the body. */
.objects-slider--cards .slick-slide article {
    margin-bottom: 0;
}
.equipment-card--home {
    min-height: 640px;
    height: auto;
}
.project-card--home {
    min-height: 600px;
    height: auto;
}
.objects-slider .equipment-card,
.objects-slider .project-card {
    margin-bottom: 0;
    border-radius: 24px;
}

/* Home-card distinct touches */
.equipment-card--home,
.project-card--home {
    box-shadow: 0 18px 60px -30px rgba(0, 56, 88, .15);
}
.equipment-card--home:hover,
.project-card--home:hover {
    box-shadow: 0 30px 70px -25px rgba(0, 56, 88, .35);
}

/* Hide Slick gallery dots inside home cards (to avoid clutter — single image still works) */
.equipment-card--home .object__gallery .slick-dots,
.project-card--home .object__gallery .slick-dots {
    bottom: 14px;
}
.equipment-card--home .object__gallery .slick-dots li button,
.project-card--home .object__gallery .slick-dots li button {
    width: 28px;
    height: 3px;
}

/* ====================================================================
   GNB PRICING TABLE
   ==================================================================== */
.gnb-pricing { padding: 50px 0 60px; }
.gnb-pricing__head {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 40px;
    margin-bottom: 36px;
}
.gnb-pricing__head h2 { margin: 6px 0 14px; }
.gnb-pricing__eyebrow {
    display: inline-block;
    padding: 6px 14px;
    background: #F4E25D;
    color: var(--pirple-dark);
    border-radius: 100px;
    font-size: 11.5px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
}
.gnb-pricing__lead {
    max-width: 720px;
    color: var(--gray);
    font-size: 15.5px;
    line-height: 1.55;
    margin: 0;
}
.gnb-pricing__head .btn { flex-shrink: 0; padding: 16px 36px; }

.gnb-pricing__table-wrap {
    background: var(--white);
    border: 1px solid rgba(0,56,88,.08);
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 24px 60px -40px rgba(0,56,88,.2);
}
.gnb-pricing__table {
    width: 100%;
    border-collapse: collapse;
    font-variant-numeric: tabular-nums;
}
.gnb-pricing__table thead th {
    background: linear-gradient(135deg, var(--pirple-dark), var(--pirple-50-dark));
    color: var(--white);
    padding: 22px 28px;
    text-align: left;
    font-size: 13px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .06em;
    font-family: var(--ff-head);
}
.gnb-pricing__table tbody td {
    padding: 18px 28px;
    border-top: 1px solid rgba(0,56,88,.06);
    font-size: 16px;
    color: var(--pirple-dark);
}
.gnb-pricing__table tbody tr:nth-child(even) { background: rgba(27,147,216,.03); }
.gnb-pricing__table tbody tr:hover { background: rgba(27,147,216,.07); }
.gnb-pricing__table tbody td:first-child {
    font-weight: 700;
    width: 280px;
}
.gnb-pricing__table tbody td:last-child {
    color: var(--pirple-50-dark);
    font-weight: 600;
}
.gnb-pricing__note {
    margin: 18px 0 0;
    font-size: 13px;
    color: var(--gray-light);
    font-style: italic;
}

/* ====================================================================
   COST FACTORS
   ==================================================================== */
.cost-factors { padding: 40px 0 60px; }
.cost-factors h2 { margin: 0 0 14px; }
.cost-factors__lead {
    color: var(--gray);
    font-size: 16px;
    max-width: 720px;
    margin: 0 auto 48px;
    line-height: 1.55;
}
.cost-factors__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 22px;
}
.cost-factor {
    background: var(--white);
    border: 1px solid rgba(0,56,88,.08);
    border-radius: 20px;
    padding: 32px 28px;
    position: relative;
    transition: .35s ease;
    overflow: hidden;
}
.cost-factor::after {
    content: '';
    position: absolute;
    inset: auto 0 0 0;
    height: 3px;
    background: linear-gradient(90deg, var(--pirple), var(--pirple-50-dark));
    transform: scaleX(0);
    transform-origin: left;
    transition: .4s ease;
}
.cost-factor:hover {
    transform: translateY(-3px);
    box-shadow: 0 18px 40px -22px rgba(0,56,88,.25);
    border-color: rgba(27,147,216,.25);
}
.cost-factor:hover::after { transform: scaleX(1); }

.cost-factor__num {
    font-family: var(--ff-head);
    font-size: 44px;
    font-weight: 700;
    color: var(--pirple);
    line-height: 1;
    opacity: .8;
    display: block;
    margin-bottom: 14px;
    letter-spacing: -0.02em;
}
.cost-factor h3 {
    font-size: 17px;
    color: var(--pirple-dark);
    margin: 0 0 10px;
    text-transform: none;
    font-weight: 600;
}
.cost-factor p {
    margin: 0;
    font-size: 14px;
    color: var(--gray);
    line-height: 1.55;
}

/* ====================================================================
   FAQ SECTION (uses existing .faq pattern with toggles via JS, but we
   make it work without JS via :checked-like state — using <details>)
   ==================================================================== */
.faq-section { padding: 40px 0 60px; }
.faq-section h2 { margin: 0 0 14px; }
.faq-section__lead {
    color: var(--gray);
    font-size: 16px;
    max-width: 720px;
    margin: 0 auto;
    line-height: 1.55;
}
.faq-list {
    max-width: 920px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.faq-section .faq {
    background: var(--white);
    border: 1px solid rgba(0,56,88,.08);
    border-radius: 16px;
    margin: 0;
    padding: 0;
    transition: .35s ease;
    overflow: hidden;
}
.faq-section .faq:hover {
    background: var(--white);
    color: inherit;
    border-color: rgba(27,147,216,.25);
}
.faq-section .faq__title {
    padding: 22px 26px;
    color: var(--pirple-dark);
    font-size: 16.5px;
    font-weight: 600;
    line-height: 1.4;
}
.faq-section .faq__title svg {
    color: var(--pirple);
    transition: .35s ease;
    flex-shrink: 0;
    margin-left: 18px;
}
.faq-section .faq.faq--visible .faq__title svg { transform: rotate(180deg); }
.faq-section .faq__content {
    padding: 0 26px;
    color: var(--gray);
    font-size: 14.5px;
    line-height: 1.65;
}
.faq-section .faq.faq--visible .faq__content {
    padding-bottom: 22px;
    margin-top: 0;
}

/* ====================================================================
   CONTACTS PAGE
   ==================================================================== */
.contacts-grid { padding: 50px 0 60px; }
.contacts-grid__inner {
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    gap: 40px;
    align-items: start;
}
.contacts-grid__info {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
}
.contact-card {
    background: var(--white);
    border: 1px solid rgba(0,56,88,.08);
    border-radius: 20px;
    padding: 28px 28px 30px;
    position: relative;
    transition: .35s ease;
}
.contact-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 18px 40px -22px rgba(0,56,88,.25);
    border-color: rgba(27,147,216,.25);
}
.contact-card__icon {
    width: 48px; height: 48px;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--pirple), var(--pirple-50-dark));
    color: var(--white);
    display: flex; align-items: center; justify-content: center;
    margin-bottom: 18px;
}
.contact-card h3 {
    font-size: 13px;
    color: var(--gray);
    margin: 0 0 8px;
    text-transform: uppercase;
    letter-spacing: .06em;
    font-weight: 600;
}
.contact-card__primary {
    display: block;
    font-family: var(--ff-head);
    font-size: 22px;
    font-weight: 600;
    color: var(--pirple-dark);
    line-height: 1.25;
    letter-spacing: -0.01em;
    margin-bottom: 10px;
}
a.contact-card__primary:hover { color: var(--pirple); }
.contact-card__action {
    display: inline-block;
    font-size: 13px;
    color: var(--pirple-50-dark);
    line-height: 1.5;
}
a.contact-card__action:hover { color: var(--pirple); }

.contact-form-card {
    background: linear-gradient(135deg, var(--pirple-dark), var(--pirple-50-dark));
    border-radius: 24px;
    padding: 36px 32px;
    color: var(--white);
    position: relative;
    overflow: hidden;
    box-shadow: 0 30px 70px -35px rgba(0, 56, 88, .5);
}
.contact-form-card::before {
    content: '';
    position: absolute;
    top: -120px; right: -100px;
    width: 360px; height: 360px;
    background: radial-gradient(circle, rgba(27,147,216,.5) 0%, transparent 65%);
    pointer-events: none;
    filter: blur(30px);
}
.contact-form-card > * { position: relative; z-index: 1; }
.contact-form-card__badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 7px 14px 7px 12px;
    background: #F4E25D;
    color: var(--pirple-dark);
    border-radius: 100px;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
    margin-bottom: 18px;
}
.contact-form-card__badge::before {
    content: '';
    width: 7px; height: 7px;
    border-radius: 50%;
    background: var(--pirple-dark);
    animation: pulse-badge 1.6s infinite;
}
@keyframes pulse-badge {
    0%, 100% { box-shadow: 0 0 0 0 rgba(0,56,88,.6); }
    50% { box-shadow: 0 0 0 6px rgba(0,56,88,0); }
}
.contact-form-card__title {
    color: var(--white);
    font-size: 28px;
    margin: 0 0 10px;
    line-height: 1.15;
    font-weight: 600;
}
.contact-form-card__lead {
    color: rgba(255,255,255,.85);
    font-size: 14.5px;
    line-height: 1.55;
    margin: 0 0 22px;
}
.contact-form__field {
    display: block;
    margin-bottom: 14px;
}
.contact-form__field > span {
    display: block;
    font-size: 12px;
    color: rgba(255,255,255,.7);
    text-transform: uppercase;
    letter-spacing: .04em;
    margin-bottom: 6px;
    font-weight: 600;
}
.contact-form__field input,
.contact-form__field textarea {
    width: 100%;
    padding: 14px 16px;
    border: 1px solid rgba(255,255,255,.22);
    border-radius: 12px;
    background: rgba(255,255,255,.1);
    color: var(--white);
    font-family: var(--ff-p);
    font-size: 15px;
    outline: none;
    transition: .25s ease;
    resize: vertical;
}
.contact-form__field input::placeholder,
.contact-form__field textarea::placeholder { color: rgba(255,255,255,.45); }
.contact-form__field input:focus,
.contact-form__field textarea:focus {
    border-color: var(--white);
    background: rgba(255,255,255,.18);
}
.contact-form .btn {
    background: var(--white);
    color: var(--pirple-dark);
    margin-top: 6px;
}
.contact-form .btn:hover {
    background: var(--white);
    color: var(--pirple);
    box-shadow: 0 0 0 4px rgba(255,255,255,.2);
}
.contact-form__policy {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-top: 14px;
    font-size: 12px;
    color: rgba(255,255,255,.75);
    line-height: 1.4;
    cursor: pointer;
}
.contact-form__policy input { margin-top: 3px; accent-color: #F4E25D; }
.contact-form__policy a { color: var(--white); text-decoration: underline; }

/* ====================================================================
   MAP PLACEHOLDER
   ==================================================================== */
.map-placeholder { padding: 30px 0 80px; }
.map-placeholder__card {
    background: var(--white);
    border: 1px dashed rgba(27, 147, 216, .4);
    border-radius: 24px;
    padding: 64px 40px;
    text-align: center;
    max-width: 860px;
    margin: 0 auto;
}
.map-placeholder__icon {
    width: 88px; height: 88px;
    border-radius: 50%;
    background: linear-gradient(135deg, rgba(27,147,216,.12), rgba(0,104,165,.12));
    color: var(--pirple-50-dark);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 22px;
}
.map-placeholder__title {
    font-size: clamp(24px, 2.4vw, 34px);
    color: var(--pirple-dark);
    margin: 0 0 14px;
    line-height: 1.15;
    text-transform: none;
}
.map-placeholder__lead {
    color: var(--gray);
    font-size: 15.5px;
    line-height: 1.6;
    margin: 0 auto 28px;
    max-width: 580px;
}
.map-placeholder__actions {
    display: flex;
    gap: 12px;
    justify-content: center;
    flex-wrap: wrap;
}

/* ====================================================================
   WHY-US (Section .third)
   ==================================================================== */
.why-us { padding: 40px 0; }
.why-us__eyebrow {
    display: inline-block;
    padding: 6px 14px;
    background: #F4E25D;
    color: var(--pirple-dark);
    border-radius: 100px;
    font-size: 11.5px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
    margin-bottom: 14px;
}
.why-us h2 {
    margin: 0 0 16px;
    line-height: 1.1;
    letter-spacing: -0.01em;
}
.why-us__lead {
    color: var(--gray);
    font-size: 16px;
    line-height: 1.55;
    max-width: 640px;
    margin: 0 0 36px;
}
.why-us__row { margin-top: 12px; }
.why-us__list-col { display: flex; }
.why-us__list {
    list-style: none;
    padding: 0;
    margin: 0;
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 22px;
}
.why-us__list li {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    padding: 22px 24px;
    background: var(--white);
    border: 1px solid rgba(0,56,88,.06);
    border-radius: 18px;
    transition: .35s ease;
}
.why-us__list li:hover {
    transform: translateY(-2px);
    border-color: rgba(27,147,216,.25);
    box-shadow: 0 18px 40px -22px rgba(0,56,88,.2);
}
.why-us__check {
    flex-shrink: 0;
    width: 32px; height: 32px;
    border-radius: 10px;
    background: linear-gradient(135deg, var(--pirple), var(--pirple-50-dark));
    color: var(--white);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 2px;
}
.why-us__list li h3 {
    font-size: 16.5px;
    color: var(--pirple-dark);
    margin: 0 0 6px;
    text-transform: none;
    font-weight: 600;
    line-height: 1.25;
}
.why-us__list li p {
    margin: 0;
    color: var(--gray);
    font-size: 14px;
    line-height: 1.5;
}

@media screen and (max-width: 768px) {
    .why-us { padding: 24px 0; }
    .why-us h2 { font-size: 26px; }
    .why-us__lead { font-size: 14.5px; margin-bottom: 24px; }
    .why-us__list { gap: 14px; }
    .why-us__list li { padding: 18px 18px; border-radius: 14px; gap: 12px; }
    .why-us__check { width: 28px; height: 28px; border-radius: 8px; }
    .why-us__list li h3 { font-size: 15px; }
    .why-us__list li p { font-size: 13.5px; }
}

/* ====================================================================
   ITEM (single catalog/service page)
   ==================================================================== */
.item-hero__tags { margin-bottom: 18px; }
.item-hero__trust {
    display: flex;
    flex-wrap: wrap;
    gap: 18px 28px;
    margin-top: 28px;
    padding-top: 28px;
    border-top: 1px solid rgba(255,255,255,.18);
}
.item-hero__trust span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: rgba(255,255,255,.92);
    font-size: 14px;
    font-weight: 500;
}
.item-hero__trust span svg { color: #F4E25D; flex-shrink: 0; }

.item-main { padding: 50px 0 40px; overflow-x: hidden; }
.item-main__grid {
    display: grid;
    grid-template-columns: 1.55fr 1fr;
    gap: 40px;
    align-items: start;
    min-width: 0;
}
.item-main__grid > * { min-width: 0; max-width: 100%; }
.item-main__media { min-width: 0; max-width: 100%; }
.item-main__media > * { max-width: 100%; }

.item-gallery {
    background: var(--white);
    border: 1px solid rgba(0,56,88,.06);
    border-radius: 24px;
    overflow: hidden;
    margin-bottom: 28px;
}
.item-gallery__slider { width: 100%; }
.item-gallery__slider .object__img { width: 100%; height: 460px; }
.item-gallery__slider .object__img a {
    height: 460px !important;
    background-size: cover !important;
}
.item-gallery__empty {
    height: 460px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--gray-light);
    font-size: 14px;
}

/* Галерея на странице карточки (товар/объект): главное фото + миниатюры */
.item-gallery--v2 {
    background: var(--white);
    border: 1px solid rgba(0,56,88,.06);
    border-radius: 22px;
    overflow: hidden;
    padding: 14px;
    margin-bottom: 28px;
    max-width: 720px;
}
.item-gallery__stage {
    position: relative;
}
.item-gallery__main {
    display: block;
    width: 100%;
    height: 400px;
    overflow: hidden;
    border-radius: 14px;
    background: var(--white-bg);
    text-decoration: none;
    position: relative;
    cursor: zoom-in;
}
.item-gallery__nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: rgba(255,255,255,.92);
    border: 0;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--pirple-dark, #003858);
    box-shadow: 0 4px 14px rgba(0,56,88,.22);
    z-index: 3;
    padding: 0;
    transition: background .15s, transform .15s;
    -webkit-tap-highlight-color: transparent;
}
.item-gallery__nav:hover {
    background: #fff;
    transform: translateY(-50%) scale(1.05);
}
.item-gallery__nav--prev { left: 16px; }
.item-gallery__nav--next { right: 16px; }
.item-gallery__counter {
    position: absolute;
    bottom: 12px;
    right: 12px;
    background: rgba(0, 56, 88, .8);
    color: #fff;
    font-size: 12.5px;
    font-weight: 500;
    padding: 5px 12px;
    border-radius: 14px;
    z-index: 2;
    pointer-events: none;
    letter-spacing: .02em;
}
@media screen and (max-width: 1280px) {
    .item-gallery__main { height: 360px; }
}
@media screen and (max-width: 900px) {
    .item-gallery__main { height: 300px; }
}
.item-gallery__main img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: opacity .2s ease, transform .35s ease;
}
.item-gallery__main:hover img {
    transform: scale(1.02);
}
.item-gallery__hidden {
    display: none;
}
.item-gallery__thumbs {
    display: flex;
    gap: 10px;
    margin-top: 12px;
    overflow-x: auto;
    scrollbar-width: thin;
    scrollbar-color: rgba(0,56,88,.2) transparent;
    padding: 2px 2px 6px;
    -webkit-overflow-scrolling: touch;
}
.item-gallery__thumbs::-webkit-scrollbar { height: 6px; }
.item-gallery__thumbs::-webkit-scrollbar-thumb { background: rgba(0,56,88,.2); border-radius: 3px; }
.item-gallery__thumb {
    flex: 0 0 92px;
    width: 92px;
    height: 70px;
    border: 2px solid transparent;
    border-radius: 10px;
    overflow: hidden;
    cursor: pointer;
    padding: 0;
    background: var(--white-bg);
    transition: border-color .15s ease, transform .15s ease;
    appearance: none;
    outline: none;
}
.item-gallery__thumb:hover {
    transform: translateY(-1px);
    border-color: rgba(0, 104, 165, .35);
}
.item-gallery__thumb.is-active {
    border-color: var(--pirple, #1b93d8);
}
.item-gallery__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.item-tabs {
    background: var(--white);
    border: 1px solid rgba(0,56,88,.06);
    border-radius: 24px;
    overflow: hidden;
    min-width: 0;
    max-width: 100%;
}
.item-tabs__rich { word-wrap: break-word; overflow-wrap: break-word; }
.item-tabs__rich img { max-width: 100%; height: auto; }
.item-tabs__rich table { display: block; overflow-x: auto; max-width: 100%; }
.item-tabs__rich pre, .item-tabs__rich code { white-space: pre-wrap; word-break: break-word; }
.item-tabs__nav {
    display: flex;
    flex-wrap: wrap;
    border-bottom: 1px solid rgba(0,56,88,.08);
    background: rgba(27,147,216,.04);
}
.item-tabs__btn {
    background: transparent;
    border: 0;
    padding: 18px 26px;
    font-family: var(--ff-p);
    font-size: 14.5px;
    font-weight: 600;
    color: var(--gray);
    cursor: pointer;
    position: relative;
    transition: .25s ease;
    letter-spacing: .01em;
}
.item-tabs__btn:hover { color: var(--pirple-dark); }
.item-tabs__btn.is-active { color: var(--pirple-dark); background: var(--white); }
.item-tabs__btn.is-active::after {
    content: '';
    position: absolute;
    inset: auto 16px 0 16px;
    height: 3px;
    background: linear-gradient(90deg, var(--pirple), var(--pirple-50-dark));
    border-radius: 2px 2px 0 0;
}
.item-tabs__panel {
    display: none;
    padding: 30px 32px 32px;
}
.item-tabs__panel.is-active { display: block; }
.item-tabs__rich {
    font-size: 15.5px;
    line-height: 1.65;
    color: var(--black);
}
.item-tabs__rich p { margin: 0 0 14px; }
.item-tabs__rich h2, .item-tabs__rich h3 { color: var(--pirple-dark); margin-top: 24px; }
.item-tabs__rich ul, .item-tabs__rich ol { padding-left: 22px; }
.item-tabs__rich li { margin-bottom: 6px; }

.item-specs {
    width: 100%;
    border-collapse: collapse;
}
.item-specs tr:nth-child(odd) { background: rgba(27,147,216,.03); }
.item-specs th, .item-specs td {
    padding: 14px 18px;
    text-align: left;
    border-bottom: 1px solid rgba(0,56,88,.06);
    font-size: 14.5px;
    vertical-align: top;
}
.item-specs th {
    font-weight: 600;
    color: var(--gray);
    text-transform: uppercase;
    letter-spacing: .04em;
    font-size: 12.5px;
    width: 45%;
}
.item-specs td {
    color: var(--pirple-dark);
    font-weight: 600;
}

.item-apps {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}
.item-apps__chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 16px;
    background: rgba(27,147,216,.08);
    color: var(--pirple-dark);
    border-radius: 100px;
    font-size: 14px;
    font-weight: 500;
}
.item-apps__chip svg { color: var(--pirple-50-dark); flex-shrink: 0; }

.item-docs {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.item-docs a {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 16px 20px;
    background: var(--white-bg);
    border: 1px solid rgba(0,56,88,.06);
    border-radius: 14px;
    color: var(--pirple-dark);
    font-weight: 600;
    font-size: 14.5px;
    transition: .25s ease;
}
.item-docs a:hover {
    border-color: var(--pirple);
    background: var(--white);
}
.item-docs a svg { color: var(--pirple-50-dark); flex-shrink: 0; }
.item-docs a span { flex-grow: 1; }
.item-docs a small {
    font-size: 11px;
    color: var(--gray-light);
    background: var(--white);
    padding: 4px 8px;
    border-radius: 6px;
    letter-spacing: .05em;
    font-weight: 700;
}

/* STICKY SIDEBAR */
.item-side { position: relative; }
.item-side__inner {
    position: sticky;
    top: 24px;
}
.item-side__card {
    background: var(--white);
    border: 1px solid rgba(0,56,88,.08);
    border-radius: 24px;
    padding: 28px 28px 24px;
    box-shadow: 0 24px 70px -40px rgba(0,56,88,.3);
}
.item-side__price {
    margin-bottom: 18px;
    padding-bottom: 18px;
    border-bottom: 1px solid rgba(0,56,88,.08);
}
.item-side__price-label {
    display: block;
    font-size: 12px;
    color: var(--gray);
    text-transform: uppercase;
    letter-spacing: .06em;
    font-weight: 600;
    margin-bottom: 6px;
}
.item-side__price-value {
    display: block;
    font-family: var(--ff-head);
    font-size: 38px;
    font-weight: 700;
    color: var(--pirple-dark);
    line-height: 1;
    letter-spacing: -0.02em;
    margin-bottom: 4px;
}
.item-side__price-unit {
    display: block;
    color: var(--gray);
    font-size: 13.5px;
}
.item-side__price--soft .item-side__price-value {
    font-size: 26px;
    color: var(--pirple-50-dark);
}

.item-side__badges {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 18px;
}
.item-side__badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 12px;
    background: #F4E25D;
    color: var(--pirple-dark);
    border-radius: 100px;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .03em;
}
.item-side__badge svg { flex-shrink: 0; }

.item-side__specs {
    display: flex;
    flex-direction: column;
    gap: 8px;
    background: var(--white-bg);
    border-radius: 14px;
    padding: 14px 16px;
    margin-bottom: 22px;
}
.item-side__spec {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    font-size: 13px;
    align-items: baseline;
}
.item-side__spec-label {
    color: var(--gray);
    text-transform: uppercase;
    letter-spacing: .03em;
    font-size: 11.5px;
}
.item-side__spec-val {
    font-weight: 600;
    color: var(--pirple-dark);
    text-align: right;
}

.item-side__cta {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.item-side__cta .btn { padding: 16px 22px; }
.item-side__call {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 14px 22px;
    border-radius: 18px;
    background: rgba(27,147,216,.08);
    color: var(--pirple-50-dark);
    font-weight: 600;
    font-size: 14.5px;
    transition: .25s ease;
}
.item-side__call:hover { background: rgba(27,147,216,.16); color: var(--pirple-dark); }
.item-side__phone {
    display: block;
    text-align: center;
    margin-top: 6px;
    font-family: var(--ff-head);
    font-size: 20px;
    font-weight: 700;
    color: var(--pirple-dark);
    letter-spacing: -0.01em;
}
.item-side__phone:hover { color: var(--pirple); }

.item-side__note {
    margin: 14px 0 0;
    font-size: 11.5px;
    color: var(--gray-light);
    line-height: 1.5;
}
.item-side__note a { color: var(--pirple-50-dark); text-decoration: underline; }

/* ADVANTAGES */
.item-advantages { padding: 40px 0; }
.item-advantages__title { text-align: center; margin: 0 0 36px; }
.item-advantages__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}
.item-advantage {
    background: var(--white);
    border: 1px solid rgba(0,56,88,.06);
    border-radius: 18px;
    padding: 26px 26px 28px;
    position: relative;
    transition: .35s ease;
}
.item-advantage:hover {
    transform: translateY(-3px);
    border-color: rgba(27,147,216,.25);
    box-shadow: 0 18px 40px -22px rgba(0,56,88,.2);
}
.item-advantage__check {
    display: inline-flex;
    width: 36px; height: 36px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--pirple), var(--pirple-50-dark));
    color: var(--white);
    align-items: center;
    justify-content: center;
    margin-bottom: 16px;
}
.item-advantage h3 {
    font-size: 17px;
    color: var(--pirple-dark);
    margin: 0 0 8px;
    text-transform: none;
    font-weight: 600;
    line-height: 1.25;
}
.item-advantage p {
    margin: 0;
    color: var(--gray);
    font-size: 14px;
    line-height: 1.55;
}

/* RELATED */
.item-related { padding: 30px 0 60px; }
.item-related__head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 24px;
    margin-bottom: 28px;
}
.item-related__head h2 { margin: 0; }
.item-related__row [class*="col-"] { display: flex; margin-bottom: 24px; }
.item-related__row [class*="col-"] > article { width: 100%; margin-bottom: 0; }
.equipment-card__price-row {
    font-size: 14px;
    color: var(--gray);
    margin-bottom: 12px;
}
.equipment-card__price-row strong {
    color: var(--pirple-dark);
    font-size: 17px;
    font-family: var(--ff-head);
}

/* MOBILE adaptations for item page */
@media screen and (max-width: 1280px) {
    .item-main__grid { grid-template-columns: 1fr; gap: 30px; }
    .item-side__inner { position: static; }
    .item-advantages__grid { grid-template-columns: repeat(2, 1fr); }
}
@media screen and (max-width: 768px) {
    .item-hero__trust { gap: 12px 18px; margin-top: 20px; padding-top: 20px; }
    .item-hero__trust span { font-size: 13px; }
    .item-main { padding: 24px 0 30px; }
    .item-gallery { border-radius: 18px; margin-bottom: 20px; }
    .item-gallery__slider, .item-gallery__empty { min-height: 280px; }

    .item-gallery--v2 { padding: 10px; border-radius: 16px; max-width: 100%; }
    .item-gallery__main { height: 240px !important; border-radius: 12px; }
    .item-gallery__nav { width: 36px; height: 36px; }
    .item-gallery__nav--prev { left: 10px; }
    .item-gallery__nav--next { right: 10px; }
    .item-gallery__counter { bottom: 8px; right: 8px; font-size: 11.5px; padding: 4px 10px; }
    .item-gallery__thumbs { gap: 7px; margin-top: 10px; padding-bottom: 4px; }
    .item-gallery__thumb { flex: 0 0 68px; width: 68px; height: 54px; border-radius: 8px; border-width: 2px; }
    .item-tabs { border-radius: 18px; }
    .item-tabs__nav { overflow-x: auto; flex-wrap: nowrap; }
    .item-tabs__btn { padding: 14px 18px; font-size: 13.5px; white-space: nowrap; }
    .item-tabs__panel { padding: 22px 20px 24px; }
    .item-tabs__rich { font-size: 14.5px; }
    .item-specs th, .item-specs td { padding: 12px 14px; font-size: 13.5px; }
    .item-specs th { font-size: 11.5px; }

    .item-side__card { padding: 22px 22px 22px; border-radius: 18px; }
    .item-side__price-value { font-size: 30px; }

    .item-advantages { padding: 24px 0; }
    .item-advantages__title { margin-bottom: 24px; font-size: 24px; }
    .item-advantages__grid { grid-template-columns: 1fr; gap: 12px; }
    .item-advantage { padding: 22px 22px; border-radius: 14px; }

    .item-related { padding: 16px 0 36px; }
    .item-related__head { flex-direction: column; align-items: flex-start; gap: 14px; }
    .item-related__head h2 { font-size: 24px; }
}

/* ====================================================================
   TRUST GRID — «Почему нам доверяют»
   ==================================================================== */
.trust-grid {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    gap: 20px;
    margin-top: 8px;
}
.trust-card {
    position: relative;
    background: var(--white);
    border: 1px solid rgba(0, 56, 88, .08);
    border-radius: 22px;
    padding: 32px 32px 28px;
    overflow: hidden;
    transition: .35s ease;
    grid-column: span 4;
    display: flex;
    flex-direction: column;
}
.trust-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 22px 50px -28px rgba(0, 56, 88, .25);
    border-color: rgba(27, 147, 216, .25);
}
.trust-card--feature { grid-column: span 6; background: linear-gradient(135deg, var(--white) 0%, rgba(27,147,216,.04) 100%); }
.trust-card--wide    { grid-column: span 12; }

.trust-card__num {
    position: absolute;
    right: 24px;
    top: 18px;
    font-family: var(--ff-head);
    font-size: 96px;
    font-weight: 800;
    line-height: 1;
    color: rgba(0, 56, 88, .045);
    letter-spacing: -0.04em;
    pointer-events: none;
    user-select: none;
}
.trust-card--feature .trust-card__num,
.trust-card--wide    .trust-card__num { font-size: 130px; }

.trust-card__icon {
    width: 52px; height: 52px;
    border-radius: 14px;
    background: linear-gradient(135deg, var(--pirple-dark), var(--pirple-50-dark));
    color: var(--white);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 18px;
    flex-shrink: 0;
}
.trust-card--feature .trust-card__icon { width: 60px; height: 60px; border-radius: 16px; }

.trust-card h3 {
    font-size: 19px;
    color: var(--pirple-dark);
    margin: 0 0 12px;
    text-transform: none;
    font-weight: 600;
    line-height: 1.25;
    letter-spacing: -0.01em;
    position: relative;
}
.trust-card--feature h3 { font-size: 24px; }
.trust-card--wide    h3 { font-size: 22px; }

.trust-card p {
    margin: 0;
    color: var(--gray);
    font-size: 14.5px;
    line-height: 1.6;
    position: relative;
}

.trust-card__pills {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 18px;
}
.trust-pill {
    display: inline-flex;
    align-items: center;
    padding: 6px 14px;
    background: rgba(27, 147, 216, .08);
    color: var(--pirple-50-dark);
    border-radius: 100px;
    font-size: 12px;
    font-weight: 600;
}

.trust-card__metric {
    margin-top: 18px;
    padding-top: 16px;
    border-top: 1px dashed rgba(0, 56, 88, .12);
    display: flex;
    align-items: baseline;
    gap: 12px;
}
.trust-card__metric-num {
    font-family: var(--ff-head);
    font-size: 28px;
    font-weight: 700;
    color: var(--pirple-dark);
    line-height: 1;
    letter-spacing: -0.02em;
    font-variant-numeric: tabular-nums;
}
.trust-card__metric-label {
    font-size: 12.5px;
    color: var(--gray);
    text-transform: uppercase;
    letter-spacing: .04em;
    font-weight: 500;
}

.trust-card__cta {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    align-self: flex-start;
    margin-top: 20px;
    padding: 14px 26px;
    background: var(--pirple-dark);
    color: var(--white);
    border-radius: 14px;
    font-weight: 600;
    font-size: 15px;
    transition: .25s ease;
}
.trust-card__cta:hover {
    background: var(--pirple);
    color: var(--white);
    transform: translateX(4px);
}

@media screen and (max-width: 1280px) {
    .trust-card,
    .trust-card--feature { grid-column: span 6; }
    .trust-card--wide { grid-column: span 12; }
}
@media screen and (max-width: 768px) {
    .trust-grid { grid-template-columns: 1fr; gap: 14px; }
    .trust-card,
    .trust-card--feature,
    .trust-card--wide { grid-column: span 1; padding: 26px 24px; border-radius: 16px; }
    .trust-card h3 { font-size: 17px; }
    .trust-card__num { font-size: 70px; right: 18px; top: 12px; }
    .trust-card--feature h3 { font-size: 18px; }
    .trust-card--feature .trust-card__num,
    .trust-card--wide .trust-card__num { font-size: 80px; }
}

/* ====================================================================
   ABOUT PAGE
   ==================================================================== */
.about-story { padding: 60px 0; }
.about-story__grid {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 60px;
    align-items: start;
}
.about-story__eyebrow {
    display: inline-block;
    padding: 6px 14px;
    background: #F4E25D;
    color: var(--pirple-dark);
    border-radius: 100px;
    font-size: 11.5px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
    margin-bottom: 16px;
}
.about-story__text h2 {
    font-size: clamp(28px, 2.6vw, 40px);
    color: var(--pirple-dark);
    line-height: 1.15;
    margin: 0 0 24px;
    text-transform: none;
    font-weight: 600;
    letter-spacing: -0.015em;
}
.about-story__text p {
    color: var(--gray);
    font-size: 16px;
    line-height: 1.65;
    margin: 0 0 16px;
}
.about-story__cards {
    display: grid;
    gap: 16px;
}
.about-card {
    background: var(--white);
    border: 1px solid rgba(0, 56, 88, .08);
    border-radius: 16px;
    padding: 22px 24px;
    transition: .25s ease;
    display: flex;
    gap: 18px;
    align-items: center;
}
.about-card:hover {
    border-color: rgba(27, 147, 216, .25);
    transform: translateX(-4px);
    box-shadow: 0 14px 30px -18px rgba(0, 56, 88, .2);
}
.about-card__year {
    font-family: var(--ff-head);
    font-size: 32px;
    font-weight: 700;
    color: var(--pirple);
    line-height: 1;
    letter-spacing: -0.02em;
    flex-shrink: 0;
    width: 80px;
}
.about-card p {
    margin: 0;
    color: var(--gray);
    font-size: 14px;
    line-height: 1.5;
}

.about-values { padding: 40px 0 60px; }
.about-values__title { text-align: center; margin: 0 0 48px; }
.about-values__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}
.about-value {
    background: var(--white);
    border: 1px solid rgba(0, 56, 88, .08);
    border-radius: 20px;
    padding: 32px 30px 30px;
    transition: .35s ease;
}
.about-value:hover {
    border-color: rgba(27, 147, 216, .25);
    transform: translateY(-3px);
    box-shadow: 0 22px 50px -25px rgba(0, 56, 88, .2);
}
.about-value__icon {
    width: 52px; height: 52px;
    border-radius: 14px;
    background: linear-gradient(135deg, var(--pirple-dark), var(--pirple-50-dark));
    color: var(--white);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 18px;
}
.about-value h3 {
    font-size: 19px;
    color: var(--pirple-dark);
    margin: 0 0 10px;
    text-transform: none;
    font-weight: 600;
    line-height: 1.25;
    letter-spacing: -0.01em;
}
.about-value p {
    margin: 0;
    color: var(--gray);
    font-size: 14.5px;
    line-height: 1.55;
}

.about-content { padding: 30px 0 60px; }
.about-content__inner {
    max-width: 920px;
    margin: 0 auto;
}
.about-content__inner h2 {
    font-size: clamp(26px, 2.4vw, 36px);
    color: var(--pirple-dark);
    margin: 0 0 22px;
    line-height: 1.2;
    text-transform: none;
    font-weight: 600;
    letter-spacing: -0.015em;
}
.about-content__inner h3 {
    font-size: 22px;
    color: var(--pirple-dark);
    margin: 32px 0 14px;
    text-transform: none;
    font-weight: 600;
}
.about-content__inner p {
    color: var(--black);
    font-size: 16px;
    line-height: 1.7;
    margin: 0 0 16px;
}
.about-content__inner ul {
    list-style: none;
    padding: 0;
    margin: 14px 0 20px;
}
.about-content__inner ul li {
    position: relative;
    padding-left: 28px;
    margin-bottom: 10px;
    line-height: 1.55;
    color: var(--black);
}
.about-content__inner ul li::before {
    content: '';
    position: absolute;
    left: 0; top: 6px;
    width: 18px; height: 18px;
    border-radius: 50%;
    background: var(--pirple) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'><path d='M5 12l5 5L20 7' stroke='white' stroke-width='3' stroke-linecap='round'/></svg>") no-repeat center / 11px;
}

@media screen and (max-width: 1280px) {
    .about-story__grid { grid-template-columns: 1fr; gap: 40px; }
    .about-values__grid { grid-template-columns: repeat(2, 1fr); }
}
@media screen and (max-width: 768px) {
    .about-story { padding: 24px 0; }
    .about-story__grid { gap: 28px; }
    .about-story__text h2 { font-size: 26px; }
    .about-story__text p { font-size: 14.5px; }
    .about-card { padding: 18px 20px; gap: 14px; }
    .about-card__year { font-size: 26px; width: 60px; }
    .about-card p { font-size: 13.5px; }

    .about-values { padding: 16px 0 36px; }
    .about-values__title { font-size: 26px; margin-bottom: 28px; }
    .about-values__grid { grid-template-columns: 1fr; gap: 14px; }
    .about-value { padding: 24px 22px; border-radius: 16px; }
    .about-value h3 { font-size: 17px; }

    .about-content { padding: 16px 0 36px; }
    .about-content__inner h2 { font-size: 24px; }
    .about-content__inner h3 { font-size: 19px; margin-top: 24px; }
    .about-content__inner p,
    .about-content__inner ul li { font-size: 14.5px; }
}

/* ====================================================================
   ГАЛЕРЕЯ — карточки + lightbox
   ==================================================================== */
.gallery-preview { padding: 60px 0; }
.gallery-preview__head {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 32px;
    margin-bottom: 36px;
    flex-wrap: wrap;
}
.gallery-preview__head h2 {
    font-size: clamp(28px, 2.6vw, 40px);
    margin: 0 0 12px;
    line-height: 1.15;
    letter-spacing: -0.01em;
    text-transform: none;
}
.gallery-preview__eyebrow {
    display: inline-block;
    padding: 6px 14px;
    background: #F4E25D;
    color: var(--pirple-dark);
    border-radius: 100px;
    font-size: 11.5px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
    margin-bottom: 14px;
}
.gallery-preview__lead {
    color: var(--gray);
    font-size: 16px;
    line-height: 1.5;
    margin: 0;
    max-width: 640px;
}

.gallery-section { padding: 40px 0 60px; }

.gallery-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-auto-rows: 240px;
    gap: 14px;
}
.gallery-grid--preview { grid-template-columns: repeat(4, 1fr); }

/* Несимметричный «мозаичный» вариант для крупной галереи */
.gallery-section .gallery-grid .gallery-item:nth-child(7n+1) { grid-row: span 2; }
.gallery-section .gallery-grid .gallery-item:nth-child(11n+5) { grid-column: span 2; }

.gallery-item {
    position: relative;
    display: block;
    overflow: hidden;
    border-radius: 16px;
    background: linear-gradient(135deg, #f3f5f8, #e7ecf1);
    cursor: pointer;
    border: 0;
    padding: 0;
    transition: .35s ease;
    text-decoration: none;
}
.gallery-item:hover {
    transform: translateY(-3px);
    box-shadow: 0 20px 40px -22px rgba(0, 56, 88, .35);
}
.gallery-item img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .55s ease;
}
.gallery-item:hover img { transform: scale(1.06); }

.gallery-item--video {
    background: linear-gradient(135deg, #003858, #0068a5);
    color: #fff;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
}
.gallery-item--video::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image:
        radial-gradient(circle at 50% 50%, rgba(255,255,255,.06) 0%, transparent 60%),
        linear-gradient(45deg, rgba(244, 226, 93, .08) 0%, transparent 100%);
    pointer-events: none;
}
.gallery-item__play {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    background: rgba(255,255,255,.15);
    border: 2px solid rgba(255,255,255,.45);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    backdrop-filter: blur(2px);
    transition: .3s ease;
    position: relative;
    z-index: 1;
}
.gallery-item--video:hover .gallery-item__play {
    background: #F4E25D;
    border-color: #F4E25D;
    color: var(--pirple-dark);
    transform: scale(1.08);
}
.gallery-item__video-label {
    font-size: 13px;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, .92);
    position: relative;
    z-index: 1;
}

@media screen and (max-width: 1280px) {
    .gallery-grid { grid-template-columns: repeat(3, 1fr); grid-auto-rows: 220px; }
    .gallery-grid--preview { grid-template-columns: repeat(3, 1fr); }
    .gallery-section .gallery-grid .gallery-item:nth-child(11n+5) { grid-column: span 1; }
}
@media screen and (max-width: 768px) {
    .gallery-preview { padding: 28px 0; }
    .gallery-preview__head { flex-direction: column; align-items: flex-start; gap: 18px; margin-bottom: 22px; }
    .gallery-preview__head h2 { font-size: 24px; }
    .gallery-grid { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 160px; gap: 8px; }
    .gallery-grid--preview { grid-template-columns: repeat(2, 1fr); }
    .gallery-section .gallery-grid .gallery-item:nth-child(7n+1),
    .gallery-section .gallery-grid .gallery-item:nth-child(11n+5) { grid-row: span 1; grid-column: span 1; }
    .gallery-item { border-radius: 12px; }
    .gallery-item__play { width: 52px; height: 52px; }
    .gallery-item__play svg { width: 32px; height: 32px; }
    .gallery-item__video-label { font-size: 11px; }
}

/* ─── Lightbox ──────────────────────────────────────────────────── */
.gallery-lightbox {
    position: fixed;
    inset: 0;
    z-index: 9500;
    background: rgba(5, 15, 25, .94);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    transition: opacity .25s ease, visibility .25s ease;
}
.gallery-lightbox--open { opacity: 1; visibility: visible; }
.gallery-lightbox__stage {
    max-width: 92vw;
    max-height: 86vh;
    display: flex;
    align-items: center;
    justify-content: center;
}
.gallery-lightbox__stage img,
.gallery-lightbox__stage video {
    max-width: 92vw;
    max-height: 86vh;
    border-radius: 14px;
    box-shadow: 0 30px 90px -20px rgba(0, 0, 0, .8);
    background: #000;
}
.gallery-lightbox__close {
    position: absolute;
    top: 24px;
    right: 28px;
    width: 48px;
    height: 48px;
    border: 0;
    border-radius: 50%;
    background: rgba(255,255,255,.12);
    color: #fff;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: .25s ease;
}
.gallery-lightbox__close:hover { background: rgba(255,255,255,.25); transform: rotate(90deg); }

.gallery-lightbox__nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 56px;
    height: 56px;
    border: 0;
    border-radius: 50%;
    background: rgba(255,255,255,.12);
    color: #fff;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: .25s ease;
}
.gallery-lightbox__nav:hover { background: rgba(255,255,255,.25); }
.gallery-lightbox__nav--prev { left: 28px; }
.gallery-lightbox__nav--next { right: 28px; }
.gallery-lightbox__counter {
    position: absolute;
    bottom: 24px;
    left: 50%;
    transform: translateX(-50%);
    color: rgba(255,255,255,.65);
    font-size: 14px;
    font-variant-numeric: tabular-nums;
}

@media screen and (max-width: 768px) {
    .gallery-lightbox__close { top: 14px; right: 14px; width: 40px; height: 40px; }
    .gallery-lightbox__nav { width: 44px; height: 44px; }
    .gallery-lightbox__nav--prev { left: 10px; }
    .gallery-lightbox__nav--next { right: 10px; }
}

/* ====================================================================
   ПАГИНАЦИЯ БЛОГА
   ==================================================================== */
.archive-pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    padding: 40px 0 60px;
    width: 100%;
    flex-basis: 100%;
    margin-top: 20px;
    border-top: 1px solid rgba(0, 56, 88, .08);
}
.archive-pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    height: 44px;
    padding: 0 14px;
    border-radius: 12px;
    background: var(--white);
    border: 1px solid rgba(0, 56, 88, .12);
    color: var(--pirple-dark);
    font-size: 15px;
    font-weight: 600;
    text-decoration: none;
    transition: .25s ease;
    font-family: var(--ff-head);
    font-variant-numeric: tabular-nums;
}
.archive-pagination .page-numbers:hover {
    background: var(--pirple-50-dark);
    color: var(--white);
    border-color: var(--pirple-50-dark);
    transform: translateY(-2px);
    box-shadow: 0 8px 16px -8px rgba(0, 56, 88, .35);
}
.archive-pagination .page-numbers.current {
    background: var(--pirple-dark);
    color: var(--white);
    border-color: var(--pirple-dark);
    box-shadow: 0 6px 14px -6px rgba(0, 56, 88, .5);
}
.archive-pagination .page-numbers.dots {
    background: transparent;
    border: none;
    cursor: default;
}
.archive-pagination .page-numbers.dots:hover { transform: none; background: transparent; color: var(--gray); box-shadow: none; }
.archive-pagination .page-numbers.prev,
.archive-pagination .page-numbers.next {
    padding: 0 20px;
    background: var(--pirple);
    color: var(--white);
    border-color: var(--pirple);
}
.archive-pagination .page-numbers.prev:hover,
.archive-pagination .page-numbers.next:hover {
    background: var(--pirple-dark);
    border-color: var(--pirple-dark);
}

@media screen and (max-width: 768px) {
    .archive-pagination { padding: 24px 0 36px; gap: 6px; }
    .archive-pagination .page-numbers { min-width: 38px; height: 38px; padding: 0 10px; font-size: 14px; }
    .archive-pagination .page-numbers.prev,
    .archive-pagination .page-numbers.next { padding: 0 14px; }
}

/* ====================================================================
   ПЛЕЙСХОЛДЕР: серый фон + логотип АРС с opacity по центру.
   Применяется:
   - .post-item--no-image                       — карточка блога без обложки
   - .object__gallery:empty                     — карточка услуги/техники/объекта без фото
   ==================================================================== */
.post-item--no-image,
.object__gallery:empty,
.object__gallery--placeholder {
    background: linear-gradient(135deg, #f3f5f8 0%, #e7ecf1 50%, #eef3f7 100%) !important;
    position: relative;
    overflow: hidden;
}
/* Логотип — отдельный квадратный «слот» фиксированных размеров, позиционирован
   по&nbsp;центру через top/left + transform. Это надёжнее, чем inset+background-position
   на&nbsp;высоких карточках. */
.post-item--no-image::before,
.object__gallery:empty::before,
.object__gallery--placeholder::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 200px;
    height: 200px;
    transform: translate(-50%, -50%);
    background-image: url('/wp-content/themes/ars/assets/img/logo.png');
    background-repeat: no-repeat;
    background-position: center center;
    background-size: contain;
    opacity: .35;
    pointer-events: none;
    z-index: 0;
}

/* Мягкая «вуаль» снизу карточки блога — чтобы заголовок и excerpt
   были читаемы поверх логотипа. Сам логотип остаётся виден в&nbsp;верхней части. */
.post-item--no-image::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 62%;
    background: linear-gradient(180deg, rgba(243, 245, 248, 0) 0%, rgba(243, 245, 248, .95) 55%, #f3f5f8 100%);
    pointer-events: none;
    z-index: 0;
}

/* Гарантированная высота для пустых галерей в карточках */
.equipment-card__media .object__gallery:empty,
.project-card__media .object__gallery:empty,
.service-card__media .object__gallery:empty,
.equipment-card__media .object__gallery--placeholder,
.project-card__media .object__gallery--placeholder,
.service-card__media .object__gallery--placeholder {
    height: 300px;
}
.service-featured__media .object__gallery:empty,
.service-featured__media .object__gallery--placeholder {
    min-height: 420px;
    height: 100%;
}

/* Текст карточки блога-плейсхолдера — над логотипом и вуалью */
.post-item--no-image .post-item__meta,
.post-item--no-image .post-item__heading {
    position: relative;
    z-index: 1;
}
.post-item--no-image .post-item__meta {
    color: var(--pirple-dark);
}
.post-item--no-image .post-item__meta a {
    color: var(--pirple-dark);
}
.post-item--no-image .post-item__heading h3 {
    color: var(--pirple-dark) !important;
}
/* Главный фикс читаемости: excerpt p имеет color: var(--white) в базе .post-item.
   Переопределяем на читаемый серый. */
.post-item--no-image .post-item__heading p,
.post-item--no-image .post-item__heading p * {
    color: var(--gray) !important;
}

/* На мобиле логотип чуть меньше */
@media screen and (max-width: 768px) {
    .post-item--no-image::before,
    .object__gallery:empty::before,
    .object__gallery--placeholder::before {
        width: 160px;
        height: 160px;
    }
}

/* ====================================================================
   TEAM BLOCK (новая секция .team-block на главной)
   ==================================================================== */
.team-block { padding: 60px 0; }
.team-block__head { margin-bottom: 42px; max-width: 880px; }
.team-block__eyebrow {
    display: inline-block;
    padding: 6px 14px;
    background: #F4E25D;
    color: var(--pirple-dark);
    border-radius: 100px;
    font-size: 11.5px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
    margin-bottom: 14px;
}
.team-block__lead {
    color: var(--gray);
    font-size: 16.5px;
    line-height: 1.55;
    max-width: 720px;
    margin: 14px 0 0;
}

.team-block__stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    margin-bottom: 50px;
    padding: 28px 0;
    border-top: 1px solid rgba(0,56,88,.08);
    border-bottom: 1px solid rgba(0,56,88,.08);
}
.team-stat {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 0 28px;
    border-left: 1px solid rgba(0,56,88,.08);
}
.team-stat:first-child { border-left: none; padding-left: 0; }
.team-stat__num {
    font-family: var(--ff-head);
    font-size: clamp(28px, 2.6vw, 40px);
    font-weight: 700;
    color: var(--pirple-dark);
    line-height: 1;
    letter-spacing: -0.02em;
    font-variant-numeric: tabular-nums;
}
.team-stat__label {
    font-size: 13px;
    color: var(--gray);
    line-height: 1.4;
    text-transform: uppercase;
    letter-spacing: .04em;
    font-weight: 500;
}

.team-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 22px;
    margin-bottom: 44px;
}
.team-role {
    background: var(--white);
    border: 1px solid rgba(0,56,88,.08);
    border-radius: 20px;
    padding: 32px 30px;
    transition: .35s ease;
    position: relative;
}
.team-role:hover {
    transform: translateY(-4px);
    border-color: rgba(27,147,216,.3);
    box-shadow: 0 22px 50px -25px rgba(0,56,88,.25);
}
.team-role__icon {
    width: 56px; height: 56px;
    border-radius: 16px;
    background: linear-gradient(135deg, var(--pirple-dark), var(--pirple-50-dark));
    color: var(--white);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 20px;
}
.team-role h3 {
    font-size: 19px;
    color: var(--pirple-dark);
    margin: 0 0 10px;
    text-transform: none;
    font-weight: 600;
    letter-spacing: -0.01em;
}
.team-role p {
    margin: 0 0 16px;
    color: var(--gray);
    font-size: 14.5px;
    line-height: 1.55;
}
.team-role__facts {
    list-style: none;
    padding: 0;
    margin: 0;
    border-top: 1px dashed rgba(0,56,88,.12);
    padding-top: 14px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.team-role__facts li {
    position: relative;
    padding-left: 22px;
    font-size: 13.5px;
    color: var(--pirple-50-dark);
    line-height: 1.4;
    font-weight: 500;
}
.team-role__facts li::before {
    content: '';
    position: absolute;
    left: 0; top: 6px;
    width: 10px; height: 10px;
    border-radius: 50%;
    background: var(--pirple);
    opacity: .25;
}
.team-role__facts li::after {
    content: '';
    position: absolute;
    left: 3px; top: 9px;
    width: 4px; height: 4px;
    border-radius: 50%;
    background: var(--pirple);
}

.team-block__cta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 28px 36px;
    background: var(--white-bg);
    border-radius: 20px;
    border: 1px solid rgba(0,56,88,.08);
}
.team-block__cta p {
    margin: 0;
    color: var(--pirple-dark);
    font-size: 18px;
    font-weight: 500;
    line-height: 1.3;
}

@media screen and (max-width: 1280px) {
    .team-grid { grid-template-columns: repeat(2, 1fr); }
    .team-block__stats { grid-template-columns: repeat(2, 1fr); gap: 24px 0; }
    .team-stat { padding: 0 18px; }
    .team-stat:nth-child(odd) { border-left: none; padding-left: 0; }
    .team-stat:nth-child(2) { border-left: 1px solid rgba(0,56,88,.08); }
}

@media screen and (max-width: 768px) {
    .team-block { padding: 28px 0; }
    .team-block__head { margin-bottom: 24px; }
    .team-block__lead { font-size: 14.5px; }
    .team-block__stats { grid-template-columns: 1fr 1fr; gap: 16px 0; padding: 18px 0; margin-bottom: 28px; }
    .team-stat { padding: 0 14px !important; border-left: none !important; }
    .team-stat:nth-child(2n) { border-left: 1px solid rgba(0,56,88,.08) !important; }
    .team-stat__num { font-size: 24px; }
    .team-stat__label { font-size: 11px; }

    .team-grid { grid-template-columns: 1fr; gap: 14px; margin-bottom: 24px; }
    .team-role { padding: 24px 22px; border-radius: 16px; }
    .team-role__icon { width: 46px; height: 46px; margin-bottom: 14px; }
    .team-role h3 { font-size: 17px; }
    .team-role p { font-size: 13.5px; }

    .team-block__cta { flex-direction: column; align-items: stretch; padding: 22px 22px; border-radius: 16px; text-align: center; }
    .team-block__cta p { font-size: 16px; }
    .team-block__cta .btn { padding: 14px 22px; }
}

/* ====================================================================
   FOOTER LEGAL (реквизиты ИП)
   ==================================================================== */
.footer__legal {
    color: var(--gray-light);
    font-size: 12.5px;
    line-height: 1.55;
    text-align: center;
    padding: 14px 20px;
    border-top: 1px solid rgba(0,0,0,.06);
    letter-spacing: .01em;
}

/* Contact-card на всю ширину (для реквизитов) */
.contacts-grid__info .contact-card--full {
    grid-column: 1 / -1;
}
.contact-card--full .contact-card__action b {
    color: var(--pirple-dark);
    font-weight: 700;
    letter-spacing: .03em;
}

/* ====================================================================
   ГЛАВНОЕ МЕНЮ ПК с hover-dropdown (header.php → .header__nav)
   ==================================================================== */
.header__nav { position: relative; }
.nav-menu {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 4px 28px;
    align-items: center;
}
.nav-item { position: relative; }
.nav-link {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 12px 0;
    font-size: 16px;
    color: var(--pirple-dark);
    font-weight: 600;
    letter-spacing: .01em;
    transition: color .2s ease;
    position: relative;
    white-space: nowrap;
}
.nav-link:hover,
.nav-item.is-active > .nav-link { color: var(--pirple-50-dark); }
.nav-submenu .nav-link { font-size: 14.5px; font-weight: 500; }
.nav-caret { transition: transform .25s ease; opacity: .7; }
.nav-item.has-submenu:hover > .nav-link .nav-caret { transform: rotate(180deg); }

.nav-submenu {
    list-style: none;
    padding: 10px 0;
    margin: 0;
    position: absolute;
    top: calc(100% + 4px);
    left: -16px;
    min-width: 280px;
    background: var(--white);
    border: 1px solid rgba(0,56,88,.08);
    border-radius: 14px;
    box-shadow: 0 22px 60px -22px rgba(0,56,88,.35);
    opacity: 0;
    visibility: hidden;
    transform: translateY(8px);
    transition: opacity .25s ease, transform .25s ease, visibility .25s;
    z-index: 100;
}
.nav-item.has-submenu:hover > .nav-submenu,
.nav-item.has-submenu:focus-within > .nav-submenu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}
.nav-submenu .nav-link {
    display: block;
    padding: 10px 22px;
    font-size: 14px;
    color: var(--pirple-dark);
    line-height: 1.35;
    white-space: normal;
}
.nav-submenu .nav-link:hover { background: rgba(27,147,216,.07); color: var(--pirple); }

/* Третий уровень — submenu внутри submenu */
.nav-submenu .nav-submenu {
    top: -10px;
    left: 100%;
    margin-left: 4px;
}
.nav-submenu .has-submenu > .nav-link {
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.nav-submenu .has-submenu .nav-caret { transform: rotate(-90deg); }
.nav-submenu .has-submenu:hover .nav-caret { transform: rotate(-90deg); }

/* ====================================================================
   КАРТА САЙТА (page-sitemap.php)
   ==================================================================== */
.sitemap-content { padding: 40px 0 80px; }
.sitemap-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 32px 28px;
}
.sitemap-col {
    background: var(--white);
    border: 1px solid rgba(0,56,88,.08);
    border-radius: 18px;
    padding: 28px 28px 24px;
}
.sitemap-col h2 {
    font-size: 18px;
    color: var(--pirple-dark);
    margin: 0 0 18px;
    padding-bottom: 14px;
    border-bottom: 1px solid rgba(0,56,88,.08);
    text-transform: none;
    font-weight: 700;
    letter-spacing: -0.01em;
}
.sitemap-col h2 a { color: inherit; }
.sitemap-col h2 a:hover { color: var(--pirple); }
.sitemap-col ul {
    list-style: none;
    padding: 0;
    margin: 0;
}
.sitemap-col ul li { margin-bottom: 8px; }
.sitemap-col ul li a {
    display: inline-flex;
    align-items: flex-start;
    color: var(--gray);
    font-size: 14px;
    line-height: 1.45;
    position: relative;
    padding-left: 14px;
    transition: color .2s ease;
}
.sitemap-col ul li a::before {
    content: '';
    position: absolute;
    left: 0; top: 8px;
    width: 6px; height: 6px;
    border-radius: 50%;
    background: var(--pirple);
    opacity: .5;
    transition: opacity .2s ease;
}
.sitemap-col ul li a:hover { color: var(--pirple-dark); }
.sitemap-col ul li a:hover::before { opacity: 1; }

/* ====================================================================
   ПОДУСЛУГА (page-uslugi-item.php)
   ==================================================================== */
.us-includes { padding: 50px 0 30px; }
.us-includes h2 { text-align: center; margin: 0 0 36px; }
.us-includes__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 18px;
}
.us-include {
    background: var(--white);
    border: 1px solid rgba(0,56,88,.08);
    border-radius: 18px;
    padding: 26px 24px;
    transition: .35s ease;
    position: relative;
}
.us-include:hover {
    border-color: rgba(27,147,216,.3);
    transform: translateY(-3px);
    box-shadow: 0 18px 40px -22px rgba(0,56,88,.2);
}
.us-include__num {
    display: inline-block;
    font-family: var(--ff-head);
    font-size: 32px;
    font-weight: 700;
    color: var(--pirple);
    line-height: 1;
    margin-bottom: 12px;
    letter-spacing: -0.02em;
    opacity: .8;
}
.us-include h3 {
    font-size: 16px;
    color: var(--pirple-dark);
    margin: 0 0 6px;
    text-transform: none;
    font-weight: 600;
    line-height: 1.25;
}
.us-include p {
    margin: 0;
    font-size: 13.5px;
    color: var(--gray);
    line-height: 1.5;
}

.us-specs { padding: 30px 0; }
.us-specs h2 { text-align: center; margin: 0 0 28px; }
.us-specs__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 16px;
    max-width: 980px;
    margin: 0 auto;
}
.us-spec {
    background: var(--white);
    border: 1px solid rgba(0,56,88,.08);
    border-radius: 14px;
    padding: 18px 22px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.us-spec__label {
    font-size: 11.5px;
    color: var(--gray);
    text-transform: uppercase;
    letter-spacing: .05em;
    font-weight: 600;
}
.us-spec__val {
    font-family: var(--ff-head);
    font-size: 22px;
    color: var(--pirple-dark);
    font-weight: 700;
    letter-spacing: -0.01em;
}

.us-apps { padding: 30px 0 50px; }
.us-apps h2 { text-align: center; margin: 0 0 28px; }
.us-apps__grid {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
    max-width: 980px;
    margin: 0 auto;
}
.us-app {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 20px;
    background: var(--white);
    border: 1px solid rgba(0,56,88,.08);
    border-radius: 100px;
    color: var(--pirple-dark);
    font-size: 14px;
    font-weight: 500;
}
.us-app svg { color: var(--pirple); flex-shrink: 0; }

@media screen and (max-width: 1280px) {
    .nav-menu { gap: 4px 18px; }
    .nav-link { font-size: 14.5px; }
}

@media screen and (max-width: 768px) {
    .sitemap-content { padding: 16px 0 36px; }
    .sitemap-grid { grid-template-columns: 1fr; gap: 14px; }
    .sitemap-col { padding: 22px 22px 18px; border-radius: 14px; }
    .sitemap-col h2 { font-size: 16px; margin-bottom: 14px; }

    .us-includes { padding: 24px 0 16px; }
    .us-includes h2 { font-size: 24px; margin-bottom: 22px; }
    .us-includes__grid { grid-template-columns: 1fr; }
    .us-include { padding: 22px 20px; }

    .us-specs { padding: 16px 0; }
    .us-specs h2 { font-size: 22px; margin-bottom: 20px; }
    .us-specs__grid { grid-template-columns: 1fr 1fr; gap: 10px; }
    .us-spec { padding: 14px 16px; }
    .us-spec__val { font-size: 18px; }

    .us-apps { padding: 16px 0 30px; }
    .us-apps h2 { font-size: 22px; margin-bottom: 18px; }
    .us-app { padding: 10px 16px; font-size: 13px; }
}

/* ====================================================================
   ГЕО-ЛЕНДИНГИ (gnb-burenie-{city})
   ==================================================================== */
.geo-districts { padding: 50px 0 20px; }
.geo-districts h2 {
    text-align: center;
    margin: 0 0 32px;
    font-size: clamp(24px, 2.2vw, 34px);
}
.geo-districts__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 10px;
}
.geo-district {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 12px 18px;
    background: var(--white);
    border: 1px solid rgba(0,56,88,.08);
    border-radius: 100px;
    color: var(--pirple-dark);
    font-size: 14px;
    font-weight: 500;
    transition: .25s ease;
}
.geo-district:hover {
    border-color: var(--pirple);
    transform: translateY(-2px);
}
.geo-district svg { color: var(--pirple-50-dark); flex-shrink: 0; }

.geo-prices-hint { padding: 30px 0; }
.geo-prices-hint__card {
    background: var(--white);
    border-radius: 24px;
    padding: 36px 40px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 32px;
    border: 1px solid rgba(0,56,88,.08);
    box-shadow: 0 20px 50px -32px rgba(0,56,88,.2);
}
.geo-prices-hint__card h2 {
    font-size: clamp(22px, 1.8vw, 28px);
    margin: 0 0 10px;
    line-height: 1.2;
}
.geo-prices-hint__card p {
    margin: 0;
    color: var(--gray);
    font-size: 14.5px;
    line-height: 1.55;
    max-width: 720px;
}
.geo-prices-hint__card .btn { flex-shrink: 0; padding: 16px 32px; }

.geo-content { padding: 30px 0 60px; }
.geo-content__inner {
    max-width: 920px;
    margin: 0 auto;
    font-size: 16px;
    line-height: 1.7;
    color: var(--black);
}
.geo-content__inner h2 {
    font-size: clamp(24px, 2.2vw, 32px);
    color: var(--pirple-dark);
    margin: 0 0 18px;
    line-height: 1.2;
}
.geo-content__inner h3 {
    font-size: 20px;
    color: var(--pirple-dark);
    margin: 28px 0 12px;
    text-transform: none;
    font-weight: 600;
}
.geo-content__inner p { margin: 0 0 14px; }
.geo-content__inner ul {
    list-style: none;
    padding: 0;
    margin: 14px 0 18px;
}
.geo-content__inner ul li {
    position: relative;
    padding-left: 28px;
    margin-bottom: 10px;
    line-height: 1.55;
}
.geo-content__inner ul li::before {
    content: '';
    position: absolute;
    left: 0; top: 6px;
    width: 18px; height: 18px;
    border-radius: 50%;
    background: var(--pirple) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'><path d='M5 12l5 5L20 7' stroke='white' stroke-width='3' stroke-linecap='round'/></svg>") no-repeat center / 11px;
}

@media screen and (max-width: 768px) {
    .geo-districts { padding: 16px 0 8px; }
    .geo-districts h2 { margin-bottom: 20px; font-size: 22px; }
    .geo-districts__grid { grid-template-columns: 1fr; gap: 8px; }
    .geo-district { padding: 10px 14px; font-size: 13.5px; }

    .geo-prices-hint__card { flex-direction: column; align-items: flex-start; padding: 26px 22px; border-radius: 18px; }
    .geo-prices-hint__card h2 { font-size: 22px; }
    .geo-prices-hint__card .btn { width: 100%; padding: 14px 22px; }

    .geo-content { padding: 8px 0 36px; }
    .geo-content__inner { font-size: 15px; }
    .geo-content__inner h2 { font-size: 22px; }
    .geo-content__inner h3 { font-size: 18px; }
}

/* ====================================================================
   TRUST STRIP (над hero на главной)
   ==================================================================== */
.trust-strip {
    background: linear-gradient(135deg, var(--pirple-dark), var(--pirple-50-dark));
    color: var(--white);
    padding: 10px 0;
    position: relative;
    z-index: 5;
}
.trust-strip__row {
    display: flex;
    flex-wrap: wrap;
    gap: 14px 30px;
    justify-content: center;
    align-items: center;
}
.trust-strip__item {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: rgba(255,255,255,.95);
    font-weight: 500;
    letter-spacing: .01em;
}
.trust-strip__item svg { color: #F4E25D; flex-shrink: 0; }
.trust-strip__item--accent { color: #F4E25D; font-weight: 700; }
.trust-strip__item--accent svg { color: #F4E25D; }

/* ====================================================================
   EMERGENCY 24/7 BADGE (fixed, справа сбоку, на десктопе и мобиле)
   ==================================================================== */
.emergency-badge {
    position: fixed;
    right: 24px;
    bottom: 100px;
    z-index: 120;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 12px 18px 12px 16px;
    background: #d93025;
    color: var(--white);
    border-radius: 100px;
    font-size: 13px;
    line-height: 1.2;
    text-decoration: none;
    box-shadow: 0 14px 35px -10px rgba(217, 48, 37, .55);
    overflow: hidden;
    transition: .35s ease;
}
.emergency-badge:hover { transform: translateY(-2px); box-shadow: 0 18px 40px -10px rgba(217, 48, 37, .7); color: var(--white); }
.emergency-badge__pulse {
    position: absolute;
    inset: 0;
    border-radius: inherit;
    pointer-events: none;
    animation: emergency-pulse 1.8s infinite;
}
@keyframes emergency-pulse {
    0%   { box-shadow: 0 0 0 0 rgba(217, 48, 37, .55); }
    100% { box-shadow: 0 0 0 18px rgba(217, 48, 37, 0); }
}
.emergency-badge__icon {
    width: 28px; height: 28px;
    border-radius: 50%;
    background: rgba(255,255,255,.2);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    position: relative;
    z-index: 1;
}
.emergency-badge__text { font-weight: 500; position: relative; z-index: 1; }
.emergency-badge__text b { display: block; font-weight: 700; }

/* WhatsApp floater убран по запросу */
.wa-floater { display: none !important; }

/* ====================================================================
   MOBILE STICKY CTA BAR (только < 768px)
   ==================================================================== */
.mobile-cta {
    display: none;
    position: fixed;
    left: 0; right: 0; bottom: 0;
    z-index: 115;
    padding: 8px 12px calc(8px + env(safe-area-inset-bottom));
    background: rgba(255,255,255,.96);
    backdrop-filter: blur(10px);
    border-top: 1px solid rgba(0,56,88,.08);
    gap: 8px;
}
.mobile-cta__btn {
    flex: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 13px 12px;
    border-radius: 14px;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    transition: .2s ease;
}
.mobile-cta__btn--phone {
    background: var(--pirple-dark);
    color: var(--white);
}
.mobile-cta__btn--callback {
    background: #F4E25D;
    color: var(--pirple-dark);
}
.mobile-cta__btn--phone svg { color: var(--white); }

/* ====================================================================
   EXIT-INTENT POPUP
   ==================================================================== */
.exit-popup {
    position: fixed;
    inset: 0;
    z-index: 9000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    opacity: 0;
    pointer-events: none;
    transition: opacity .25s ease;
}
.exit-popup--open { opacity: 1; pointer-events: auto; }
.exit-popup__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 30, 48, .65);
    backdrop-filter: blur(4px);
}
.exit-popup__card {
    position: relative;
    background: var(--white);
    border-radius: 24px;
    padding: 40px 36px 30px;
    max-width: 460px;
    width: 100%;
    box-shadow: 0 40px 100px -20px rgba(0, 30, 48, .6);
    text-align: center;
    transform: scale(.95);
    transition: transform .3s ease;
}
.exit-popup--open .exit-popup__card { transform: scale(1); }
.exit-popup__close {
    position: absolute;
    top: 14px; right: 14px;
    width: 36px; height: 36px;
    border: 0;
    background: var(--white-bg);
    border-radius: 50%;
    cursor: pointer;
    color: var(--gray);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: .2s ease;
}
.exit-popup__close:hover { background: var(--pirple-dark); color: var(--white); }
.exit-popup__badge {
    display: inline-block;
    padding: 6px 14px;
    background: #F4E25D;
    color: var(--pirple-dark);
    border-radius: 100px;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
    margin-bottom: 14px;
}
.exit-popup__title {
    font-size: 24px;
    color: var(--pirple-dark);
    line-height: 1.15;
    margin: 0 0 12px;
    text-transform: none;
    font-weight: 600;
}
.exit-popup__lead {
    color: var(--gray);
    font-size: 14.5px;
    line-height: 1.55;
    margin: 0 0 20px;
}
.exit-popup__form input[type=tel] {
    width: 100%;
    padding: 14px 16px;
    border: 1px solid rgba(0,56,88,.18);
    border-radius: 14px;
    font-size: 16px;
    font-family: var(--ff-p);
    margin-bottom: 12px;
    outline: none;
    transition: .25s ease;
}
.exit-popup__form input[type=tel]:focus { border-color: var(--pirple); }
.exit-popup__form .btn { padding: 14px 22px; }
.exit-popup__note {
    display: block;
    margin-top: 14px;
    font-size: 11.5px;
    color: var(--gray-light);
    line-height: 1.4;
}
.exit-popup__note a { color: var(--pirple-50-dark); text-decoration: underline; }

/* ====================================================================
   ГНБ КАЛЬКУЛЯТОР
   ==================================================================== */
.gnb-calc { padding: 40px 0 60px; }
.gnb-calc__inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 50px;
    align-items: center;
    background: linear-gradient(135deg, #003858 0%, #0068a5 60%, #1b93d8 100%);
    border-radius: 28px;
    padding: 50px 56px;
    color: var(--white);
    position: relative;
    overflow: hidden;
}
.gnb-calc__inner::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px);
    background-size: 48px 48px;
    pointer-events: none;
}
.gnb-calc__inner > * { position: relative; z-index: 1; }

.gnb-calc__eyebrow {
    display: inline-block;
    padding: 6px 14px;
    background: #F4E25D;
    color: var(--pirple-dark);
    border-radius: 100px;
    font-size: 11.5px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
    margin-bottom: 16px;
}
.gnb-calc__title {
    font-size: clamp(26px, 2.4vw, 38px);
    color: var(--white);
    line-height: 1.1;
    margin: 0 0 14px;
    font-weight: 600;
    text-transform: none;
}
.gnb-calc__lead {
    color: rgba(255,255,255,.85);
    font-size: 15.5px;
    line-height: 1.55;
    margin: 0 0 20px;
}
.gnb-calc__features {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: 8px;
}
.gnb-calc__features li {
    position: relative;
    padding-left: 28px;
    font-size: 14px;
    color: rgba(255,255,255,.92);
}
.gnb-calc__features li::before {
    content: '';
    position: absolute;
    left: 0; top: 4px;
    width: 16px; height: 16px;
    border-radius: 50%;
    background: rgba(255,255,255,.18) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'><path d='M5 12l5 5L20 7' stroke='white' stroke-width='3' stroke-linecap='round'/></svg>") no-repeat center / 10px;
}

.gnb-calc__form {
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.18);
    backdrop-filter: blur(6px);
    border-radius: 22px;
    padding: 28px;
}
.gnb-calc__field {
    display: block;
    margin-bottom: 18px;
}
.gnb-calc__field > span {
    display: block;
    font-size: 12px;
    color: rgba(255,255,255,.7);
    text-transform: uppercase;
    letter-spacing: .04em;
    margin-bottom: 8px;
    font-weight: 600;
}
.gnb-calc__field select,
.gnb-calc__field input {
    width: 100%;
    padding: 14px 16px;
    border: 1px solid rgba(255,255,255,.22);
    border-radius: 12px;
    background: rgba(255,255,255,.12);
    color: var(--white);
    font-family: var(--ff-p);
    font-size: 16px;
    outline: none;
    transition: .25s ease;
    -webkit-appearance: none;
    appearance: none;
}
.gnb-calc__field select {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'><path d='M6 9l6 6 6-6' stroke='white' stroke-width='2' stroke-linecap='round'/></svg>");
    background-repeat: no-repeat;
    background-position: right 14px center;
    background-size: 18px;
    padding-right: 42px;
}
.gnb-calc__field select option { color: var(--pirple-dark); background: var(--white); }
.gnb-calc__field input:focus,
.gnb-calc__field select:focus { border-color: var(--white); background: rgba(255,255,255,.2); }

.gnb-calc__result {
    background: var(--white);
    border-radius: 16px;
    padding: 18px 22px;
    text-align: center;
    margin: 22px 0 16px;
}
.gnb-calc__result-label {
    display: block;
    font-size: 11px;
    color: var(--gray);
    text-transform: uppercase;
    letter-spacing: .06em;
    margin-bottom: 6px;
    font-weight: 600;
}
.gnb-calc__result-value {
    display: block;
    font-family: var(--ff-head);
    font-size: 32px;
    font-weight: 700;
    color: var(--pirple-dark);
    line-height: 1.05;
    margin-bottom: 4px;
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.02em;
}
.gnb-calc__result-hint {
    display: block;
    font-size: 12px;
    color: var(--gray);
}
.gnb-calc__form .btn {
    background: var(--white);
    color: var(--pirple-dark);
}
.gnb-calc__form .btn:hover {
    background: var(--white);
    color: var(--pirple);
    box-shadow: 0 0 0 4px rgba(255,255,255,.2);
}

/* Адаптив */
@media screen and (max-width: 1280px) {
    .gnb-calc__inner { grid-template-columns: 1fr; padding: 40px 36px; gap: 32px; }
}
@media screen and (max-width: 768px) {
    .trust-strip { padding: 8px 0; }
    .trust-strip__row { gap: 8px 16px; justify-content: flex-start; overflow-x: auto; flex-wrap: nowrap; -webkit-overflow-scrolling: touch; }
    .trust-strip__item { font-size: 11.5px; white-space: nowrap; }

    /* На мобиле прячем «Аварийно» badge — внизу уже есть mobile sticky CTA с Позвонить */
    .emergency-badge { display: none !important; }

    .mobile-cta { display: flex; }
    body { padding-bottom: 68px; }

    .gnb-calc { padding: 16px 0 36px; }
    .gnb-calc__inner { padding: 28px 22px; border-radius: 18px; gap: 24px; }
    .gnb-calc__title { font-size: 24px; }
    .gnb-calc__lead { font-size: 14.5px; }
    .gnb-calc__form { padding: 22px 20px; border-radius: 16px; }
    .gnb-calc__result-value { font-size: 26px; }

    .exit-popup__card { padding: 32px 24px 24px; border-radius: 18px; }
    .exit-popup__title { font-size: 20px; }
    .exit-popup__lead { font-size: 13.5px; }
}

/* === Scroll-to-top floating button === */
.scroll-top {
    position: fixed;
    right: 22px;
    bottom: 22px;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    background: var(--pirple-50-dark, #0068a5);
    color: #fff;
    border: 0;
    box-shadow: 0 8px 22px rgba(0, 56, 88, .28);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 90;
    opacity: 0;
    visibility: hidden;
    transform: translateY(12px);
    transition: opacity .22s, transform .22s, background .15s, visibility .22s;
    padding: 0;
}
.scroll-top.is-visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}
.scroll-top:hover {
    background: var(--pirple-dark, #003858);
}
.scroll-top:focus-visible {
    outline: 2px solid var(--pirple, #1b93d8);
    outline-offset: 3px;
}
@media screen and (max-width: 768px) {
    .scroll-top {
        right: 14px;
        bottom: 78px; /* над mobile-cta баром */
        width: 44px;
        height: 44px;
    }
}
