@import '../css/fancybox.css';
@import '../css/normalize.css';
@import '../css/select.css';
@import '../css/swiper-bundle.min.css';
html, body {
  overflow-x: hidden;
}
html.--scroll, body.--scroll {
  overflow: hidden;
}

body {
  font-size: 13px;
  color: #242424;
  font-family: "Raleway", "Arial", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  min-width: 320px;
}

.wrap {
  position: relative;
  max-width: 1320px;
  padding-left: 60px;
  padding-right: 60px;
  margin: 0 auto;
}
@media only screen and (max-width: 1199px) {
  .wrap {
    padding-left: 20px;
    padding-right: 20px;
  }
}

.body {
  display: flex;
  min-height: 100vh;
}

.wrapper {
  display: flex;
  justify-content: space-between;
  flex-direction: column;
  width: 100%;
}

.container {
  flex: 1 0 auto;
  padding-top: 75px;
}
.container.--index {
  padding-top: 0;
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 150px;
  height: 40px;
  padding: 0 42px;
  border-radius: 100px;
  color: #242424;
  background: #99CC33;
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  transition: 0.3s;
}
.btn:hover {
  background: #fff;
}
.btn.--tel {
  height: 35px;
  padding: 0 25px;
}
.btn.--big {
  min-width: 230px;
}
.btn.--big:hover {
  color: #fff;
  background: #115694;
}
.btn.--small {
  min-width: initial;
  padding: 0 20px;
}
.btn.--gray {
  background: #F1F1F1;
}
.btn.--gray:hover {
  color: #fff;
  background: #115694;
}
.btn.--white {
  background: #fff;
}
.btn.--white:hover {
  color: #fff;
  background: #115694;
}
.btn.--green {
  color: #242424;
  background: #99CC33;
}
.btn.--green:hover {
  color: #fff;
  background: #115694;
}
.btn.--blue {
  color: #fff;
  background: #115694;
}
.btn.--blue:hover {
  color: #fff;
  background: #115694;
}
.btn.--thin {
  color: #fff;
  border: 1px solid #fff;
  background: none;
}
.btn.--thin:hover {
  color: #99CC33;
  border-color: #99CC33;
}
.btn.--w100 {
  width: 100%;
}
@media only screen and (max-width: 767px) {
  .btn.--mw100 {
    width: 100%;
  }
}
.btn.--m-only {
  width: 100%;
}
@media only screen and (min-width: 768px) {
  .btn.--m-only {
    display: none;
  }
}

.overlay {
  display: none;
  position: fixed;
  z-index: 9;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.8);
}

.section {
  margin-bottom: 110px;
}
@media only screen and (max-width: 767px) {
  .section {
    margin-bottom: 80px;
  }
}
.section.--gray {
  background: #f1f1f1;
}

.h1 {
  font-weight: 400;
  font-size: 36px;
  line-height: 105%;
  letter-spacing: -0.03em;
  color: #242424;
}
@media only screen and (max-width: 1023px) {
  .h1 {
    font-size: 30px;
  }
}
@media only screen and (max-width: 767px) {
  .h1 {
    font-size: 28px;
  }
}

.h2 {
  font-weight: 400;
  font-size: 30px;
  line-height: 105%;
  letter-spacing: -0.03em;
  color: #242424;
}
@media only screen and (max-width: 1023px) {
  .h2 {
    font-size: 28px;
  }
}
@media only screen and (max-width: 767px) {
  .h2 {
    font-size: 24px;
  }
}
.field,
.textarea {
  display: block;
  width: 100%;
  height: 36px;
  padding: 0;
  color: #fff;
  border-bottom: 1px solid rgba(255, 255, 255, 0.3);
  background: none;
}
.field::-moz-placeholder, .textarea::-moz-placeholder {
  color: inherit;
  font-size: inherit;
  font-family: inherit;
}
.field::placeholder,
.textarea::placeholder {
  color: inherit;
  font-size: inherit;
  font-family: inherit;
}
.field:focus::-moz-placeholder, .textarea:focus::-moz-placeholder {
  color: rgba(255, 255, 255, 0);
}
.field:focus::placeholder,
.textarea:focus::placeholder {
  color: rgba(255, 255, 255, 0);
}
.field:active,
.textarea:active {
  background: none;
}

.textarea {
  padding-top: 10px;
  line-height: 1.2;
}
.textarea.--big {
  height: 66px;
}

.checkbox input {
  display: none;
}
.checkbox input:checked + label:before {
  border-color: #99CC33;
  background: url("../images/ico/check.svg") no-repeat center center/10px;
}
.checkbox__item {
  position: relative;
  display: block;
  max-width: 100%;
  padding-left: 30px;
  font-size: 10px;
  line-height: 115%;
  color: #fff;
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
}
.checkbox__item:before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 16px;
  height: 16px;
  border: 1px solid rgba(255, 255, 255, 0.3);
  background: none;
}
.checkbox__item a {
  text-decoration: underline;
}
.checkbox__item a:hover {
  text-decoration: none;
}

.scrollUp {
  display: none;
  position: fixed;
  z-index: 9;
  bottom: 20px;
  right: 20px;
  border-radius: 50%;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
}
@media only screen and (max-width: 767px) {
  .scrollUp {
    left: initial;
    right: 20px;
    bottom: 20px;
  }
}

@media only screen and (max-width: 767px) {
  .mHidden {
    display: none !important;
  }
}

@media only screen and (min-width: 768px) {
  .mOnly {
    display: none !important;
  }
}

.breadcrumbs {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 10px;
}
.breadcrumbs:last-child {
  margin-bottom: 0;
}
.breadcrumbs__link {
  position: relative;
  font-size: 10px;
  line-height: 115%;
  color: rgba(255, 255, 255, 0.5);
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
}
.breadcrumbs__link:last-child {
  cursor: initial;
}
.breadcrumbs__link:last-child:before {
  display: none;
}
.breadcrumbs__link:before {
  content: "";
  display: block;
  position: absolute;
  top: 4px;
  right: -8px;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: currentColor;
  pointer-events: none;
}

.list {
  padding: 0;
  margin-bottom: 30px;
}
.list:last-child {
  margin-bottom: 0;
}
.list li {
  position: relative;
  padding-left: 20px;
  list-style: none;
  color: #fff;
  font-size: 13px;
  line-height: 1.2;
  margin-bottom: 7px;
}
.list li:last-child {
  margin-bottom: 0;
}
.list li:before {
  content: "";
  display: block;
  position: absolute;
  top: 4px;
  left: 0;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #99CC33;
  pointer-events: none;
}

.link {
  transition: 0.3s;
  text-decoration: underline;
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
}
.link:hover {
  color: #99CC33;
}

.table-wrap {
  overflow-x: auto;
}
@media only screen and (max-width: 767px) {
  .table-wrap {
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    gap: 15px;
    width: calc(100% + 40px);
    margin-left: -20px;
    padding: 0 20px;
  }
  .table-wrap::-webkit-scrollbar {
    display: none;
  }
}

.table {
  width: 100%;
}
@media only screen and (max-width: 600px) {
  .table {
    width: 600px;
  }
}
.table.--3col td:nth-child(1) {
  width: 50%;
}
@media only screen and (max-width: 767px) {
  .table.--3col td:nth-child(1) {
    width: 33%;
  }
}
.table.--3col td:nth-child(2), .table.--3col td:nth-child(3) {
  width: 25%;
}
.table thead tr {
  border-bottom: 1px solid #115694;
}
.table thead td {
  width: 25%;
  font-size: 18px;
  line-height: 1.2;
  color: #115694;
  padding: 0 10px 15px 10px;
}
.table thead td:nth-child(1) {
  padding-left: 0;
}
@media only screen and (max-width: 767px) {
  .table thead td {
    font-size: 15px;
  }
}
.table tbody tr {
  border-bottom: 1px solid rgba(36, 36, 36, 0.2);
}
.table tbody td {
  width: 25%;
  padding: 10px;
  line-height: 1.2;
}
.table tbody td:nth-child(1) {
  padding-left: 0;
}

p {
  line-height: 1.2;
  margin-bottom: 15px;
}
p:last-child {
  margin-bottom: 0;
}

.cookies {
  position: fixed;
  z-index: 7;
  bottom: 40px;
  right: 15px;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 35px;
  max-width: 400px;
  padding: 20px;
  border-radius: 15px;
  background: #fff;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}
@media only screen and (max-width: 767px) {
  .cookies {
    left: 20px;
    gap: 15px;
    width: calc(100% - 40px);
  }
}
.cookies__text {
  font-size: 11px;
  line-height: 1.2;
}
.cookies__btn {
  padding: 4px 14px;
  color: #fff;
  border-radius: 15px;
  background: #115694;
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
}
.cookies__link {
  text-decoration: underline;
  transition: 0.3s;
}
.cookies__link:hover {
  color: #99CC33;
}

.header {
  flex: 0 0 auto;
  position: fixed;
  z-index: 11;
  left: 0;
  top: 0;
  padding-top: 10px;
  width: 100%;
}
@media only screen and (max-width: 767px) {
  .header {
    position: fixed;
    top: 0;
    padding: 10px 0;
  }
}
@media only screen and (max-width: 767px) {
  .header .btn.--tel {
    display: none;
  }
}
.header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  min-height: 55px;
  padding: 10px 35px;
  border-radius: 15px;
  background: #f1f1f1;
  transition: background-color 0.3s ease;
}
@media only screen and (max-width: 767px) {
  .header__inner {
    padding: 10px 15px;
  }
}
.header__inner.--index {
  width: calc(100% + 70px);
  margin-left: -35px;
  padding: 15px 35px;
  background: none;
}
@media only screen and (max-width: 1199px) {
  .header__inner.--index {
    width: calc(100% + 40px);
    margin-left: -20px;
    padding: 15px 20px;
  }
}
@media only screen and (max-width: 767px) {
  .header__inner.--index {
    width: 100%;
    padding-left: 0;
    padding-right: 0;
    margin: 0;
  }
}
.header__inner.--index .header__city-main {
  color: #fff;
}
.header__inner.--index .header__menu-link {
  color: rgba(255, 255, 255, 0.6);
}
.header__inner.--index .header__menu-link:hover {
  color: #99CC33;
}
.header__inner.--index .header__left {
  justify-content: flex-start;
}
@media only screen and (min-width: 768px) {
  .header__inner.--index.--scroll {
    background-color: #f1f1f1;
  }
}
.header__inner.--index.--scroll .header__menu-link,
.header__inner.--index.--scroll .header__city-main,
.header__inner.--index.--scroll .header__city-checked {
  color: #242424;
}
.header__inner.--index.--scroll .header__menu-link:hover,
.header__inner.--index.--scroll .header__city-checked:hover {
  text-decoration: underline;
}
.header__left {
  display: flex;
  align-items: center;
}
@media only screen and (max-width: 767px) {
  .header__left {
    justify-content: space-between;
    width: 100%;
  }
}
.header__logo {
  width: 64px;
  margin-right: 30px;
}
@media only screen and (max-width: 767px) {
  .header__logo {
    width: 60px;
  }
}
.header__logo-text {
  font-size: 12px;
  line-height: 120%;
  color: #fff;
  white-space: nowrap;
  margin-bottom: 3px;
}
@media only screen and (max-width: 767px) {
  .header__logo-text {
    font-size: 10px;
  }
}
.header__logo-img {
  display: block;
}
.header__logo-img img {
  -o-object-fit: contain;
  object-fit: contain;
  width: 100%;
  height: auto;
}
.header__city {
  position: relative;
}
.header__city-main {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 12px;
  white-space: nowrap;
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
}
.header__city-dropdown {
  display: none;
  position: absolute;
  top: calc(100% + 10px);
  left: 20px;
  min-width: 386px;
  padding: 20px;
  -moz-column-count: 3;
  column-count: 3;
  -moz-column-gap: 38px;
  column-gap: 38px;
  border-radius: 15px;
  background: #fff;
}
@media only screen and (max-width: 767px) {
  .header__city-dropdown {
    position: fixed;
    left: 20px;
    top: 80px;
    min-width: initial;
    width: calc(100% - 40px);
    -moz-column-count: 2;
    column-count: 2;
    background: #99CC33;
  }
}
.header__city-dropdown__item {
  display: block;
  line-height: 1.6;
  white-space: nowrap;
  transition: 0.3s;
}
.header__city-dropdown__item:hover {
  color: rgba(36, 36, 36, 0.5);
  text-decoration: underline;
}
.header__city-checked {
  transition: 0.3s;
}
.header__city-checked:hover {
  color: #99CC33;
}
.header__menu {
  display: flex;
  align-items: center;
  gap: 24px;
}
@media only screen and (max-width: 1199px) {
  .header__menu {
    gap: 16px;
  }
}
@media only screen and (max-width: 1023px) {
  .header__menu {
    display: none;
  }
}
.header__menu-item {
  position: relative;
}
.header__menu-link {
  font-size: 12px;
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
  transition: 0.3s;
}
.header__menu-link.--open.--active {
  color: #99CC33;
  text-decoration: underline;
}
.header__menu-link:hover {
  color: #99CC33;
}
.header__menu-dropdown {
  display: none;
  position: absolute;
  top: calc(100% + 10px);
  left: 0;
  min-width: 680px;
  padding: 20px 20px 13px 20px;
  -moz-column-count: 3;
  column-count: 3;
  gap: 40px;
  border-radius: 15px;
  background: #fff;
}
.header__menu-item:hover .header__menu-dropdown {
  display: block;
}
.header__menu-dropdown::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: -14px;
  height: 14px;
}
.header__menu-dropdown__item {
  display: block;
  line-height: 1.2;
  margin-bottom: 7px;
}
.header__menu-dropdown__item:hover {
  color: rgba(36, 36, 36, 0.5);
  text-decoration: underline;
}
.header__right {
  display: flex;
  align-items: center;
  gap: 15px;
}
.header__hamburger {
  width: 45px;
  height: 45px;
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
}
@media only screen and (min-width: 1024px) {
  .header__hamburger {
    display: none !important;
  }
}
@media only screen and (max-width: 767px) {
  .header__hamburger {
    display: none;
    position: fixed;
    z-index: 11;
    top: 20px;
    right: 20px;
  }
}
.header__hamburger img {
  -o-object-fit: contain;
  object-fit: contain;
  width: 100%;
  height: 100%;
}
.header__social {
  display: flex;
  align-items: center;
  gap: 5px;
}
@media only screen and (max-width: 767px) {
  .header__social {
    display: none;
  }
}
.header__social-link {
  width: 25px;
  height: 25px;
  background: #fff;
  border-radius: 50%;
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
  transition: 0.3s;
}
.header__social-link:hover {
  transform: scale(1.1);
}

.mobile-menu {
  display: none;
  position: fixed;
  z-index: 11;
  inset: 0;
  width: 100%;
  padding: 20px;
  background: rgba(0, 0, 0, 0.8);
  overflow-y: auto;
}
.mobile-menu__close {
  position: absolute;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  top: 5px;
  right: 5px;
  width: 15px;
  padding: 15px;
  height: 15px;
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
}
.mobile-menu__inner {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  height: auto;
  min-height: 100%;
  padding: 20px;
  border-radius: 15px;
  background: #99CC33;
}
.mobile-menu__top {
  margin-bottom: 40px;
}
.mobile-menu__list {
  margin-bottom: 5px;
}
.mobile-menu__list-title {
  position: relative;
  display: inline-flex;
  font-size: 15px;
  line-height: 120%;
}
.mobile-menu__list-title.--active {
  text-decoration: underline;
}
.mobile-menu__list-title.--active:before {
  transform: rotate(180deg);
}
.mobile-menu__list-title:before {
  content: "";
  display: block;
  position: absolute;
  top: 5px;
  right: -16px;
  width: 8px;
  height: 8px;
  background: url("../images/ico/arrow_down.svg") no-repeat center center/contain;
  pointer-events: none;
}
.mobile-menu__list-dropdown {
  display: none;
  flex-direction: column;
  gap: 5px;
  padding: 10px 0;
  border-top: 1px solid rgba(36, 36, 36, 0.2);
  border-bottom: 1px solid rgba(36, 36, 36, 0.2);
  margin: 10px 0 20px;
}
.mobile-menu__list-dropdown.--active {
  display: flex !important;
}
.mobile-menu__list-link {
  line-height: 1.2;
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
}
.mobile-menu__link {
  display: block;
  font-size: 15px;
  line-height: 1.2;
  margin-bottom: 5px;
}
.mobile-menu__link:last-child {
  margin-bottom: 0;
}
.mobile-menu__social {
  display: flex;
  align-items: center;
  gap: 5px;
  margin-bottom: 10px;
}

.footer {
  position: relative;
  flex: 0 0 auto;
  width: 100%;
  color: #fff;
  background: #242424;
  overflow: hidden;
}
@media only screen and (max-width: 767px) {
  .footer {
    padding-top: 80px;
  }
}
.footer .btn {
  min-width: 130px;
  font-size: 11px;
  min-height: 30px;
}
.footer__top {
  display: flex;
  position: relative;
}
@media only screen and (max-width: 767px) {
  .footer__top {
    flex-wrap: wrap;
  }
}
.footer__top:before {
  content: "";
  display: block;
  position: absolute;
  left: -1000px;
  bottom: 0;
  left: -1000px;
  width: 3000px;
  height: 1px;
  background: #434343;
}
@media only screen and (max-width: 767px) {
  .footer__top:before {
    display: none;
  }
}
.footer__top .footer__col {
  position: relative;
  padding: 60px 110px 110px 15px;
  border-right: 1px solid #434343;
}
@media only screen and (max-width: 767px) {
  .footer__top .footer__col {
    border: none;
    padding: 0 0 20px 0;
    border-bottom: 1px solid #434343;
    margin-bottom: 20px;
  }
}
.footer__top .footer__col:first-child {
  min-width: 260px;
  padding-left: 0;
}
@media only screen and (max-width: 1199px) {
  .footer__top .footer__col:first-child {
    min-width: 200px;
    padding-right: 30px;
  }
}
@media only screen and (max-width: 767px) {
  .footer__top .footer__col:first-child {
    order: 2;
    width: 100%;
  }
}
.footer__top .footer__col:nth-child(2) {
  min-width: 275px;
}
@media only screen and (max-width: 1199px) {
  .footer__top .footer__col:nth-child(2) {
    min-width: 200px;
    padding-right: 30px;
  }
}
@media only screen and (max-width: 767px) {
  .footer__top .footer__col:nth-child(2) {
    width: 100%;
  }
}
.footer__top .footer__col:last-child {
  flex: 1 1 auto;
  padding-right: 0;
  border-right: none;
}
@media only screen and (max-width: 767px) {
  .footer__top .footer__col:last-child {
    width: 100%;
  }
}
.footer__logo {
  display: block;
  width: 64px;
  margin-bottom: 20px;
}
@media only screen and (max-width: 767px) {
  .footer__logo {
    width: 64px;
    margin-bottom: 30px;
  }
}
.footer__logo-text {
  font-size: 11px;
  line-height: 1.2;
  margin-bottom: 3px;
}
@media only screen and (max-width: 767px) {
  .footer__logo-text {
    font-size: 13px;
  }
}
.footer__logo-img img {
  -o-object-fit: contain;
  object-fit: contain;
  display: block;
  width: 100%;
  height: auto;
}
.footer__item {
  margin-bottom: 15px;
}
.footer__item:last-child {
  margin-bottom: 0;
}
.footer__item-title {
  font-size: 11px;
  line-height: 1.2;
  color: rgba(255, 255, 255, 0.5);
  margin-bottom: 5px;
}
@media only screen and (max-width: 767px) {
  .footer__item-title {
    font-size: 13px;
  }
}
.footer__item-title:last-child {
  margin-bottom: 0;
}
.footer__item-text {
  font-size: 11px;
  line-height: 1.2;
}
@media only screen and (max-width: 767px) {
  .footer__item-text {
    font-size: 13px;
  }
}
.footer__social {
  display: flex;
  align-items: center;
  gap: 5px;
  margin-bottom: 25px;
}
@media only screen and (max-width: 767px) {
  .footer__social {
    position: absolute;
    right: 0;
    top: 0px;
  }
}
.footer__social-ico {
  width: 20px;
  height: 20px;
  transition: 0.3s;
}
.footer__social-ico:hover {
  transform: scale(1.1);
}
.footer__col-title {
  padding-top: 20px;
  color: #99CC33;
  margin-bottom: 25px;
}
@media only screen and (max-width: 767px) {
  .footer__col-title {
    padding-top: 0;
    margin-bottom: 15px;
  }
}
.footer__link {
  font-size: 11px;
  line-height: 1.2;
  transition: 0.3s;
}
@media only screen and (max-width: 767px) {
  .footer__link {
    font-size: 13px;
  }
}
.footer__link:hover {
  opacity: 0.5;
}
.footer__menu {
  display: flex;
  flex-direction: column;
  gap: 7px;
}
.footer__menu .footer__link {
  white-space: nowrap;
}
.footer__services {
  display: flex;
  flex-grow: 1;
  justify-content: space-between;
  gap: 15px;
}
@media only screen and (max-width: 767px) {
  .footer__services {
    gap: 7px;
    flex-wrap: wrap;
  }
}
.footer__services .footer__menu-col {
  display: flex;
  flex-direction: column;
  gap: 7px;
}
@media only screen and (max-width: 767px) {
  .footer__services .footer__menu-col {
    width: 100%;
  }
}
.footer__middle {
  display: flex;
  padding: 20px 0 40px;
}
@media only screen and (max-width: 767px) {
  .footer__middle {
    flex-wrap: wrap;
    gap: 7px;
    padding-top: 0;
    padding-bottom: 20px;
  }
}
.footer__middle .footer__col:first-child {
  min-width: 260px;
  padding-left: 0;
}
@media only screen and (max-width: 1199px) {
  .footer__middle .footer__col:first-child {
    min-width: 200px;
    padding-right: 30px;
  }
}
@media only screen and (max-width: 767px) {
  .footer__middle .footer__col:first-child {
    min-width: 100%;
  }
}
.footer__middle .footer__col:nth-child(2) {
  min-width: 275px;
}
@media only screen and (max-width: 1199px) {
  .footer__middle .footer__col:nth-child(2) {
    min-width: 200px;
    padding-right: 30px;
  }
}
@media only screen and (max-width: 767px) {
  .footer__middle .footer__col:nth-child(2) {
    min-width: 100%;
  }
}
.footer__middle .footer__col:last-child {
  flex: 1 1 auto;
  text-align: right;
}
@media only screen and (max-width: 767px) {
  .footer__middle .footer__col:last-child {
    min-width: 100%;
    text-align: left;
  }
}
.footer__bottom {
  text-align: center;
}
.footer__phone {
  display: block;
  font-size: clamp(24px, 12vw, 165px);
  line-height: 1.2;
  color: #99CC33;
  margin-bottom: -20px;
  transition: 0.3s;
}
@media only screen and (max-width: 767px) {
  .footer__phone {
    margin-bottom: 0;
  }
}
.footer__phone:hover {
  color: #fff;
}

.modal {
  display: none;
  position: fixed;
  z-index: 11;
  inset: 0;
  width: 100%;
  padding: 20px;
  background: rgba(0, 0, 0, 0.8);
  overflow-y: auto;
}
.modal .h2 {
  text-align: center;
  color: #fff;
  margin-bottom: 30px;
}
.modal .checkbox {
  max-width: 420px;
  margin: 20px 0;
}
.modal .field, .modal .textarea {
  color: rgba(255, 255, 255, 0.5);
  border-color: rgba(255, 255, 255, 0.5);
}
.modal__block {
  position: relative;
  top: 50%;
  transform: translateY(-50%);
  background: #FFF;
  max-width: 440px;
  padding: 40px;
  color: #fff;
  border-radius: 15px;
  background: #115694;
  margin: 0 auto;
}
@media only screen and (max-width: 767px) {
  .modal__block {
    padding: 30px 20px;
  }
}
.modal__block.--green {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  color: #242424;
  border-radius: 15px;
  background: #99CC33;
}
.modal__block.--green .h2 {
  color: #242424;
}
@media only screen and (max-width: 767px) {
  .modal__block.--green .modal__text {
    max-width: 140px;
  }
}
.modal__block.--big {
  max-width: 716px;
}
.modal__close {
  position: absolute;
  z-index: 1;
  cursor: pointer;
  top: 24px;
  right: 24px;
}
@media only screen and (max-width: 767px) {
  .modal__close {
    top: 16px;
    right: 16px;
  }
}
.modal__ico {
  height: 35px;
  margin-bottom: 40px;
}
@media only screen and (max-width: 767px) {
  .modal__ico {
    height: 25px;
    margin-bottom: 30px;
  }
}
.modal__ico img, .modal__ico svg {
  -o-object-fit: contain;
  object-fit: contain;
  width: 100%;
  height: 100%;
}
.modal__text {
  line-height: 1.2;
}
.modal__inner {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.modal__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  grid-auto-rows: max-content;
  grid-gap: 15px;
  margin-bottom: 15px;
}
.modal__grid:last-child {
  margin-bottom: 0;
}

.banner {
  position: relative;
  min-height: 580px;
  padding: 120px 0 30px;
  background: url("../images/pic/banner.jpg") no-repeat center center/cover;
}
@media only screen and (max-width: 767px) {
  .banner {
    height: initial;
    padding: 90px 0 20px;
    background: #000 url("../images/pic/banner_mobile.jpg") no-repeat top center/contain;
  }
}
.banner .h1 {
  color: #99CC33;
  margin-bottom: 30px;
}
.banner .h1:last-child {
  margin-bottom: 0;
}
@media only screen and (max-width: 767px) {
  .banner .h1 {
    max-width: 270px;
    margin-bottom: 20px;
  }
}
.banner .wrap {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
}
.banner__inner {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  max-width: 534px;
}
.banner__text {
  margin-bottom: 67px;
}
@media only screen and (max-width: 767px) {
  .banner__text {
    margin-bottom: 400px;
  }
}
.banner__text:last-child {
  margin-bottom: 0;
}
.banner__subtitle {
  max-width: 415px;
  font-size: 18px;
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: #fff;
}
@media only screen and (max-width: 767px) {
  .banner__subtitle {
    max-width: 290px;
    font-size: 18px;
  }
}
.banner__form {
  width: 100%;
  padding: 25px;
  border-radius: 15px;
  border: 1px solid rgba(255, 255, 255, 0.3);
}
.banner__form-text {
  color: #fff;
  font-size: 18px;
  line-height: 1.2;
  margin-bottom: 20px;
}
@media only screen and (max-width: 767px) {
  .banner__form-text {
    max-width: 200px;
  }
}
.banner__form-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  grid-auto-rows: max-content;
  grid-gap: 20px;
  margin-bottom: 20px;
}
@media only screen and (max-width: 767px) {
  .banner__form-grid {
    gap: 8px;
  }
}
.banner__form-footer {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 20px;
}

.page-title {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 20px;
  margin-bottom: 40px;
}
@media only screen and (max-width: 1023px) {
  .page-title {
    align-items: center;
  }
}
.page-title .btn {
  flex: 0 0 auto;
  margin-left: auto;
}
@media only screen and (max-width: 767px) {
  .page-title .btn {
    display: none;
  }
}
.page-title__tag {
  position: relative;
  top: 5px;
  flex: 0 0 280px;
  color: #115694;
  font-size: 13px;
  font-weight: 400;
  line-height: 120%;
}
@media only screen and (max-width: 1023px) {
  .page-title__tag {
    flex: initial;
    width: 100%;
    top: 0;
  }
}
.page-title__center {
  flex: 1 1 auto;
  max-width: 505px;
}
.page-title__subtitle {
  padding-top: 40px;
  line-height: 120%;
}

.page-btn {
  display: flex;
  justify-content: center;
}

.service {
  padding: 80px 0;
}
.service__inner {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  grid-auto-rows: max-content;
  grid-gap: 20px;
  margin-bottom: 20px;
}
.service__inner.--page {
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
}
.service__inner.--page .service__item {
  background: #fff;
}
.service__item {
  display: block;
  padding: 5px;
  border: 1px solid #242424;
  border-radius: 15px;
  height: 320px;
  background: #f1f1f1;
  transition: 0.3s;
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
}
@media only screen and (max-width: 767px) {
  .service__item {
    height: initial;
  }
}
.service__item:hover {
  background: #fff;
}
.service__item:hover img {
  transform: scale(1.1);
}
.service__item:hover .service__arrow:before {
  transform: translateX(5px);
  border: 1px solid #242424;
  background: #99CC33 url("../images/ico/arrow.svg") no-repeat center center/10px;
}
.service__img {
  position: relative;
  height: 200px;
  border-radius: 10px;
  overflow: hidden;
}
@media only screen and (max-width: 767px) {
  .service__img {
    height: 160px;
  }
}
.service__img:before {
  content: "";
  display: block;
  position: absolute;
  z-index: 1;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 70px;
  background: linear-gradient(180deg, rgba(17, 86, 148, 0) 0%, rgba(17, 86, 148, 0.7) 100%);
  pointer-events: none;
}
.service__img img {
  -o-object-fit: cover;
  object-fit: cover;
  width: 100%;
  height: 100%;
  transition: 0.3s;
}
.service__footer {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: 12px;
  height: 110px;
  padding: 20px 20px 0;
}
@media only screen and (max-width: 767px) {
  .service__footer {
    height: 95px;
    padding-top: 14px;
  }
}
.service__title {
  font-size: 18px;
  line-height: 110%;
  letter-spacing: -0.02em;
  min-height: calc(1.1em * 2);
}
@media only screen and (max-width: 767px) {
  .service__title {
    font-size: 15px;
  }
}
.service__price {
  line-height: 120%;
}
.service__arrow {
  position: absolute;
  z-index: 1;
  bottom: 20px;
  right: 20px;
  width: 20px;
  height: 20px;
  border: 1px solid #242424;
  border-radius: 50%;
}
.service__arrow:before {
  content: "";
  display: block;
  position: absolute;
  top: -1px;
  left: -1px;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  border: 1px solid transparent;
  background: url("../images/ico/arrow.svg") no-repeat center center/10px;
  pointer-events: none;
  transition: 0.3s;
}

/* Типовые карточки блока «Откройте для себя полный спектр…» (related) —
   глобальный стиль по Figma 290-6364: карта 300px, фото сверху, заголовок
   в одну строку (без резерва на 2 строки), цена сразу под заголовком (не у низа). */
.related-block .service__item {
  height: 300px;
}
.related-block .service__footer {
  height: 100px;
}
.related-block .service__title {
  min-height: 0;
}
.related-block .service__img img {
  object-position: top;
}
@media only screen and (max-width: 767px) {
  .related-block .service__item {
    height: initial;
  }
  .related-block .service__footer {
    height: auto;
  }
}

.about .h2 {
  max-width: 390px;
  color: #fff;
}
.about__inner {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(50%, 1fr));
  grid-auto-rows: max-content;
  height: 510px;
}
@media only screen and (max-width: 767px) {
  .about__inner {
    grid-template-columns: repeat(auto-fill, minmax(100%, 1fr));
    height: initial;
  }
}
.about__info {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 20px;
  height: 100%;
  padding: 25px;
  color: #fff;
  border-radius: 15px;
  background: url("../images/pic/bg.jpg") no-repeat center center/cover;
  overflow: hidden;
}
@media only screen and (max-width: 767px) {
  .about__info {
    min-height: 325px;
  }
}
.about__tag {
  line-height: 120%;
  margin-bottom: 15px;
}
.about__arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: #99CC33;
  transform: rotate(-45deg);
  margin-bottom: 15px;
}
@media only screen and (max-width: 767px) {
  .about__arrow {
    margin-bottom: 10px;
  }
}
.about__text {
  max-width: 390px;
  line-height: 120%;
  color: #fff;
}
.about__text span {
  color: #99CC33;
}
.about__slider {
  position: relative;
  border-radius: 15px;
  overflow: hidden;
}
.about__slider:before {
  content: "";
  display: block;
  position: absolute;
  z-index: 2;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 80%;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.1) 55%, rgba(0, 0, 0, 0.75) 75%, #000 100%);
  pointer-events: none;
}
@media only screen and (max-width: 767px) {
  .about__slider:before {
    height: 100%;
    background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.1) 3%, rgba(0, 0, 0, 0.75) 40%, #000 100%);
  }
}
.about__slider .swiper-slide {
  height: 510px;
}
@media only screen and (max-width: 767px) {
  .about__slider .swiper-slide {
    height: 430px;
  }
}
.about__slider .swiper-slide img {
  -o-object-fit: cover;
  object-fit: cover;
  width: 100%;
  height: 100%;
}
.about__slider-inner {
  position: absolute;
  z-index: 3;
  bottom: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  grid-auto-rows: max-content;
  grid-gap: 20px;
  width: 100%;
  padding: 25px;
}
@media only screen and (max-width: 767px) {
  .about__slider-inner {
    gap: 30px;
  }
}
.about__slider-inner .about__text {
  max-width: 210px;
}

.projects__inner {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 15px;
}
@media only screen and (max-width: 767px) {
  .projects__inner {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
    grid-auto-rows: max-content;
    grid-gap: 15px;
    margin-bottom: 30px;
  }
}
.projects__inner.--simple {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  grid-auto-rows: max-content;
  grid-gap: 15px;
}
.projects__inner.--simple .projects__item {
  grid-column: initial;
}
.projects__item {
  grid-column: span 2;
  display: block;
  padding: 5px;
  border: 1px solid #242424;
  border-radius: 15px;
  min-height: 380px;
  background: #fff;
  transition: 0.3s;
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
}
@media only screen and (max-width: 767px) {
  .projects__item {
    grid-column: initial;
    min-height: initial;
  }
}
.projects__item:nth-child(-n+2) {
  grid-column: span 3;
}
@media only screen and (max-width: 767px) {
  .projects__item:nth-child(-n+2) {
    grid-column: initial;
  }
}
.projects__item:hover {
  background: #F1F1F1;
}
.projects__item:hover img {
  transform: scale(1.1);
}
.projects__item:hover .service__arrow:before {
  transform: translateX(5px);
  border: 1px solid #242424;
  background: #99CC33 url("../images/ico/arrow.svg") no-repeat center center/10px;
}
.projects__img {
  position: relative;
  height: 250px;
  border-radius: 10px;
  overflow: hidden;
}
@media only screen and (max-width: 767px) {
  .projects__img {
    height: 200px;
  }
}
.projects__img:before {
  content: "";
  display: block;
  position: absolute;
  z-index: 1;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 70px;
  background: linear-gradient(180deg, rgba(17, 86, 148, 0) 0%, rgba(17, 86, 148, 0.7) 100%);
  pointer-events: none;
}
.projects__img img {
  -o-object-fit: cover;
  object-fit: cover;
  width: 100%;
  height: 100%;
  transition: 0.3s;
}
.projects__footer {
  gap: 12px;
  min-height: 120px;
  padding: 20px;
}
@media only screen and (max-width: 767px) {
  .projects__footer {
    min-height: initial;
    padding: 15px;
  }
}
.projects__title {
  font-size: 18px;
  line-height: 110%;
  letter-spacing: -0.02em;
  margin-bottom: 10px;
}
@media only screen and (max-width: 767px) {
  .projects__title {
    font-size: 15px;
    letter-spacing: normal;
  }
}
.projects__title:last-child {
  margin-bottom: 0;
}
.projects__text {
  line-height: 120%;
}

.brands {
  overflow-x: hidden;
}
.brands .swiper {
  padding: 0 20px;
}
.brands__item {
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 15px;
  width: 168px;
  height: 60px;
  padding: 5px;
  background: #f1f1f1;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
}
@media only screen and (max-width: 767px) {
  .brands__item {
    width: 120px;
    height: 40px;
    padding: 5px 10px;
  }
}
.brands__item img {
  -o-object-fit: contain;
  object-fit: contain;
  width: auto;
  height: auto;
}
@media only screen and (max-width: 767px) {
  .brands__item img {
    width: 100%;
    height: 100%;
  }
}

.form .h2 {
  margin-bottom: 80px;
}
@media only screen and (max-width: 767px) {
  .form .h2 {
    max-width: 170px;
    margin-bottom: 50px;
  }
}
.form .h2:last-child {
  margin-bottom: 0;
}
.form .field,
.form .textarea {
  color: rgba(36, 36, 36, 0.5);
  border-bottom: 1px solid rgba(36, 36, 36, 0.3);
}
.form .field::-moz-placeholder, .form .textarea::-moz-placeholder {
  color: inherit;
  font-size: inherit;
  font-family: inherit;
}
.form .field::placeholder,
.form .textarea::placeholder {
  color: inherit;
  font-size: inherit;
  font-family: inherit;
}
.form .checkbox {
  margin-bottom: 20px;
}
.form .checkbox__item {
  color: #242424;
}
.form .checkbox__item:before {
  border: 1px solid rgba(36, 36, 36, 0.3);
}
.form__inner {
  padding: 25px;
  border-radius: 15px;
  background: url("../images/pic/bg2.jpg") no-repeat center center/cover;
  overflow: hidden;
}
.form__form {
  max-width: 510px;
}
.form__form-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  grid-auto-rows: max-content;
  grid-gap: 20px;
  margin-bottom: 20px;
}
@media only screen and (max-width: 767px) {
  .form__form-grid {
    gap: 0;
  }
}
.form__footer {
  display: flex;
  flex-wrap: wrap;
  gap: 30px;
  align-items: flex-end;
  justify-content: space-between;
}
.form__social {
  display: flex;
  align-items: center;
  gap: 20px;
}
.form__social-text {
  font-size: 12px;
}
.form__social-inner {
  display: flex;
  align-items: center;
  gap: 5px;
}
@media only screen and (max-width: 767px) {
  .form__social-inner {
    order: -1;
  }
}
.form__social-item {
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
  transition: 0.3s;
}
.form__social-item:hover {
  transform: scale(1.1);
}

.steps__inner {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  grid-auto-rows: max-content;
  grid-gap: 20px;
}
@media only screen and (max-width: 767px) {
  .steps__inner {
    position: relative;
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    gap: 15px;
    width: calc(100% + 40px);
    margin-left: -20px;
    padding: 0 20px;
  }
  .steps__inner::-webkit-scrollbar {
    display: none;
  }
}
.steps__item {
  min-height: 172px;
  padding: 25px;
  border: 1px solid #242424;
  border-radius: 15px;
}
@media only screen and (max-width: 767px) {
  .steps__item {
    flex: 0 0 auto;
    width: 260px;
    min-height: 160px;
    padding: 20px 15px;
    scroll-snap-align: start;
    scroll-snap-stop: always;
  }
}
.steps__icon {
  height: 35px;
  margin-bottom: 25px;
}
.steps__title {
  font-size: 18px;
  line-height: 110%;
  letter-spacing: -0.02em;
  margin-bottom: 10px;
}
@media only screen and (max-width: 767px) {
  .steps__title {
    font-size: 15px;
  }
}
.steps__text {
  line-height: 1.2;
}

.reviews__inner {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-template-rows: repeat(3, 1fr);
  gap: 15px;
}
@media only screen and (max-width: 1023px) {
  .reviews__inner {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    grid-template-rows: initial;
    grid-auto-rows: max-content;
  }
}
.reviews__item:nth-child(1) {
  grid-area: 1/1/2/2;
}
.reviews__item:nth-child(2) {
  grid-area: 1/2/2/3;
}
.reviews__item:nth-child(3) {
  grid-area: 1/4/2/5;
}
.reviews__item:nth-child(4) {
  grid-area: 2/2/3/3;
}
.reviews__item:nth-child(5) {
  grid-area: 2/3/3/4;
}
.reviews__item:nth-child(6) {
  grid-area: 3/3/4/4;
}
.reviews__item:nth-child(7) {
  grid-area: 3/4/4/5;
}
.reviews__item:nth-child(8) {
  grid-area: 3/1/4/2;
}
@media only screen and (max-width: 1023px) {
  .reviews__item {
    grid-area: initial !important;
  }
}
.reviews__info {
  padding: 25px;
  border: 1px solid #242424;
  border-radius: 15px;
  min-height: 190px;
}
@media only screen and (max-width: 767px) {
  .reviews__info {
    min-height: initial;
    height: initial;
    padding: 20px;
  }
}
.reviews__ico {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  margin-bottom: 20px;
}
.reviews__text {
  height: 64px;
  line-height: 1.2;
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
  margin-bottom: 20px;
}
@media only screen and (max-width: 767px) {
  .reviews__text {
    height: initial;
  }
}
.reviews__company {
  line-height: 1.2;
  color: #115694;
  font-style: italic;
}
.reviews__scan {
  display: flex;
  align-items: center;
  gap: 10px;
  height: 66px;
  padding: 25px;
  border: 1px solid #242424;
  border-radius: 15px;
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
  margin-top: -1px;
  transition: 0.3s;
}
.reviews__scan:hover {
  background: #f1f1f1;
}
@media only screen and (max-width: 767px) {
  .reviews__scan {
    height: 53px;
  }
}
.reviews__scan-ico {
  width: 14px;
  height: 10px;
}
.reviews__scan-text {
  line-height: 1.2;
}
.reviews__add {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  border-radius: 15px;
  height: 100%;
  background: #f1f1f1;
  transition: 0.3s;
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
}
@media only screen and (max-width: 767px) {
  .reviews__add {
    height: 220px;
  }
}
.reviews__add:hover {
  color: #fff;
  background: #115694;
}
.reviews__add:hover .reviews__add-text {
  color: #fff;
}
.reviews__add:hover path {
  fill: #fff;
  fill-opacity: 1;
}
.reviews__add-text {
  color: rgba(36, 36, 36, 0.5);
}
.reviews__img {
  border-radius: 15px;
  overflow: hidden;
}
@media only screen and (max-width: 1023px) {
  .reviews__img {
    height: 266px;
  }
}
@media only screen and (max-width: 767px) {
  .reviews__img {
    height: 220px;
  }
}
.reviews__img img {
  -o-object-fit: cover;
  object-fit: cover;
  -o-object-position: top center;
  object-position: top center;
  width: 100%;
  height: 100%;
}

.experience p {
  line-height: 120%;
  color: #242424;
  margin-bottom: 15px;
}
.experience p:last-child {
  margin-bottom: 0;
}
.experience__inner {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  grid-auto-rows: max-content;
  grid-gap: 15px;
}
@media only screen and (max-width: 767px) {
  .experience__inner {
    position: relative;
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    width: calc(100% + 40px);
    padding: 0 20px;
    margin-left: -20px;
  }
  .experience__inner::-webkit-scrollbar {
    display: none;
  }
}
.experience__item:nth-child(2) .experience__header {
  color: #242424;
}
@media only screen and (max-width: 767px) {
  .experience__item {
    flex: 0 0 auto;
    width: 260px;
    scroll-snap-align: start;
    scroll-snap-stop: always;
  }
}
.experience__header {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  height: 145px;
  padding: 25px;
  color: #fff;
  border-radius: 15px;
  background-size: cover;
  background-position: top center;
  background-repeat: no-repeat;
  overflow: hidden;
}
@media only screen and (max-width: 767px) {
  .experience__header {
    height: 118px;
    padding: 20px;
  }
}
.experience__title {
  font-size: 18px;
  line-height: 120%;
  letter-spacing: -0.02em;
}
@media only screen and (max-width: 767px) {
  .experience__title {
    font-size: 15px;
  }
}
.experience__info {
  position: relative;
  height: calc(100% - 145px);
  padding: 25px 25px 65px 25px;
  border-radius: 15px;
  background: #f1f1f1;
}
@media only screen and (max-width: 767px) {
  .experience__info {
    padding: 20px 18px 85px 18px;
  }
}
.experience__link {
  position: absolute;
  z-index: 1;
  bottom: 25px;
  left: 25px;
  display: flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
}
@media only screen and (max-width: 767px) {
  .experience__link {
    left: 20px;
  }
}
.experience__link:hover .experience__link-ico:before {
  transform: translateX(5px);
  border: 1px solid #242424;
  background: #99CC33 url("../images/ico/arrow.svg") no-repeat center center/10px;
}
.experience__link:hover .experience__link-text {
  color: rgba(36, 36, 36, 0.5);
}
.experience__link-text {
  line-height: 120%;
  transition: 0.3s;
}
.experience__link-ico {
  position: relative;
  width: 20px;
  height: 20px;
  border: 1px solid #242424;
  border-radius: 50%;
}
.experience__link-ico:before {
  content: "";
  display: block;
  position: absolute;
  top: -1px;
  left: -1px;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  border: 1px solid transparent;
  background: url("../images/ico/arrow.svg") no-repeat center center/10px;
  pointer-events: none;
  transition: 0.3s;
}

.map iframe {
  width: 100%;
  height: 500px;
  border-radius: 15px;
  border: none;
}
@media only screen and (max-width: 767px) {
  .map iframe {
    height: 280px;
  }
}

.recall__inner {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 15px;
  padding: 25px;
  border-radius: 15px;
  background-size: cover;
  background-position: top center;
  background-repeat: no-repeat;
  overflow: hidden;
}
@media only screen and (max-width: 767px) {
  .recall__inner {
    flex-wrap: wrap;
    gap: 0;
  }
}
.recall__inner .h2 {
  max-width: 425px;
}
@media only screen and (max-width: 767px) {
  .recall__inner .h2 {
    max-width: 100%;
    margin-bottom: 30px;
  }
}
.recall__info {
  width: 50%;
}
@media only screen and (max-width: 767px) {
  .recall__info {
    width: 100%;
  }
}
.recall__text {
  max-width: 470px;
  line-height: 130%;
  margin-bottom: 40px;
}
@media only screen and (max-width: 767px) {
  .recall__text {
    max-width: 100%;
    margin-bottom: 15px;
  }
}

.banner-page .h1, .banner-page .h2 {
  color: #99CC33;
}
.banner-page .h2 {
  max-width: 380px;
}
.banner-page__inner {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(400px, 1fr));
  grid-auto-rows: max-content;
  grid-gap: 15px;
}
@media only screen and (max-width: 767px) {
  .banner-page__inner {
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 10px;
  }
}
.banner-page__info {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 30px;
  min-height: 480px;
  padding: 35px;
  border-radius: 15px;
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
}
@media only screen and (max-width: 767px) {
  .banner-page__info {
    min-height: initial;
    padding: 20px;
  }
}
.banner-page__info .btn:hover {
  color: #242424;
  background: #99CC33;
}
.banner-page__text {
  font-size: 18px;
  line-height: 110%;
  letter-spacing: -0.02em;
  color: #fff;
  margin-bottom: 20px;
}
.banner-page__text:last-child {
  margin-bottom: 0;
}
.banner-page__actions {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  grid-auto-rows: max-content;
  grid-gap: 15px;
}
.banner-page__form {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 35px;
  border-radius: 15px;
  overflow: hidden;
}
@media only screen and (max-width: 767px) {
  .banner-page__form {
    padding: 250px 20px 20px 20px;
  }
}
.banner-page__img {
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  z-index: -1;
  width: 100%;
}
@media only screen and (max-width: 767px) {
  .banner-page__img.--desk {
    display: none;
  }
}
@media only screen and (min-width: 768px) {
  .banner-page__img.--mobile {
    display: none;
  }
}
.banner-page__img img {
  -o-object-fit: cover;
  object-fit: cover;
  -o-object-position: top center;
  object-position: top center;
  width: 100%;
  height: 100%;
}
.banner-page__bottom.--list .list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  grid-auto-rows: max-content;
  grid-gap: 0 30px;
}
.banner-page__bottom.--list .list li {
  max-width: 240px;
}
@media only screen and (max-width: 767px) {
  .banner-page__bottom.--list .list li {
    max-width: 100%;
  }
}

.advantages__inner {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-template-rows: repeat(2, 1fr);
  gap: 15px;
}
@media only screen and (max-width: 1023px) {
  .advantages__inner {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
    grid-auto-rows: max-content;
    grid-gap: 15px;
  }
}
@media only screen and (max-width: 767px) {
  .advantages__inner {
    position: relative;
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    gap: 15px;
    width: calc(100% + 40px);
    margin-left: -20px;
    padding: 0 20px;
  }
  .advantages__inner::-webkit-scrollbar {
    display: none;
  }
}
.advantages__item {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 15px;
  padding: 70px 25px 25px;
  border-radius: 15px;
  min-height: 240px;
  background: #f1f1f1;
}
.advantages__item:nth-child(2) {
  grid-column: 3/span 1;
}
@media only screen and (max-width: 1023px) {
  .advantages__item:nth-child(2) {
    grid-column: initial;
  }
}
@media only screen and (max-width: 767px) {
  .advantages__item {
    flex: 0 0 auto;
    scroll-snap-align: start;
    scroll-snap-stop: always;
    width: 260px;
    min-height: initial;
    height: 220px;
    padding: 55px 20px 20px;
  }
}
.advantages__ico {
  position: absolute;
  top: 25px;
  left: 25px;
  height: 35px;
}
@media only screen and (max-width: 767px) {
  .advantages__ico {
    top: 20px;
    left: 20px;
    height: 25px;
  }
}
.advantages__ico img, .advantages__ico svg {
  -o-object-fit: contain;
  object-fit: contain;
  width: 100%;
  height: 100%;
}
.advantages__title {
  font-size: 18px;
  line-height: 1.2;
}
@media only screen and (max-width: 767px) {
  .advantages__title {
    font-size: 15px;
  }
}
.advantages__text {
  line-height: 1.2;
}

.scheme__inner {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-template-rows: repeat(2, 1fr);
  gap: 15px;
}
@media only screen and (max-width: 1023px) {
  .scheme__inner {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
    grid-auto-rows: max-content;
    grid-gap: 15px;
  }
}
@media only screen and (max-width: 767px) {
  .scheme__inner {
    position: relative;
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    gap: 15px;
    width: calc(100% + 40px);
    margin-left: -20px;
    padding: 0 20px;
    margin-bottom: 30px;
  }
  .scheme__inner::-webkit-scrollbar {
    display: none;
  }
}
.scheme__item {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 15px;
  min-height: 174px;
  padding: 25px;
  border-radius: 15px;
  background: #f1f1f1;
}
.scheme__item.--btn {
  align-items: center;
  justify-content: center;
  background: #fff;
}
.scheme__item:nth-child(1) {
  background: #115694;
  color: #fff;
}
.scheme__item:nth-child(3) {
  grid-column: 4;
}
.scheme__item:nth-child(4) {
  grid-area: 2/2/2/3;
}
.scheme__item:nth-child(5) {
  grid-area: 2/3/2/4;
}
.scheme__item:last-child {
  grid-column: 4;
  grid-row: 2;
}
@media only screen and (max-width: 767px) {
  .scheme__item:last-child {
    display: none;
  }
}
@media only screen and (max-width: 1023px) {
  .scheme__item {
    grid-column: initial !important;
    grid-row: initial !important;
  }
}
@media only screen and (max-width: 767px) {
  .scheme__item {
    flex: 0 0 auto;
    scroll-snap-align: start;
    scroll-snap-stop: always;
    width: 260px;
    min-height: initial;
    height: 135px;
    padding: 20px;
  }
}
.scheme__number {
  font-size: 18px;
  color: #99CC33;
}
.scheme__text {
  line-height: 1.3;
}

.promo {
  padding: 80px 0;
  background: #f1f1f1;
}
.promo .h2 {
  margin-bottom: 30px;
}
.promo__inner {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  grid-auto-rows: max-content;
  grid-gap: 40px 15px;
  margin-bottom: 110px;
}
@media only screen and (max-width: 767px) {
  .promo__inner {
    margin-bottom: 80px;
    grid-gap: 30px;
  }
}
.promo__item {
  min-height: 225px;
  border-radius: 15px;
  background-size: cover;
  background-position: top center;
  background-repeat: no-repeat;
}
@media only screen and (max-width: 767px) {
  .promo__item {
    min-height: initial;
  }
  .promo__item:nth-child(3) {
    order: 1;
  }
}
@media only screen and (max-width: 767px) {
  .promo__item.--img {
    height: 190px;
  }
}
.promo__arrow {
  margin-bottom: 15px;
}
.promo__title {
  padding-top: 15px;
  font-size: 18px;
  line-height: 1.2;
  border-top: 1px solid rgba(36, 36, 36, 0.2);
  margin-bottom: 10px;
}
@media only screen and (max-width: 767px) {
  .promo__title {
    font-size: 15px;
  }
}
.promo__text {
  color: rgba(36, 36, 36, 0.6);
  line-height: 1.2;
}
.promo > .wrap > .h2 {
  max-width: 367px;
}
@media only screen and (min-width: 992px) {
  .promo__item:nth-child(1) .promo__title,
  .promo__item:nth-child(5) .promo__title {
    position: relative;
  }
  .promo__item:nth-child(1) .promo__title::after,
  .promo__item:nth-child(5) .promo__title::after {
    content: "";
    position: absolute;
    top: -1px;
    right: -15px;
    width: 15px;
    height: 1px;
    background: rgba(36, 36, 36, 0.2);
  }
}

.offer {
  padding: 80px 0;
  background: #F1F1F1;
}
.offer .h2 {
  margin-bottom: 40px;
}
@media only screen and (max-width: 767px) {
  .offer .h2 {
    margin-bottom: 30px;
  }
}
.offer__item {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(400px, 1fr));
  grid-auto-rows: max-content;
  grid-gap: 30px;
}
@media only screen and (max-width: 767px) {
  .offer__item {
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  }
}
.offer__item.--reverse .offer__item-info {
  order: 2;
}
@media only screen and (max-width: 767px) {
  .offer__item.section {
    margin-bottom: 30px;
  }
}
.offer__item .h2 {
  max-width: 440px;
}
.offer__item-img {
  min-height: 320px;
  border-radius: 15px;
  overflow: hidden;
}
@media only screen and (max-width: 1023px) {
  .offer__item-img {
    order: -1;
    width: 100%;
  }
}
@media only screen and (max-width: 767px) {
  .offer__item-img {
    min-height: 220px;
  }
}
.offer__item-img img {
  -o-object-fit: cover;
  object-fit: cover;
  width: 100%;
  height: 100%;
}
.offer__item-footer {
  margin-bottom: 40px;
}
@media only screen and (max-width: 767px) {
  .offer__item-footer {
    margin-bottom: 30px;
  }
}
.offer__item-footer:last-child {
  margin-bottom: 0;
}
.offer__item-footer__ico {
  margin-bottom: 15px;
}
.offer__item-footer__title {
  font-size: 18px;
  line-height: 110%;
  letter-spacing: -0.02em;
  margin-bottom: 10px;
}
@media only screen and (max-width: 767px) {
  .offer__item-footer__title {
    font-size: 15px;
  }
}
.offer__item-footer__inner {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  grid-auto-rows: max-content;
  grid-gap: 30px;
  padding-top: 15px;
  border-top: 1px solid rgba(36, 36, 36, 0.2);
}
@media only screen and (max-width: 767px) {
  .offer__item-footer__inner {
    gap: 10px;
  }
}
.offer__item-subtitle {
  max-width: 440px;
  line-height: 1.2;
  margin-bottom: 40px;
}
@media only screen and (max-width: 767px) {
  .offer__item-subtitle {
    margin-bottom: 30px;
  }
}
.offer__item-subtitle:last-child {
  margin-bottom: 0;
}
.offer__item-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  grid-auto-rows: max-content;
  grid-gap: 40px 0;
  overflow: hidden;
}
.offer__item-grid__item {
  position: relative;
  padding-top: 15px;
  border-top: 1px solid rgba(36, 36, 36, 0.2);
}
.offer__item-grid__item:last-child:before {
  content: "";
  display: block;
  position: absolute;
  top: -1px;
  left: 100%;
  width: 1000px;
  height: 1px;
  background: rgba(36, 36, 36, 0.2);
  pointer-events: none;
}
.offer__item-grid__number {
  font-size: 18px;
  line-height: 110%;
  letter-spacing: -0.02em;
  color: #99CC33;
  margin-bottom: 15px;
}
@media only screen and (max-width: 767px) {
  .offer__item-grid__number {
    font-size: 15px;
  }
}
.offer__item-grid__text {
  max-width: 160px;
  line-height: 1.2;
}
.offer__title {
  font-size: 18px;
  line-height: 110%;
  letter-spacing: -0.02em;
}
@media only screen and (max-width: 767px) {
  .offer__title {
    font-size: 15px;
  }
}
.offer__text {
  max-width: 240px;
  font-size: 13px;
  line-height: 120%;
  color: rgba(36, 36, 36, 0.6);
  margin-bottom: 15px;
}
@media only screen and (max-width: 767px) {
  .offer__text {
    max-width: initial;
  }
}
.offer__text:last-child {
  margin-bottom: 0;
}
.offer__advantages .h2 {
  margin-bottom: 40px;
}
.offer__advantages-inner {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  grid-auto-rows: max-content;
  grid-gap: 15px;
}
@media only screen and (max-width: 767px) {
  .offer__advantages-inner {
    position: relative;
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    gap: 15px;
    width: calc(100% + 40px);
    margin-left: -20px;
    padding: 0 20px;
  }
  .offer__advantages-inner::-webkit-scrollbar {
    display: none;
  }
}
.offer__advantages-item {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 15px;
  padding: 70px 25px 25px;
  border-radius: 15px;
  min-height: 240px;
  background: #fff;
}
@media only screen and (max-width: 767px) {
  .offer__advantages-item {
    flex: 0 0 auto;
    scroll-snap-align: start;
    scroll-snap-stop: always;
    width: 260px;
    min-height: initial;
    height: 220px;
    padding: 55px 20px 20px;
  }
}
.offer__advantages-ico {
  position: absolute;
  top: 25px;
  left: 25px;
  height: 35px;
}
@media only screen and (max-width: 767px) {
  .offer__advantages-ico {
    top: 20px;
    height: 25px;
  }
}
.offer__advantages-ico img, .offer__advantages-ico svg {
  -o-object-fit: contain;
  object-fit: contain;
  width: 100%;
  height: 100%;
}
.offer__advantages-title {
  font-size: 18px;
  line-height: 110%;
  letter-spacing: -0.02em;
}
@media only screen and (max-width: 767px) {
  .offer__advantages-title {
    font-size: 15px;
  }
}
.offer__advantages-text {
  max-width: 190px;
  line-height: 120%;
}
.offer__locations-inner {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  grid-auto-rows: max-content;
  grid-gap: 15px;
}
.offer__locations-item {
  padding: 5px;
  border-radius: 15px;
  border: 1px solid #242424;
  background: #fff;
}
.offer__locations-item.--null {
  border: none;
  background: none;
}
@media only screen and (max-width: 1023px) {
  .offer__locations-item.--null {
    display: none;
  }
}
.offer__locations-img {
  position: relative;
  height: 200px;
  border-radius: 10px;
  overflow: hidden;
}
.offer__locations-img:before {
  content: "";
  display: block;
  position: absolute;
  z-index: 1;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 70px;
  background: linear-gradient(180deg, rgba(17, 86, 148, 0) 0%, rgba(17, 86, 148, 0.7) 100%);
  pointer-events: none;
}
.offer__locations-img img {
  -o-object-fit: cover;
  object-fit: cover;
  width: 100%;
  height: 100%;
}
.offer__locations-text {
  max-width: 230px;
  padding: 20px;
  font-size: 18px;
  line-height: 110%;
  letter-spacing: -0.02em;
}
@media only screen and (max-width: 767px) {
  .offer__locations-text {
    max-width: initial;
    font-size: 15px;
  }
}

.order .h2 {
  max-width: 650px;
  margin-bottom: 40px;
}
.order__inner {
  padding: 25px;
  border-radius: 15px;
  background: url("../images/pic/bg3.jpg") no-repeat center center/cover;
}
@media only screen and (max-width: 767px) {
  .order__inner {
    padding: 20px;
  }
}

.stands__inner {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  grid-auto-rows: max-content;
  grid-gap: 15px;
}
.stands__item {
  padding: 5px;
  border-radius: 15px;
  border: 1px solid #242424;
}
.stands__img {
  position: relative;
  height: 200px;
  border-radius: 10px;
  overflow: hidden;
}
.stands__img:before {
  content: "";
  display: block;
  position: absolute;
  z-index: 1;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 70px;
  background: linear-gradient(180deg, rgba(17, 86, 148, 0) 0%, rgba(17, 86, 148, 0.7) 100%);
  pointer-events: none;
}
.stands__img img {
  -o-object-fit: cover;
  object-fit: cover;
  width: 100%;
  height: 100%;
}
.stands__text {
  padding: 20px;
  font-size: 18px;
  line-height: 1.2;
}
@media only screen and (max-width: 767px) {
  .stands__text {
    font-size: 15px;
  }
}

.tasks__inner {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  grid-auto-rows: max-content;
  grid-gap: 15px;
}
.tasks__item {
  display: flex;
  flex-direction: column;
}
@media only screen and (max-width: 1023px) {
  .tasks__item.--null {
    display: none;
  }
}
.tasks__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  min-height: 70px;
  padding: 15px 25px;
  border-radius: 15px;
  background: #99CC33;
}
@media only screen and (max-width: 767px) {
  .tasks__header {
    min-height: initial;
    padding: 20px;
  }
}
.tasks__header.--blue {
  color: #fff;
  background: #115694;
}
.tasks__title {
  font-size: 18px;
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
@media only screen and (max-width: 767px) {
  .tasks__title {
    font-size: 15px;
  }
}
.tasks__info {
  flex: 1;
  padding: 25px;
  border-radius: 15px;
  background: rgba(36, 36, 36, 0.07);
}
@media only screen and (max-width: 767px) {
  .tasks__info {
    padding: 20px;
  }
}
.tasks__text {
  line-height: 1.2;
  margin-bottom: 15px;
}
.tasks__text:last-child {
  margin-bottom: 0;
}

.help__inner {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  grid-auto-rows: 1fr;
  grid-gap: 15px;
}
@media only screen and (max-width: 767px) {
  .help__inner {
    position: relative;
    grid-auto-rows: max-content;
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    gap: 15px;
    width: calc(100% + 40px);
    margin-left: -20px;
    padding: 0 20px;
    margin-bottom: 30px;
  }
  .help__inner::-webkit-scrollbar {
    display: none;
  }
}
.help__item {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 15px;
  min-height: 190px;
  padding: 25px;
  border-radius: 15px;
  background: #fff;
}
@media only screen and (max-width: 767px) {
  .help__item {
    flex: 0 0 auto;
    scroll-snap-align: start;
    scroll-snap-stop: always;
    width: 260px;
    padding: 20px;
  }
}
.help__item.--null {
  background: none;
}
@media only screen and (max-width: 1023px) {
  .help__item.--null {
    display: none;
  }
}
.help__item.--green {
  background: #99CC33;
}
.help__item.--green .help__text {
  max-width: initial;
}
.help__item.--blue {
  color: #fff;
  background: #115694;
}
.help__item.--blue .help__text {
  max-width: initial;
}
.help__number {
  color: #99CC33;
  font-size: 18px;
}
@media only screen and (max-width: 767px) {
  .help__number {
    font-size: 15px;
  }
}
.help__text {
  font-size: 18px;
  max-width: 160px;
  line-height: 1.2;
}
@media only screen and (max-width: 767px) {
  .help__text {
    font-size: 15px;
  }
}

/* ===== Intro block (фото + текст) ===== */
.intro-block__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr);
  gap: 30px;
  align-items: start;
}
.intro-block--left .intro-block__img {
  order: 1;
}
.intro-block--left .intro-block__content {
  order: 2;
}
.intro-block--right .intro-block__img {
  order: 2;
}
.intro-block--right .intro-block__content {
  order: 1;
}
.intro-block__img {
  width: 100%;
  border-radius: 8px;
  overflow: hidden;
}
.intro-block__img img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.intro-block__title {
  margin: 0 0 16px;
}
.intro-block__text {
  font-size: 16px;
  line-height: 1.5;
  color: #1C1D20;
}
.intro-block__text p {
  margin: 0 0 12px;
}
.intro-block__text p:last-child {
  margin-bottom: 0;
}
@media only screen and (max-width: 767px) {
  .intro-block__inner {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .intro-block--left .intro-block__img,
  .intro-block--right .intro-block__img {
    order: 1;
  }
  .intro-block--left .intro-block__content,
  .intro-block--right .intro-block__content {
    order: 2;
  }
  .intro-block__text {
    font-size: 14px;
  }
}

/* ===== Feature grid (сетка карточек с заливками) ===== */
.feature-grid__inner {
  display: grid;
  gap: 20px;
}
.feature-grid--cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.feature-grid--cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.feature-grid--cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.feature-grid__item {
  padding: 24px;
  border-radius: 8px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-height: 160px;
}
.feature-grid__item--grey  { background: #F1F1F1; color: #1C1D20; }
.feature-grid__item--green { background: #99CC33; color: #1C1D20; }
.feature-grid__item--blue  { background: #1B4778; color: #fff; }
.feature-grid__item--white { background: #fff; color: #1C1D20; border: 1px solid #E5E5E5; }
.feature-grid__icon {
  width: 35px;
  height: 35px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.feature-grid__icon img { max-width: 100%; max-height: 100%; display: block; }
.feature-grid__title {
  font-size: 18px;
  font-weight: 600;
  line-height: 1.25;
}
.feature-grid__text {
  font-size: 14px;
  line-height: 1.45;
}
.feature-grid__text p { margin: 0 0 8px; }
.feature-grid__text p:last-child { margin-bottom: 0; }
@media only screen and (max-width: 991px) {
  .feature-grid--cols-3,
  .feature-grid--cols-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media only screen and (max-width: 600px) {
  .feature-grid--cols-2,
  .feature-grid--cols-3,
  .feature-grid--cols-4 { grid-template-columns: 1fr; }
  .feature-grid__item { padding: 18px; min-height: 0; }
  .feature-grid__title { font-size: 16px; }
  .feature-grid__text  { font-size: 13px; }
}

/* ===== Numbered cards (большие номера 01/02/03) ===== */
.numbered-cards__inner {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}
.numbered-cards__item {
  background: #F1F1F1;
  padding: 24px;
  border-radius: 8px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  position: relative;
}
.numbered-cards__num {
  font-size: 42px;
  font-weight: 700;
  color: #99CC33;
  line-height: 1;
}
.numbered-cards__title {
  font-size: 18px;
  font-weight: 600;
  line-height: 1.25;
  color: #1C1D20;
}
.numbered-cards__text {
  font-size: 14px;
  line-height: 1.45;
  color: #1C1D20;
}
@media only screen and (max-width: 991px) {
  .numbered-cards__inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media only screen and (max-width: 600px) {
  .numbered-cards__inner { grid-template-columns: 1fr; }
  .numbered-cards__num { font-size: 32px; }
}

/* ===== Stats tiles (X+ в зелёных кругах) ===== */
.stats-tiles__inner {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}
.stats-tiles__item {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 16px;
}
.stats-tiles__circle {
  width: 110px;
  height: 110px;
  border-radius: 50%;
  background: #99CC33;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.stats-tiles__value {
  color: #fff;
  font-size: 32px;
  font-weight: 600;
  line-height: 1;
}
.stats-tiles__label {
  font-size: 16px;
  line-height: 1.3;
  color: #1C1D20;
  max-width: 240px;
}
@media only screen and (max-width: 767px) {
  .stats-tiles__inner {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
  }
  .stats-tiles__circle {
    width: 80px;
    height: 80px;
  }
  .stats-tiles__value {
    font-size: 22px;
  }
  .stats-tiles__label {
    font-size: 13px;
  }
}

/* Fancybox: pin lightbox to viewport so tall images (letters/scans) fit fully.
   The theme's ../css/fancybox.css @import 404s, so the base container sizing is
   missing and the container grows to image height, pushing the bottom off-screen. */
.fancybox__container {
  position: fixed;
  inset: 0;
  width: 100vw;
  height: 100dvh;
}
.fancybox__viewport,
.fancybox__slide {
  max-height: 100dvh;
}
.f-panzoom__viewport {
  max-height: 100dvh;
}

/* ---- Mobile home audit fixes (Figma 15-960, 320px frame) ---- */
@media only screen and (max-width: 767px) {
  /* Services: keep Figma aspect at live width 335/347 (photo 270x160, card 280x247) */
  .service__img {
    height: 198px;
  }
  .service__footer {
    height: 96px;
    padding-top: 18px;
  }
  /* About: narrower text containers (Figma h2 217, intro 203) */
  .about .h2 {
    max-width: 217px;
  }
  .about__text {
    max-width: 210px;
  }
  /* Projects: keep Figma aspect at live width 335/347 (photo 270x200, card 280x315) */
  .projects__img {
    height: 248px;
  }
  .projects__item {
    min-height: 390px;
  }
  /* Section headings: narrower so words wrap per Figma */
  .brands .page-title__center .h2 {
    max-width: 243px;
  }
  .steps .page-title__center .h2 {
    max-width: 240px;
  }
  .reviews .page-title__center .h2 {
    max-width: 207px;
  }
  /* CTA: narrower heading + text, line-height 1.2 (Figma 16:1871) */
  .recall__inner .h2 {
    max-width: 244px;
  }
  .recall__text {
    max-width: 240px;
    line-height: 1.2;
  }
}