*,
*::before,
*::after{ box-sizing: border-box; }

/* Единые вычисляемые отступы для горизонтальных треков и full-bleed секций. */
:root{
  --content-left: var(--gutter);
  --content-right: var(--gutter);
}

/* Когда экран шире контейнера: выравниваем треки по контейнеру. */
@media (min-width: 768px){
  :root{
    --content-left: max(var(--gutter), calc((100vw - var(--container))/2 + var(--gutter)));
    --content-right: max(var(--gutter), calc((100vw - var(--container))/2 + var(--gutter)));
  }
}

/* На >=1200px появляется левая rail-панель, поэтому left/right становятся несимметричными. */
@media (min-width: 1200px){
  :root{
    --content-left: max(var(--gutter), calc((100vw - var(--container))/2 + (var(--rail-w, 0px)/2) + var(--gutter)));
    --content-right: max(var(--gutter), calc((100vw - var(--container))/2 - (var(--rail-w, 0px)/2) + var(--gutter)));
  }
}

/* 1) Приводим внутренние контейнеры секций к одной ширине (1200). */
.hrx__inner,
.wcu__inner,
.kit__inner,
.svx__inner,
.gall__inner,
.envx__wrap,
.nimo-pricing__container,
.seoc-cases__wrap,
.bfx__wrap,
.usp-wrap,
.wps__wrap,
.faqx__wrap,
.fwx__inner,
.touch__wrap,
.ps-stack__container,
.team-section__container{
  width: 100%;
  max-width: var(--container);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--gutter);
  padding-right: var(--gutter);
}

/* Нейтрализуем локальные варианты шире нормы. */
.ps-stack__container,
.team-section__container{
  width: 100%;
  max-width: var(--container);
}

/* 2) Фикс full-bleed на >=1200 c учетом rail, чтобы убрать правую белую полосу и скролл. */
@media (min-width:1200px){
  .hrx,
  .wps,
  .wcu,
  .seoc-cases,
  .svx,
  .bfx,
  .touch,
  .gall__wrap,
  .kit,
  .envx,
  .faqx,
  .fwx,
  .nimo-pricing,
  .ps-stack,
  .team-section{
    margin-left: calc(50% - 50vw - (var(--rail-w, 0px)/2));
    margin-right: calc(50% - 50vw + (var(--rail-w, 0px)/2));
  }

  .kit__track{
    padding-left: max(var(--gutter), calc(var(--content-left) - (var(--rail-w, 0px) / 2)));
    scroll-padding-left: max(var(--gutter), calc(var(--content-left) - (var(--rail-w, 0px) / 2)));
  }
}

/* Страхуемся от редких переполнений 100vw/transform-комбинаций. */
html, body{
  overflow-x: clip;
}
