:root {
  --screensize: 1920;
}

* {
  box-sizing: border-box;
}

html,
body {
  height: 100%;
  overflow-x: clip;
}

#contacts {
  scroll-margin-top: 100px;
}

.services__item-arrow {
    /* transform: rotate(-90deg); */
    transition: transform .25s ease;   /* плавная анимация */
    transform-origin: 50% 50%;
}
.services__item--open .services__item-arrow {
    /* transform: rotate(90deg); */
}

@media (max-width: 960px) {
  #contacts {
      scroll-margin-top: 72px;
  }
}

body {
  margin: 0;
  font-family: "IBM Plex Sans", "IBM Plex Mono";
  background: #fff;
}

body.is-locked {
  overflow: hidden;
}

.burger {
  display: none;
  background: transparent;
  border: 0;
  padding: 0;
}

.mmenu {
  display: none;
}

.audience {
  display: none;
}

/* Внутренняя ширина-макет 1920 */
.inner {
    width: 100%;
    margin: 0 auto;
    padding: 0 calc(40 / var(--screensize) * 100vw);
    display: flex;
}

.topbar {
    position: fixed;
    width: 100%;
    z-index: 120;
    padding-top: calc(26 / var(--screensize) * 100vw);
    padding-bottom: calc(26 / var(--screensize) * 100vw);
    top: 0;
    left: 0;
    right: 0;
    transition: transform .25s ease;
}

.topbar .inner {
    display: grid;
    grid-template-columns: auto 1fr;
    column-gap: calc(281 / var(--screensize) * 100vw);
}

.topbar.is-hidden {
  transform: translateY(-100%);
}

.menu-footer {
  display: none;
}

.logo {
    width: calc(178 / var(--screensize) * 100vw);
}

.logo img {
  display: block;
  width: 100%;
}

.inner-bottom {
  display: grid;
  grid-template-columns: 1fr auto;
  column-gap: calc(152 / var(--screensize) * 100vw);
  border-bottom: 1px solid #D9D9D959;
}

.menu {
  display: flex;
  gap: calc(48 / var(--screensize) * 100vw);
  /* justify-content:center; */
  justify-content: flex-start;
  min-width: 0;
}

.menu a {
    font-size: calc(22 / var(--screensize) * 100vw);
    letter-spacing: 0.8px;
    font-weight: 400;
    text-decoration: none;
    text-transform: uppercase;
    color: #fff;
    white-space: nowrap;
    font-family: 'IBM Plex Mono';
}

.menu-footer {
  display: none;
}

.actions {
  display: flex;
  gap: calc(32 / var(--screensize) * 100vw);
  justify-content: flex-end;
  align-items: baseline;
}

.icon-btn {
    width: calc(32 / var(--screensize) * 100vw);
    height: calc(32 / var(--screensize) * 100vw);
    border: none;
}

.header__icon, .header__icon-sub {
    width: calc(26 / var(--screensize) * 100vw);
    height: calc(18 / var(--screensize) * 100vw);
    position: relative;
    top: calc(2 / var(--screensize) * 100vw);
}

.header__icon-submub {
  width: calc(26 / var(--screensize) * 100vw);
  height: calc(18 / var(--screensize) * 100vw);
  position: relative;
}

.header__icon-sub {
    top: calc(2 / var(--screensize) * 100vw) !important;
}

.btn-ghost {
  border: none;
  color: #fff;
  text-decoration: none;
  font-weight: 400;
  font-size: calc(22 / var(--screensize) * 100vw);
  letter-spacing: 0.8px;
}




/* ======= FAST HERO (уникальный БЭМ-блок) ======= */
.fast-hero {
  position: relative;
  overflow: hidden;
  background: #111537;
  min-height: calc(1067 / var(--screensize) * 100vw);
}
    
/* фон ДНК на всю ширину */
.fast-hero__bg {
  position: absolute;
  inset: 0;
  /* background-image: url('/local/templates/fast/assets/images/consalting_back.png'); */
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  transform: translateZ(0);
}

/* контейнер контента */
.fast-hero__container {
  position: relative;
  z-index: 2;
  width: 100%;
  margin: 0;
  padding: 495px 40px 40px 195px;
  padding: calc(495 / var(--screensize) * 100vw) 40px calc(40 / var(--screensize) * 100vw) 195px;
}

/* хлебные крошки */
.fast-hero__breadcrumbs {
  display: flex;
  align-items: center;
  gap: calc(32 / var(--screensize) * 100vw);
  height: calc(32 / var(--screensize) * 100vw);
  font-size: calc(19 / var(--screensize) * 100vw);
  line-height: 140%;
  font-weight: 400;
  font-family: 'IBM Plex Sans';
  margin: 0 0 calc(40 / var(--screensize) * 100vw);
  white-space: nowrap;
}

.fast-hero__crumb {
  text-decoration: none;
  color: #FFFFFF;
}
.fast-hero__crumb:hover {
  color: #ffffff;
}

.fast-hero__img {
  width: 80%;
}

.fast-hero__crumb_current {
  color: #ffffff;
  opacity: 0.6;
  pointer-events: none;
}

.fast-hero__sep {
  margin-top: calc(6 / var(--screensize) * 100vw);
}

/* заголовок с заливкой картинкой */
.fast-hero__title {
  margin: 0;
  font-weight: 400;
  letter-spacing: calc(-2.5 / var(--screensize) * 100vw);
  text-transform: uppercase;
  line-height: 120%;
  font-size: calc(132 / var(--screensize) * 100vw);
}

.fast-hero__title-fill {
  display: inline-block;
  background-image: url('/local/templates/fast/assets/images/steel_text.png');
  background-size: cover;
  background-repeat: repeat;
  background-position: center;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
}

/* ===== СТИКИ-ПОЛОСА (нижний «сайдбар») ===== */
.subbar {
  position: relative;
  z-index: 130;
  transition: transform .25s ease;
  background: #F2F2F2;
}

.subbar.is-fixed {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
}

.subbar .inner {
  display: grid;
  grid-template-columns: auto 1fr;
  column-gap: calc(281 / var(--screensize) * 100vw);
  padding: calc(26 / var(--screensize) * 100vw) calc(40 / var(--screensize) * 100vw);
}

.subbar .inner>* {
  min-width: 0;
}

.inner-bottom__grey {
  border-bottom: 1px solid #DADADA;
}

.logo--small {
  width: calc(178 / var(--screensize) * 100vw);
  height: calc(50 / var(--screensize) * 100vw);
}

.logo--small img {
  width: 100%;
  height: auto;
  display: block;
}

.subbar .inner-bottom {
  display: grid;
  grid-template-columns: 1fr auto;
  column-gap: calc(152 / var(--screensize) * 100vw);
}

.subbar .menu-grey a {
  color: #000000;
}

.subbar .btn-ghost {
  color: #000000;
}

/* ===== КОНТЕНТ НИЖЕ ===== */
.page-inner {
  flex-direction: column;
}

/* ====================== approach ====================== */
.approach {
  display: flex;
  align-items: flex-start;
  flex-direction: column;
  gap: calc(192 / var(--screensize) * 100vw);
  padding: calc(192 / var(--screensize) * 100vw) calc(195 / var(--screensize) * 100vw) calc(192 / var(--screensize) * 100vw) calc(195 / var(--screensize) * 100vw);
}
.approach__left {
  flex: 0 1 40%;
  display: flex;
  flex-direction: column;
  gap: calc(104 / var(--screensize) * 100vw);
}

.approach__title {
  margin: 0;
}

.approach__title-fill {
  display: inline-block;
  font-weight: 500;
  line-height: 86px;
  font-size: calc(80 / var(--screensize) * 100vw);
  letter-spacing: calc(-3.2 / var(--screensize) * 100vw);
  background-image: url('/local/templates/fast/assets/images/steel_text.png');
  background-size: cover;
  background-position: center;
  background-repeat: repeat;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
}

.approach__text {
    display: grid;
    grid-template-columns: 1fr 1fr;
    flex-direction: row;
    column-gap: calc(179 / var(--screensize) * 100vw);
    /* gap: calc(179 / var(--screensize) * 100vw); */
    max-width: 100%;
    align-items: start;
}

.approach__para {
  margin: 0;
  font-size: calc(24 / var(--screensize) * 100vw);
  line-height: 140%;
  font-weight: 400;
  letter-spacing: -0.36px;
  color: #000;
}

.approach__right {
  width: 100%;
}
.approach__right-banner {
  --bg: #212A6F;
  position: relative;
  display: flex;
  grid-template-columns: 1fr auto;
  padding: calc(80 / var(--screensize) * 100vw) calc(88 / var(--screensize) * 100vw);
  min-height: calc(275 / var(--screensize) * 100vw);
  background: var(--bg);
  color: #fff;
  overflow: hidden;
  flex-direction: column;
  justify-content: center;
}

.down {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
}

.approach__right-title {
  margin: 0 0 calc(40 / var(--screensize) * 100vw);
  font-weight: 500;
  line-height: calc(41 / var(--screensize) * 100vw);
  letter-spacing: calc(-1.5 / var(--screensize) * 100vw);
  font-size: calc(44 / var(--screensize) * 100vw);
}

.approach__right-text {
  margin: 0;
  font-weight: 400;
  line-height: 140%;
  letter-spacing: calc(-0.36 / var(--screensize) * 100vw);
  font-size: calc(24 / var(--screensize) * 100vw);
}

.approach__right-cta {
  display: inline-flex;
  align-items: center;
  border: none;
  text-transform: uppercase;
  letter-spacing: 0.8px;
  font-weight: 400;
  font-family: 'IBM Plex Mono';
  font-size: calc(22 / var(--screensize) * 100vw);
  line-height: calc(16.8 / var(--screensize) * 100vw);
  color: #fff;
  text-decoration: none;
}

.down_img {
  padding-left: 36px;
  height: 19px;
}

/* Фон: самолётик Telegram */
.approach__right-banner::after {
  content: "";
  position: absolute;
  inset: 0;
  background: url(/local/templates/fast/assets/images/icons/telegram_plane.png) no-repeat right 0px center;
  background-size: auto 100%;
  opacity: 1;
  pointer-events: none;
  z-index: 0;
}

.approach__right-banner>* {
  position: relative;
  z-index: 1;
}

.approach__right-cta:active {
  transform: translateY(1px);
}

/* ====== БЛОК services ====== */
.services {
  position: relative;
  color: #fff;
  background:
          linear-gradient(to bottom, rgba(0, 0, 0, 0) 10%, rgba(0, 0, 0, .65) 100%),
          url('/local/templates/fast/assets/images/common.png') center / cover no-repeat;
}

/* Внутренняя сетка */
.services__inner {
  padding: calc(192 / var(--screensize) * 100vw) calc(195 / var(--screensize) * 100vw);
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  /* min-height: calc(1313 / var(--screensize) * 100vw); */
}

/* Левая колонка (заголовок) */
.services__left {
  flex: 0 1 50%;
  display: flex;
}

.services__title {
  font-weight: 500;
  line-height: calc(86 / var(--screensize) * 100vw);
  font-size: calc(80 / var(--screensize) * 100vw);
  letter-spacing: calc(-3.2 / var(--screensize) * 100vw);
  background-image: url(/local/templates/fast/assets/images/steel_text.png);
  background-size: cover;
  background-position: center;
  background-repeat: repeat;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
}

/* Правая колонка (список) */
.services__right {
  flex: 1 1 50%;
  display: flex;
}

.services__list {
  width: 100%;
  display: flex;
  flex-direction: column;
}

/* Пункты списка */
.services__item {
  /* display: flex;
  align-items: center;
  justify-content: space-between;
  gap: calc(24 / var(--screensize) * 100vw);
  padding: calc(65 / var(--screensize) * 100vw) 0;
  border-bottom: 1px solid #FFFFFF26;
  transition: opacity .2s ease, transform .2s ease;
    */ border-bottom: 1px solid #FFFFFF26;
  transition: transform .25s ease;
}

.services__item:first-child {
  border-top: 1px solid #FFFFFF26;
}

.services__head {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: calc(24 / var(--screensize) * 100vw);
  padding: calc(40 / var(--screensize) * 100vw) 0;
  background: transparent;
  border: 0;
  cursor: pointer;
  text-align: left;
}

.services__item-text {
  font-size: calc(32 / var(--screensize) * 100vw);
  line-height: calc(40 / var(--screensize) * 100vw);
  letter-spacing: calc(-1.5 / var(--screensize) * 100vw);
  font-weight: 500;
  font-family: 'IBM Plex Sans';
  color: #fff;
}

.services__item-icon {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: calc(30 / var(--screensize) * 100vw);
  height: calc(23 / var(--screensize) * 100vw);
}

.services__item-arrow {
  height: auto;
  display: block;
}
.services__item--static .services__head,
.services__head[aria-disabled="true"],
.services__head:disabled {
  cursor: default;
}
.services__item--static .services__item-arrow { display: none; }
/* Панель раскрытия — высота анимируется */
.services__panel {
  height: 0;
  overflow: hidden;
  opacity: 0;
  transition: height .3s ease, opacity .2s ease;
  will-change: height;
  /* нижний внутренний паддинг даём на контенте, чтобы не мешать расчёту высоты */
}

.services__item--open .services__panel {
  opacity: 1;
  padding-bottom: calc(20 / var(--screensize) * 100vw);
}

/* Контент внутри панели */
.services__text {
  margin: 0 0 calc(20 / var(--screensize) * 100vw) 0;
  font-size: calc(22 / var(--screensize) * 100vw);
  line-height: 140%;
  color: #fff;
  opacity: .9;
}

.services__more {
  display: inline-flex;
  align-items: center;
  gap: calc(32 / var(--screensize) * 100vw);
  text-decoration: none;
  color: #323FA6;
  /* видно на тёмном фоне */
  font-size: calc(22 / var(--screensize) * 100vw);
  text-transform: uppercase;
}

/* Вращение стрелки при открытии (правый → вниз) */
.services__item--open .services__item-arrow {
  transform: rotate(90deg);
}
/* ============================= Модель работы ========================== */
.workflow {
  position: relative;
  padding: calc(192 / var(--screensize) * 100vw) calc(195 / var(--screensize) * 100vw);
}
/* ГРИД на 3 зоны: левый столбец | ЦЕНТР (ось+точки) | правый столбец */
.workflow__inner {
  display: grid;
  grid-template-columns:
  40% calc(22 / var(--screensize) * 100vw)
  /* ширина столбца оси = диаметр точки */
  1fr;
  row-gap: calc(96 / var(--screensize) * 100vw);
  position: relative;
}

/* строки кладём напрямую в сетку */
.workflow__row {
  display: contents;
}

/* ЛЕВАЯ зона + её отступ вправо */
.workflow__left {
  grid-column: 1;
  display: flex;
  padding-right: calc(249 / var(--screensize) * 100vw);
  /* был spacer-left */
}

/* ПРАВАЯ зона + её отступ влево */
.workflow__right {
  grid-column: 3;
  display: flex;
  align-items: flex-start;
  padding-left: calc(133 / var(--screensize) * 100vw);
  /* был spacer-right */
}

/* центровой столбец с точкой в каждом ряду */
.workflow__axis {
  grid-column: 2;
  position: relative;
  display: grid;
  place-items: center;
  /* центр точки строго по центру столбца */
  z-index: 1;
  /* над вертикальной линией */
}

.workflow__axis::before {
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  width: calc(2 / var(--screensize) * 100vw);
  /* толщина палки */
  top: calc(-48 / var(--screensize) * 100vw);
  /* -row-gap/2 */
  bottom: calc(-48 / var(--screensize) * 100vw);
  /* -row-gap/2 */
  background: #E7E7E7;
  border-radius: 999px;
  z-index: 0;
  /* под точкой */
}

/* первый/последний центр — обрезаем края */
.workflow__axis:first-of-type::before {
  top: 0;
}

.workflow__axis:last-of-type::before {
  bottom: 0;
}

/* ОДНА общая вертикальная линия на всю высоту сетки — в том же столбце */
.workflow__axis-global {
  display: none;
}

/* если <img class="workflow__axis-line"> всё ещё в DOM — прячем */
.workflow__axis-line {
  display: none !important;
}

/* точка */
.workflow__dot {
  width: calc(22 / var(--screensize) * 100vw);
  height: calc(22 / var(--screensize) * 100vw);
}

.workflow__dot-img {
  width: 100%;
  height: 100%;
  display: block;
}

/* типографика как была */
.workflow__title {
  padding-bottom: calc(104 / var(--screensize) * 100vw);
}

.workflow__title-text {
  font-weight: 500;
  line-height: calc(86 / var(--screensize) * 100vw);
  font-size: calc(80 / var(--screensize) * 100vw);
  letter-spacing: calc(-3.2 / var(--screensize) * 100vw);
  background: url(/local/templates/fast/assets/images/steel_text.png) center/cover repeat;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
  margin: 0;
}

.workflow__term {
  font-weight: 500;
  line-height: calc(40 / var(--screensize) * 100vw);
  font-size: calc(32 / var(--screensize) * 100vw);
  letter-spacing: calc(-1.5 / var(--screensize) * 100vw);
}

.workflow__desc {
  line-height: 140%;
  font-weight: 400;
  font-size: calc(24 / var(--screensize) * 100vw);
  letter-spacing: calc(-0.36 / var(--screensize) * 100vw);
}

/* старые спейсеры больше не нужны */
.workflow__spacer {
  display: none !important;
}

/* ====================== SWIPER ===================== */
.projects {
  padding: 0 0 calc(192 / var(--screensize) * 100vw) calc(195 / var(--screensize) * 100vw);
}

.projects__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 0px 195px 0 0;
  margin-bottom: 104px;
}

.projects__title {
  font-weight: 500;
  letter-spacing: calc(-3.2 / var(--screensize) * 100vw);
  font-size: calc(80 / var(--screensize) * 100vw);
  line-height: calc(86 / var(--screensize) * 100vw);
  background-image: url(/local/templates/fast/assets/images/steel_text.png);
  background-size: cover;
  background-position: center;
  background-repeat: repeat;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
  margin: 0;
}

/* Кнопки навигации */
.projects__controls {
  display: flex;
  align-items: center;
  gap: 40px;
}

.projects__btn {
  width: 48px;
  height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: none;
  background: transparent;
  transition: background-color .2s, border-color .2s, opacity .2s, transform .15s;
}

.projects__btn:active {
  transform: translateY(1px);
}

.projects__btn.is-disabled {
  opacity: .35;
  pointer-events: none;
}

.projects__btn-icon {
  width: 36px;
  height: 28px;
  display: block;
}

.projects__slider {
  overflow: hidden;
}

.projects__wrapper {}

.projects__slide {
  height: calc(753 / var(--screensize) * 100vw);
  width: calc(753 / var(--screensize) * 100vw);
}

.project-card {
  position: relative;
  display: flex;
  overflow: hidden;
  height: calc(753 / var(--screensize) * 100vw);
  width: calc(753 / var(--screensize) * 100vw);
}

.project-card__media {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  transition: transform .35s ease;
}
.project-card:hover .project-card__media {
  transform: scale(1.03);
}

.project-card__shadow {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0) 20%, rgba(0, 0, 0, .95) 100%);
  pointer-events: none;
}

.project-card__body {
  position: absolute;
  left: calc(80 / var(--screensize) * 100vw);
  right: calc(80 / var(--screensize) * 100vw);
  bottom: calc(72 / var(--screensize) * 100vw);
  display: flex;
  align-items: flex-end;
}
.project-card__text {
  color: #fff;
  line-height: 140%;
  font-weight: 400;
  font-size: calc(24 / var(--screensize) * 100vw);
  letter-spacing: calc(-0.36 / var(--screensize) * 100vw);
}

/* ===== CONTACT ===== */
.contact {
  position: relative;
  padding: calc(160 / var(--screensize) * 100vw) calc(195 / var(--screensize) * 100vw);
  color: #fff;
  overflow: hidden;
  background: rgba(10, 13, 33, 1);
}

.contact__bg {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
          radial-gradient(1100px 600px at 95% 35%, rgba(120, 140, 200, .30), rgba(120, 140, 200, 0) 60%),
          radial-gradient(800px 420px at 55% 100%, rgba(120, 140, 200, .18), rgba(120, 140, 200, 0) 65%),
          radial-gradient(700px 380px at 0% 0%, rgba(150, 170, 220, .12), rgba(150, 170, 220, 0) 60%),
          linear-gradient(180deg, rgba(10, 13, 33, 1) 0%, rgba(10, 13, 33, .98) 50%, rgba(10, 13, 33, 1) 100%);
  opacity: 1;
}

.contact__inner {
  position: relative;
  display: flex;
  gap: calc(120 / var(--screensize) * 100vw);
  align-items: flex-start;
  z-index: 1;
}

.contact__left {
  flex: 0 0 42%;
  display: flex;
  flex-direction: column;
  gap: calc(148 / var(--screensize) * 100vw);
}

.contact__right {
  flex: 1 1 auto;
  display: flex;
  justify-content: flex-start;
  min-width: 0;
}

.contact__title {
  margin: 0;
  font-family: "IBM Plex Sans";
  font-weight: 500;
  font-size: calc(80 / var(--screensize) * 100vw);
  line-height: calc(86 / var(--screensize) * 100vw);
  background-image: url(/local/templates/fast/assets/images/steel_text.png);
  background-size: cover;
  background-clip: text;
  color: transparent;
}

/* адрес/контакты */
.contact__address {
  display: flex;
  flex-direction: column;
  gap: calc(50 / var(--screensize) * 100vw);
}

.contact__line,
.contact__phone {
  margin: 0;
  font-size: calc(32 / var(--screensize) * 100vw);
  font-weight: 500;
  line-height: calc(42 / var(--screensize) * 100vw);
}

.contact__email {
  font-size: calc(24 / var(--screensize) * 100vw);
  font-weight: 400;
  line-height: 140%;
  margin: 0;
}

.contact__email a {
  color: #fff;
  text-decoration: none;
}

/* форма справа */
.contact__form {
  width: calc(753 / var(--screensize) * 100vw);
  max-width: 100%;
  display: flex;
  flex-direction: column;
  gap: calc(40 / var(--screensize) * 100vw);
}

.contact__field {
  display: flex;
  flex-direction: column;
  gap: calc(10 / var(--screensize) * 100vw);
}

.contact__label {
  font-family: "IBM Plex Mono";
  font-size: calc(22 / var(--screensize) * 100vw);
  font-weight: 400;
  letter-spacing: 0.8px;
  text-transform: uppercase;
}

.contact__input,
.contact__textarea {
  font-family: "IBM Plex Mono";
  font-size: calc(22 / var(--screensize) * 100vw);
  height: calc(58 / var(--screensize) * 100vw);
  font-weight: 400;
  letter-spacing: 0.8px;
  text-transform: uppercase;
  display: block;
  width: 100%;
  color: #fff;
  background: transparent;
  border: 0;
  border-bottom: 1px solid rgba(255, 255, 255, .18);
  outline: none;
}

.contact__input:focus,
.contact__textarea:focus {
  border-bottom-color: rgba(255, 255, 255, .45);
}

.contact__input::placeholder {
  color: #fff;
}

.contact__field--area .contact__input {
  word-break: break-word;
  resize: vertical;
  min-height: calc(130 / var(--screensize) * 100vw);
}

.contact__submit {
  height: calc(64 / var(--screensize) * 100vw);
  border: 0;
  border-radius: 16px;
  background: #323FA6;
  color: #fff;
  font-family: "IBM Plex Mono";
  font-weight: 400;
  font-size: calc(22 / var(--screensize) * 100vw);
  letter-spacing: 0.8px;
  text-transform: uppercase;
  cursor: pointer;
}

/* ===== FOOTER ===== */
.footer {
  position: relative;
  margin: 0;
  /*margin-right: calc(-40 / var(--screensize) * 100vw);*/
  /*margin-left:  calc(-40 / var(--screensize) * 100vw);*/
  background: #0A0D21;
  overflow: hidden;
  color: #fff;
  padding: calc(40 / var(--screensize) * 100vw) 40px;
}

/* строки футера */
.footer__row {
  position: relative;
  z-index: 1;
  padding: 0;
}

.footer__row--top {
  display: grid;
  grid-template-columns: auto 1fr;
  column-gap: calc(164 / var(--screensize) * 100vw);
}
.footer__row--top>* {
  min-width: 0;
}

.footer .inner-bottom.inner-bottom--footer {
  display: grid;
  grid-template-columns: 1fr auto;
  column-gap: calc(152 / var(--screensize) * 100vw);
  border-bottom: 1px solid rgba(255, 255, 255, .15);
}

.footer__row--mid,
.footer__row--bottom {
  display: flex;
  justify-content: space-between;
  gap: calc(40 / var(--screensize) * 100vw);
  padding-top: calc(40 / var(--screensize) * 100vw);
}

.footer__logo {
  width: calc(302 / var(--screensize) * 100vw);
}

.footer__logo img {
  width: 100%;
  height: auto;
  display: block;
}

.footer__address {
  font-family: 'IBM Plex Sans';
  font-size: calc(19 / var(--screensize) * 100vw);
  line-height: 140%;
  font-weight: 400;
}

.footer__contacts {
  display: flex;
  align-items: center;
  gap: calc(40 / var(--screensize) * 100vw);
  font-family: 'IBM Plex Sans';
  font-size: calc(19 / var(--screensize) * 100vw);
  line-height: 140%;
  font-weight: 400;
}

.footer__email {
  color: #fff;
  text-decoration: none;
}

.footer__email:hover {
  text-decoration: underline;
}

.footer__phone {
  white-space: nowrap;
}

.footer__legal {
  font-size: calc(19 / var(--screensize) * 100vw);
  font-weight: 400;
  line-height: 140%;
  color: #767FC4;
  white-space: nowrap;
}

.footer__iso {
  font-size: calc(19 / var(--screensize) * 100vw);
  font-weight: 400;
  line-height: 140%;
  color: #767FC4;
  white-space: nowrap;
}

.footer__policy {
  margin-left: auto;
  text-decoration: none;
  font-size: calc(19 / var(--screensize) * 100vw);
  font-weight: 400;
  line-height: 140%;
  color: #767FC4;
  white-space: nowrap;
}
.footer__policy:hover {
  text-decoration: underline;
}

.contact__agree {
display: flex;
align-items: center;
gap: calc(10 / var(--screensize) * var(--vw));
font-size: calc(22 / var(--screensize) * var(--vw));
}

.contact__agree input {
width: calc(18 / var(--screensize) * var(--vw));
height: calc(18 / var(--screensize) * var(--vw));
}

.footer__row.cookie {
padding-top: calc(10 / var(--screensize) * var(--vw));
}

.cookie__text {
margin-left: auto;
text-decoration: none;
font-size: calc(19 / var(--screensize) * var(--vw));
font-weight: 400;
line-height: 140%;
color: #767FC4;
white-space: nowrap;
}

@media (min-width: 961px) and (max-width: 1440px) {
  :root {
      --screensize: 1440;
  }

  /* базовая сетка/шрифты в шапке */
  .inner .logo img {
    width: calc(178 / var(--screensize) * 100vw);
    height: calc(50 / var(--screensize) * 100vw);
    }

    .logo {
        width: calc(178 / var(--screensize) * 100vw);
    }

  .topbar .inner {
      column-gap: calc(120 / var(--screensize) * 100vw);
  }
  .inner-bottom {
    display: grid;
    grid-template-columns: minmax(0, 1fr) max-content;
    /* gap: calc(99 / var(--screensize) * 100vw);  */
    column-gap: calc(99 / var(--screensize) * 100vw);
    }
    .menu {
        flex: 1 1 auto;
        min-width: 0;
        justify-content: flex-start;
        /* gap: calc(40 / var(--screensize) * 100vw);  */
        gap: calc(40 / var(--screensize) * 100vw);
    }

    .menu a,
    .btn-ghost {
        /* font-size: calc(16 / var(--screensize) * 100vw); */
        font-size: calc(16 / var(--screensize) * 100vw);
        letter-spacing: 0.8;
        white-space: nowrap;
    }
    .icon-btn {
        width: calc(20 / var(--screensize) * 100vw);
        height: calc(20 / var(--screensize) * 100vw);
    }
  .actions {
      gap: calc(16 / var(--screensize) * 100vw);
  }

  .header__icon, .header__icon-sub {
    width: calc(20 / var(--screensize) * 100vw);
    height: calc(20 / var(--screensize) * 100vw);
    top: calc(4 / var(--screensize) * 100vw);
    }

    .header__icon-sub {
        top: calc(2 / var(--screensize) * 100vw) !important;
    }

  /* hero */
  .fast-hero {
      min-height: calc(800 / var(--screensize) * 100vw);
  }

  .fast-hero__container {
      padding: calc(364 / var(--screensize) * 100vw) 40px calc(40 / var(--screensize) * 100vw) calc(149 / var(--screensize) * 100vw);
  }

  .fast-hero__breadcrumbs {
      gap: calc(24 / var(--screensize) * 100vw);
      height: calc(24 / var(--screensize) * 100vw);
      font-size: calc(14 / var(--screensize) * 100vw);
  }
  .hero {
      height: calc(800 / var(--screensize) * 100vw);
  }

  .hero__graphic {
      padding-left: calc(115 / var(--screensize) * 100vw);
      max-width: 81%;
  }
  .hero__wordmark {
      width: calc(437 / var(--screensize) * 100vw);
      height: auto;
  }

  .hero__tagline {
      font-size: calc(24 / var(--screensize) * 100vw);
  }

  /* subbar */
  .subbar .inner {
      display: grid;
      grid-template-columns: auto minmax(0, 1fr);
      column-gap: calc(120 / var(--screensize) * 100vw);
      padding: calc(26 / var(--screensize) * 100vw) calc(40 / var(--screensize) * 100vw);
  }
  .logo--small {
      width: calc(178 / var(--screensize) * 100vw);
      height: auto;
  }

  .subbar .logo--small img {
      width: calc(178 / var(--screensize) * 100vw);
      height: calc(50 / var(--screensize) * 100vw);
  }
  .subbar .menu-grey a,
  .subbar .btn-ghost {
      font-size: calc(16 / var(--screensize) * 100vw);
  }

  .subbar .inner-bottom {
      display: grid;
      grid-template-columns: minmax(0, 1fr) max-content;
      column-gap: calc(99 / var(--screensize) * 100vw);
  }
  .subbar .menu {
      display: flex;
      flex: 1 1 auto;
      min-width: 0;
      gap: calc(40 / var(--screensize) * 100vw);
  }

  .subbar .menu-grey a,
  .subbar .btn-ghost {
      font-size: calc(16 / var(--screensize) * 100vw);
      letter-spacing: calc(0.8 / var(--screensize) * 100vw);
      white-space: nowrap;
  }
  .subbar .actions {
      display: flex;
      gap: calc(16 / var(--screensize) * 100vw);
      justify-content: flex-end;
  }
  .subbar .icon-btn {
      width: calc(20 / var(--screensize) * 100vw);
      height: calc(20 / var(--screensize) * 100vw);
      margin-top: -1px;
  }
  .subbar .header__icon-sub {
      width: calc(20 / var(--screensize) * 100vw);
      height: calc(14 / var(--screensize) * 100vw);
  }

  .fast-hero__title {
      font-size: calc(100 / var(--screensize) * 100vw);
      line-height: calc(95 / var(--screensize) * 100vw);
  }

  /* approach */
  .approach {
      gap: calc(142 / var(--screensize) * 100vw);
      padding: calc(144 / var(--screensize) * 100vw) calc(155 / var(--screensize) * 100vw) calc(144 / var(--screensize) * 100vw) calc(155 / var(--screensize) * 100vw);
  }

  .approach__left {
      gap: calc(80 / var(--screensize) * 100vw);
  }

  .approach__title-fill {
      line-height: calc(64.2 / var(--screensize) * 100vw);
      font-size: calc(60 / var(--screensize) * 100vw);
      letter-spacing: calc(-2.4 / var(--screensize) * 100vw);
  }

  .approach__text {
      gap: calc(139 / var(--screensize) * 100vw);
  }

  .approach__para {
      font-size: calc(18 / var(--screensize) * 100vw);
  }

  .approach__image {
      height: calc(449 / var(--screensize) * 100vw);
  }

  .approach__right-banner {
      padding: calc(56 / var(--screensize) * 100vw) calc(64 / var(--screensize) * 100vw);
      min-height: calc(200 / var(--screensize) * 100vw);
  }

  .approach__right-title {
      margin: 0 0 calc(24 / var(--screensize) * 100vw);
      line-height: calc(38.4 / var(--screensize) * 100vw);
      letter-spacing: calc(-0.64 / var(--screensize) * 100vw);
      font-size: calc(32 / var(--screensize) * 100vw);
  }

  .approach__right-text {
      font-size: calc(18 / var(--screensize) * 100vw);
  }

  .approach__right-cta {
      font-size: calc(16 / var(--screensize) * 100vw);
  }

  .down_img {
      height: calc(14 / var(--screensize) * 100vw);
      padding-left: calc(24 / var(--screensize) * 100vw);
  }

  /* services */
  .services__inner {
      padding: calc(144 / var(--screensize) * 100vw) calc(155 / var(--screensize) * 100vw);
      /* min-height: calc(996 / var(--screensize) * 100vw); */
  }

  .services__title {
      line-height: calc(64.2 / var(--screensize) * 100vw);
      font-size: calc(60 / var(--screensize) * 100vw);
      letter-spacing: calc(-2.4 / var(--screensize) * 100vw);
  }

  .services__item {
      gap: calc(24 / var(--screensize) * 100vw);
  }
  .services__head {
      padding: calc(30 / var(--screensize) * 100vw) 0;
  }

  .services__text {
      margin: 0 0 calc(15 / var(--screensize) * 100vw) 0;
      font-size: calc(18 / var(--screensize) * 100vw);
  }

  .services__more {
      gap: calc(24 / var(--screensize) * 100vw);
      font-size: calc(18 / var(--screensize) * 100vw);
  }
  .services__item-text {
      font-size: calc(24 / var(--screensize) * 100vw);
      line-height: calc(31.2 / var(--screensize) * 100vw);
      letter-spacing: calc(-1.2 / var(--screensize) * 100vw);
  }

  .services__item-arrow {
      width: calc(24 / var(--screensize) * 100vw);
      height: calc(19 / var(--screensize) * 100vw);
  }

  /* workflow */
  .workflow {
      padding: calc(144 / var(--screensize) * 100vw) calc(155 / var(--screensize) * 100vw);
  }

  .workflow__title {
      padding-bottom: calc(80 / var(--screensize) * 100vw);
  }

  .workflow__title-text {
      line-height: calc(64.2 / var(--screensize) * 100vw);
      font-size: calc(60 / var(--screensize) * 100vw);
      letter-spacing: calc(-2.4 / var(--screensize) * 100vw);
  }

  .workflow__row {
      padding: calc(32 / var(--screensize) * 100vw) 0;
  }

  .workflow__term {
      line-height: calc(31.2 / var(--screensize) * 100vw);
      font-size: calc(24 / var(--screensize) * 100vw);
      letter-spacing: calc(-1.2 / var(--screensize) * 100vw);
  }

  .workflow__spacer--left {
      width: calc(184 / var(--screensize) * 100vw);
  }

  .workflow__dot {
      width: calc(22 / var(--screensize) * 100vw);
      height: calc(22 / var(--screensize) * 100vw);
  }

  .workflow__spacer--right {
      width: calc(98 / var(--screensize) * 100vw);
  }

  .workflow__desc {
      font-size: calc(18 / var(--screensize) * 100vw);
  }

  .workflow__axis-global {
      left: calc(651 / var(--screensize) * 100vw);
  }

  .workflow__axis-global .workflow__axis-line {
      height: calc(652 / var(--screensize) * 100vw);
  }

  .workflow__left {
      grid-column: 1;
      display: flex;
      padding-right: calc(60 / var(--screensize) * 100vw);
      align-items: center;
  }

  .workflow__inner {
      row-gap: calc(80 / var(--screensize) * 100vw);
  }

  /* projects */
  .projects {
      padding: 0 0 calc(155 / var(--screensize) * 100vw) calc(144 / var(--screensize) * 100vw);
  }

  .projects__head {
      padding: 0px calc(155 / var(--screensize) * 100vw) 0 0;
      margin-bottom: calc(80 / var(--screensize) * 100vw);
  }

  .projects__title {
      letter-spacing: calc(-2.4 / var(--screensize) * 100vw);
      font-size: calc(60 / var(--screensize) * 100vw);
      line-height: calc(64.2 / var(--screensize) * 100vw);
  }

  .projects__controls {
      gap: calc(24 / var(--screensize) * 100vw);
  }

  .projects__btn {
      width: calc(40 / var(--screensize) * 100vw);
      height: calc(40 / var(--screensize) * 100vw)40px;
  }

  .projects__btn-icon {
      width: calc(30 / var(--screensize) * 100vw);
      height: calc(23 / var(--screensize) * 100vw);
  }

  .projects__slide {
      height: calc(553 / var(--screensize) * 100vw);
      width: calc(553 / var(--screensize) * 100vw);
  }

  .project-card {
      height: calc(553 / var(--screensize) * 100vw);
      width: calc(553 / var(--screensize) * 100vw)
  }

  .project-card__body {
      left: calc(48 / var(--screensize) * 100vw);
      right: calc(48 / var(--screensize) * 100vw);
      bottom: calc(40 / var(--screensize) * 100vw);
  }

  .project-card__text {
      font-size: calc(18 / var(--screensize) * 100vw);
  }

  /* contact */
  .contact {
      padding: calc(120 / var(--screensize) * 100vw) calc(156 / var(--screensize) * 100vw);
  }

  .contact__inner {
      gap: calc(90 / var(--screensize) * 100vw);
  }

  .contact__left {
      gap: calc(117 / var(--screensize) * 100vw);
  }

  .contact__title {
      font-size: calc(60 / var(--screensize) * 100vw);
      line-height: calc(64 / var(--screensize) * 100vw);
  }

  .contact__line,
  .contact__phone {
      font-size: calc(24 / var(--screensize) * 100vw);
      line-height: calc(32 / var(--screensize) * 100vw);
  }

  .contact__email {
      font-size: calc(18 / var(--screensize) * 100vw);
  }

  .contact__form {
      width: calc(552 / var(--screensize) * 100vw);
      gap: calc(32 / var(--screensize) * 100vw);
  }
  .contact__label,
  .contact__input {
      font-size: calc(16 / var(--screensize) * 100vw);
  }

  .contact__submit {
      height: calc(48 / var(--screensize) * 100vw);
      font-size: calc(16 / var(--screensize) * 100vw);
  }

  /* footer */
  .footer {
      padding: calc(40 / var(--screensize) * 100vw);
  }

  .footer__row--top {
      column-gap: calc(120 / var(--screensize) * 100vw);
      display: grid;
      grid-template-columns: auto minmax(0, 1fr);
  }
  .footer .inner-bottom.inner-bottom--footer {
      display: grid;
      grid-template-columns: minmax(0, 1fr) max-content;
      column-gap: calc(99 / var(--screensize) * 100vw);
      border-bottom: 1px solid rgba(255, 255, 255, .15);
  }
  .footer .menu {
      display: flex;
      flex: 1 1 auto;
      min-width: 0;
      justify-content: center;
      gap: calc(40 / var(--screensize) * 100vw);
  }

  .footer .menu a,
  .footer .btn-ghost {
      font-size: calc(16 / var(--screensize) * 100vw);
      letter-spacing: calc(0.8 / var(--screensize) * 100vw);
      white-space: nowrap;
  }
  .footer .actions {
      display: flex;
      gap: calc(16 / var(--screensize) * 100vw);
      justify-content: flex-end;
  }
  .menu-footer {
      display: none;
  }

  .footer .header__icon-sub {
      width: calc(20 / var(--screensize) * 100vw);
      height: calc(14 / var(--screensize) * 100vw);
  }

  .footer__row--mid,
  .footer__row--bottom {
      padding-top: calc(40 / var(--screensize) * 100vw);
  }
  .footer__address,
  .footer__contacts,
  .footer__legal,
  .footer__iso,
  .footer__policy {
      font-size: calc(14 / var(--screensize) * 100vw);
  }

  .contact__agree {
    gap: calc(7 / var(--screensize) * var(--vw));
    font-size: calc(16 / var(--screensize) * var(--vw));
  }

  .cookie__text {
    font-size: calc(14 / var(--screensize) * var(--vw));
  }
}

@media (min-width: 961px) and (max-width: 1090px) {
    .header__icon {
        top: calc(-2 / var(--screensize) * 100vw) !important;
    }
    
    .header__icon-sub {
        top: calc(-2 / var(--screensize) * 100vw) !important;
    }
}


@media (min-width: 431px) and (max-width: 960px) {
  :root {
      --screensize: 960;
  }

  .fast-hero {
      min-height: calc(534 / var(--screensize) * 100vw);
  }

  .fast-hero__container {
      padding: calc(234 / var(--screensize) * 100vw) calc(40 / var(--screensize) * 100vw) calc(40 / var(--screensize) * 100vw) calc(96 / var(--screensize) * 100vw);
  }

  .fast-hero__breadcrumbs {
      gap: calc(24 / var(--screensize) * 100vw);
      height: calc(24 / var(--screensize) * 100vw);
      font-size: calc(14 / var(--screensize) * 100vw);
      margin: 0 0 calc(32 / var(--screensize) * 100vw);
  }

  .fast-hero__img {
      width: 72%;
  }

  .fast-hero__sep {
      width: calc(24 / var(--screensize) * 100vw);
      height: calc(24 / var(--screensize) * 100vw);
      display: flex;
      justify-content: center;
      align-items: center;
      margin-top: 0;
  }
  .topbar {
      padding-top: calc(24 / var(--screensize) * 100vw);
  }

  .inner {
      padding: 0 calc(24 / var(--screensize) * 100vw);
  }

  .inner .logo img {
    width: calc(131 / var(--screensize) * 100vw);
    height: calc(25 / var(--screensize) * 100vw);
    content: url("/local/templates/fast/assets/images/logo_ipad_white.svg");
    }

  .logo {
      width: calc(131 / var(--screensize) * 100vw);
  }

  .topbar .inner {
      display: grid;
      align-items: center;
      column-gap: calc(24 / var(--screensize) * 100vw);
  }

  .menu {
      display: none;
  }

  .btn-ghost {
      display: none;
  }
  .burger {
      display: block;
  }

  .inner-bottom {
      grid-template-columns: auto;
      justify-self: end;
      column-gap: 0;
      border-bottom: none;
  }

  .actions {
      gap: calc(24 / var(--screensize) * 100vw);
      justify-content: flex-end;
  }

  .icon-btn {
      width: calc(24 / var(--screensize) * 100vw);
      height: calc(24 / var(--screensize) * 100vw);
      margin-top: 0;
      padding: 0;
      border: 0;
      background: transparent;
  }

  .header__icon, .burger__icon {
    width: calc(24 / var(--screensize) * 100vw);
    height: calc(24 / var(--screensize) * 100vw);
    top: calc(0 / var(--screensize) * 100vw);
    }

  .hero {
      height: calc(534 / var(--screensize) * 100vw);
  }

  .hero__graphic {
    padding-left: calc(64 / var(--screensize) * 100vw);
    margin-left: calc(120 / var(--screensize) * 100vw);
    margin-top: calc(-22 / var(--screensize) * 100vw);
    max-width: 80%;
    }   

  .hero__right {
      gap: calc(32 / var(--screensize) * 100vw);
  }
  .hero__wordmark {
      width: calc(288 / var(--screensize) * 100vw);
      height: auto;
  }

  .hero__tagline {
      font-size: calc(16 / var(--screensize) * 100vw);
  }

  /* hero */
  .fast-hero {
      min-height: calc(534 / var(--screensize) * 100vw);
  }

  .fast-hero__container {
      padding: calc(228 / var(--screensize) * 100vw) 40px calc(40 / var(--screensize) * 100vw) calc(96 / var(--screensize) * 100vw);
  }

  .fast-hero__breadcrumbs {
      gap: calc(24 / var(--screensize) * 100vw);
      height: calc(24 / var(--screensize) * 100vw);
      font-size: calc(14 / var(--screensize) * 100vw);
  }

  .fast-hero__title {
      font-size: calc(64 / var(--screensize) * 100vw);
      line-height: calc(72 / var(--screensize) * 100vw);
  }

  /* subbar */
  .subbar .inner {
      display: grid;
      grid-template-columns: auto max-content;
      column-gap: calc(24 / var(--screensize) * 100vw);
      align-items: center;
      padding: calc(24 / var(--screensize) * 100vw);
  }
  .logo--small {
      width: calc(131 / var(--screensize) * 100vw);
      height: auto;
  }

  .subbar .logo--small img {
      width: calc(131 / var(--screensize) * 100vw);
      height: calc(25 / var(--screensize) * 100vw);
      content: url(/local/templates/fast/assets/images/logo_ipad_black.svg);
  }

  .subbar .inner-bottom {
      display: grid;
      grid-auto-flow: column;
      grid-auto-columns: max-content;
      column-gap: calc(0 / var(--screensize) * 100vw);
      justify-self: end;
      align-items: center;
      border-bottom: none;
  }
  .subbar .actions {
      display: flex;
      align-items: center;
      gap: calc(24 / var(--screensize) * 100vw);
  }
  .subbar .icon-btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: calc(24 / var(--screensize) * 100vw);
      height: calc(24 / var(--screensize) * 100vw);
      margin: 0;
      padding: 0;
      border: 0;
      background: transparent;
      line-height: 0;
      cursor: pointer;
  }
  .subbar .header__icon, .header__icon-sub
  .subbar .burger__icon {
      width: 100%;
      height: 100%;
      display: block;
  }

  /* approach */
  .approach {
      gap: calc(96 / var(--screensize) * 100vw);
      padding: calc(96 / var(--screensize) * 100vw) calc(102 / var(--screensize) * 100vw) calc(102 / var(--screensize) * 100vw) calc(96 / var(--screensize) * 100vw);
  }

  .approach__left {
      gap: calc(48 / var(--screensize) * 100vw);
  }

  .approach__right {
      flex: 1 1 65%;
  }

  .approach__title-fill {
      line-height: calc(38.4 / var(--screensize) * 100vw);
      font-size: calc(32 / var(--screensize) * 100vw);
      letter-spacing: calc(-0.64 / var(--screensize) * 100vw);
  }

  .approach__text {
      gap: calc(102 / var(--screensize) * 100vw);
  }

  .approach__para {
      font-size: calc(16 / var(--screensize) * 100vw);
      line-height: calc(24 / var(--screensize) * 100vw);
      letter-spacing: calc(-0.32 / var(--screensize) * 100vw);
  }

  .approach__image {
      height: calc(389 / var(--screensize) * 100vw);
  }

  .down {
      gap: calc(12 / var(--screensize) * 100vw);
  }

  .approach__right-banner {
      padding: calc(40 / var(--screensize) * 100vw) calc(48 / var(--screensize) * 100vw);
      min-height: calc(182 / var(--screensize) * 100vw);
  }
  .approach__right-banner .down {
      justify-content: space-between;
      gap: calc(16 / var(--screensize) * 100vw);
      flex-wrap: nowrap;
  }

  .approach__right-title {
      margin: 0 0 calc(24 / var(--screensize) * 100vw);
      line-height: calc(33.6 / var(--screensize) * 100vw);
      letter-spacing: calc(-0.56 / var(--screensize) * 100vw);
      font-size: calc(28 / var(--screensize) * 100vw);
  }

  .approach__right-text {
      font-size: calc(16 / var(--screensize) * 100vw);
      flex: 1 1 auto;
      min-width: 0;
      margin: 0;
  }

  .approach__right-cta {
      font-size: calc(16 / var(--screensize) * 100vw);
      flex: 0 0 auto;
      display: inline-flex;
      align-items: flex-start;
      white-space: nowrap;
      position: relative;
      margin-top: 3px;
  }

  .down_img {
      height: calc(14 / var(--screensize) * 100vw);
      padding-left: calc(27 / var(--screensize) * 100vw);
  }

  /* services */
  .services {
      background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 1%, rgba(0, 0, 0, .65) 80%), url(/local/templates/fast/assets/images/consalting_services.png) center / cover no-repeat;
  }

  .services__inner {
      padding: calc(96 / var(--screensize) * 100vw) calc(102 / var(--screensize) * 100vw);
      /* min-height: calc(744 / var(--screensize) * 100vw); */
  }

  .services__title {
      line-height: calc(38.4 / var(--screensize) * 100vw);
      font-size: calc(32 / var(--screensize) * 100vw);
      letter-spacing: calc(-0.64 / var(--screensize) * 100vw);
  }

  .services__item {
      gap: calc(24 / var(--screensize) * 100vw);
  }
  .services__head {
      padding: calc(20 / var(--screensize) * 100vw) 0;
  }

  .services__text {
      margin: 0 0 calc(15 / var(--screensize) * 100vw) 0;
      font-size: calc(16 / var(--screensize) * 100vw);
  }

  .services__more {
      gap: calc(18 / var(--screensize) * 100vw);
      font-size: calc(16 / var(--screensize) * 100vw);
  }
  .services__item-text {
      font-size: calc(20 / var(--screensize) * 100vw);
      line-height: calc(26 / var(--screensize) * 100vw);
  }

  .services__item-arrow {
      width: calc(24 / var(--screensize) * 100vw);
      height: calc(19 / var(--screensize) * 100vw);
  }

  .services__item-icon {
      width: calc(24 / var(--screensize) * 100vw);
      height: calc(19 / var(--screensize) * 100vw);
  }

  /* workflow */
  .workflow {
      padding: calc(96 / var(--screensize) * 100vw) calc(102 / var(--screensize) * 100vw);
  }

  .workflow__title {
      padding-bottom: calc(48 / var(--screensize) * 100vw);
  }

  .workflow__title-text {
      line-height: calc(38.4 / var(--screensize) * 100vw);
      font-size: calc(32 / var(--screensize) * 100vw);
      letter-spacing: calc(-0.64 / var(--screensize) * 100vw);
  }

  .workflow__row {
      padding: calc(20 / var(--screensize) * 100vw) 0;
  }

  .workflow__term {
      line-height: calc(26 / var(--screensize) * 100vw);
      font-size: calc(20 / var(--screensize) * 100vw);
  }

  .workflow__spacer--left {
      width: calc(24 / var(--screensize) * 100vw);
  }

  .workflow__dot {
      width: calc(16 / var(--screensize) * 100vw);
      height: calc(17 / var(--screensize) * 100vw);
      margin-top: calc(8 / var(--screensize) * 100vw);
  }

  .workflow__spacer--right {
      width: calc(70 / var(--screensize) * 100vw);
  }

  .workflow__desc {
      font-size: calc(16 / var(--screensize) * 100vw);
      letter-spacing: calc(-0.32 / var(--screensize) * 100vw);
      line-height: calc(24 / var(--screensize) * 100vw);
  }
  /* .workflow__axis-global {
      left: calc(368 / var(--screensize) * 100vw);
    } */
  .workflow__axis-global .workflow__axis-line {
      height: calc(610 / var(--screensize) * 100vw);
  }

  .workflow__axis::before {
      display: none;
  }

  .workflow__axis-global {
      display: block;
      position: absolute;
      /* ЧУТЬ НИЖЕ заголовка: подберите значение под макет.
       Ниже 2 варианта: через calc под вашу систему или просто px */
      top: calc(24 / var(--screensize) * 100vw);
      /* ≈24px от начала блока workflow */
      /* bottom до низа секции */
      bottom: 0;
      /* позиция по горизонтали (там, где у вас стоят точки) */
      left: calc(313 / var(--screensize) * 100vw);
      width: calc(2 / var(--screensize) * 100vw);
      /* толщина ~2px */
      background: #E7E7E7;
      border-radius: 999px;
      z-index: 0;
  }

  .workflow__axis {
      z-index: 1;
      position: relative;
  }

  /* старую картинку линии прячем на всякий случай */
  .workflow__axis-line {
      display: none !important;
  }

  .workflow__left {
      display: flex;
      padding-right: calc(0 / var(--screensize) * 100vw);
      justify-content: flex-start;
      align-items: center;
  }

  .workflow__right {
      grid-column: 3;
      display: flex;
      align-items: center;
      padding-left: calc(88 / var(--screensize) * 100vw);
      padding-top: calc(27 / var(--screensize) * 100vw);
      justify-content: flex-end;
  }

  .workflow__inner {
      row-gap: calc(64 / var(--screensize) * 100vw);
  }


  /* projects */
  .projects {
      padding: 0 0 calc(96 / var(--screensize) * 100vw) calc(102 / var(--screensize) * 100vw);
  }

  .projects__head {
      padding: 0px calc(102 / var(--screensize) * 100vw) 0 0;
      margin-bottom: calc(47 / var(--screensize) * 100vw);
  }

  .projects__title {
      letter-spacing: calc(-0.64 / var(--screensize) * 100vw);
      font-size: calc(32 / var(--screensize) * 100vw);
      line-height: calc(38.4 / var(--screensize) * 100vw);
  }

  .projects__controls {
      gap: calc(24 / var(--screensize) * 100vw);
  }

  .projects__btn {
      width: calc(40 / var(--screensize) * 100vw);
      height: calc(40 / var(--screensize) * 100vw);
  }

  .projects__btn-icon {
      width: calc(30 / var(--screensize) * 100vw);
      height: calc(23 / var(--screensize) * 100vw);
  }

  .projects__slide {
      height: calc(444 / var(--screensize) * 100vw);
      width: calc(444 / var(--screensize) * 100vw);
  }

  .project-card {
      height: calc(444 / var(--screensize) * 100vw);
      width: calc(444 / var(--screensize) * 100vw);
  }

  .project-card__body {
      left: calc(40 / var(--screensize) * 100vw);
      right: calc(40 / var(--screensize) * 100vw);
      bottom: calc(32 / var(--screensize) * 100vw);
  }

  .project-card__text {
      font-size: calc(16 / var(--screensize) * 100vw);
  }

  /* contact */
  .contact {
      padding: calc(80 / var(--screensize) * 100vw) calc(102 / var(--screensize) * 100vw);
  }

  .contact__input,
  .contact__textarea {
      height: calc(42 / var(--screensize) * 100vw);
  }

  .contact__field--area .contact__input {
      height: calc(98 / var(--screensize) * 100vw);
  }

  .contact__inner {
      gap: calc(72 / var(--screensize) * 100vw);
  }

  .contact__left {
      gap: calc(252 / var(--screensize) * 100vw);
  }

  .contact__title {
      font-size: calc(32 / var(--screensize) * 100vw);
      line-height: calc(38.4 / var(--screensize) * 100vw);
      letter-spacing: -0.64px;
  }

  .contact__address {
      gap: calc(24 / var(--screensize) * 100vw);
  }

  .contact__line,
  .contact__phone {
      font-size: calc(20 / var(--screensize) * 100vw);
      line-height: calc(26 / var(--screensize) * 100vw);
  }

  .contact__email {
      font-size: calc(16 / var(--screensize) * 100vw);
  }

  .contact__form {
      width: calc(366 / var(--screensize) * 100vw);
      gap: calc(32 / var(--screensize) * 100vw);
  }
  .contact__label,
  .contact__input {
      font-size: calc(16 / var(--screensize) * 100vw);
  }

  .contact__submit {
      height: calc(48 / var(--screensize) * 100vw);
      font-size: calc(16 / var(--screensize) * 100vw);
  }

  /* footer */
  .inner-bottom--footer .menu {
      display: grid;
      grid-auto-flow: column;
      grid-auto-columns: 1fr;
      align-items: center;
      width: 100%;
      min-width: 0;
  }
  .footer {
      /*margin-left:  calc(-24 / var(--screensize) * 100vw);*/
      /*margin-right: calc(-24 / var(--screensize) * 100vw);*/
  }
  .menu-footer {
      display: block;
  }

  .inner-bottom--footer .menu a {
      font-size: calc(14 / var(--screensize) * 100vw);
      white-space: nowrap;
      min-width: 0;
      text-align: center;
  }

  .inner-bottom--footer .actions {
      display: none;
  }

  .footer {
      padding: calc(64 / var(--screensize) * 100vw) 0 calc(24 / var(--screensize) * 100vw) 0;
  }

  .footer__row--top {
      grid-template-columns: 1fr;
      column-gap: calc(120 / var(--screensize) * 100vw);
  }

  .footer .inner-bottom.inner-bottom--footer {
      grid-template-columns: 1fr;
      row-gap: calc(32 / var(--screensize) * 100vw);
      justify-items: stretch;
  }

  .footer__logo {
      width: calc(194 / var(--screensize) * 100vw) !important;
      height: calc(54 / var(--screensize) * 100vw) !important;
      margin-bottom: calc(48 / var(--screensize) * 100vw);
  }

  .footer__logo img {
      width: calc(194 / var(--screensize) * 100vw) !important;
      height: calc(54 / var(--screensize) * 100vw) !important;
  }

  .footer .menu {
      flex-direction: row !important;
      align-items: center;
      /* width: calc(912 / var(--screensize) * 100vw);
      gap: calc(56 / var(--screensize) * 100vw); */
  }

  .footer .inner-bottom.inner-bottom--footer {
      grid-template-columns: 1fr;
      justify-items: stretch;
      border-bottom: none;
  }
  .footer .header__icon {
      width: calc(20 / var(--screensize) * 100vw);
      height: calc(14 / var(--screensize) * 100vw);
  }

  .footer__row--mid,
  .footer__row--bottom {
      padding-top: calc(32 / var(--screensize) * 100vw);
  }
  .footer__address,
  .footer__contacts,
  .footer__legal,
  .footer__iso,
  .footer__policy {
      font-size: calc(12 / var(--screensize) * 100vw);
  }

  .footer__address,
  .footer__contacts {
      opacity: 0.6;
  }

  .menu-footer {
      display: block;
  }

  /* ====== OVERLAY МЕНЮ ====== */
  .mmenu {
      display: block;
      position: fixed;
      inset: 0;
      z-index: 2000;
      /* выше .topbar(120) и .subbar(130) */
      background: #131944;
      color: #fff;
      opacity: 0;
      visibility: hidden;
      transform: translateY(-4%);
      transition: opacity .25s ease, transform .25s ease, visibility 0s linear .25s;
  }
  .mmenu.is-open {
      opacity: 1;
      visibility: visible;
      transform: none;
      transition: opacity .25s ease, transform .25s ease;
  }
  .mmmenu__inner {
      min-height: 100dvh;
      display: grid;
      grid-template-rows: auto 1fr auto;
      /* верх / центр / низ */
      padding: calc(24 / var(--screensize) * 100vw);
  }

  .mmenu__top {
      display: flex;
      align-items: center;
      /* <-- вертикальное центрирование */
      justify-content: space-between;
      /* логотип слева, иконки справа */
      gap: calc(24 / var(--screensize) * 100vw);
  }

  /* верх */
  .mmenu__logo img {
      width: calc(131 / var(--screensize) * 100vw);
      height: auto;
      display: block;
  }
  .mmenu__actions {
      position: static;
      display: flex;
      align-items: center;
      gap: calc(24 / var(--screensize) * 100vw);
  }

  /* центр */
  .mmenu__nav {
      align-self: center;
      justify-self: center;
      display: flex;
      flex-direction: column;
      gap: calc(48 / var(--screensize) * 100vw);
      text-align: center;
  }
  .mmenu__nav a {
      font-family: 'IBM Plex Mono';
      text-transform: uppercase;
      letter-spacing: .8px;
      text-decoration: none;
      color: #fff;
      font-size: calc(16 / var(--screensize) * 100vw);
  }

  /* низ */
  .mmenu__footer {
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: calc(24 / var(--screensize) * 100vw);
      opacity: .85;
  }
  .mmenu__footer .footer__address {
      margin: 0;
  }

  .mmenu__footer .footer__contacts {
      display: flex;
      gap: calc(40 / var(--screensize) * 100vw);
  }

  .mmenu__footer a {
      color: #fff;
      text-decoration: none;
  }

  /* небольшая подстраховка размеров иконок */
  .mmenu .icon-btn {
      width: calc(24 / var(--screensize) * 100vw);
      height: calc(24 / var(--screensize) * 100vw);
      display: inline-flex;
      align-items: center;
      justify-content: center;
      line-height: 0;
  }

  .mmenu .header__icon,
  .mmenu .burger__icon {
      width: 100%;
      height: auto;
      display: block;
  }

  .contact__agree {
    font-size: calc(14 / var(--screensize) * var(--vw));
  }

  .cookie__text {
    font-size: calc(12 / var(--screensize) * var(--vw));
  }
}

@media (max-width: 1090px) and (min-width: 960px) {
  .btn-ghost {
      display: none;
  }
}

@media (min-width: 1px) and (max-width: 430px) {
  :root {
      --screensize: 430;
  }

  .topbar {
      padding-top: calc(35 / var(--screensize) * 100vw);
  }

  .inner {
      padding: 0 calc(32 / var(--screensize) * 100vw);
  }

  .inner .logo img {
      width: calc(94 / var(--screensize) * 100vw);
      height: calc(18 / var(--screensize) * 100vw);
      content: url("/local/templates/fast/assets/images/logo_mobile.png");
  }

  .logo {
      width: calc(94 / var(--screensize) * 100vw);
  }
  .topbar .inner {
      display: grid;
      align-items: center;
      grid-template-columns: auto minmax(0, 1fr);
      column-gap: calc(32 / var(--screensize) * 100vw);
  }
  .topbar .inner>* {
      min-width: 0;
  }

  .menu {
      display: none;
  }

  .btn-ghost {
      display: none;
  }

  .burger {
      display: block;
  }

  .inner-bottom {
      grid-template-columns: auto;
      justify-self: end;
      column-gap: 0;
      border-bottom: none;
  }

  .actions {
      gap: calc(24 / var(--screensize) * 100vw);
      justify-content: flex-end;
  }

  .icon-btn {
      width: calc(24 / var(--screensize) * 100vw);
      height: calc(24 / var(--screensize) * 100vw);
      margin-top: 0;
      padding: 0;
      border: 0;
      background: transparent;
  }

  .header__icon, .burger__icon {
    width: calc(24 / var(--screensize) * 100vw);
    height: calc(24 / var(--screensize) * 100vw);
    top: calc(0 / var(--screensize) * 100vw);
    }

  /* fast hero */
  .fast-hero {
      min-height: calc(700 / var(--screensize) * 100vw);
  }

  .fast-hero__container {
      padding: calc(580 / var(--screensize) * 100vw) calc(32 / var(--screensize) * 100vw) calc(32 / var(--screensize) * 100vw) 32px;
  }

  .fast-hero__breadcrumbs {
      gap: calc(24 / var(--screensize) * 100vw);
      height: calc(24 / var(--screensize) * 100vw);
      font-size: calc(14 / var(--screensize) * 100vw);
      margin: 0 0 calc(32 / var(--screensize) * 100vw);
  }

  .fast-hero__img {
      width: 72%;
  }

  .fast-hero__sep {
      width: calc(24 / var(--screensize) * 100vw);
      height: calc(24 / var(--screensize) * 100vw);
      display: flex;
      justify-content: center;
      align-items: center;
      margin-top: 0;
  }

  .fast-hero__title {
      line-height: calc(40 / var(--screensize) * 100vw);
      font-size: calc(48 / var(--screensize) * 100vw);
  }

  /* hero */
  .fast-hero {
      min-height: calc(700 / var(--screensize) * 100vw);
  }

  .fast-hero__container {
      padding: calc(540 / var(--screensize) * 100vw) 32px calc(32 / var(--screensize) * 100vw) calc(32 / var(--screensize) * 100vw);
  }

  .fast-hero__breadcrumbs {
      gap: calc(24 / var(--screensize) * 100vw);
      height: calc(24 / var(--screensize) * 100vw);
      font-size: calc(14 / var(--screensize) * 100vw);
  }

  .fast-hero__title {
      font-size: calc(48 / var(--screensize) * 100vw);
      line-height: calc(48 / var(--screensize) * 100vw);
      white-space: normal;
        overflow-wrap: anywhere;
        word-break: break-word;
        hyphens: auto;
        -webkit-hyphens: auto;
  }
  .fast-hero__breadcrumbs .fast-hero__sep:has(+ .fast-hero__crumb_current) {
      display: none;
  }

  .fast-hero__crumb_current {
      display: none;
  }

  /* subbar */
  .subbar .inner {
      display: grid;
      grid-template-columns: auto max-content;
      column-gap: calc(24 / var(--screensize) * 100vw);
      align-items: center;
      padding: calc(26 / var(--screensize) * 100vw) calc(32 / var(--screensize) * 100vw);
  }
  .logo--small {
      width: calc(94 / var(--screensize) * 100vw);
      height: auto;
  }

  .subbar .logo--small img {
      width: calc(94 / var(--screensize) * 100vw);
      height: calc(18 / var(--screensize) * 100vw);
      content: url(/local/templates/fast/assets/images/logo_ipad_black.svg);
  }

  .subbar .inner-bottom {
      display: grid;
      grid-auto-flow: column;
      grid-auto-columns: max-content;
      column-gap: calc(0 / var(--screensize) * 100vw);
      justify-self: end;
      align-items: center;
      border-bottom: none;
  }
  .subbar .actions {
      display: flex;
      align-items: center;
      gap: calc(24 / var(--screensize) * 100vw);
  }

  .subbar .icon-btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: calc(24 / var(--screensize) * 100vw);
      height: calc(24 / var(--screensize) * 100vw);
      margin: 0;
      padding: 0;
      border: 0;
      background: transparent;
      line-height: 0;
      cursor: pointer;
  }

  .subbar .header__icon,
  .subbar .burger__icon {
      width: 100%;
      height: 100%;
      display: block;
  }

  /* approach */
  .approach {
      gap: calc(56 / var(--screensize) * 100vw);
      padding: calc(56 / var(--screensize) * 100vw) calc(32 / var(--screensize) * 100vw) calc(56 / var(--screensize) * 100vw) calc(32 / var(--screensize) * 100vw);
  }

  .approach__left {
      gap: calc(32 / var(--screensize) * 100vw);
  }

  .approach__right {
      flex: 1 1 65%;
  }

  .approach__title-fill {
      line-height: calc(33.6 / var(--screensize) * 100vw);
      font-size: calc(28 / var(--screensize) * 100vw);
      letter-spacing: calc(-0.56 / var(--screensize) * 100vw);
  }

  .approach__text {
      gap: calc(32 / var(--screensize) * 100vw);
      flex-direction: column;
      grid-template-columns: none;
      grid-template-rows: 1fr 1fr;
  }

  .approach__para {
      font-size: calc(16 / var(--screensize) * 100vw);
      line-height: calc(24 / var(--screensize) * 100vw);
      letter-spacing: calc(-0.32 / var(--screensize) * 100vw);
  }

  .down {
      gap: calc(12 / var(--screensize) * 100vw);
  }

  .approach__right-banner {
      padding: calc(40 / var(--screensize) * 100vw);
      min-height: calc(266 / var(--screensize) * 100vw);
  }
  .approach__right-banner .down {
      justify-content: space-between;
      gap: calc(32 / var(--screensize) * 100vw);
      flex-wrap: nowrap;
      flex-direction: column;
  }

  .approach__right-title {
      margin: 0 0 calc(32 / var(--screensize) * 100vw);
      line-height: calc(31.2 / var(--screensize) * 100vw);
      letter-spacing: calc(-1.2 / var(--screensize) * 100vw);
      font-size: calc(24 / var(--screensize) * 100vw);
  }

  .approach__right-text {
      font-size: calc(16 / var(--screensize) * 100vw);
      flex: 1 1 auto;
      min-width: 0;
      margin: 0;
  }

  .approach__right-cta {
      font-size: calc(16 / var(--screensize) * 100vw);
      flex: 0 0 auto;
      display: inline-flex;
      align-items: flex-start;
      white-space: nowrap;
      position: relative;
  }

  .down_img {
      height: calc(14 / var(--screensize) * 100vw);
      padding-left: calc(27 / var(--screensize) * 100vw);
  }

  .approach__right-banner::after {
      background: url(/local/templates/fast/assets/images/icons/telegram_plane.png) no-repeat right -300px center;
  }

  /* services */
  .services {
      background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 35%, rgba(0, 0, 0, .65) 100%), url(/local/templates/fast/assets/images/consalting_services.png) center / cover no-repeat;
  }

  .services__inner {
      padding: calc(56 / var(--screensize) * 100vw) calc(32 / var(--screensize) * 100vw);
      /* min-height: calc(759 / var(--screensize) * 100vw); */
      flex-direction: column;
      gap: calc(40 / var(--screensize) * 100vw);
  }

  .services__title {
      line-height: calc(33.6 / var(--screensize) * 100vw);
      font-size: calc(28 / var(--screensize) * 100vw);
      letter-spacing: calc(-0.56 / var(--screensize) * 100vw);
  }

  .services__item {
      gap: calc(24 / var(--screensize) * 100vw);
  }
  .services__head {
      gap: calc(12 / var(--screensize) * 100vw);
      padding: calc(20 / var(--screensize) * 100vw) 0;
  }

  .services__text {
      margin: 0 0 calc(15 / var(--screensize) * 100vw) 0;
      font-size: calc(14 / var(--screensize) * 100vw);
  }

  .services__more {
      gap: calc(12 / var(--screensize) * 100vw);
      font-size: calc(14 / var(--screensize) * 100vw);
  }
  .services__item-text {
      font-size: calc(20 / var(--screensize) * 100vw);
      line-height: calc(26 / var(--screensize) * 100vw);
  }

  .services__item-arrow {
      width: calc(24 / var(--screensize) * 100vw);
      height: calc(19 / var(--screensize) * 100vw);
  }

  .services__item-icon {
      width: calc(32 / var(--screensize) * 100vw);
      height: calc(32 / var(--screensize) * 100vw);
  }

  /* workflow */
  /* .workflow {
    padding: calc(56 / var(--screensize) * 100vw) calc(32 / var(--screensize) * 100vw);
  }

  .workflow__left {
    order: 3;
    display: flex;
    flex: 1 1 auto;
    margin-bottom: calc(16 / var(--screensize) * 100vw);
  }

  .workflow__term {
    line-height: calc(26 / var(--screensize) * 100vw);
    font-size: calc(20 / var(--screensize) * 100vw);
    letter-spacing: calc(-1.2 / var(--screensize) * 100vw);
  }
.workflow__right {
    order: 4;
    margin-left: calc(32 / var(--screensize) * 100vw);
  }

  .workflow__title {
    padding-bottom: calc(53 / var(--screensize) * 100vw);
  }

  .workflow__title-text {
    line-height: calc(33.6 / var(--screensize) * 100vw);
    font-size: calc(28 / var(--screensize) * 100vw);
    letter-spacing: calc(-0.56 / var(--screensize) * 100vw);
  }

  .workflow__row {
    padding: calc(16 / var(--screensize) * 100vw) 0;
    display: flex;
    align-items: flex-start;
    flex-wrap: wrap;
  }

  .workflow__spacer--left {
    display: none;
  }

  .workflow__dot {
    width: calc(8 / var(--screensize) * 100vw);
      height: calc(8 / var(--screensize) * 100vw);
    margin-top: calc(8 / var(--screensize) * 100vw);


  .workflow__spacer--right {
    width: calc(24 / var(--screensize) * 100vw);
    order: 2;
      flex: 0 0 calc(24 / var(--screensize) * 100vw);
  }

  .workflow__desc {
    font-size: calc(16 / var(--screensize) * 100vw);
    letter-spacing: calc(-0.32 / var(--screensize) * 100vw);
    line-height: calc(24 / var(--screensize) * 100vw);
  }

  .workflow__axis-global {
    left: calc(36 / var(--screensize) * 100vw);
  }
  .workflow__axis {
    order: 1;
    flex: 0 0 calc(8 / var(--screensize) * 100vw);
    display: flex;
    align-items: flex-start;
    justify-content: center;
  }

  .workflow__axis-global .workflow__axis-line {
    height: calc(951 / var(--screensize) * 100vw);
  } */
  .workflow{
      padding: calc(56 / var(--screensize) * 100vw) calc(32 / var(--screensize) * 100vw);
  }

  /* контейнер с линией */
  .workflow__inner{
      position: relative;
      display: block; /* никакого flex здесь не надо */
  }

  /* единая вертикальная линия (1px), чуть ниже заголовка */
  .workflow__axis-global{
      display: block;
      position: absolute;
      inset: 0;
      pointer-events: none;
      z-index: 0;
  }
  .workflow__axis-global .workflow__axis-line{ display: none !important; }
  .workflow__axis-global::before{
      content:"";
      position:absolute;
      top: calc(5 / var(--screensize) * 100vw); /* ↓ при необходимости подстрой на +/- пару px */
      bottom: 0;
      left: calc(3 / var(--screensize) * 100vw); /* позиция линии от левого края секции */
      width: 1px;
      background: #E7E7E7;
      border-radius: 999px;
  }

  /* каждый шаг = сетка: [левый отступ | колонка точки | зазор | контент] */
  .workflow__row{
      display: grid;
      grid-template-columns:
    calc(0 / var(--screensize) * 100vw)
    calc(0 / var(--screensize) * 100vw)
    calc(24 / var(--screensize) * 100vw)
    1fr;
      align-items: start;
      padding: calc(16 / var(--screensize) * 100vw) 0;
  }

  /* точка поверх линии */
  .workflow__axis{
      grid-column: -6;
      display: grid;
      place-items: start center;
      position: relative;
      z-index: 1;
  }
  .workflow__axis::before{ display:none !important; } /* убираем локальные куски линии */
  .workflow__dot{
      width:  calc(8 / var(--screensize) * 100vw);
      height: calc(8 / var(--screensize) * 100vw);
      margin-top: calc(8 / var(--screensize) * 100vw);
  }
  .workflow__dot-img{ width:100%; height:100%; display:block;
      position: absolute;
      top: -25px;
  }

  /* заголовок шага и описание — в правой колонке */
  .workflow__left{
      grid-column: 4;
      margin: 0 0 calc(8 / var(--screensize) * 100vw);
      padding-right: calc(0 / var(--screensize) * 100vw);
  }
  .workflow__right{
      grid-column: 4;
      margin: 0;
      padding-left: calc(0 / var(--screensize) * 100vw);
  }

  /* спейсеры на мобилке не нужны */
  .workflow__spacer--left,
  .workflow__spacer--right{ display:none !important; }

  /* типографика (как у тебя) */
  .workflow__title{ padding-bottom: calc(40 / var(--screensize) * 100vw); }
  .workflow__title-text{
      line-height: calc(33.6 / var(--screensize) * 100vw);
      font-size:  calc(28 / var(--screensize) * 100vw);
      letter-spacing: calc(-0.56 / var(--screensize) * 100vw);
  }
  .workflow__term{
      line-height: calc(26 / var(--screensize) * 100vw);
      font-size:   calc(20 / var(--screensize) * 100vw);
      letter-spacing: calc(-1.2 / var(--screensize) * 100vw);
  }
  .workflow__desc{
      font-size:   calc(16 / var(--screensize) * 100vw);
      line-height: calc(24 / var(--screensize) * 100vw);
      letter-spacing: calc(-0.32 / var(--screensize) * 100vw);
  }


  /* projects */
  .projects {
      padding: 0 0 calc(56 / var(--screensize) * 100vw) calc(32 / var(--screensize) * 100vw);
  }

  .projects__head {
      padding: 0;
      margin-bottom: calc(40 / var(--screensize) * 100vw);
  }

  .projects__title {
      letter-spacing: calc(-0.56 / var(--screensize) * 100vw);
      font-size: calc(28 / var(--screensize) * 100vw);
      line-height: calc(33.6 / var(--screensize) * 100vw);
  }

  .projects__controls {
      display: none;
  }

  .projects__slide {
      height: calc(287 / var(--screensize) * 100vw);
      width: calc(287 / var(--screensize) * 100vw);
  }

  .project-card {
      height: calc(287 / var(--screensize) * 100vw);
      width: calc(287 / var(--screensize) * 100vw);
  }

  .project-card__body {
      left: calc(32 / var(--screensize) * 100vw);
      right: calc(32 / var(--screensize) * 100vw);
      bottom: calc(24 / var(--screensize) * 100vw);
  }

  .project-card__text {
      font-size: calc(14 / var(--screensize) * 100vw);
  }

  /* contact */
  .contact {
      padding: calc(56 / var(--screensize) * 100vw) calc(32 / var(--screensize) * 100vw);
  }

  .contact__input,
  .contact__textarea {
      height: calc(42 / var(--screensize) * 100vw);
  }

  .contact__field--area .contact__input {
      min-height: calc(98 / var(--screensize) * 100vw) !important;
  }

  .contact__inner {
      gap: calc(56 / var(--screensize) * 100vw);
      flex-direction: column;
  }

  .contact__left {
      gap: calc(252 / var(--screensize) * 100vw);
  }

  .contact__title {
      font-size: calc(28 / var(--screensize) * 100vw);
      line-height: calc(33.6 / var(--screensize) * 100vw);
      letter-spacing: -0.56px;
  }

  .contact__title br {
      display: none;
  }

  .contact__address {
      display: none;
  }

  .contact__line,
  .contact__phone {
      font-size: calc(20 / var(--screensize) * 100vw);
      line-height: calc(26 / var(--screensize) * 100vw);
  }

  .contact__email {
      font-size: calc(16 / var(--screensize) * 100vw);
  }

  .contact__form {
      width: calc(365 / var(--screensize) * 100vw);
      gap: calc(32 / var(--screensize) * 100vw);
  }
  .contact__label,
  .contact__input {
      font-size: calc(16 / var(--screensize) * 100vw);
  }

  .contact__submit {
      height: calc(48 / var(--screensize) * 100vw);
      font-size: calc(16 / var(--screensize) * 100vw);
  }

  /* footer */
  .inner-bottom--footer .menu {
      display: grid;
      grid-auto-rows: 1fr;
      align-items: center;
      width: 100%;
      min-width: 0;
  }

  /* .footer{
      margin-left:  calc(-32 / var(--screensize) * 100vw);
      margin-right: calc(-32 / var(--screensize) * 100vw);
  } */
  .inner-bottom--footer .menu a {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: calc(121 / var(--screensize) * 100vw);
      width: 100%;
      text-align: left;
      text-decoration: none;
      font-size: calc(16 / var(--screensize) * 100vw);
  }
  .inner-bottom--footer .actions {
      display: none;
  }

  .inner-bottom--footer .menu a::after {
      content: "";
      flex: 0 0 auto;
      width: calc(18 / var(--screensize) * 100vw);
      height: calc(14 / var(--screensize) * 100vw);
      background: url("/local/templates/fast/assets/images/icons/right_white.svg") center / contain no-repeat;
      opacity: .9;
  }
  .inner-bottom--footer .menu .menu-footer::after {
      background-image: url("/local/templates/fast/assets/images/icons/email.svg");
  }
  .inner-bottom--footer .menu a:last-child {
      border-bottom: 0;
  }
  .footer {
      padding: calc(56 / var(--screensize) * 100vw) 0 calc(32 / var(--screensize) * 100vw) 0;
  }

  .footer__row--top {
      grid-template-columns: 1fr;
      justify-items: center;
      column-gap: calc(120 / var(--screensize) * 100vw);
  }

  .footer .inner-bottom.inner-bottom--footer {
      grid-template-columns: 1fr;
      row-gap: calc(32 / var(--screensize) * 100vw);
      justify-items: stretch;
  }

  .footer__logo {
      width: calc(194 / var(--screensize) * 100vw) !important;
      height: calc(54 / var(--screensize) * 100vw) !important;
      margin-bottom: calc(48 / var(--screensize) * 100vw);
      content: url(/local/templates/fast/assets/images/logo.png);
  }

  .footer__logo img {
      width: calc(194 / var(--screensize) * 100vw) !important;
      height: calc(54 / var(--screensize) * 100vw) !important;
  }

  .footer .menu {
      flex-direction: row !important;
      align-items: center;
      gap: calc(32 / var(--screensize) * 100vw);
      grid-template-columns: 1fr;
  }

  .footer .inner-bottom.inner-bottom--footer {
      grid-template-rows: auto;
      grid-template-columns: auto;
      justify-items: stretch;
      border-bottom: none;
      justify-self: center;
      width: 100%;
  }
  .footer .header__icon {
      width: calc(20 / var(--screensize) * 100vw);
      height: calc(14 / var(--screensize) * 100vw);
  }

  .footer__row--mid,
  .footer__row--bottom {
      padding-top: calc(48 / var(--screensize) * 100vw);
      flex-direction: column;
  }

  .footer__address,
  .footer__contacts,
  .footer__legal,
  .footer__iso,
  .footer__policy {
      font-size: calc(14 / var(--screensize) * 100vw);
      justify-content: space-between;
      white-space: normal;
  }

  .footer__legal,
  .footer__iso,
  .footer__policy {
      font-size: calc(12 / var(--screensize) * 100vw);
  }

  .footer__policy {
      margin-left: initial;
  }

  .menu-footer {
      display: block;
  }

  .contact__agree {
    font-size: calc(14 / var(--screensize) * var(--vw));
  }
  
  .contact__agree input {
    width: calc(16 / var(--screensize) * var(--vw));
    height: calc(16 / var(--screensize) * var(--vw));
  }

  /* ====== OVERLAY МЕНЮ ====== */
  .mmenu {
      display: block;
      position: fixed;
      inset: 0;
      z-index: 2000;
      /* выше .topbar(120) и .subbar(130) */
      background: #131944;
      color: #fff;
      opacity: 0;
      visibility: hidden;
      transform: translateY(-4%);
      transition: opacity .25s ease, transform .25s ease, visibility 0s linear .25s;
  }
  .mmenu.is-open {
      opacity: 1;
      visibility: visible;
      transform: none;
      transition: opacity .25s ease, transform .25s ease;
  }
  .mmmenu__inner {
      min-height: 100dvh;
      display: grid;
      grid-template-rows: auto 1fr auto;
      /* верх / центр / низ */
      padding: calc(32 / var(--screensize) * 100vw);
  }

  .mmenu__top {
      display: flex;
      align-items: center;
      /* <-- вертикальное центрирование */
      justify-content: space-between;
      /* логотип слева, иконки справа */
      gap: calc(24 / var(--screensize) * 100vw);
  }

  /* верх */
  .mmenu__logo img {
      width: calc(131 / var(--screensize) * 100vw);
      height: auto;
      display: block;
  }
  .mmenu__actions {
      position: static;
      display: flex;
      align-items: center;
      gap: calc(24 / var(--screensize) * 100vw);
  }

  /* центр */
  .mmenu__nav {
      align-self: center;
      justify-self: center;
      display: flex;
      flex-direction: column;
      gap: calc(48 / var(--screensize) * 100vw);
      text-align: center;
  }
  .mmenu__nav a {
      font-family: 'IBM Plex Mono';
      text-transform: uppercase;
      letter-spacing: .8px;
      text-decoration: none;
      color: #fff;
      font-size: calc(16 / var(--screensize) * 100vw);
  }

  /* низ */
  .mmenu__footer {
      display: flex;
      justify-content: space-between;
      align-items: flex-start;
      gap: calc(24 / var(--screensize) * 100vw);
      opacity: .85;
      flex-direction: column;
  }
  .mmenu__footer .footer__address {
      margin: 0;
  }

  .mmenu__footer .footer__contacts {
      display: flex;
      gap: calc(40 / var(--screensize) * 100vw);
  }

  .mmenu__footer a {
      color: #fff;
      text-decoration: none;
  }

  /* небольшая подстраховка размеров иконок */
  .mmenu .icon-btn {
      width: calc(24 / var(--screensize) * 100vw);
      height: calc(24 / var(--screensize) * 100vw);
      display: inline-flex;
      align-items: center;
      justify-content: center;
      line-height: 0;
  }

  .mmenu .header__icon,
  .mmenu .burger__icon {
      width: 100%;
      height: auto;
      display: block;
  }

  .cookie__text {
    font-size: calc(12 / var(--screensize) * var(--vw));
  }
}


@media (min-width: 431px) and (max-width: 960px) {
    .topbar { background: transparent; }
    .topbar .inner-bottom { border-bottom-color: transparent; }

    .topbar.is-solid {
        background: #F2F2F2;
    }
    .topbar.is-solid .inner-bottom {
        border-bottom-color: rgba(0,0,0,.08); /* тонкая линия снизу */
    }

    /* Если иконки/бургер изначально белые — инвертируем на светлом фоне */
    .topbar.is-solid .header__icon,
    .topbar.is-solid .burger__icon {
        filter: invert(1) brightness(0.1) contrast(1.1);
    }
    .subbar {
        display: none !important;
    }
    .topbar.is-hidden { transform: none !important; }

    .topbar .logo img {
    content: url('/local/templates/fast/assets/images/logo_mobile.png') !important;
    }
    .topbar.is-solid .logo img {
    content: url('/local/templates/fast/assets/images/logo_ipad_black.svg') !important;
    }

    /* Если есть чёрная версия логотипа — раскомментируй строку ниже и укажи путь */
    /* .topbar.is-solid .logo img { content: url("/local/templates/fast/assets/images/logo_ipad_black.svg"); } */
}

/* ====== ≤430px (мобильные) ====== */
@media (max-width: 430px) {
    .topbar { background: transparent; }
    .topbar .inner-bottom { border-bottom-color: transparent; }

    .topbar.is-solid {
        background: #F2F2F2;
    }
    .topbar.is-solid .inner-bottom {
        border-bottom-color: rgba(0,0,0,.08);
    }

    .topbar.is-solid .header__icon,
    .topbar.is-solid .burger__icon {
        filter: invert(1) brightness(0.1) contrast(1.1);
    }
    .subbar {
        display: none !important;
    }
    .topbar.is-hidden { transform: none !important; }

    .topbar .logo img {
    content: url('/local/templates/fast/assets/images/logo_mobile.png') !important;
    }
    .topbar.is-solid .logo img {
    content: url('/local/templates/fast/assets/images/logo_ipad_black.svg') !important;
    }

    /* Чёрная мобильная версия логотипа (если есть файл) */
    /* .topbar.is-solid .logo img { content: url("/local/templates/fast/assets/images/logo_mobile_black.png"); } */
}

/* HOTFIX: позволяем Swiper-у раздать ширину сам */
.projects__slider .swiper-slide,
.projects__slider .projects__slide,
.projects__slider .project-card {
  width: auto !important;
  /* height: auto !important; */
}

/* карточка растягивается на выданную ширину и остаётся квадратной */
.projects__slider .project-card {
  width: 100% !important;
  aspect-ratio: 1 / 1;
}

/* фон как был */
.projects__slider .project-card__media {
  background-size: cover;
  background-position: center;
}

@media (min-width: 431px) and (max-width: 600px) {
    .contact__agree {
        font-size: calc(14 / var(--screensize) * var(--vw));
    }
}

@media (min-width: 750px) and (max-width: 960px) {
    .workflow__axis-global {
        left: calc(306 / var(--screensize) * 100vw);
    }
}

@media (min-width: 700px) and (max-width: 749px) {
    .workflow__axis-global {
        left: calc(306 / var(--screensize) * 100vw);
    }
}

@media (min-width: 620px) and (max-width: 699px) {
    .workflow__axis-global {
        left: calc(304 / var(--screensize) * 100vw);
    }
}

@media (min-width: 540px) and (max-width: 619px) {
    .workflow__axis-global {
        left: calc(302 / var(--screensize) * 100vw);
    }
}

@media (min-width: 480px) and (max-width: 539px) {
    .workflow__axis-global {
        left: calc(302 / var(--screensize) * 100vw);
    }
}

@media (min-width: 430px) and (max-width: 479px) {
    .workflow__axis-global {
        left: calc(300 / var(--screensize) * 100vw);
    }
}