/* ===== Fonts ===== */

@font-face{
  font-family:"Xolonium";
  src:
    url("/assets/templates/virgruz/fonts/Xolonium-Bold.woff2") format("woff2"),
    url("/assets/templates/virgruz/fonts/Xolonium-Bold.woff") format("woff");
  font-weight:700;
  font-style:normal;
  font-display:swap;
}

@font-face{
  font-family:"Inter";
  src:
    url("/assets/templates/virgruz/fonts/Inter-Regular.woff2") format("woff2"),
    url("/assets/templates/virgruz/fonts/Inter-Regular.woff") format("woff");
  font-weight:400;
  font-style:normal;
  font-display:swap;
}

@font-face{
  font-family:"Inter";
  src:
    url("/assets/templates/virgruz/fonts/Inter-Medium.woff2") format("woff2"),
    url("/assets/templates/virgruz/fonts/Inter-Medium.woff") format("woff");
  font-weight:500;
  font-style:normal;
  font-display:swap;
}

:root{
  --container: 1240px;
  --gutter: 100px;

  --dark: #0f1b2a;
  --text: #2A2D34;
  --white: #fff;
  --ff-title: "Xolonium", sans-serif;
  --ff-text: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
}

html, body{
  font-family: var(--ff-text);
  font-weight: 400;
  overflow-x:hidden;
}

body{
  font-family: var(--ff-text);
  font-size:14px;
  line-height:22px;
  color:#2A2D34;
}

h1,h2,h3,h4,h5,h6{
  font-family:var(--ff-title);
  font-weight:700;
  letter-spacing:0;
}

h1{
  font-size:42px;
  line-height:48px;
}

h2{
  font-size:34px;
  line-height:41px;
}

h3{
  font-size:26px;
  line-height:32px;
}

h4{
  font-size:20px;
  line-height:26px;
}

button,
.btn,
.svc-about__btn{

  font-family:var(--ff-title);
  font-size:16px;
  font-weight:400;
}

strong,b{
  font-weight:500;
}

/* универсальный класс под фигму */
.ff-xolo{
  font-family: var(--ff-title) !important;
  font-weight: 700 !important;
  font-style: normal;
  letter-spacing: 0;
  line-height: 1;
}

.container{
  width: 100%;
  max-width: var(--container);
  margin: 0 auto;
  padding-left: var(--gutter);
  padding-right: var(--gutter);
  box-sizing: border-box;
}

.mobile-menu{
  display:none;
}

@media (max-width: 767px){

  .mobile-menu{
    display:block;
  }

}

/* ===== HEADER ===== */
.site-header{
  position:absolute;   /* важно */
  top:0; left:0; right:0;
  z-index:1000;
  background: linear-gradient(to bottom, rgba(0,0,0,.95), rgba(0,0,0,0));
  color: #fff;
  height: 80px;                 /* как в фигме */
  display: flex;
  align-items: center;
}

.site-header .container{
  max-width: var(--container);
  padding-left: var(--gutter);
  padding-right: var(--gutter);
}

.site-header .header-row{
  height: 80px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.header-left{
  display: flex;
  align-items: center;
  gap: 22px;
  min-width: 0;
}

.logo img{
  display: block;
  height: 50px;                 /* Vira 1: ~279x42 */
  width: auto;
}

.header-contacts{
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-family: var(--ff-text);
  font-size: 14px;
  line-height: 1;
  opacity: .95;
}

.contact-item{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  white-space: nowrap;
}

.contact-item .ico{
  width: 16px;
  height: 16px;
  display: block;
}

.contact-item.phone{
  font-family: var(--ff-title);    
  color: #fff;
  text-decoration: none;
  font-weight:700;
  font-size:16px;
}
.contact-item.phone:hover{ text-decoration: underline; }

.header-right{
  justify-self: end;
  display: flex;
  align-items: center;
  gap: 24px;
}

.header-nav{
  justify-self: center;
  display: flex;
  align-items: center;
  gap: 24px; /* как в фигме */
}

.header-nav .nav-link{
  color: #fff;
  text-decoration: none;
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 1;
  opacity: .95;
}
.header-nav .nav-link:hover{ opacity: 1; }

.header-social{
  display:flex;
  align-items:center;
  gap:14px;
}

.header-social .social-link{
  display:flex;
  align-items:center;
  justify-content:center;
  width:28px;
  height:28px;
}

.header-social .social-link img{
  width:100%;
  height:100%;
  object-fit:contain;
  transition:.2s ease;
}

/* hover эффект */
.header-social .social-link:hover img{
  transform:scale(1.1);
  opacity:.9;
}

/* адаптив минимум */
@media (max-width: 980px){
  .header-contacts{ display:none; }
}

.page-blank {
  background: url('/assets/templates/virgruz/img/bg-404.webp') center/cover no-repeat;
}

/* ===== HERO (inner pages) ===== */
.hero{
  position: relative;
  background: var(--dark);
  color: #fff;
  overflow: hidden;
  padding: calc(42px + 40px) var(--gutter) 90px;
}

/* фон-картинка */
.hero__bg{
  position: absolute;
  inset: 0;
  background: url("/assets/templates/virgruz/img/hero-uslugi.webp") center/cover no-repeat;
  opacity: .45;
}

/* градиент/затемнение как в фигме */
.hero__bg::before{
  content:"";
  position:absolute;
  inset:0;
  /* сверху темнее (под шапку), ниже чуть светлее */
  background: linear-gradient(
    to bottom,
    rgba(15,27,42,.92) 0px,
    rgba(15,27,42,.82) 90px,
    rgba(15,27,42,.60) 220px,
    rgba(15,27,42,.40) 100%
  );
}

/* контент */
.hero__inner{
  position:relative;
  max-width: var(--container);
  margin: 0 auto;
  padding: 42px var(--gutter) 90px; /* ↓ запас под вырезы (40px) + воздух */
}

/* крошки (по фигме: Inter 16, line-height 100%) */
.hero__crumbs{
  font-family:var(--ff-text);
  font-weight: 500;
  font-size: 14px;
  line-height: 1;
  opacity: .95;
}
.hero__crumbs ul{
  margin:0;
  padding:0;
  list-style:none;
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.hero__crumbs a{ color:#fff; text-decoration:none; }
.hero__crumbs a:hover{ text-decoration:underline; }

/* заголовок по центру */
.hero__title{
  margin: 18px 0 0;
  text-align: center;
  font-size: 54px; /* если по фигме 34 — поставишь 34 */
  line-height: 1;
}

/* ===== CUTS (Rectangle 68/69) ===== */
.hero-cut{
  position:absolute;
  bottom: 0;
  width: 417px;
  height: 40px;
  background-repeat:no-repeat;
  background-size: 100% 100%;
  z-index: 5;
  pointer-events:none;
}

/* слева: диагональ справа (к центру) */
.hero-cut--l{
  left: 0;
  background-image: url("/assets/templates/virgruz/img/Rectangle-68.svg");
}

/* справа: диагональ слева (к центру) */
.hero-cut--r{
  right: 0;
  background-image: url("/assets/templates/virgruz/img/Rectangle-69.svg");
}

/* чтобы hero был во всю ширину экрана, а контент — по сетке */
.hero > .container{ position: relative; z-index: 2; }

/* ЗАЗОР между hero и первым блоком контента */
.hero + #main { 
  background: #fff;
}

.hero + #main > .page-section:first-child {
  margin-top: 0 !important;
  padding-top: 120px; /* подгони под Figma (обычно 100–140) */
}

.site-footer{
  background:#141414;
  color:#fff;
}

.footer{

  position:relative;

  padding:48px 0;

  background:#141414;

}

/* LEFT block with background image */
.footer__left{

  position:relative;

  padding:48px 40px;

  background:
    linear-gradient(rgba(29,29,29,.7), rgba(29,29,29,.7)),
    url('/assets/templates/virgruz/img/Background_footer_Image.webp')
    center/cover no-repeat;

  display:block;

}

/* имитация легкого blur как в Figma */
.footer__left::after{
  content:"";
  position:absolute; inset:0;
  backdrop-filter: blur(2.8px);
  -webkit-backdrop-filter: blur(2.8px);
  pointer-events:none;
}

/* контент поверх blur */
.footer__left > *{ position:relative; z-index:2; }

.footer__logo{
  display:block;
  width: auto;
  max-width: 210px;
  height:auto;
  margin-bottom: 22px;
}

.footer__contacts{ display:flex; flex-direction:column; gap:14px; margin-bottom: 26px; }

.footer__contact{
  display:flex;
  gap:12px;
  align-items:flex-start;
  color:#fff;
  text-decoration:none;
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-size: 14px;
  line-height: 21px;
  opacity: .95;
}
.footer__contact img{
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  margin-top: 2px;
}

.footer__social-links{
  display:flex;
  align-items:center;
  gap:16px;
  margin-top:20px;
}

/* контейнер иконки */
.footer__social-links .social-link{
  display:flex;
  align-items:center;
  justify-content:center;
  width:36px;
  height:36px;

  border-radius:8px;
  background: rgba(255,255,255,0.05);

  transition:.25s ease;
}

/* сама иконка */
.footer__social-links .social-link img{
  width:20px;
  height:20px;
  object-fit:contain;
  opacity:.9;
}

/* hover */
.footer__social-links .social-link:hover{
  background:#FFAE23;
}

.footer__social-links .social-link:hover img{
  filter: brightness(0); /* делает иконку темной */
}

/* Copyright как в Figma */
.footer__copy{

  margin-top:32px;

  font-size:13px;

  line-height:1.5;

}

/* columns */
.footer__col{
  padding-top: 20px; /* top: 50px из Figma */
}

.footer__title{
  font-family: Xolonium, sans-serif;
  font-weight:700;
  font-size:16px;
  line-height:19px;
  margin: 0 0 18px 0;
}

.footer__title--mt{ margin-top: 40px; }

.footer__link{
  display:block;
  color:#fff;
  text-decoration:none;

  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-weight:400;
  font-size:14px;
  line-height:17px;

  padding: 9px 0;
  opacity:.92;
}
.footer__link:hover{ opacity:1; text-decoration:underline; }

/* Небольшая адаптация */
@media (max-width: 1480px){
  .footer__inner{ padding: 0 24px; }
}
@media (max-width: 900px){
  .footer__inner{
    grid-template-columns: 1fr;
    row-gap: 28px;
    min-height: auto;
  }
}

  .footer__col{ padding-top: 20px; }
  
  .footer__copy{
    font-size:12px;
    line-height:16px;
  }

  .footer__copy::before{
    background: rgba(0,0,0,.65);
  }
}

@media (max-width:768px){
  .footer__social-links{
    margin:20px 0;
    gap:20px;
  }

  .footer__social-links .social-link{
    width:42px;
    height:42px;
  }
}

@media (max-width:768px){

  .footer__inner{
    display:flex;
    flex-direction:column;
  }

  .footer__col{
    order:1;
    border-bottom:1px solid rgba(255,255,255,0.1);
  }

  .footer__left{
    order:2;
    margin-top:30px;
    
  }

  /* TITLE */
  .footer__title{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:14px 0;
    font-size:16px;
    cursor:pointer;
  }

  .footer__title::after{
    content:"";
    width:10px;
    height:10px;
    border-right:2px solid #fff;
    border-bottom:2px solid #fff;
    transform:rotate(45deg);
    transition:.2s;
  }

  .footer__col.active .footer__title::after{
    transform:rotate(-135deg);
  }

  /* LIST */
  .footer__list{
    max-height:0;
    overflow:hidden;
    transition:max-height .3s ease;
  }

  .footer__col.active .footer__list{
    max-height:500px;
  }

}


/* ===================================================================== */
/* ============================ services-list ============================ */
/* ===================================================================== */

.page-section{
  margin-top:80px;
}

.services-2col{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 30px 20px;
  align-items:start;
}

.svc{
  display:grid;
  grid-template-columns: 210px 390px;
  gap: 10px;
  width: 610px;
  background: #fff;
  position: relative;
  overflow:hidden;
}

.svc__media::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:50px;
  height:50px;
  background:#fff;
  clip-path: polygon(0 0, 0 100%, 100% 100%);
  z-index:2;
}

.svc_media{
  position:relative;
  overflow:hidden;
}

.svc_media::after{
  content:"";
  position:absolute;
  right:0;
  bottom:0;
  width:50px;
  height:50px;
  background:#fff;

  clip-path: polygon(0 0, 100% 100%, 100% 0);
}

.svc__media{
  position:relative;
  width:210px;
  background-position:center;
  background-size:cover;
  background-repeat:no-repeat;
  min-height:525px;
  overflow:hidden;
}

.svc{ position:relative; overflow:hidden; }

.svc__media-title{
  position:absolute;
  left:30px;
  top:30px;
  z-index:2;
  margin:0;
  color:#fff;
  font-size:20px;
  line-height:24px;
}

.svc__media::before{
  content:"";
  position:absolute;
  inset:0;
  background: rgba(0,0,0,.45); /* можешь 0.5 если темнее нужно */
  z-index:1;
}

.svc__list{
  display:flex;
  flex-direction:column;
  gap:3px;
  background:#fff;
}

.svc-link{
  min-height:45px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:13px 16px;
  gap:10px;
  background:#F4F4F4;
  color:#6E6E6E;
  text-decoration:none;
  font-size:16px;
  line-height:19px;
  box-sizing:border-box;
}

.svc-link{
  transition:.2s ease;
}

.svc-link:hover{
  background:#FFAE23;
  color:#2A2D34;
}

.svc-link:hover .svc-link__arr{
  opacity:1;
  color:#2A2D34;
}

.svc-link__txt{
  min-width:0;
}

.svc-link__arr{
  flex:0 0 16px;
  opacity:.7;
}

.svc-link__arr{
  transition:.2s ease;
}

/* ===== нижний ряд: короткие карточки ===== */
.services-2col > .svc:nth-last-child(-n+2){
  min-height:141px;
}

.services-2col > .svc:nth-last-child(-n+2) .svc__media{
  min-height:141px;
}

.services-2col > .svc:nth-last-child(-n+2) .svc__list{
  justify-content:flex-start;
}

.services-2col > .svc:nth-last-child(-n+2) .svc-link{
  min-height:69px;
}

.services-2col > .svc:last-child .svc-link{
  min-height:45px;
}

/* если в последнем блоке 3 пункта — как в фигме */
.services-2col > .svc:last-child .svc__list{
  gap:3px;
}

/* адаптив */
@media (max-width: 1260px){
  .services-2col{
    grid-template-columns:1fr;
    justify-items:center;
  }
}

@media (max-width: 680px){
  .svc{
    width:100%;
    grid-template-columns:1fr;
  }

  .svc__media{
    width:100%;
    min-height:260px !important;
  }

  .svc__media-title{
    left:20px;
    top:20px;
  }
}

.svc_media{
  position:relative;
  overflow:hidden;
}


@media (max-width:768px){

  .svc{
    overflow:visible;
  }

  .svc_media{
    height:200px;
  }

}

/* ===================================================================== */
/* ============================ services-about =========================== */
/* ===================================================================== */

.svc-about{
  padding:80px 0;
}

.svc-about__grid{
  display:grid;
  grid-template-columns: 609px 505px;
  gap: 124px;
  align-items:center;
}

/* КАРТИНКА */
.svc-about__media{
  position:relative;
  width:100%;
  height:435px;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
}

/* СКОС */
.svc-about__cut{
  position:absolute;
  right:0;
  bottom:0;
  width:50px;
  height:50px;
  background:#fff;

  -webkit-clip-path: polygon(100% 0, 0 100%, 100% 100%);
  clip-path: polygon(100% 0, 0 100%, 100% 100%);
}

/* ТЕКСТ */
.svc-about__text{
  display:flex;
  flex-direction:column;
  gap:30px;
  max-width:505px;
}

/* ЗАГОЛОВОК */
.svc-about__title{
  font-size:34px;
  line-height:41px;
  color:#2A2D34;
}

/* ОПИСАНИЕ */
.svc-about__desc{
  font-size:14px;
  line-height:22px;
  color:rgba(42,45,52,.7);
}

/* КНОПКА */
.svc-about__btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:150px;
  height:51px;
  background:#FFAE23;
  color:#2A2D34;
  text-decoration:none;
  font-size:16px;
  line-height:19px;
}

@media (max-width: 1100px){
  .svc-about{
    min-height:auto;
    padding: 40px 0;
  }

  .svc-about__inner{
    min-height:560px;
    padding:48px 0;
  }

  .svc-about__content{
    width:min(560px, 100%);
  }

  .svc-about__cut{
    width:300px;
    height:32px;
  }
}

@media (max-width: 1100px){
  .svc-about__grid{
    grid-template-columns:1fr;
    gap:30px;
  }

  .svc-about__media{
    height:260px;
  }

  .svc-about__text{
    max-width:100%;
  }
  
  .svc-about__cut{
    position:absolute;
    right:0;
    bottom:0;

    width:180px;
    height:24px;
    background:#fff;

    /* ВАЖНО — горизонтальный скос */
    -webkit-clip-path: polygon(100% 0, 0 100%, 100% 100%);
    clip-path: polygon(100% 0, 85% 100%, 100% 100%);
  }
}

/* зеркальный вариант */
.svc-about--reverse .svc-about__grid {
  flex-direction: row;
}

.svc-about--reverse .svc-about__grid {
  flex-direction: row;
}

.svc-about__cut {
  position: absolute;
  width: 50px;
  height: 50px;
  right: 0;
  bottom: 0;
  background: #fff;
}

.svc-about__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
}

.svc-about--reverse .svc-about__text {
  order: 2;
}

.svc-about--reverse .svc-about__media {
  order: -1; /* картинка всегда сверху */
}

.svc-about__media img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

/* ===================================================================== */
/* ============================ services-adv ============================= */
/* ===================================================================== */

.services-adv{
  background: var(--c-white, #fff);
  padding: 80px 0 90px;
}
.services-adv__inner{
  max-width: 1238px;
  margin-left: auto;
  margin-right: auto;
}
.services-adv__title{
  margin: 0 0 34px 0;
  text-align: center;
  font-size: 34px;
  line-height: 41px;                /* как в фигме */
  color: var(--c-text, #2A2D34);
}

.services-adv__grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 26px 28px;
  align-items: start;
}

.adv-item{
  display:flex;
  gap:16px;
  min-height: 88px; /* как в фигме */
}

.adv-item__num{
  width: 69px;
  font-size: 46px;
  line-height: 55px;                /* как в фигме */
  color: var(--c-accent, #FFAE23);   /* <-- вот это критично */
}
.adv-item__txt{
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-size: 14px;
  line-height: 22px;
  color: rgba(42,45,52,.7); /* как у тебя 70% */
}

/* 5-й элемент красиво центруем под 2-й строкой (как на макете) */
.services-adv__grid .adv-item:nth-child(4){ grid-column: 1 / 2; }
.services-adv__grid .adv-item:nth-child(5){ grid-column: 2 / 3; }

/* нижний "закрывающий" блок */
.adv-note{
  margin-top: 22px;
  background: var(--c-soft, #F4F4F4); /* <-- и это критично */
  padding: 13px 16px;
  display:flex;
  gap:16px;
  align-items:flex-start;
}

.adv-note__icon{
  position:relative;
  width:40px;
  height:40px;
  background:#FFAE23;

  display:flex;
  align-items:center;
  justify-content:center;

  flex:0 0 40px;
}

/* палка */
.adv-note__icon::before{
  content:"";
  position:absolute;

  width:2px;
  height:14px;

  background:#fff;

  top:10px;
}

/* точка */
.adv-note__icon::after{
  content:"";
  position:absolute;

  width:4px;
  height:4px;

  background:#fff;
  border-radius:50%;

  bottom:9px;
}

.adv-note__txt{
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-size: 16px;
  line-height: 19px;
  color: #6E6E6E;
}

/* HERO HOME */

.hero-home{
  position: relative;
  padding-top:140px;
  height:820px;
  overflow: hidden;
  color:#fff;
}

/* фон */
.hero-home__bg{
  position:absolute;
  inset:0;
  background:url("/assets/templates/virgruz/img/hero-bg.webp") center/cover no-repeat;
  z-index:1;
}

/* темный градиент */
.hero-home__overlay{
  position:absolute;
  inset:0;
  background: linear-gradient(0deg, rgba(1,4,13,.55), rgba(1,4,13,.55));
  z-index:1;
}

/* контент */
.hero-home__inner{
  position:relative;
  z-index:5;
  height:100%;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:40px;
}

/* текст */
.hero-home__content{
  max-width:620px;
  display:flex;
  flex-direction:column;
  align-items:flex-start; /* КЛЮЧ */
}

.hero-home__title{
  font-size:64px;
  line-height:61px;
  margin:0 0 24px 0;
}

.hero-home__title span{
  color:#FFAE23;
}

.hero-home__subtitle{
  font-family: Inter, sans-serif;
  font-size:24px;
  line-height:35px;
  margin-bottom:30px;
}

.hero-home__content{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}

/* кнопка */
.hero-home__btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height:51px;
  padding:0 32px;
  margin-top:24px;
  background:#FFAE23;
  color:#2A2D34;
  text-decoration:none;
}

.hero-home__form{
  width:400px;
  flex:0 0 400px;
  margin-top:0;
  margin-top:10px;
}

.hero-form{
  position:relative;
  width:400px;
  height:auto; /* ВАЖНО */
  background:#fff;
  padding:20px 16px 18px;
}

.hero-form::after{
  content:"";
  position:absolute;
  right:0;
  bottom:0;
  width:40px;
  height:40px;
  background:#fff;
  clip-path:polygon(100% 0, 0 100%, 100% 100%);
}

.hero-form__title{
  margin:0 0 30px;
  font-size:20px;
  line-height:24px;
  color:#2A2D34;
}

.hero-form__input{
  display:block;
  width:100%;
  height:51px;
  margin-bottom:16px; /* уменьшили */
  padding:12px 16px;
  border:0;
  background:#F4F4F4;
  font-family:var(--ff-text);
  font-size:16px;
  line-height:19px;
  color:#6E6E6E;
  box-sizing:border-box;
}

.hero-form__input::placeholder{
  color:#6E6E6E;
}

.hero-form__submit{
  display:flex;
  justify-content:center;
  align-items:center;
  width:100%;
  height:51px;
  margin-bottom:16px;
  padding:16px;
  border:2px solid #0F7AFF;
  background:transparent;
  color:#0F7AFF;
  font-size:16px;
  line-height:19px;
  cursor:pointer;
}

.hero-form__agree{
  display:flex;
  align-items:flex-start;
  gap:10px;
  font-family:var(--ff-text);
  font-size:14px;
  line-height:17px;
  color:#6E6E6E;
}

.hero-form__agree input{
  width:20px;
  height:20px;
  margin:0;
  flex:0 0 20px;
}

.hero-form__agree a{
  color:#0F7AFF;
  text-decoration:underline;
}

.hero-form__agree {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 12px;
  line-height: 1.4;
}

.hero-form__agree input {
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  margin-top: 3px;
}

.hero-form__agree span {
  display: block;
}

.form-success {
  padding: 30px;
  text-align: center;
  font-size: 16px;
  color: #FFAE23;
}

.hero-home__cut{
  position:absolute;
  bottom:-9px;
  width:417px;
  height:40px;
  z-index:5;
  background-repeat:no-repeat;
  background-size:100% 100%;
}

.hero-home__cut--l{
  left:0;
  background-image:url("/assets/templates/virgruz/img/Rectangle-66.svg");
}

.hero-home__cut--r{
  right:0;
  background-image:url("/assets/templates/virgruz/img/Rectangle-65.svg");
}

/* ===================================================================== */
/* =============================== adaptive ============================== */
/* ===================================================================== */

@media (max-width: 1100px){
  .services-2col{ grid-template-columns: 1fr; }
  .svc{ grid-template-columns: 1fr; }
  .svc__media{ min-height: 220px; }

  .services-adv__grid{ grid-template-columns: repeat(2, 1fr); }
  .services-adv__grid .adv-item:nth-child(4),
  .services-adv__grid .adv-item:nth-child(5){ grid-column: auto; }
}

@media (max-width: 720px){
  .services-adv__grid{ grid-template-columns: 1fr; }

  .svc-about__cut{
    width: 180px;
    height: 24px;
  }
}

html, body { height: 100%; background: #fff !important; }
body { margin: 0; }

main, #main { background: transparent; } /* ок, фон держим на body */
.page, .site, .wrapper, .layout, .page-content { background: transparent !important; }

/* =========================
   TRUST BLOCK
========================= */

.trust-block{
  padding:80px 0 100px;
  background:#fff;
}

.trust-block .container{
  max-width:1340px;
}

.trust-block__title{
  margin:0 0 40px;
  text-align:center;
  font-size:34px;
  line-height:41px;
  color:#2A2D34;
}

.trust-block__grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:30px;
  align-items:center;
  justify-items:center;
}

.trust-block__item{
  width:100%;
  min-height:140px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
  box-sizing:border-box;
}

.trust-block__item img{
  max-width:100%;
  max-height:140px;
  width:auto;
  height:auto;
  display:block;
  object-fit:contain;
}

/* ===================================================================== */
/* ============================== home-works ============================ */
/* ===================================================================== */

.home-works{
  padding: 80px 0 100px;
  background: #fff;
}

.home-works .container{
  max-width: 1240px;
}

.home-works__title{
  margin: 0 0 40px;
  text-align: center;
  font-size: 34px;
  line-height: 41px;
  color: #2A2D34;
}

.home-works__grid{
  display: grid;
  grid-template-columns: repeat(4, 295px);
  grid-template-rows: repeat(2, 200px);
  gap: 20px;
  justify-content: center;
}

.home-work-card{
  display: block;
  width: 295px;
  height: 200px;
  overflow: hidden;
  background: #f4f4f4;
}

.home-work-card__img{
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .25s ease;
}

.home-work-card:hover .home-work-card__img{
  transform: scale(1.03);
}

.home-works__all{
  position: relative;
  width: 295px;
  height: 200px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 57px 40px;
  box-sizing: border-box;
  background: #FFAE23;
  color: #2A2D34;
  text-decoration: none;
  text-align: center;
}

.home-works__all-text{
  font-size: 23px;
  line-height: 28px;
  text-decoration: underline;
}

.home-works__all-cut{
  position: absolute;
  right: 0;
  bottom: 0;
  width: 40px;
  height: 43px;
  background: #fff;
  clip-path: polygon(100% 0, 100% 100%, 0 100%);
}

.home-works__all:hover{
  filter: brightness(.98);
}

@media (max-width: 1280px){
  .home-works__grid{
    grid-template-columns: repeat(2, 295px);
    grid-template-rows: auto;
  }
}

@media (max-width: 680px){
  .home-works__grid{
    grid-template-columns: 1fr;
  }

  .home-work-card,
  .home-works__all{
    width: 100%;
    max-width: 295px;
    margin: 0 auto;
  }
}

/* ===================================================================== */
/* ============================== home-stats ============================ */
/* ===================================================================== */

.home-stats{
  position: relative;
  width: 100%;
  min-height: 299px;
  overflow: hidden;
  background: #fff;
}

.home-stats__bg{
  position: absolute;
  inset: 0;
  background:
    linear-gradient(0deg, rgba(0,0,0,.61), rgba(0,0,0,.61)),
    url("/assets/templates/virgruz/img/home-stats-bg.webp") center 80% / cover no-repeat;
  z-index: 0;
}

.home-stats__inner{
  position: relative;
  z-index: 2;
  min-height: 299px;
  display: grid;
  grid-template-columns: 104px 223px 210px 249px;
  justify-content: space-between;
  align-items: start;
  padding-top: 100px;
  padding-bottom: 76px;
}

.home-stat{
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 5px;
}

.home-stat__value{
  color: #FFAE23;
  font-size: 60px;
  line-height: 70px;
  font-weight: 700;
}

.home-stat__label{
  color: #FFFFFF;
  font-size: 18px;
  line-height: 24px;
  font-weight: 400 !important;
}

.home-stats__cut{
  position: absolute;
  width: 417px;
  height: 40px;
  background-repeat: no-repeat;
  background-size: 100% 100%;
  z-index: 3;
  pointer-events: none;
}

/* верхний левый */
.home-stats__cut--tl{
  top: 0;
  left: 0;
  background-image: url("/assets/templates/virgruz/img/Rectangle-67.svg");
}

/* верхний правый */
.home-stats__cut--tr{
  transform: scaleY(-1);
  top: 0;
  right: 0;
  background-image: url("/assets/templates/virgruz/img/Rectangle-69.svg");
}

/* нижний левый */
.home-stats__cut--bl{
  bottom: 0;
  left: 0;
  background-image: url("/assets/templates/virgruz/img/Rectangle-66.svg");
}

/* нижний правый */
.home-stats__cut--br{
  bottom: 0;
  right: 0;
  background-image: url("/assets/templates/virgruz/img/Rectangle-69.svg");
}

/* адаптив */
@media (max-width: 1280px){
  .home-stats__inner{
    grid-template-columns: repeat(2, minmax(220px, 1fr));
    gap: 30px 40px;
    padding-top: 70px;
    padding-bottom: 70px;
  }
}

@media (max-width: 700px){
  .home-stats{
    min-height: auto;
  }

  .home-stats__inner{
    grid-template-columns: 1fr;
    gap: 24px;
    padding-top: 60px;
    padding-bottom: 60px;
  }

  .home-stat__value{
    font-size: 44px;
    line-height: 52px;
  }

  .home-stat__label{
    font-size: 16px;
    line-height: 22px;
  }

  .home-stats__cut{
    width: 220px;
    height: 24px;
  }
}

/* ===================================================================== */
/* ========================== HOME SERVICES MINI ======================== */
/* ===================================================================== */

.home-services{
  padding: 80px 0 0;
  background: #fff;
}

.home-services .container{
  max-width: 1240px;
}

.home-services__title{
  margin: 0 0 40px;
  text-align: center;
  font-size: 34px;
  line-height: 41px;
  color: #2A2D34;
}

.home-services__grid{
  display: grid;
  grid-template-columns: repeat(2, 610px);
  grid-template-rows: 237px 141px;
  column-gap: 20px;
  row-gap: 30px;
  justify-content: center;
}

.svc-mini{
  display: grid;
  grid-template-columns: 210px 390px;
  gap: 10px;
  position: relative;
  overflow: hidden;
  background: #fff;
}

.svc-mini--tall{
  height: 237px;
}

.svc-mini--short{
  height: 141px;
}

.svc-mini__media{
  position: relative;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  overflow: hidden;
}

.svc-mini--tall .svc-mini__media{
  height: 237px;
}

.svc-mini--short .svc-mini__media{
  height: 141px;
}

.svc-mini__media::before{
  content:"";
  position:absolute;
  inset:0;
  background: rgba(0,0,0,.5);
  z-index: 1;
}

.svc-mini__media::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:50px;
  height:50px;
  background:#fff;
  clip-path: polygon(0 0, 0 100%, 100% 100%);
  z-index: 2;
}

.svc-mini__media-title{
  position: absolute;
  left: 30px;
  top: 30px;
  right: 20px;
  z-index: 3;
  color: #fff;
  font-size: 20px;
  line-height: 24px;
}

.svc-mini__list{
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.svc-mini-link{
  min-height: 45px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 13px 16px;
  background: #F4F4F4;
  color: #6E6E6E;
  text-decoration: none;
  gap: 10px;
  box-sizing: border-box;
  transition: .2s ease;
}

.svc-mini-link:hover{
  background: #FFAE23;
  color: #2A2D34;
}

.svc-mini-link:hover .svc-mini-link__arr{
  opacity: 1;
  color: #2A2D34;
}

.svc-mini-link__txt{
  font-family: var(--ff-text);
  font-weight: 400;
  font-size: 16px;
  line-height: 19px;
}

.svc-mini-link__arr{
  flex: 0 0 auto;
  font-size: 16px;
  line-height: 1;
  opacity: .7;
}

.svc-mini:nth-child(4){
  height: 147px;
}

.svc-mini:nth-child(4) .svc-mini__media{
  height: 141px;
}

.svc-mini:nth-child(4) .svc-mini__list{
  height: 147px;
  overflow: hidden;
}

.home-services__bottom{
  display: flex;
  justify-content: center;
  margin-top: 40px;
}

.home-services__btn{
  width: 340px;
  height: 51px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #FFAE23;
  color: #2A2D34;
  text-decoration: none;
  font-size: 16px;
  line-height: 19px;
}

.home-services__btn:hover{
  filter: brightness(.97);
}

/* адаптив */
@media (max-width: 1280px){
  .home-services__grid{
    grid-template-columns: 1fr;
    grid-template-rows: auto;
  }

  .svc-mini{
    width: 100%;
    max-width: 610px;
    margin: 0 auto;
  }
}

@media (max-width: 760px){
  .svc-mini{
    grid-template-columns: 1fr;
    height: auto !important;
  }

  .svc-mini__media{
    height: 220px !important;
  }

  .svc-mini__list{
    gap: 2px;
  }

  .home-services__btn{
    width: 100%;
    max-width: 340px;
  }
}

.service-tags__grid{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top: 28px;
}

.service-tags a{
  padding:6px 12px;
  font-size:14px;
}

.service-tag{
  display:inline-flex;
  align-items:center;
  padding:10px 14px;
  background:#F4F4F4;
  color:#6E6E6E;
  text-decoration:none;
  border-radius: 6px;
  line-height:1;
}
.service-tag:hover{
  background:#ececec;
  color:#2A2D34;
}

.service-body{
  padding: 40px 0;
}

.service-content{
  font-family: var(--ff-text);
  font-size: 14px;
  line-height: 22px;
  color: rgba(42,45,52,.7);
}

.service-content h2{
  font-family: var(--ff-title);
  font-weight: 700;
  font-size: 34px;
  line-height: 41px;
  color: #2A2D34;
  margin: 0 0 30px;
}

.service-content p{
  margin: 0 0 16px;
}

.benefits{
  padding: 60px 0; /* подгони по месту */
}

.benefits .container{
  max-width: var(--container); /* 1240 */
}

.benefits__title{
  margin: 0 0 40px;
  text-align: center;
  font-size: 34px;
  line-height: 41px;
  color: #2A2D34;
}

.benefits__row{
  display: flex;
  gap: 20px;
}

.benefit{
  width: 295px;   /* как в фигме */
  height: 100px;
  display: flex;
  align-items: center;
  gap: 20px;
}

.benefit__ico{
  width: 100px;
  height: 100px;
  background: #0F7AFF;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  flex: 0 0 100px;
}

.benefit__ico::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:30px;
  height:30px;
  background:#fff;
  clip-path: polygon(0 0, 0 100%, 100% 100%);
}

.benefit__ico img{
  width: 32px;
  height: 32px;
  display: block;
}

.benefit__text{
  font-size: 18px;
  line-height: 24px;
  font-weight: 400; /* по фигме */
  color: #2A2D34;
}

/* список шагов услуги */
#main ol.service-steps{
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  counter-reset: step;
}

#main ol.service-steps > li{
  list-style: none !important;
  counter-increment: step;
  position: relative;
  padding-left: 42px;   /* место под 01 */
  margin: 0 0 16px 0;

  font-family: "Xolonium", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  font-size: 16px;
  line-height: 24px;
  color: #2A2D34;
}

.service-steps li::before{
  font-family:var(--ff-title);
  font-weight:700;
}
/* скрываем стандартный маркер (на всякий) */
#main ol.service-steps > li::marker{ content: ""; }

#main ol.service-steps > li::before{
  content: counter(step, decimal-leading-zero);
  position: absolute;
  left: 0;
  top: 2px;

  width: 24px;

  font-family: "Xolonium", "Inter", sans-serif;
  font-weight: 700;
  font-size: 16px;
  line-height: 19px;
  color: #FFAE23;
}

/* ================= RELATED SERVICES ================= */

.related-services{
  padding:60px 0;
}

/* TITLE */
.related-services__title{
  margin-bottom:30px;
  font-size:24px;
}

/* GRID */
.related-services__grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:20px;
}

/* CARD */
.related-card{
  display:flex;
  flex-direction:column;
  justify-content:space-between;

  min-height:140px;
  padding:20px;

  background:#F4F4F4;
  text-decoration:none;
  color:#2A2D34;

  transition:.2s;
  position:relative;
}

/* HOVER */
.related-card:hover{
  background:#FFAE23;
}

/* HEADER */
.related-card__head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:10px;
}

/* TITLE */
.related-card__title{
  font-family:'Xolonium';
  font-size:16px;
  line-height:1.4;
}

/* ARROW */
.related-card__arrow{
  font-size:16px;
  flex-shrink:0;
}

/* DESCRIPTION */
.related-card__desc{
  margin-top:10px;

  font-family:'Inter';
  font-size:14px;
  line-height:1.4;
  color:#6E6E6E;
}

/* HOVER TEXT */
.related-card:hover .related-card__desc{
  color:#2A2D34;
}

/* ================= ADAPTIVE ================= */

@media (max-width:1100px){
  .related-services__grid{
    grid-template-columns:repeat(2, 1fr);
  }
}

@media (max-width:600px){
  .related-services__grid{
    grid-template-columns:1fr;
  }
}

/* ===================================================================== */
/* ========================== home-benefits-2 =========================== */
/* ===================================================================== */

.home-benefits-2{
  padding: 80px 0 100px;
  background: #fff;
}

.home-benefits-2 .container{
  max-width: 1240px;
}

.home-benefits-2__title{
  margin: 0 0 40px;
  text-align: center;
  font-size: 34px;
  line-height: 41px;
  color: #2A2D34;
}

.home-benefits-2__grid{
  display: grid;
  grid-template-columns: repeat(4, 295px);
  gap: 20px;
  justify-content: center;
}

.home-benefits-2__item{
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 20px;
  min-height: 220px;
}

.home-benefits-2__icon{
  width: 100px;
  height: 100px;
  background: #0F7AFF;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  flex: 0 0 100px;
}

.home-benefits-2__icon::after{
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 30px;
  height: 30px;
  background: #fff;
  clip-path: polygon(0 0, 0 100%, 100% 100%);
}

.home-benefits-2__icon img{
  width: 42px;
  height: 42px;
  display: block;
  object-fit: contain;
}

.home-benefits-2__text{
  display: flex;
  flex-direction: column;
  gap: 10px;
  width: 100%;
}

.home-benefits-2__item-title{
  min-height: 24px;
  font-size: 18px;
  line-height: 24px;
  color: #2A2D34;
}

.home-benefits-2__item-desc{
  font-family: var(--ff-text);
  font-weight: 400;
  font-size: 14px;
  line-height: 22px;
  color: rgba(0,0,0,.7);
}

@media (max-width: 1280px){
  .home-benefits-2__grid{
    grid-template-columns: repeat(2, 295px);
  }
}

@media (max-width: 700px){
  .home-benefits-2{
    padding: 60px 0 80px;
  }

  .home-benefits-2__grid{
    grid-template-columns: 1fr;
  }

  .home-benefits-2__item{
    min-height: auto;
  }
}

/* ===================================================================== */
/* =========================== home-approach ============================ */
/* ===================================================================== */

.home-approach{
  padding: 80px 0 100px;
  background: #fff;
}

.home-approach .container{
  max-width: 1238px;
}

.home-approach__title{
  margin: 0 0 40px;
  text-align: center;
  font-size: 34px;
  line-height: 41px;
  color: #2A2D34;
}

.home-approach__grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  column-gap: 53px;
  row-gap: 30px;
  align-items: start;
}

.home-approach__item{
  display: grid;
  grid-template-columns: 69px 1fr;
  column-gap: 24px;
  row-gap: 12px;
  align-items: start;
}

.home-approach__num{
  grid-column: 1;
  grid-row: 1 / span 2;
  font-size: 46px;
  line-height: 55px;
  color: #FFAE23;
}

.home-approach__subtitle{
  grid-column: 2;
  font-size: 16px;
  line-height: 24px;
  font-weight: 400 !important;
  color: #2A2D34;
}

.home-approach__desc{
  grid-column: 1 / -1;
  font-family: var(--ff-text);
  font-size: 14px;
  line-height: 24px;
  color: rgba(0,0,0,.7);
}

/* нижний ряд как в макете: 04 слева, 05 справа на 2 колонки */
.home-approach__item:nth-child(4){
  grid-column: 1 / 2;
}

.home-approach__item:nth-child(5){
  grid-column: 2 / 4;
}

/* для 5-го элемента немного меняем сетку внутри */
.home-approach__item:nth-child(5){
  grid-template-columns: 69px 1fr;
}

@media (max-width: 1100px){
  .home-approach__grid{
    grid-template-columns: repeat(2, 1fr);
    column-gap: 32px;
  }

  .home-approach__item:nth-child(5){
    grid-column: 1 / -1;
  }
}

@media (max-width: 700px){
  .home-approach{
    padding: 60px 0 80px;
  }

  .home-approach__grid{
    grid-template-columns: 1fr;
    row-gap: 28px;
  }

  .home-approach__item:nth-child(4),
  .home-approach__item:nth-child(5){
    grid-column: auto;
  }

  .home-approach__item{
    grid-template-columns: 56px 1fr;
    column-gap: 16px;
  }

  .home-approach__num{
    font-size: 34px;
    line-height: 40px;
  }

  .home-approach__subtitle{
    font-size: 15px;
    line-height: 22px;
  }

  .home-approach__desc{
    line-height: 22px;
  }
}

/* ===================================================================== */
/* =========================== home-dark-cta ============================ */
/* ===================================================================== */

.home-dark-cta{
  position: relative;
  width: 100%;
  height: 720px;
  overflow: hidden;
  background: #fff;
}

/* общий фон */
.home-dark-cta__bg{
  position: absolute;
  inset: 0;
  z-index: 0;
  background:
    linear-gradient(0deg, rgba(1,4,13,.58), rgba(1,4,13,.58)),
    url("/assets/templates/virgruz/img/home-dark-cta-bg.webp") center center / cover no-repeat;
}

/* левая светло-синяя фигура */
.home-dark-cta__overlay{
  position: absolute;
  left: 0;
  top: 0;
  width: 58%;
  height: 100%;
  z-index: 1;
  pointer-events: none;
  background: rgba(15, 122, 255, 0.22);

  clip-path: polygon(
    0 0,
    72% 0,
    100% 55%,
    72% 100%,
    0 100%
  );
}

/* темная правая подложка */
.home-dark-cta__object{
  position: absolute;
  left: 0;
  top: 0;
  width: 58%;
  height: 100%;
  z-index: 2;
  pointer-events: none;
  background: url("/assets/templates/virgruz/img/home-dark-cta-object.png") left center / contain no-repeat;
}

.home-dark-cta__shade{
  position: absolute;
  top: 0;
  right: 0;
  width: 54%;
  height: 100%;
  z-index: 3;
  pointer-events: none;

  background: rgba(0,0,0,.72);

  clip-path: polygon(
    18% 0,
    100% 0,
    100% 100%,
    34% 100%,
    16% 55%
  );
}

/* внутренняя часть */
.home-dark-cta__inner{
  position: relative;
  z-index: 4;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding-right: 72px;
}

.home-dark-cta__content{
  width: 549px;
  color: #fff;
}

.home-dark-cta__title{
  margin: 0 0 30px;
  width: 549px;
  font-size: 34px;
  line-height: 41px;
  color: #fff;
}

.home-dark-cta__text{
  width: 505px;
  font-family: var(--ff-text);
  font-size: 16px;
  line-height: 19px;
  color: #fff;
}

.home-dark-cta__text p{
  margin: 0 0 24px;
}

.home-dark-cta__text p:last-child{
  margin-bottom: 0;
}

.home-dark-cta__btn{
  margin-top: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 340px;
  height: 51px;
  background: #FFAE23;
  color: #2A2D34;
  text-decoration: none;
  font-size: 16px;
  line-height: 19px;
}

.home-dark-cta__btn:hover{
  background: #f0a31f;
}

/* вырезы */
.home-dark-cta__cut{
  position: absolute;
  width: 417px;
  height: 40px;
  background-repeat: no-repeat;
  background-size: 100% 100%;
  z-index: 5;
  pointer-events: none;
}

.home-dark-cta__cut--tl{
  top: 0;
  left: 0;
  background-image: url("/assets/templates/virgruz/img/Rectangle-67.svg");
}
.home-dark-cta__cut--tr{
  transform: scaleY(-1);
  top: 0;
  right: 0;
  background-image: url("/assets/templates/virgruz/img/Rectangle-69.svg");
}
.home-dark-cta__cut--bl{
  bottom: 0;
  left: 0;
  background-image: url("/assets/templates/virgruz/img/Rectangle-66.svg");
}
.home-dark-cta__cut--br{
  bottom: 0;
  right: 0;
  background-image: url("/assets/templates/virgruz/img/Rectangle-69.svg");
}

@media (max-width: 1280px){
  .home-dark-cta__overlay{
    width: 60%;
  }

  .home-dark-cta__object{
    width: 60%;
  }

  .home-dark-cta__content{
    width: 520px;
  }

  .home-dark-cta__title,
  .home-dark-cta__text{
    width: 100%;
  }
}

@media (max-width: 980px){
  .home-dark-cta{
    height: auto;
    min-height: 620px;
  }

  .home-dark-cta__overlay{
    width: 100%;
    clip-path: none;
    background: rgba(15,122,255,.18);
  }

  .home-dark-cta__object{
    width: 100%;
    background: rgba(0,0,0,.45);
  }

  .home-dark-cta__inner{
    min-height: 620px;
    justify-content: center;
    padding: 60px 0;
  }

  .home-dark-cta__content{
    width: min(100%, 640px);
  }
}

@media (max-width: 768px){
  .home-dark-cta{
    min-height: 560px;
  }

  .home-dark-cta__title{
    font-size: 26px;
    line-height: 32px;
  }

  .home-dark-cta__text{
    font-size: 14px;
    line-height: 20px;
  }

  .home-dark-cta__btn{
    width: 100%;
    max-width: 340px;
  }

  .home-dark-cta__cut{
    width: 220px;
    height: 26px;
  }
}

/* =========================
   HOME STEPS
========================= */

.home-steps{
  padding: 80px 0 100px;
  background: #fff;
}

.home-steps .container{
  max-width: 1238px;
}

.home-steps__title{
  margin: 0 0 46px;
  text-align: center;
  font-size: 34px;
  line-height: 41px;
  color: #2A2D34;
}

.home-steps__grid{
  display: grid;
  grid-template-columns: 293px 296px 294px 293px;
  column-gap: 20px;
  align-items: start;
}

.home-step{
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.home-step__head{
  display: flex;
  align-items: center;
  gap: 18px;
  min-height: 30px;
}

.home-step__meta{
  display: flex;
  align-items: center;
  gap: 20px;
  min-width: max-content;
}

.home-step__num{
  width: 69px;
  font-size: 46px;
  line-height: 55px;
  color: #0F7AFF;
  flex: 0 0 auto;
}

.home-step__name{
  font-size: 16px;
  line-height: 24px;
  font-weight: 400 !important;
  color: #2A2D34;
  white-space: nowrap;
}

.home-step__line{
  flex: 1 1 auto;
  min-width: 40px;
  height: 0;
  border-top: 1.5px dashed #0F7AFF;
  position: relative;
  top: 1px;
}

.home-step__text{
  font-family: var(--ff-text);
  font-size: 14px;
  line-height: 24px;
  color: rgba(0,0,0,.7);
}

/* подгонка ширин описаний под фигму */
.home-step:nth-child(1) .home-step__text{ max-width: 275px; }
.home-step:nth-child(2) .home-step__text{ max-width: 296px; }
.home-step:nth-child(3) .home-step__text{ max-width: 234px; }
.home-step:nth-child(4) .home-step__text{ max-width: 293px; }

/* у последнего шага линии нет */
.home-step:last-child .home-step__line{
  display: none;
}

@media (max-width: 1240px){
  .home-steps__grid{
    grid-template-columns: repeat(2, minmax(280px, 1fr));
    gap: 36px 24px;
  }

  .home-step__text,
  .home-step:nth-child(1) .home-step__text,
  .home-step:nth-child(2) .home-step__text,
  .home-step:nth-child(3) .home-step__text,
  .home-step:nth-child(4) .home-step__text{
    max-width: none;
  }

  .home-step:nth-child(2) .home-step__line,
  .home-step:nth-child(4) .home-step__line{
    display: none;
  }
}

@media (max-width: 760px){
  .home-steps{
    padding: 60px 0 80px;
  }

  .home-steps__title{
    margin-bottom: 34px;
    font-size: 28px;
    line-height: 34px;
  }

  .home-steps__grid{
    grid-template-columns: 1fr;
    gap: 30px;
  }

  .home-step__line{
    display: none;
  }

  .home-step__num{
    font-size: 40px;
    line-height: 48px;
    width: 60px;
  }
}

.home-price{
  padding: 40px 0 60px;
}

.home-price .price-table__head > div{
  padding: 16px 26px;
}

.home-price .price-table__row > div{
  padding: 18px 26px;
  min-height: 54px;
}

.home-price .price-block__subtitle{
  margin-bottom: 34px;
}

/* =========================================================
   HOME FAQ
========================================================= */

.home-faq{
  padding-top: 40px;
  padding-bottom: 110px;
}

.home-faq__container{
  max-width: 1030px;
}

.home-faq__title{
  margin: 0 0 40px;
  text-align: center;
  font-size: 34px;
  line-height: 41px;
  color: #2A2D34;
}

.home-faq__list{
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.home-faq__item{
  background: #F9F9F9;
}

.home-faq__item[open]{
  background: #EBEBEB;
}

.home-faq__question{
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 20px 16px;
  min-height: 64px;
  box-sizing: border-box;
}

.home-faq__question::-webkit-details-marker{
  display: none;
}

.home-faq__question-text{
  font-size: 18px;
  line-height: 24px;
  color: #2A2D34;
}

.home-faq__icon{
  width: 24px;
  height: 24px;
  position: relative;
  flex: 0 0 24px;
}

.home-faq__icon::before{
  content: "";
  position: absolute;
  left: 5px;
  top: 8px;
  width: 12px;
  height: 12px;
  border-right: 2px solid #B3B3B3;
  border-bottom: 2px solid #B3B3B3;
  transform: rotate(45deg);
  transition: transform .2s ease, border-color .2s ease;
}

.home-faq__item[open] .home-faq__icon::before{
  border-color: #2A2D34;
  transform: rotate(-135deg);
  top: 12px;
}

.home-faq__answer{
  padding: 0 16px 20px;
}

.home-faq__answer-text{
  max-width: 790px;
  font-family: var(--ff-text);
  font-size: 14px;
  line-height: 24px;
  color: rgba(0,0,0,.7);
}

@media (max-width: 768px){
  .home-faq{
    padding: 70px 0 90px;
  }

  .home-faq__title{
    font-size: 28px;
    line-height: 34px;
  }

  .home-faq__question-text{
    font-size: 16px;
    line-height: 22px;
  }

  .home-faq__answer-text{
    max-width: none;
    font-size: 14px;
    line-height: 22px;
  }
}

/* =========================================================
   PORTFOLIO PAGE
========================================================= */

.portfolio-page{
  padding: 94px 0 80px;
}

.portfolio-page .container{
  max-width: 1240px;
}

/* верхние фильтры */
.portfolio-filter{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:24px;
  margin-bottom:50px;
}

.portfolio-filter__btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:10px 16px;
  border:1px solid #D9D9D9;
  background:#fff;
  color:#2A2D34;
  text-decoration:none;
  font-family:var(--ff-text);
  font-size:14px;
  line-height:24px;
  transition:.2s ease;
}

.portfolio-filter__btn:hover{
  border-color:#FFAE23;
  color:#FFAE23;
}

.portfolio-filter__btn.is-active{
  background:rgba(254, 235, 199, 0.3);
  border-color:#FFAE23;
  color:#FFAE23;
}

/* контейнер pdoPage */
#pdopage{
  width:100%;
}

/* сетка — по аналогии с внутренней галереей */
#pdopage{
  width:100%;
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:20px;
  align-items:start;
}

#pdopage > .portfolio-card{
  width:100%;
  min-width:0;
}

#pdopage > .pagination{
  grid-column:1 / -1;
  justify-self:center;
  margin-top:30px;
}

/* карточка */
.portfolio-card{
  position:relative;
  display:block;
  text-decoration:none;
  overflow:hidden;
  background:#f4f4f4;
  aspect-ratio: 400 / 272;
}

.portfolio-card__img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .25s ease;
}

.portfolio-card:hover .portfolio-card__img{
  transform:scale(1.03);
}

/* базовое затемнение */
.portfolio-card__overlay{
  position:absolute;
  inset:0;
  background:rgba(42,45,52,.18);
  transition:.25s ease;
}

/* синий градиент как в фигме */
.portfolio-card:hover .portfolio-card__overlay{
  background:linear-gradient(
    180deg,
    rgba(15, 122, 255, 0) 46.52%,
    rgba(15, 122, 255, 0.8) 83.78%
  );
}

.portfolio-card__content{
  position:absolute;
  left:20px;
  right:20px;
  bottom:18px;
  z-index:2;
  opacity:0;
  transform:translateY(8px);
  transition:.25s ease;
}

.portfolio-card:hover .portfolio-card__content{
  opacity:1;
  transform:translateY(0);
}

.portfolio-card__title{
  display:block;
  max-width:232px;
  margin:0 0 6px;
  color:#fff;
  font-family:var(--ff-title);
  font-weight:700;
  font-size:18px;
  line-height:24px;
}

.portfolio-card__desc{
  display:none;
}

.portfolio-card__more{
  display:inline-block;
  color:#fff;
  font-family:var(--ff-text);
  font-size:14px;
  line-height:20px;
}

.portfolio-card::after{
  content:"↗";
  position:absolute;
  right:20px;
  bottom:18px;
  z-index:2;
  color:#fff;
  font-size:22px;
  line-height:1;
  opacity:0;
  transform:translateY(8px);
  transition:.25s ease;
}

.portfolio-card:hover::after{
  opacity:1;
  transform:translateY(0);
}

/* пагинация */
.pagination,
.portfolio-pagination{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:24px;
  margin-top:50px;
}

.portfolio-pagination__num,
.portfolio-pagination__arrow{
  width:44px;
  height:44px;
  box-sizing:border-box;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid #D9D9D9;
  background:#fff;
  text-decoration:none;
  font-family: var(--ff-text);
  font-weight:400;
  font-size:14px;
  line-height:24px;
  color:#2A2D34;
}

.portfolio-pagination__num.is-active{
  background: rgba(254, 235, 199, 0.3);
  border-color:#FFAE23;
  color:#FFAE23;
}

.portfolio-pagination__arrow:hover,
.portfolio-pagination__num:hover{
  border-color:#FFAE23;
  color:#FFAE23;
}

.portfolio-pagination__arrow.is-disabled{
  pointer-events:none;
  opacity:.45;
}

.portfolio-pagination__dots{
  cursor:default;
}

/* адаптив */
@media (max-width: 980px){
  #pdopage .rows,
  #pdorows,
  .portfolio-grid{
    grid-template-columns:repeat(2, 1fr);
  }
}

@media (max-width: 700px){
  #pdopage .rows,
  #pdorows,
  .portfolio-grid{
    grid-template-columns:1fr;
  }

  .portfolio-filter{
    gap:12px;
  }
}

/* =========================================================
   CASE PAGE
========================================================= */

.case-page{
  padding: 80px 0 100px;
}

.case-page .container{
  max-width: 1238px;
}

.case-content{
  font-family: var(--ff-text);
  font-size: 16px;
  line-height: 28px;
  color: rgba(42,45,52,.8);
}

.case-content h1,
.case-content h2,
.case-content h3,
.case-content h4,
.case-content h5,
.case-content h6{
  font-family: var(--ff-title);
  font-weight: 700;
  color: #2A2D34;
}

.case-content p{
  margin: 0 0 18px;
}

.case-content img{
  max-width: 100%;
  height: auto;
  display: block;
}

.case-gallery{
  margin-top: 50px;
}

.case-gallery__grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
}

.case-gallery__item{
  display: block;
  text-decoration: none;
  overflow: hidden;
}

.case-gallery__item img{
  display: block;
  width: 100%;
  height: 272px;
  object-fit: cover;
  transition: transform .25s ease, opacity .25s ease;
}

.case-gallery__item:hover img{
  transform: scale(1.03);
  opacity: .95;
}

@media (max-width: 980px){
  .case-gallery__grid{
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 640px){
  .case-gallery__grid{
    grid-template-columns: 1fr;
  }

  .case-gallery__item img{
    height: auto;
  }
}

.case-tags{
  margin-top: 50px;
}

.case-tags__row{
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
}

.case-tags__link{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 10px 16px;
  border: 1px solid #D9D9D9;
  background: #fff;
  color: #2A2D34;
  text-decoration: none;
  font-family: var(--ff-text);
  font-weight: 400;
  font-size: 14px;
  line-height: 24px;
  transition: .2s ease;
}

.case-tags__link:hover{
  border-color: #FFAE23;
  color: #FFAE23;
}

/* =========================================================
   PRICE PAGE
========================================================= */

.price-page{
  padding: 0 0 100px;
}

.price-page .container{
  max-width: 1240px;
}

.price-block__title{
  margin: 0 0 24px;
  text-align: center;
  font-size: 34px;
  line-height: 41px;
  color: #2A2D34;
}

.price-block__subtitle{
  margin: 0 0 36px;
  text-align: center;
  font-family: var(--ff-text);
  font-size: 20px;
  line-height: 24px;
  font-weight: 500;
  color: #6E6E6E;
}

.price-table{
  margin-bottom: 40px;
}

.price-table__head,
.price-table__row{
  display: grid;
  gap: 5px;
}

.price-table--five .price-table__head,
.price-table--five .price-table__row{
  grid-template-columns: 299px 200px 296px 200px 225px;
}

.price-table--three .price-table__head,
.price-table--three .price-table__row{
  grid-template-columns: 685px 320px 225px;
}

.price-table__head{
  margin-bottom: 5px;
}

.price-table__head > div{
  font-family: var(--ff-title);
  font-weight: 400;
  font-size: 18px;
  line-height: 24px;
  color: #2A2D34;
  padding: 0 30px 20px;
  display: flex;
  align-items: flex-end;
}

.price-table__head--three > div:nth-child(2){
  padding-left: 24px;
}

.price-table__head--three > div:nth-child(3){
  padding-left: 20px;
}

.price-table__row > div{
  min-height: 60px;
  background: #EDEDED;
  padding: 18px 30px;
  display: flex;
  align-items: center;
  box-sizing: border-box;

  font-family: var(--ff-text);
  font-size: 16px;
  line-height: 24px;
  color: #2A2D34;
}

.price-table__row > div strong{
  font-weight: 800;
}

.price-table__row--accent > div{
  background: #0F7AFF;
  color: #fff;
}

.price-table__row--three > div:nth-child(2){
  padding-left: 24px;
}

.price-table__row--three > div:nth-child(3){
  padding-left: 20px;
}

.price-note{
  display: flex;
  align-items: flex-start;
  gap: 16px;
  margin-top: 10px;
}

.price-note__icon{
  width: 40px;
  height: 40px;
  flex: 0 0 40px;
  background: #FFAE23;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--ff-title);
  font-size: 24px;
  line-height: 1;
}

.price-note__text{
  display: flex;
  flex-wrap: wrap;
  gap: 8px 24px;
  color: #6E6E6E;
  font-family: var(--ff-text);
  font-size: 14px;
  line-height: 24px;
}

.price-note__text > div{
  flex: 1 1 45%;
}

@media (max-width: 1260px){
  .price-table{
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  
  .price-table > * {
  min-width: max-content;
  }

  .price-table__head,
  .price-table__row{
    min-width: 1240px;
  }
}

.price-page{
  padding: 80px 0 100px;
}

/* =========================================
   GLOBAL SECTION SPACING
========================================= */

.page-section{
  padding-bottom: 60px;
}

/* расстояние между секциями */
.page-section + .page-section{
  padding-top: 0;
}

@media (max-width:1024px){
.page-section{
padding-bottom:80px;
}
}

@media (max-width:640px){
.page-section{
padding-bottom:60px;
}
}

/* =========================================================
   HOME MOBILE 375
========================================================= */
@media (max-width: 767px){

  html, body{
    overflow-x: hidden;
  }

  body{
    font-size:14px;
    line-height:22px;
  }

  .container{
    max-width: 375px;
    padding-left: 16px;
    padding-right: 16px;
  }

  .page-section{
    padding-bottom: 20px;
  }

  h1{
    font-size:35px;
    line-height:42px;
  }

  h2,
  .section-title{
    font-size:24px;
    line-height:29px;
  }

  /* =========================
     MOBILE HEADER / HERO
  ========================= */

  .hero-home,
  .hero-home.section,
  .hero-home-main{
    position:relative;
    min-height:809px;
    padding:90px 0 24px;
    overflow:hidden;
  }

  .hero-home__bg,
  .hero-home .hero__bg,
  .hero-home-main__bg{
    position:absolute;
    inset:0;
    background-position:center;
    background-size:cover;
    background-repeat:no-repeat;
  }

  .hero-home__overlay,
  .hero-home .hero__overlay,
  .hero-home-main__overlay{
    position:absolute;
    inset:0;
    background:
      linear-gradient(0deg, rgba(1,4,13,.8), rgba(1,4,13,.8)),
      linear-gradient(0deg, rgba(15,122,255,.3), rgba(15,122,255,.3));
  }

  .hero-home__object,
  .hero-home .hero__object,
  .hero-home-main__object{
    position:absolute;
    top:0;
    left:7px;
    width:354px;
    max-width:none;
    height:auto;
    z-index:1;
    pointer-events:none;
  }

  .hero-home__inner,
  .hero-home .hero__inner,
  .hero-home-main__inner{
    position:relative;
    z-index:2;
  }

  .hero-home__content,
  .hero-home .hero__content,
  .hero-home-main__content{
    width:100%;
    max-width:343px;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:20px;
    margin:0;
  }

  .hero-home__title,
  .hero-home .hero__title,
  .hero-home-main__title{
    width:100%;
    max-width:340px;
    margin:0;
    font-size:35px;
    line-height:42px;
    color:#fff;
  }

  .hero-home__title .accent,
  .hero-home .hero__title .accent,
  .hero-home-main__title .accent{
    color:#FFAE23;
  }

  .hero-home__subtitle,
  .hero-home .hero__subtitle,
  .hero-home-main__subtitle{
    width:100%;
    max-width:343px;
    margin:0;
    font-family:var(--ff-text);
    font-weight:500;
    font-size:16px;
    line-height:19px;
    color:#fff;
  }

  .hero-home__btn,
  .hero-home .hero__btn,
  .hero-home-main__btn{
    max-width:343px;
    min-height:45px;
    display:flex;
    align-items:center;
    justify-content:center;
    
    font-size:14px;
    line-height:17px;
    background:#FFAE23;
    color:#2A2D34;
    text-decoration:none;
  }

  /* mobile form in hero */
  .hero-form,
  .hero-home__form,
  .home-form{
    position:relative;
    z-index:3;
    width:100%;
    max-width:343px;
    margin-top:129px;
    background:#fff;
    padding:20px 20px 20px;
    box-sizing:border-box;
  }

  .hero-form::after,
  .hero-home__form::after,
  .home-form::after{
    content:"";
    position:absolute;
    right:0;
    bottom:0;
    width:40px;
    height:40px;
    background:#fff;
    clip-path:polygon(100% 0, 0 100%, 100% 100%);
  }

  .hero-form__title,
  .home-form__title{
    margin:0 0 20px;
    font-size:18px;
    line-height:22px;
    color:#2A2D34;
  }

  .hero-form input,
  .hero-form textarea,
  .hero-home__form input,
  .home-form input{
    width:100%;
    height:40px;
    padding:0 16px;
    margin:0 0 10px;
    background:#F4F4F4;
    border:0;
    box-sizing:border-box;
    font-size:14px;
    line-height:17px;
    color:#6E6E6E;
  }

  .hero-form .form-policy,
  .hero-form .form-agree,
  .hero-home__form .form-policy,
  .home-form .form-policy{
    display:flex;
    align-items:flex-start;
    gap:10px;
    margin-top:20px;
    font-size:12px;
    line-height:15px;
    color:#6E6E6E;
  }

  .hero-form .form-policy input,
  .hero-form .form-agree input{
    width:20px;
    height:20px;
    margin:0;
    flex:0 0 20px;
  }

  /* bottom cuts */
  .hero-home__cut,
  .hero-home .hero-cut{
    width:77px;
    height:24px;
  }

  /* =========================
     TRUST
  ========================= */

  .trust-block{
    padding:80px 0 0;
  }

  .trust-block__title{
    margin:0 0 20px;
    font-size:24px;
    line-height:29px;
  }

  .trust-block__grid{
    display:grid;
    grid-template-columns:repeat(2, 1fr);
    gap:10px;
  }

  .trust-block__item{
    min-height:80px;
    padding:14px;
  }

  .trust-block__item img{
    max-height:80px;
  }

  /* =========================
     HOME WORKS
  ========================= */

  .home-works{
    padding-top:80px;
  }

  .home-works .container{
    max-width:375px;
  }

  .home-works__title{
    margin:0 0 30px;
    text-align:center;
    font-size:24px;
    line-height:29px;
  }

  .home-works__grid{
    display:grid;
    grid-template-columns:repeat(2, 1fr);
    gap:16px;
  }

  .home-works__item,
  .home-works__card{
    height:112px;
  }

  .home-works__item img,
  .home-works__card img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
  }

  .home-works__all{
    min-height:112px;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    padding:20px;
    background:#FFAE23;
    color:#2A2D34;
    font-size:16px;
    line-height:19px;
    text-decoration:none;
    position:relative;
  }

  .home-works__all::after{
    content:"";
    position:absolute;
    right:0;
    bottom:0;
    width:23px;
    height:25px;
    background:#fff;
    clip-path:polygon(100% 0, 0 100%, 100% 100%);
  }

  /* =========================
     STATS
  ========================= */

  .home-stats{
    min-height:274px;
    overflow:hidden;
  }

  .home-stats .container{
    padding-top:50px;
    padding-bottom:50px;
  }

  .home-stats__grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:30px 20px;
  }

  .home-stats__item{
    display:flex;
    flex-direction:column;
    gap:10px;
  }

  .home-stats__value{
    font-size:40px;
    line-height:1;
  }

  .home-stats__label{
    font-size:14px;
    line-height:18px;
  }

  .home-stats__cut{
    width:251px;
    height:24px;
  }
  
  /* =========================
     MINI SERVICES
  ========================= */

  .home-services-mini{
    padding-top:80px;
  }

  .home-services-mini__title{
    margin:0 0 30px;
    text-align:center;
    font-size:24px;
    line-height:29px;
  }

  .home-services-mini__grid{
    display:grid;
    grid-template-columns:1fr;
    gap:30px;
  }

  .home-services-mini__group{
    display:flex;
    flex-direction:column;
    gap:10px;
  }

  .home-services-mini__head{
    position:relative;
    min-height:59px;
    padding:20px;
    display:flex;
    align-items:flex-start;
    background-size:cover;
    background-position:center;
    background-repeat:no-repeat;
    overflow:hidden;
  }

  .home-services-mini__head::before{
    content:"";
    position:absolute;
    inset:0;
    background:rgba(0,0,0,.5);
  }

  .home-services-mini__head::after{
    content:"";
    position:absolute;
    right:0;
    top:0;
    width:30px;
    height:30px;
    background:#fff;
    clip-path:polygon(100% 0, 0 0, 100% 100%);
  }

  .home-services-mini__head-title{
    position:relative;
    z-index:1;
    font-size:16px;
    line-height:19px;
    color:#fff;
  }

  .home-services-mini__list{
    display:flex;
    flex-direction:column;
    gap:3px;
  }

  .home-services-mini__link{
    min-height:45px;
    padding:13px 16px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    background:#F4F4F4;
    color:#6E6E6E;
    text-decoration:none;
    font-size:16px;
    line-height:19px;
  }

  .home-services-mini__all{
    width:100%;
    min-height:45px;
    margin-top:30px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#FFAE23;
    color:#2A2D34;
    text-decoration:none;
    font-size:14px;
    line-height:17px;
  }

  /* =========================
     BENEFITS
  ========================= */

  .home-benefits,
  .benefits{
    padding-top:80px;
  }

  .home-benefits__title,
  .benefits__title{
    margin:0 0 30px;
    text-align:center;
    font-size:24px;
    line-height:29px;
  }

  .home-benefits__grid,
  .benefits__row{
    display:flex;
    flex-direction:column;
    gap:30px;
  }

  .home-benefit,
  .benefit{
    width:100%;
    height:auto;
    display:flex;
    align-items:flex-start;
    gap:20px;
  }

  .home-benefit__ico,
  .benefit__ico{
    width:90px;
    height:90px;
    flex:0 0 90px;
  }

  .home-benefit__text,
  .benefit__text{
    font-size:16px;
    line-height:24px;
  }

  /* =========================
     WHY US / 5 REASONS
  ========================= */

  .home-why,
  .home-why-us{
    padding-top:80px;
  }

  .home-why__title,
  .home-why-us__title{
    margin:0 0 30px;
    text-align:center;
    font-size:24px;
    line-height:29px;
  }

  .home-why__grid,
  .home-why-us__grid{
    display:flex;
    flex-direction:column;
    gap:30px;
  }

  .home-why__item,
  .home-why-us__item{
    display:flex;
    flex-direction:column;
    gap:16px;
  }

  .home-why__top,
  .home-why-us__top{
    display:flex;
    align-items:flex-start;
    gap:16px;
  }

  .home-why__num,
  .home-why-us__num{
    flex:0 0 51px;
    font-size:34px;
    line-height:41px;
    color:#FFAE23;
  }

  .home-why__subtitle,
  .home-why-us__subtitle{
    font-size:16px;
    line-height:21px;
  }

  .home-why__desc,
  .home-why-us__desc{
    font-size:14px;
    line-height:24px;
    color:rgba(42,45,52,.7);
  }

  /* =========================
     DARK CTA
  ========================= */

  .home-dark-cta{
    min-height:720px;
    overflow:hidden;
  }

  .home-dark-cta .container{
    padding-top:108px;
    padding-bottom:108px;
  }

  .home-dark-cta__content{
    width:100%;
    max-width:343px;
    display:flex;
    flex-direction:column;
    gap:20px;
  }

  .home-dark-cta__title{
    font-size:24px;
    line-height:29px;
  }

  .home-dark-cta__text{
    font-size:14px;
    line-height:22px;
  }

  .home-dark-cta__btn{
    width:100%;
    min-height:45px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#FFAE23;
    color:#2A2D34;
    text-decoration:none;
    font-size:14px;
    line-height:17px;
  }

  .home-dark-cta__cut{
    width:251px;
    height:24px;
  }
  
  /* =========================
     HOW WE WORK
  ========================= */

  .home-steps{
    padding-top:80px;
  }

  .home-steps__title{
    margin:0 0 30px;
    text-align:center;
    font-size:24px;
    line-height:29px;
  }

  .home-steps__grid{
    display:flex;
    flex-direction:column;
    gap:21px;
    max-width:296px;
    margin:0 auto;
  }

  .home-steps__item{
    display:flex;
    flex-direction:column;
    gap:20px;
  }

  .home-steps__head{
    display:flex;
    align-items:flex-start;
    gap:16px;
  }

  .home-steps__num{
    flex:0 0 57px;
    font-size:38px;
    line-height:46px;
    color:#0F7AFF;
  }

  .home-steps__name{
    font-size:16px;
    line-height:24px;
    color:#2A2D34;
  }

  .home-steps__desc{
    font-size:14px;
    line-height:24px;
    color:rgba(42,45,52,.7);
  }

  .home-steps__dash{
    display:none;
  }

  /* =========================
     HOME PRICE MINI
  ========================= */

  .home-price-mini{
    padding-top:40px;
  }

  .home-price-mini__title{
    margin:0 0 20px;
    text-align:center;
    font-size:24px;
    line-height:29px;
  }

  .home-price-mini__subtitle{
    margin:0 0 30px;
    text-align:center;
    font-size:16px;
    line-height:24px;
    color:#6E6E6E;
  }

  .home-price-mini__table-wrap{
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    padding-bottom:12px;
  }

  .home-price-mini__table{
    min-width:780px;
  }

  .home-price-mini__note{
    display:flex;
    align-items:flex-start;
    gap:16px;
    margin-top:30px;
  }

  .home-price-mini__note-icon{
    width:40px;
    height:40px;
    flex:0 0 40px;
  }

  .home-price-mini__note-text{
    display:flex;
    flex-direction:column;
    gap:16px;
    font-size:12px;
    line-height:16px;
    color:#6E6E6E;
  }

@media (max-width: 767px){

  .home-price-mini,
  .price-block{
    padding-top:80px;
  }

  .home-price-mini .container,
  .price-block{
    max-width:375px;
  }

  .price-block__title,
  .price-block .price-block__title{
    margin:0 0 20px;
    text-align:center;
    font-size:24px;
    line-height:29px;
  }

  .price-block__subtitle,
  .price-block .price-block__subtitle{
    margin:0 0 30px;
    text-align:center;
    font-size:16px;
    line-height:24px;
    color:#6E6E6E;
  }

  .price-table-wrap,
  .home-price-mini__table-wrap{
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    padding-bottom:12px;
  }

  .price-table,
  .home-price-mini__table{
    min-width:780px;
  }

  .price-note,
  .home-price-mini__note{
    display:flex;
    align-items:flex-start;
    gap:16px;
    margin-top:24px;
  }

  .price-note__icon,
  .home-price-mini__note-icon{
    width:40px;
    height:40px;
    flex:0 0 40px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#FFAE23;
    color:#fff;
    font-size:24px;
    line-height:1;
  }

  .price-note__text,
  .home-price-mini__note-text{
    display:flex;
    flex-direction:column;
    gap:12px;
    min-width:0;
    width:100%;
    font-size:12px;
    line-height:16px;
    color:#6E6E6E;
  }

  .price-note__text > div,
  .home-price-mini__note-text > div{
    width:100%;
  }
}

  /* =========================
     FAQ
  ========================= */

  .home-faq,
  .faq-block{
    padding-top:80px;
  }

  .home-faq__title,
  .faq-block__title{
    margin:0 0 30px;
    text-align:center;
    font-size:24px;
    line-height:29px;
  }

  .home-faq__list,
  .faq-block__list{
    display:flex;
    flex-direction:column;
    gap:6px;
  }

  .faq-item__question,
  .home-faq .faq-question{
    min-height:48px;
    padding:12px 16px;
    font-size:16px;
    line-height:24px;
  }

  .faq-item__answer,
  .home-faq .faq-answer{
    padding:12px 16px;
    font-size:14px;
    line-height:24px;
  }


}

@media (max-width: 767px){
  /* =========================
     HEADER MOBILE FIX
  ========================= */

  .site-header{
    position:absolute;
    top:0;
    left:0;
    width:100%;
    z-index:50;
    background:linear-gradient(0deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.6) 71.41%);
  }

  .site-header .container{
    padding-left:16px;
    padding-right:16px;
  }

  .header-left{
    display:flex;
    align-items:center;
    gap:12px;
  }

  /* на мобильном скрываем адрес/телефон и обычное меню */
.header-nav{
  display:none !important;
}

.header-contacts{
  display:flex;
}

  .header-social{
    display:flex;
    align-items:center;
    gap:16px;
    margin-left:auto;
    margin-right:16px;
  }

  .header-social .social-pack{
    width:88px;
    height:24px;
    object-fit:contain;
    display:block;
  }
  
  .header-social img{
    width:24px;
    height:24px;
    display:block;
  }

  /* =========================
     HERO MOBILE FIX
  ========================= */

  .hero-home{
position:relative;
min-height:809px;
height:auto;
padding-bottom:80px;
overflow:hidden;
}

  .hero-home .container.hero-home__inner{
    padding-left:16px;
    padding-right:16px;
    display:block;
  }

  .hero-home__content{
    position:relative;
    z-index:3;
    width:100%;
    max-width:343px;
    display:flex;
    flex-direction:column;
    gap:20px;
  }

  .hero-home__title{
    max-width:340px;
    margin:0;
    font-size:35px;
    line-height:42px;
    color:#fff;
  }

  .hero-home__title span{
    color:#FFAE23;
  }

  .hero-home__subtitle{
    max-width:343px;
    font-size:16px;
    line-height:19px;
    color:#fff;
  }

  .hero-form{
    width:100%;
    max-width:343px;
    background:#fff;
    padding:20px 16px 18px;
    box-sizing:border-box;
    position:relative;
    overflow:hidden;
  }

  .hero-form__agree input{
    width:20px;
    height:20px;
    margin:0;
    flex:0 0 20px;
  }

  .hero-form__agree span{
    display:block;
    min-width:0;
  }

}

.burger{
display:none;
width:32px;
height:32px;
border:0;
background:none;
flex-direction:column;
justify-content:center;
gap:5px;
cursor:pointer;
}

.burger span{
display:block;
height:2px;
width:100%;
background:#fff;
}

@media (max-width:767px){

.header-nav{
display:none;
}

.burger{
display:flex;
}

}

@media (max-width:767px){



.hero-form{
padding:20px 16px 18px;
background:#fff;
}

.hero-form__input{
height:40px;
}

}

/* =========================
   MOBILE MENU
========================= */

.mobile-menu{
padding-top:0;
position:fixed;
top:0;
left:0;

width:100%;
height:100vh;

background:#1D1D1D;

z-index:999;

transform:translateX(-100%);
transition:transform .35s ease;

}

.mobile-menu.active{
transform:translateX(0);
}


/* header */

.mobile-menu__header{

display:flex;
align-items:center;
justify-content:space-between;

padding:12px 16px;

height:60px;

background:linear-gradient(0deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.6) 71%);

}

.mobile-menu__logo img{
  height:50px; /* как в header */
  width:auto;
}


/* social */

.mobile-menu__social{
display:flex;
gap:12px;
margin-top:10px;
}

.mobile-menu__social img{
width:24px;
height:24px;
opacity:0.9;
}

/* close button */

.mobile-menu__close{

width:32px;
height:32px;

background:none;
border:none;

position:relative;

}

.mobile-menu__close:before,
.mobile-menu__close:after{

content:"";

position:absolute;
top:15px;
left:0;

width:32px;
height:2px;

background:#fff;

}

.mobile-menu__close:before{
transform:rotate(45deg);
}

.mobile-menu__close:after{
transform:rotate(-45deg);
}


/* navigation */

.mobile-menu__nav{
padding-top:10px;
margin-top:60px;

display:flex;
flex-direction:column;
align-items:center;

gap:24px;

}

.mobile-menu__nav a{

color:#fff;

font-size:18px;
font-family:Inter;

text-decoration:none;

width:343px;

padding:14px 0;

border-bottom:1px solid #313131;

text-align:center;

}


/* contacts */

.mobile-menu__contacts{

margin-top:auto;

padding:20px;

display:flex;
flex-direction:column;
border-top:1px solid rgba(255,255,255,0.1);
gap:10px;

}

.mobile-menu__contacts a{
  color:#fff;
  text-decoration:none;
  font-size:16px;
}

.mobile-menu a{
  -webkit-tap-highlight-color: transparent;
}

.mobile-menu__contact{

display:flex;
align-items:center;

gap:8px;

color:#fff;

font-size:15px;

}

.mobile-menu__contact img{
width:16px;
}

@media (max-width:768px){

.header-nav{
display:none;
}

}

body.menu-open{
overflow:hidden;
}

/* HERO MOBILE FIX */

@media (max-width:767px){

.hero-home__inner{
display:flex;
flex-direction:column;
align-items:flex-start;
padding-left:16px;
padding-right:16px;
}

.hero-home__content{
max-width:343px;
}

}

.hero-home{
  height:auto;
  padding-bottom:60px;
}

.hero-form{
  width:100%;
}

.hero-form{
  display:flex;
  flex-direction:column;
}

.hero-form__title{
  margin-bottom:20px;
}

.hero-form__input{
  display:block;
  width:100%;
  height:48px;
  margin-bottom:16px;
  padding:12px 16px;
  background:#F4F4F4;
  border:none;
}

.hero-form__submit{
  margin-bottom:16px;
}

/* ===== КНОПКА ФОРМЫ ===== */
.hero-form__submit{
  display:flex;
  justify-content:center;
  align-items:center;
  width:100%;
  height:51px;
  border:2px solid #0F7AFF;
  background:#fff;
  color:#0F7AFF;
  font-size:16px;
  cursor:pointer;
}

@media (max-width:767px){

.hero-home{
  height:auto;
  padding-bottom:60px;
}

.hero-home__inner{
  flex-direction:column;
}

.hero-home__form{
  width:100%;
  max-width:343px;
  margin:20px auto 0;
  background:transparent; /* ВАЖНО */
  padding:0; /* ВАЖНО */
}

.hero-form{
  width:100%;
}

}

@media (max-width:767px){

/* контейнер */
.hero-home__form{
  width:100%;
  max-width:343px;
  margin:32px auto 0;
  background:transparent; /* ВАЖНО */
  padding:0; /* ВАЖНО */
}

/* сама форма */
.hero-form{
  width:100%;
  background:#fff;
  padding:20px 16px 18px;
  box-sizing:border-box;
  position:relative;
}

/* заголовок */
.hero-form__title{
  font-size:18px;
  line-height:22px;
  margin-bottom:16px;
}

/* поля */
.hero-form input{
  width:100%;
  height:44px;
  margin-bottom:12px;
  padding:12px;
  border:none;
  background:#F4F4F4;
  font-size:14px;
}

/* кнопка */
.hero-form button{
  width:100%;
  height:44px;
  margin:8px 0 12px;
  border:2px solid #0F7AFF;
  background:#fff;
  color:#0F7AFF;
  font-size:14px;
}

/* чекбокс */
.hero-form__agree{
  font-size:12px;
  line-height:16px;
}

/* СКОС */
.hero-form::after{
  content:"";
  position:absolute;
  right:0;
  bottom:0;
  width:40px;
  height:40px;
  background:#fff;
  clip-path:polygon(100% 0, 0 100%, 100% 100%);
}

}

@media (max-width:767px){

.hero-home__btn{
  
  max-width:343px;
  margin:24px auto 0;
  text-align:center;
}

.hero-home__btn img{
  width:100%;
  display:block;
}

}

@media (max-width:767px){

.site-header{
  height:60px;
}

.site-header .header-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
}

/* логотип */
.logo img{
  height:110px;
  height:auto;
}

/* скрываем лишнее */
.header-nav,
.header-contacts{
  display:none;
}

/* иконки справа */
.header-right{
  display:flex;
  align-items:center;
  gap:16px;
}

/* бургер */
.burger{
display:none;
width:32px;
height:32px;
border:0;
background:none;
flex-direction:column;
justify-content:center;
gap:5px;
cursor:pointer;
}

.burger span{
display:block;
height:2px;
width:100%;
background:#fff;
}

.burger{
display:flex;
}

.burger{
  width:32px;
  height:32px;
  position:relative;
}

.burger span:nth-child(1){ top:0; }
.burger span:nth-child(2){ top:8px; }
.burger span:nth-child(3){ bottom:0; }

}

@keyframes formGlow{
  0%{
    box-shadow:0 0 0 rgba(255,174,35,0);
  }
  50%{
    box-shadow:0 0 25px rgba(255,174,35,0.7);
  }
  100%{
    box-shadow:0 0 0 rgba(255,174,35,0);
  }
}

.form-focus .hero-form{
  animation:formGlow 1.2s ease;
}

@media (max-width:767px){

  .header-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
  }

}

/* reset от hero-home */
.hero{
  position:relative;
  padding-top:140px;
  padding-bottom:80px;
  color:#fff;
}

.hero .hero__inner{
  max-width:1200px;
  margin:0 auto;
  padding:0 16px;
}

.hero__title{
  font-size:48px;
  line-height:52px;
  font-weight:700;
  max-width:800px;
}

.hero__title{
  word-break:break-word;
  hyphens:auto;
}

@media (max-width:767px){

  .hero__title{
    font-size:28px;
    line-height:32px;
    max-width:100%;
  }

.hero-cut {
    width: 50px;
    height: 50px;
    bottom: -23px; /* чтобы не было щели */
  }

}

/* ===================================================== */
/* ===================== CONTACTS ======================= */
/* ===================================================== */

.contacts{
  margin-top:120px;
}

/* GRID */
.contacts__grid{
  display:grid;
  grid-template-columns:420px 1fr;
  gap:60px;
  align-items:stretch;
}

/* ================= FORM ================= */

.contacts__form{
  width:100%;
  max-width:420px;
  display:flex;
  flex-direction:column;
  gap:12px;
}

.ajax_form{
  width:100%;
}

/* TITLE */
.contacts__title{
  margin-bottom:24px;
  font-size:20px;
}

/* INPUTS */
.contacts__input,
.contacts__textarea{
  width:100%;
  background:#F4F4F4;
  border:none;
  outline:none;
  box-sizing:border-box;
  font-family:'Inter', sans-serif;
  font-size:14px;
  color:#2A2D34;
}

/* INPUT */
.contacts__input{
  height:50px;
  padding:0 16px;
}

/* TEXTAREA */
.contacts__textarea{
  height:120px;
  padding:16px;
  resize:none;
}

/* PLACEHOLDER */
.contacts__input::placeholder,
.contacts__textarea::placeholder{
  color:#B3B3B3;
}

/* BUTTON */
.contacts__btn{
  width:100%;
  height:51px;

  display:block;
  align-items:center;
  justify-content:center;

  background:#FFAE23;
  border:none;

  font-family:'Xolonium';
  font-size:16px;
  color:#2A2D34;

  cursor:pointer;
  transition:.2s;
}

.contacts__btn:hover{
  background:#e79b1c;
}

/* ================= RIGHT SIDE ================= */

.contacts__info{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:30px;
}

/* CARD */
.contact-card{
  position:relative;
  background:#F4F4F4;
  padding:30px;

  display:flex;
  gap:16px;
  align-items:flex-start;

  overflow:hidden; /* ВАЖНО */
}

.contact-card::before{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:100%;
  height:10px;
  background:#0F7AFF;
  z-index:1;
}

/* ICON */
.contact-card__icon{
  width:42px;
  height:42px;
  flex-shrink:0;

  display:flex;
  align-items:center;
  justify-content:center;
}

/* если используешь img */
.contact-card__icon img{
  width:42px;
  height:42px;

  /* делаем синими */
  filter: brightness(0) saturate(100%) invert(40%) sepia(94%) saturate(2474%) hue-rotate(206deg) brightness(97%) contrast(101%);
}

/* TITLE */
.contact-card__title{
  font-family:'Xolonium';
  font-weight:700;
  font-size:20px;
  margin-bottom:6px;
  color:#2A2D34;
}

/* TEXT */
.contact-card__text{
  font-family:'Inter';
  font-size:16px;
  line-height:1.5;
  color:#2A2D34;
}

.contact-card__text a{
  color:#2A2D34;
  text-decoration:none;
}

/* CUT CORNER */
.contacts__info .contact-card:last-child::after{
  content:"";
  position:absolute;
  right:0;
  bottom:0;
  width:50px;
  height:50px;
  background:#fff;
  clip-path:polygon(100% 0, 0 100%, 100% 100%);
  z-index:2; /* ВАЖНО */
}

/* ================= ADAPTIVE ================= */

@media (max-width:1100px){
  .contacts__grid{
    grid-template-columns:1fr;
  }

  .contacts__info{
    grid-template-columns:1fr 1fr;
  }
}

@media (max-width:768px){
  .contacts{
    margin-top:80px;
  }

  .contacts__info{
    grid-template-columns:1fr;
  }

  .contact-card{
    padding:20px;
  }
}

/* ================= MAP ================= */

.contacts-map{
  margin-top:80px;
}

/* full width блок */
.contacts-map__inner{
  width:100%;
  margin-left:calc(50% - 50vw);
}

/* контейнер карты */
.contacts-map__frame{
  width:100%;
  height:429px; /* как в фигме */
  overflow:hidden;
  position:relative;
}

/* iframe / карта */
.contacts-map__frame iframe{
  width:100%;
  height:100%;
  border:0;
}

@media (max-width:768px){
  .contacts-map{
    margin-top:40px;
  }

  .contacts-map__frame{
    height:300px;
  }
}

/* ================= ADAPTIVE Yandex ================= */

@media (max-width:768px){

  .hero{
    padding:90px 0 40px;
  }

  .hero__title{
    font-size:28px;
    line-height:34px;
    margin-bottom:16px;
  }

  .hero__subtitle{
    font-size:16px;
    line-height:22px;
    margin-bottom:24px;
  }

  /* кнопка */
  .hero__btn{
    width:100%;
    max-width:320px;
    height:48px;
    font-size:14px;
    margin-bottom:16px;
  }

}

@media (max-width:768px){

  .hero__content{
    max-width:100%;
  }

  .hero__actions{
    display:flex;
    flex-direction:column;
    align-items:center;
  }

}



@media (max-width:768px){

  /* показываем контакты */
  .header-contacts{
    display:flex !important;
    flex-direction:row;
    align-items:center;
    gap:10px;
  }

  /* скрываем адрес соцсети */
  .header-contacts .contact-item:not(.phone){
    display:none;
  }
  
  .header-social{
    display:none !important;
  }

  /* телефон как текст */
  .header-contacts .phone{
    font-size:14px;
    font-weight:600;
    white-space:nowrap;

    display:flex;
    align-items:center;
    gap:6px;
  }
  
  .header-contacts .phone span{
  display:flex;
  flex-direction:column;
  line-height:1.1;
  }

  .header-contacts .phone .ico{
    width:16px;
    height:16px;
    opacity:.8;
  }

}

@media (max-width:768px){

  .header-left{
    gap:10px;
  }

  .logo img{
    height:40px;
  }

}

@media (max-width:380px){

  .header-contacts .phone{
    font-size:12px;
  }

}

@media (max-width:360px){

  .header-contacts .phone{
    white-space:normal;
  }

  .header-contacts .phone span{
    display:block;
  }

}

@media (max-width:1024px){

  .header-row{
    gap:16px;
  }

  /* уменьшаем логотип */
  .logo img{
    height:40px;
  }

  /* скрываем адрес */
  .header-contacts .addr{
    display:none;
  }

  /* телефон короче */
  .header-contacts .phone span{
    font-size:14px;
  }

  /* меню компактнее */
  .header-nav{
    gap:16px;
  }

  .header-nav .nav-link{
    font-size:14px;
  }

  /* соцсети чуть меньше */
  .header-social .social-pack{
    height:20px;
  }

}

@media (max-width:1024px){

  .hero-home__inner{
    flex-direction:column;
    align-items:flex-start;
    gap:30px;
  }

  .hero-home__content{
    max-width:100%;
  }

  .hero-home__form{
    width:100%;
    max-width:420px;
  }

}

/* =========================
   POPUP
========================= */

.popup {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: none;
}

.popup.active {
  display: flex;
  align-items: center;
  justify-content: center;
}

/* затемнение */
.popup__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.6);
}

/* окно */
.popup__content {
  position: relative;
  width: 100%;
  max-width: 420px;
  padding: 30px 25px;
  background: #fff;
  border-radius: 10px;
  z-index: 2;
  box-shadow: 0 10px 40px rgba(0,0,0,0.25);
}

/* крестик */
.popup__close {
  position: absolute;
  top: 10px;
  right: 12px;
  border: none;
  background: none;
  font-size: 20px;
  cursor: pointer;
}

/* заголовок */
.popup__title {
  font-size: 20px;
  margin-bottom: 20px;
}

/* форма */
.popup__form {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* поля */
.popup__form input {
  height: 50px;
  padding: 0 14px;
  background: #F4F4F4;
  border: 1px solid #D9D9D9;
  border-radius: 5px;
  font-size: 14px;
}

/* фокус */
.popup__form input:focus {
  background: #EAEAEA;
  outline: none;
}

/* ошибка */
.popup__form input.error {
  background: #FFE9E6;
  border: 1px solid #E5341D;
}

/* кнопка */
.popup__form button {
  height: 50px;
  background: #F5A623;
  border: none;
  cursor: pointer;
  font-weight: 600;
}

/* успех */
.popup__success {
  text-align: center;
  font-size: 16px;
  padding: 20px 0;
}

@media (max-width: 768px) {
  .svc-about__grid {
    display: flex;
    flex-direction: column;

    /* ВАЖНО */
    grid-template-columns: none;
  }

.svc-about--reverse .svc-about__grid {
    flex-direction: column !important;
  }

  .svc-about__media {
    min-height: 220px;
    order: -1 !important;
    width: 100%;
  }
}

.cookie-banner{

  position: fixed;

  left: 20px;
  right: 20px;
  bottom: 20px;

  background: #111827;

  color: #fff;

  padding: 20px;

  z-index: 99999;

  border-radius: 12px;

  display: flex;

  justify-content: space-between;

  gap: 20px;

  align-items: center;

  box-shadow: 0 10px 30px rgba(0,0,0,.3);

}

.cookie-banner.hidden{
  display:none;
}

.cookie-banner__text{

  font-size:14px;
  line-height:1.5;

}

.cookie-banner__text a{

  color:#ffb21a;

}

.cookie-banner__actions{

  display:flex;
  gap:10px;

}

.cookie-banner__btn{

  border:none;

  background:#ffb21a;

  padding:12px 20px;

  cursor:pointer;

  font-weight:600;

}

.cookie-banner__btn--outline{

  background:transparent;

  border:1px solid #fff;

  color:#fff;

}

@media(max-width:768px){

  .cookie-banner{

    flex-direction:column;
    align-items:flex-start;

  }

}

@media(max-width:768px){

  .popup__content{

    width:calc(100% - 30px);

    padding:24px 20px;

  }

  .hero-form__submit{

    font-size:20px;

  }

}

.hero-form__agree,
.contacts-form__agree{

  display:flex;

  align-items:flex-start;

  gap:12px;

  margin-top:18px;

  font-size:13px;

  line-height:1.5;

  color:#6b7280;

}

.hero-form__agree input,
.contacts-form__agree input{

  flex-shrink:0;

  width:18px;
  height:18px;

  margin-top:2px;

}

.hero-form__agree span,
.contacts-form__agree span{

  flex:1;

  min-width:0;

  word-break:break-word;

}

.hero-form__agree a,
.contacts-form__agree a{

  color:#2d7ef7;

  text-decoration:underline;

}

/* ======================================
   FOOTER FINAL
====================================== */

.site-footer{
  background:#141414;
  color:#fff;
}

.footer{
  position:relative;
  padding:48px 0;
  background:#141414;
}

.footer__inner{
  width:100%;
  max-width:1440px;

  margin:0 auto;
  padding:0 24px;

  display:grid;

  grid-template-columns:
    320px
    minmax(0,1fr)
    minmax(0,1fr)
    minmax(0,1fr);

  gap:70px;

  align-items:start;
}

/* LEFT */

.footer__left{
  align-self:start;
  height:auto;
  min-height:536px;
  position:relative;

  padding:48px 40px;

  background:
    linear-gradient(rgba(29,29,29,.7), rgba(29,29,29,.7)),
    url('/assets/templates/virgruz/img/Background_footer_Image.webp')
    center/cover no-repeat;

}

.footer__left::after{

  content:"";

  position:absolute;

  inset:0;

  backdrop-filter:blur(2.8px);

  -webkit-backdrop-filter:blur(2.8px);

  pointer-events:none;

}

.footer__left > *{

  position:relative;

  z-index:2;

}

/* LOGO */

.footer__logo{

  display:block;

  max-width:210px;

  height:auto;

  margin-bottom:22px;

}

/* CONTACTS */

.footer__contacts{

  display:flex;

  flex-direction:column;

  gap:14px;

  margin-bottom:26px;

}

.footer__contact{

  display:flex;

  gap:12px;

  align-items:flex-start;

  color:#fff;

  text-decoration:none;

  font-size:14px;

  line-height:21px;

}

.footer__contact img{

  width:18px;

  height:18px;

  flex-shrink:0;

  margin-top:2px;

}

/* SOCIAL */

.footer__social-links{

  display:flex;

  gap:16px;

  margin-top:20px;

}

.footer__social-links .social-link{

  width:36px;

  height:36px;

  display:flex;

  align-items:center;

  justify-content:center;

  border-radius:8px;

  background:rgba(255,255,255,.05);

  transition:.2s;

}

.footer__social-links .social-link:hover{

  background:#FFAE23;

}

/* COPY */

.footer__copy{

  margin-top:32px;

  font-size:13px;

  line-height:1.5;

}

/* LEGAL */

.footer__legal{

  display:flex;

  flex-direction:column;

  gap:8px;

  margin-top:16px;

}

.footer__legal a{

  color:#fff;

  opacity:.7;

  font-size:13px;

  line-height:1.4;

}

/* COLUMNS */

.footer__col{

  min-width:0;

  padding-top:20px;

}

.footer__title{

  font-family:Xolonium,sans-serif;

  font-size:16px;

  line-height:19px;

  margin:0 0 18px;

}

.footer__link{

  display:block;

  color:#fff;

  text-decoration:none;

  font-size:14px;

  line-height:17px;

  padding:9px 0;

  opacity:.92;

}

.footer__link:hover{

  opacity:1;

  text-decoration:underline;

}

/* ======================================
   TABLET
====================================== */

@media(max-width:1200px){

  .footer__inner{

    grid-template-columns:1fr 1fr;

    gap:40px;

  }

  .footer__left{

    grid-column:1/-1;

  }

}

/* ======================================
   MOBILE
====================================== */

@media(max-width:768px){

  .footer__inner{

    grid-template-columns:1fr;

    gap:30px;

  }

  .footer__left{

    padding:32px 24px;

  }

  .footer__col{

    border-bottom:1px solid rgba(255,255,255,.1);

  }

  .footer__title{

    display:flex;

    justify-content:space-between;

    align-items:center;

    padding:14px 0;

    cursor:pointer;

  }

  .footer__title::after{

    content:"";

    width:10px;

    height:10px;

    border-right:2px solid #fff;

    border-bottom:2px solid #fff;

    transform:rotate(45deg);

    transition:.2s;

  }

  .footer__col.active .footer__title::after{

    transform:rotate(-135deg);

  }

  .footer__list{

    max-height:0;

    overflow:hidden;

    transition:max-height .3s ease;

  }

  .footer__col.active .footer__list{

    max-height:500px;

  }

}

/* FIX */

html,
body{

  overflow-x:hidden;

}

*{

  box-sizing:border-box;

}