/*///Базовые переменные, сбросы и общие элементы сайта*/
:root {
  --bg: #f5f8ff;
  --surface: #ffffff;
  --surface-2: #eef4fb;
  --text: #101725;
  --muted: #607087;
  --line: rgba(20, 32, 54, 0.12);
  --brand: #175cff;
  --brand-2: #6c39ff;
  --header-h: 72px;
  --modules-bridge-height: clamp(156px, 8.125vw, 312px);
  --shadow: 0 22px 60px rgba(21, 38, 72, 0.12);
  color-scheme: light;
}


* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: var(--header-h);
}

body {
  margin: 0;
  font-family: Inter, "Segoe UI", Arial, sans-serif;
  color: var(--text);
  background: var(--bg);
  letter-spacing: 0;
  scroll-behavior: smooth;
}



a {
  color: inherit;
  text-decoration: none;
}

img {
  max-width: 100%;
}

h1,
h2,
h3,
p {
  margin-top: 0;
}



/*///Закреплённая шапка и выпадающее меню АРМ*/
.site-header {
  position: sticky;
  top: 0;
  z-index: 20;
  background: rgba(233, 238, 246, 0.96);
  border-bottom: 1px solid rgba(31, 45, 68, 0.14);
  backdrop-filter: blur(18px);
}

/* Запрещаем горизонтальную прокрутку */
html,
body {
  max-width: 100%;
  overflow-x: clip;
}

/* Родитель больше не ограничивает верхний бар */
.page {
  min-height: 100vh;
  overflow: visible;
  padding-top: var(--header-h);
}

/* Верхний бар всегда закреплён относительно окна */
.site-header {
  position: fixed;
  z-index: 9999;

  top: 0;
  left: 0;
  right: 0;

  width: 100%;
}

.header-inner,
.section,
.hero-inner,
.module-page {
  width: min(1180px, calc(100% - 32px));
  margin: 0 auto;
}

.header-inner {
  min-height: var(--header-h);
  display: flex;
  align-items: center;
  gap: 16px;
}

.brand-link {
  display: flex;
  align-items: center;
  gap: 15px;
  min-width: 250px;
  margin-left: -10px;
}

@media (min-width: 1081px) {
  .brand-link {
    margin-left: -36px;
  }
}

.brand-mark {
  width: 55px;
  height: 55px;
  border-radius: 0;
  display: block;
  object-fit: contain;
  background: transparent;
  box-shadow: none;
}

.brand-text strong,
.footer-brand strong {
  display: block;
  font-size: 18px;
  line-height: 1;
}

.brand-text > span,
.footer-brand span {
  display: block;
  margin-top: 4px;
  font-size: 12px;
  color: var(--muted);
}

.main-nav {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-left: auto;
}

.nav-link,
.modules-trigger,
.button {
  min-height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  font-weight: 700;
  font-size: 14px;
}

.nav-link,
.modules-trigger {
  padding: 0 12px;
  color: #263244;
  border: 0;
  background: transparent;
  cursor: pointer;
  font-family: inherit;
}

.nav-link:hover,
.modules-trigger:hover {
  background: rgba(23, 92, 255, 0.08);
}

.modules-menu {
  position: relative;
}

.modules-menu::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  height: 14px;
}

.modules-dropdown {
  position: absolute;
  right: 0;
  top: calc(100% + 8px);
  width: 330px;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: var(--shadow);
  display: none;
}

.modules-menu:hover .modules-dropdown,
.modules-menu:focus-within .modules-dropdown {
  display: grid;
  gap: 4px;
}

.modules-dropdown a {
  padding: 10px;
  border-radius: 8px;
  color: #1b2738;
  font-size: 14px;
  line-height: 1.25;
}

.modules-dropdown a:hover {
  background: var(--surface-2);
}

/*///Главный экран и анимация сборки куба*/
.hero {
  position: relative;
  z-index: 1;
  min-height: calc(100svh - var(--header-h));
  color: #ffffff;
  background:
    radial-gradient(circle at 22% 28%, rgba(59, 94, 255, 0.38), transparent 34%),
    linear-gradient(138deg, #081426 0%, #101A3B 48%, #33215E 73%, #D74E3E 100%);
  overflow: hidden;
}

.hero-panel-static {
    position: relative;

    width: 700px;
    height: 700px;

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

    overflow: visible;
    isolation: isolate;
}





/* Тонкое цветное отражение на условном полу */
.hero-panel-static::before {
    content: "";

    position: absolute;
    z-index: 0;

    left: 50%;
    bottom: -200px;

    width: 440px;
    height: 850px;

    transform:
        translateX(-50%)
        rotate(-12deg)
        skewX(-16deg)
        scaleY(0.42);

    transform-origin: center;

    border-radius: 50%;

    background:
        radial-gradient(
            ellipse at 18% 50%,
            rgba(27, 92, 255, 0.56) 10%,
            rgba(27, 91, 255, 0.35) 10%,
            transparent 62%
        ),
        radial-gradient(
            ellipse at 52% 50%,
            rgba(103, 45, 255, 0.85) 10%,
            rgba(103, 45, 255, 0.38) 30%,
            transparent 64%
        ),
        radial-gradient(
            ellipse at 84% 50%,
            rgba(142, 43, 255, 0.45) 5%,
            rgba(170, 43, 255, 0.4) 28%,
            transparent 62%
        );

    filter: blur(70px);
    opacity: 0.72;
    mix-blend-mode: screen;

    pointer-events: none;
}


/* Плотная контактная тень непосредственно под кубом */
.hero-panel-static::after {
    content: "";

    position: absolute;
    z-index: 0;

    left: 48%;
    bottom: -30px;

    width: 415px;
    height: 400px;

    transform:
        translateX(-50%)
        rotate(0deg)
        skewX(-14deg)
        scaleY(0.38);

    border-radius: 50%;

    background: radial-gradient(
        ellipse,
        rgba(0, 2, 14, 0.78) 0%,
        rgba(0, 2, 14, 0.52) 40%,
        rgba(0, 2, 14, 0) 80%
    );

    filter: blur(35px);
    opacity: 0.88;

    pointer-events: none;
}


/* Сам куб */
.hero-cube-video {
    position: relative;
    z-index: 1;

    width: 100%;
    height: 100%;
    object-fit: contain;

    transform: scale(1.5);
    transform-origin: center;

    filter:
        contrast(1.14)
        saturate(1.08)
        brightness(1.01)
        drop-shadow(10px 24px 18px rgba(1, 3, 15, 0.28));
}


.hero-cube-video {
    position: relative;
    z-index: 1;

    width: 100%;
    height: 100%;

    display: block;
    object-fit: contain;

    transform: scale(1.5);
    transform-origin: center;

    filter:
        contrast(1.14)
        saturate(1.08)
        brightness(1.01)
        drop-shadow(0 22px 18px rgba(2, 5, 20, 0.3));
}

.hero-inner {
  min-height: calc(100svh - var(--header-h));
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(380px, 0.82fr);
  align-items: center;
  gap: 48px;
  padding: 56px 0;
}

.hero-content {
  position: relative;
  left: -32px;
  top: 0;
  max-width: 650px;
}

.hero-title {
  max-width: none;
  margin: 0 0 18px;
  margin-left: -6px;
  color: #ffffff;
  font-size: clamp(76px, 8.5vw, 116px);
  font-weight: 700;
  line-height: 0.88;
  letter-spacing: -0.055em;
  text-shadow: 0 16px 44px rgba(0, 0, 0, 0.28);
}

.hero-slogan {
  max-width: 610px;
  margin: 0 0 60px;
  color: #ffffff;
  font-size: clamp(27px, 3vw, 38px);
  font-weight: 650;
  line-height: 1.12;
  letter-spacing: -0.025em;
}

h1 {
  max-width: 700px;
  margin-bottom: 22px;
  font-size: clamp(44px, 5.8vw, 68px);
  line-height: 1.02;
  letter-spacing: 0;
}

.hero-copy {
  max-width: 610px;
  margin-bottom: 30px;
  color: rgba(255, 255, 255, 0.82);
  font-size: 18px;
  line-height: 1.58;
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
}

.hero-actions .button {
  min-height: 52px;
  padding-inline: 30px;
  font-size: 16px;
}

.button {
  padding: 0 20px;
  border: 1px solid transparent;
  cursor: pointer;
}

.button.primary {
  color: #ffffff;
  background: linear-gradient(135deg, var(--brand), var(--brand-2));
}

.button.secondary {
  color: #ffffff;
  border-color: rgba(255, 255, 255, 0.26);
  background: rgba(255, 255, 255, 0.06);
}

.hero-panel {
  min-width: 0;
  min-height: 430px;
  padding: 28px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.07);
  box-shadow: 0 30px 90px rgba(0, 0, 0, 0.22);
}

.hero-panel-static {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.hero-cube-static {
  display: block;
  width: min(78%, 430px);
  height: auto;
  max-height: 430px;
  object-fit: contain;
}

.section {
  position: relative;
  padding: 78px 0;
  scroll-margin-top: calc(var(--header-h) + 18px);
}

.section-bridge {
  position: relative;
  width: 100%;
  pointer-events: none;
  isolation: isolate;
}

.section-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 34px;
}

/*///Крупные заголовки основных разделов*/
.section-kicker-dark {
  max-width: 720px;
  margin-bottom: 12px;
  font-weight: 800;
  text-transform: none;
  font-size: clamp(30px, 3.6vw, 44px);
  line-height: 1.265;

  background: linear-gradient(to bottom, #2b56ba 0%, #17347a 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.section-kicker-light {
  max-width: 720px;
  margin-bottom: 12px;
  color: var(--brand);
  font-weight: 800;
  text-transform: none;
  font-size: clamp(30px, 3.6vw, 44px);
  line-height: 1.27;
  background: linear-gradient(to bottom, #ffffff 0%, #e2e3e7 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

h2 {
  max-width: 680px;
  margin-bottom: 0;
  font-size: clamp(28px, 3vw, 38px);
  line-height: 1.16;
  letter-spacing: 0;
}

.section-head h2 {
  color: var(--muted);
  font-size: 20px;
  font-weight: 650;
  line-height: 1.45;
}

/*///Раздел о продукте и информационные карточки*/
.about-section {
  z-index: 4;
  isolation: isolate;
  padding-top: 56px;
  padding-bottom: 98px;
}

.about-section::before {
  content: "";
  position: absolute;
  z-index: -2;
  top: -24px;
  bottom: -18px;
  left: 50%;
  width: 100vw;
  transform: translateX(-50%);
  clip-path: polygon(0 2%, 31% 0, 68% 2%, 100% 0, 100% 96%, 64% 100%, 29% 97%, 0 100%);
  background:
    radial-gradient(circle at 10% 24%, rgba(67, 200, 255, 0.13), transparent 25%),
    radial-gradient(circle at 90% 72%, rgba(108, 57, 255, 0.08), transparent 23%),
    linear-gradient(145deg, #f9fcff 0%, #f1f6ff 58%, #fff8f5 100%);
}

.about-section::after {
  content: "";
  position: absolute;
  z-index: -1;
  right: -48px;
  top: 92px;
  width: 180px;
  height: 180px;
  opacity: 0.12;
  border: 1px solid #315eff;
  border-radius: 22px;
  transform: rotate(45deg);
  box-shadow:
    24px 24px 0 rgba(67, 200, 255, 0.22),
    -24px 24px 0 rgba(255, 104, 68, 0.13);
}

.about-geometry {
  position: absolute;
  z-index: 0;
  inset: 0;
  pointer-events: none;
}

.about-geometry i {
  position: absolute;
  display: block;
  border: 1px solid rgba(49, 94, 255, 0.11);
  border-radius: 24px;
  transform: rotate(45deg);
  background: rgba(255, 255, 255, 0.13);
  box-shadow:
    20px 20px 0 rgba(49, 94, 255, 0.035),
    34px 38px 48px rgba(58, 76, 112, 0.055);
}

.about-geometry i::before {
  content: "";
  position: absolute;
  inset: 21%;
  border: 1px solid rgba(67, 200, 255, 0.11);
  border-radius: 14px;
}

.about-geometry i:first-child {
  top: 34%;
  left: -68px;
  width: 154px;
  height: 154px;
}

.about-geometry i:last-child {
  right: -258px;
  bottom: 1%;
  width: 126px;
  height: 126px;
  border-color: rgba(108, 57, 255, 0.1);
}

.about-section .section-head,
.about-section .info-grid {
  position: relative;
  z-index: 1;
}

.about-demo-gallery {
  position: relative;
  z-index: 1;
  margin-top: 102px;
}

.about-demo-gallery .engineer-demo-head {
  background: linear-gradient(135deg, #ffffff 0%, #fcfdff 58%, #faf9ff 100%);
}

.info-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: repeat(2, auto);
  align-items: stretch;
  gap: 24px;
  width: 100%;
  margin-left: 0;
  transform: none;
}

.about-section .info-block:nth-child(1) {
  grid-column: 1;
  grid-row: 1;
}

.about-section .info-block:nth-child(2) {
  grid-column: 1 / -1;
  grid-row: 2;
  align-self: stretch;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.about-section .info-block:nth-child(3) {
  grid-column: 2;
  grid-row: 1;
}

.info-block,
.module-card,
.detail-block {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
  box-shadow: 0 16px 42px rgba(22, 35, 59, 0.08);
}

.info-block {
  position: relative;
  min-height: 240px;
  padding: 30px 52px;
  overflow: hidden;
}

.info-block::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 4px;
  background: linear-gradient(90deg, #43c8ff, #315eff, #6c39ff);
}

.info-block p,
.module-card p,
.detail-block p {
  color: var(--muted);
  line-height: 1.58;
}

.info-block h3 {
  font-size: 21px;
  text-wrap: balance;
}

.info-block p {
  font-size: 17px;
  line-height: 1.68;
  text-wrap: pretty;
}

/*///Раздел динамических карточек АРМ и его пиксельный переход*/
.modules-stage {
  --modules-edge-mask: linear-gradient(to bottom, #000 0 58%, transparent 58%);
  --modules-stage-gradient:
    radial-gradient(circle at 76% 18%, rgba(67, 200, 255, 0.22), transparent 31%),
    radial-gradient(circle at 22% 28%, rgba(23, 92, 255, 0.3), transparent 34%),
    linear-gradient(138deg, #020b1b 0%, #071b3d 46%, #0b4770 72%, #087f86 100%);
  position: relative;
  z-index: 2;
  isolation: isolate;
  background: transparent;
}

.modules-stage::before {
  content: "";
  position: absolute;
  z-index: 0;
  inset: 0;
  pointer-events: none;
  background: var(--modules-stage-gradient);
  -webkit-mask-image:
    linear-gradient(#000 0 0),
    var(--modules-edge-mask);
  -webkit-mask-position:
    center top,
    center bottom;
  -webkit-mask-size:
    100% calc(100% - var(--modules-bridge-height)),
    100% var(--modules-bridge-height);
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-composite: source-over;
  mask-image:
    linear-gradient(#000 0 0),
    var(--modules-edge-mask);
  mask-position:
    center top,
    center bottom;
  mask-size:
    100% calc(100% - var(--modules-bridge-height)),
    100% var(--modules-bridge-height);
  mask-repeat: no-repeat;
  mask-composite: add;
}

.modules-stage::after {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
  pointer-events: none;
  background: var(--modules-stage-gradient);
  clip-path: inset(
    calc(100% - var(--modules-bridge-height) - 2px)
    0
    calc(var(--modules-bridge-height) - 2px)
    0
  );
}

.modules-section {
  z-index: 1;
  isolation: isolate;
  color: #ffffff;
  padding-bottom: 120px;
  background: transparent;
}

.modules-section::before {
  content: none;
}

.modules-section::after {
  content: none;
}

.bridge-modules-packages {
  z-index: 2;
  height: var(--modules-bridge-height);
  margin: 0;
  overflow: visible;
  isolation: isolate;
  background: transparent;
}

.modules-section .section-head h2 {
  color: rgba(226, 239, 255, 0.78);
}

.modules-section .section-head,
.modules-grid {
  position: relative;
  z-index: 1;
}

.modules-grid {
  min-width: 0;
}

.module-atlas {
  position: relative;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  min-width: 0;
  row-gap: 34px;
  column-gap: 56px;
  width: min(1180px, 100%);
  margin: 0 auto;
  padding: 20px 0;
  border: 1px solid transparent;
  border-radius: 8px;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
  overflow: visible;
}

.module-atlas::before {
  content: none;
}

.module-atlas::after {
  content: none;
}

.module-atlas .module-card {
  position: relative;
  z-index: 1;
  min-width: 0;
  min-height: 344px;
  cursor: pointer;
  transform-origin: center;
  color: var(--text);
  border-color: rgba(126, 159, 255, 0.23);
  box-shadow: 0 20px 46px rgba(0, 0, 0, 0.22);
  transition: transform 240ms cubic-bezier(0.22, 1, 0.36, 1), border-color 180ms ease, box-shadow 180ms ease;
}

.module-atlas .module-visual {
  min-height: 108px;
  border-bottom: 1px solid rgba(13, 22, 38, 0.48);
}

.module-atlas .module-visual.has-card-image {
  height: 256px;
  min-height: 256px;
  background: #60728d;
}

.module-card-image {
  --module-image-y: 15%;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% var(--module-image-y);
  image-rendering: auto;
}

.module-card-image-engineer {
  --module-image-y: 0%;
  transform: translateY(0px);
}

.module-card-image-head {
  --module-image-y: 32%;
}

.module-card-image-executive {
  --module-image-y: 25%;
}

.module-card-image-project {
  --module-image-y: 15%;
}

.module-visual.has-card-image::before {
  display: none;
}

.module-atlas .module-content {
  padding: 22px 22px 20px;
}

.module-atlas .module-card h3 {
  margin: 0 0 12px;
  white-space: pre-line;
  color: #182235;
  font-size: 21px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.018em;
}

.module-atlas .feature-list {
  gap: 6px;
  margin-bottom: 16px;
}

/*///При нечётном количестве АРМ последняя карточка автоматически занимает обе колонки сетки*/
.module-atlas .module-card:last-child:nth-child(odd) {
  grid-column: 1 / -1;
}

.module-atlas .module-card:hover,
.module-atlas .module-card:focus-within {
  z-index: 2;
  transform: translateY(-3px);
  border-color: var(--module-color);
  box-shadow:
    0 0 0 2px color-mix(in srgb, var(--module-color) 34%, transparent),
    0 0 28px color-mix(in srgb, var(--module-color) 22%, transparent),
    0 26px 58px rgba(0, 0, 0, 0.27);
}

.module-atlas .module-card:focus-visible {
  outline: 3px solid var(--module-color);
  outline-offset: 4px;
}

.module-atlas .module-card:nth-child(4):hover,
.module-atlas .module-card:nth-child(4):focus-within {
  border-color: #22dfcf;
  box-shadow:
    0 0 0 2px rgba(34, 223, 207, 0.48),
    0 0 28px rgba(34, 223, 207, 0.3),
    0 26px 58px rgba(0, 0, 0, 0.27);
}

.module-card-marker {
  position: absolute;
  z-index: 2;
  left: 16px;
  top: 16px;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  min-height: 42px;
  padding: 0 13px;
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 8px;
  color: #ffffff;
  background: rgba(7, 17, 31, 0.72);
  box-shadow: 0 12px 28px rgba(7, 17, 31, 0.2);
  backdrop-filter: blur(10px);
}

.module-card-marker b {
  font-size: 12px;
  letter-spacing: 0.12em;
}

.module-card-cube {
  display: grid;
  grid-template-columns: repeat(2, 9px);
  grid-template-rows: repeat(2, 9px);
  gap: 2px;
  transform: rotate(45deg) scale(0.707);
  transition: transform 240ms cubic-bezier(0.22, 1, 0.36, 1);
}

.module-card-cube i {
  display: block;
  border-radius: 2px;
  background: linear-gradient(135deg, #43c8ff, var(--module-color));
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.28);
}

.module-card-cube i:nth-child(2) {
  background: linear-gradient(135deg, var(--module-color), #6c39ff);
}

.module-card-cube i:nth-child(3) {
  background: linear-gradient(135deg, #173987, #315eff);
}

.module-card-cube i:nth-child(4) {
  background: linear-gradient(135deg, #6c39ff, #ff6844);
}

.module-card:hover .module-card-cube,
.module-card:focus-within .module-card-cube {
  transform: rotate(0deg) scale(1);
}

.modules-empty {
  margin: 0;
  padding: 42px;
  border: 1px dashed rgba(23, 92, 255, 0.24);
  border-radius: 8px;
  color: var(--muted);
  text-align: center;
  background: rgba(255, 255, 255, 0.7);
}

.module-card {
  display: flex;
  flex-direction: column;
  min-height: 380px;
  overflow: hidden;
}

.module-visual {
  position: relative;
  min-height: 126px;
  background:
    linear-gradient(90deg, rgba(255,255,255,0.28) 1px, transparent 1px),
    linear-gradient(0deg, rgba(255,255,255,0.24) 1px, transparent 1px),
    linear-gradient(135deg, var(--module-color, #4db8ff), rgba(108, 57, 255, 0.82));
  background-size: 28px 28px, 28px 28px, auto;
  overflow: hidden;
}

.module-visual::before {
  content: "";
  position: absolute;
  right: -34px;
  top: -76px;
  width: 170px;
  height: 170px;
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-radius: 24px;
  transform: rotate(45deg);
  background: rgba(255, 255, 255, 0.08);
}

.module-card-signal {
  position: absolute;
  right: 28px;
  bottom: 30px;
  width: 112px;
  height: 2px;
  border-radius: 99px;
  background: rgba(255, 255, 255, 0.72);
  box-shadow: 0 0 18px rgba(255, 255, 255, 0.34);
}

.module-card-signal::before,
.module-card-signal::after {
  content: "";
  position: absolute;
  top: 50%;
  width: 15px;
  height: 15px;
  border: 2px solid rgba(255, 255, 255, 0.78);
  border-radius: 50%;
  background: var(--module-color);
  transform: translateY(-50%);
}

.module-card-signal::before {
  left: -3px;
}

.module-card-signal::after {
  right: -3px;
}

.module-content {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 24px;
}

.module-card h3 {
  margin-bottom: 14px;
  font-size: 22px;
  line-height: 1.22;
}

.feature-list {
  display: grid;
  gap: 8px;
  padding: 0;
  margin: 0 0 20px;
  list-style: none;
}

.feature-list li {
  color: #334155;
  font-size: 14px;
  line-height: 1.35;
}

.feature-list li::before {
  content: "";
  display: inline-block;
  width: 7px;
  height: 7px;
  margin-right: 8px;
  border-radius: 99px;
  background: var(--brand);
}

.module-card .button {
  margin-top: auto;
  width: fit-content;
}

/*///Декоративные фигуры фона раздела АРМ*/
.modules-geometry {
  position: absolute;
  z-index: 0;
  inset: 0;
  pointer-events: none;
}

.modules-geometry i {
  position: absolute;
  display: block;
  border: 1px solid rgba(49, 94, 255, 0.11);
  border-radius: 16px;
  transform: rotate(45deg);
  background: rgba(255, 255, 255, 0.13);
  box-shadow:
    13px 13px 0 rgba(49, 94, 255, 0.035),
    23px 25px 32px rgba(58, 76, 112, 0.055);
}

.modules-geometry i::before {
  content: "";
  position: absolute;
  inset: 21%;
  border: 1px solid rgba(67, 200, 255, 0.11);
  border-radius: 9px;
}

.modules-geometry i:nth-child(1) {
  top: 24%;
  right: -858px;
  width: 170px;
  height: 170px;
  background: linear-gradient(45deg, #2f579e 0%, #1f727f 100%);
  border-color: rgba(111, 176, 201, 0.15);
  box-shadow:
    -12px 10px 0 rgba(43, 94, 144, 0.15),
    -14px 0 0 rgba(47, 101, 155, 0.13),
    -23px 4px 26px rgba(37, 89, 139, 0.13);
}

.modules-geometry i:nth-child(2) {
  top: 430px;
  bottom: auto;
  left: -25%;
  width: 120px;
  height: 120px;
  background: linear-gradient(#030f31 0%, #1334aa 100%);
  box-shadow:
    13px 16px 0 rgba(49, 94, 255, 0.1),
    18px 26px 30px rgba(37, 83, 205, 0.14);
}

.modules-geometry i:nth-child(3) {
  right: -258px;
  bottom: 10%;
  width: 170px;
  height: 170px;
  background: linear-gradient(45deg, #18378f 0%, #0a85a3 100%);
  border-color: rgba(108, 57, 255, 0.1);
  box-shadow:
    14px -10px 0 rgba(62, 174, 213, 0.1),
    24px -8px 30px rgba(31, 146, 187, 0.14);
}

/*///Карточки пакетов и таблица доступности модулей*/
.packages-section {
  z-index: 1;
  position: relative;
  isolation: isolate;
  padding-top: 64px;
}

.packages-section::before {
  content: "";
  position: absolute;
  z-index: -2;
  top: calc(0px - var(--modules-bridge-height) - 38px);
  bottom: -28px;
  left: 50%;
  width: 100vw;
  transform: translateX(-50%);
  clip-path: none;
  background:
    radial-gradient(circle at 13% 28%, rgba(67, 200, 255, 0.16), transparent 26%),
    radial-gradient(circle at 88% 72%, rgba(255, 104, 68, 0.12), transparent 25%),
    linear-gradient(135deg, #edf5ff 0%, #f8f9ff 46%, #fff7f3 100%);
}

.packages-section::after {
  content: "";
  position: absolute;
  z-index: -1;
  top: 136px;
  right: -76px;
  width: 230px;
  height: 230px;
  opacity: 0.08;
  border-radius: 28px;
  transform: rotate(45deg);
  background: conic-gradient(from 90deg, #43c8ff 0 25%, #315eff 0 50%, #6c39ff 0 75%, #ff6844 0);
  pointer-events: none;
}

.package-board {
  position: relative;
  z-index: 1;
  padding: 30px 0;
  border: 0;
  border-radius: 8px;
  background: transparent;
  box-shadow: none;
}

.package-point {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-width: 66px;
  min-height: 42px;
  padding: 0 11px;
  border: 1px solid rgba(23, 92, 255, 0.14);
  border-radius: 8px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(244, 248, 255, 0.94)),
    rgba(255, 255, 255, 0.9);
  box-shadow: 0 10px 28px rgba(21, 38, 72, 0.07);
  transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

.package-point b {
  color: var(--brand);
  font-size: 12px;
}

.point-cube {
  display: grid;
  grid-template-columns: repeat(2, 8px);
  grid-template-rows: repeat(2, 8px);
  gap: 2px;
  font-style: normal;
  transform: rotate(45deg) scale(0.707);
  transform-origin: center;
  transition: transform 220ms cubic-bezier(0.22, 1, 0.36, 1);
  backface-visibility: hidden;
}

.point-cube i {
  display: block;
  border-radius: 2px;
  background: linear-gradient(135deg, #43c8ff, #315eff);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.32);
  backface-visibility: hidden;
}

.point-cube i:nth-child(2) {
  background: linear-gradient(135deg, #315eff, #6c39ff);
}

.point-cube i:nth-child(3) {
  background: linear-gradient(135deg, #10276f, #315eff);
}

.point-cube i:nth-child(4) {
  background: linear-gradient(135deg, #6c39ff, #ff6844);
}

.package-tier:hover .package-point {
  transform: translateY(-2px);
  border-color: rgba(23, 92, 255, 0.34);
  box-shadow: 0 16px 36px rgba(21, 38, 72, 0.14);
}

.package-tier:hover .point-cube {
  transform: rotate(0deg) scale(1);
}

.package-tier:hover .point-cube i {
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.42);
}

.package-tier-grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.package-tier {
  position: relative;
  display: flex;
  min-height: 438px;
  flex-direction: column;
  padding: 24px;
  border: 1px solid rgba(20, 32, 54, 0.12);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.94);
  overflow: hidden;
  transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease, background 180ms ease;
}

.package-tier::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 4px;
  background: linear-gradient(90deg, var(--tier-a), var(--tier-b));
}

.package-tier::after {
  content: "";
  position: absolute;
  right: -58px;
  top: -58px;
  width: 160px;
  height: 160px;
  border-radius: 50%;
  background: radial-gradient(circle, var(--tier-glow), transparent 68%);
  opacity: 0.72;
  pointer-events: none;
  transition: opacity 180ms ease, transform 180ms ease;
}

.package-tier:hover {
  transform: translateY(-7px);
  border-color: rgba(23, 92, 255, 0.26);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(255, 255, 255, 0.92)),
    linear-gradient(135deg, var(--tier-soft), rgba(255, 255, 255, 0));
  box-shadow: 0 26px 70px rgba(21, 38, 72, 0.14);
  outline: none;
}

.package-tier:hover::after {
  opacity: 1;
  transform: translate(-8px, 8px) scale(1.08);
}

.tier-base {
  --tier-a: #43c8ff;
  --tier-b: #175cff;
  --tier-glow: rgba(67, 200, 255, 0.18);
  --tier-soft: rgba(67, 200, 255, 0.08);
}

.tier-standard {
  --tier-a: #9b4dff;
  --tier-b: #6c39ff;
  --tier-glow: rgba(141, 76, 255, 0.2);
  --tier-soft: rgba(141, 76, 255, 0.1);
}

.tier-pro {
  --tier-a: #ff6844;
  --tier-b: #6c39ff;
  --tier-glow: rgba(255, 104, 68, 0.18);
  --tier-soft: rgba(255, 104, 68, 0.08);
  background: #ffffff;
}

.tier-pro::after {
  display: none;
}

.tier-pro:hover {
  background: #ffffff;
}

.tier-top {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 26px;
}

.tier-badge {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  border-radius: 8px;
  font-weight: 850;
}

.tier-badge {
  padding: 0 11px;
  color: #133365;
  background: rgba(23, 92, 255, 0.09);
  font-size: 12px;
  transition: color 180ms ease, background 180ms ease;
}

.package-tier:hover .tier-badge {
  color: #ffffff;
  background: linear-gradient(135deg, var(--tier-a), var(--tier-b));
}

.package-tier h3 {
  position: relative;
  z-index: 1;
  margin-bottom: 12px;
  font-size: 30px;
  line-height: 1.08;
}

.package-tier p {
  position: relative;
  z-index: 1;
  margin-bottom: 22px;
  color: var(--muted);
  line-height: 1.56;
}

.tier-scope-meter {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 7px;
  margin: 0 0 22px;
}

.tier-scope-meter span {
  height: 7px;
  border-radius: 99px;
  background: rgba(20, 32, 54, 0.08);
  overflow: hidden;
}

.tier-scope-meter span::before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--tier-a), var(--tier-b));
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 220ms ease;
}

.tier-scope-meter .is-filled::before {
  transform: scaleX(1);
}

.package-tier:hover .tier-scope-meter .is-filled::before {
  animation: meter-sheen 900ms ease both;
}

@keyframes meter-sheen {
  0% {
    filter: brightness(1);
  }

  45% {
    filter: brightness(1.22);
  }

  100% {
    filter: brightness(1);
  }
}

.tier-modules {
  position: relative;
  z-index: 1;
  display: grid;
  gap: 9px;
  padding: 0;
  margin: 0 0 24px;
  list-style: none;
}

.tier-modules li {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 9px;
  color: #263852;
  font-size: 14px;
  line-height: 1.35;
  transition: color 180ms ease;
}

.tier-modules li::before {
  content: "";
  flex: 0 0 auto;
  box-sizing: border-box;
  width: 12px;
  height: 12px;
  margin-top: 4px;
  border-radius: 50%;
  background: linear-gradient(135deg, rgba(67, 200, 255, 0.16), rgba(108, 57, 255, 0.16));
  border: 1px solid rgba(23, 92, 255, 0.18);
  box-shadow: none;
  transition: background 260ms ease, border-color 260ms ease;
}

.tier-modules li::after {
  content: "";
  position: absolute;
  left: 0;
  top: 4px;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--tier-a), var(--tier-b));
  transform: scale(0.52);
  transform-origin: center;
  transition: transform 280ms cubic-bezier(0.22, 1, 0.36, 1);
  pointer-events: none;
}

.package-tier:hover .tier-modules li {
  color: #172033;
}

.package-tier:hover .tier-modules li::before {
  background: linear-gradient(135deg, rgba(67, 200, 255, 0.06), rgba(108, 57, 255, 0.06));
  border-color: transparent;
}

.package-tier:hover .tier-modules li::after {
  transform: scale(1);
}

.tier-modules li.is-custom-module {
  color: #51338f;
  font-weight: 650;
}

.tier-modules li.is-custom-module::before {
  content: "";
  position: relative;
  left: 1px;
  width: 12px;
  height: 12px;
  margin-top: 4px;
  border: 0;
  border-radius: 0;
  clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);
  background: linear-gradient(135deg, rgba(255, 104, 68, 0.14), rgba(108, 57, 255, 0.18));
  filter: drop-shadow(0 2px 4px rgba(92, 57, 190, 0.12));
}

.tier-modules li.is-custom-module::after {
  content: "";
  top: 4px;
  left: 1px;
  width: 12px;
  height: 12px;
  display: block;
  border-radius: 0;
  clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);
  background: linear-gradient(135deg, #ff6844 0%, #8a45ff 48%, #315eff 100%);
  transform: scale(0.62);
}

.package-tier:hover .tier-modules li.is-custom-module {
  color: #51338f;
}

.arm-count-plus {
  position: relative;
  width: 8px;
  height: 8px;
  display: inline-block;
  flex: 0 0 8px;
  margin: 0 4px 0 3px;
  color: inherit;
  vertical-align: middle;
}

.arm-count-plus::before,
.arm-count-plus::after {
  content: "";
  position: absolute;
  border-radius: 999px;
  background: currentColor;
}

.arm-count-plus::before {
  top: 3px;
  left: 0;
  width: 8px;
  height: 2px;
}

.arm-count-plus::after {
  top: 0;
  left: 3px;
  width: 2px;
  height: 8px;
}

.tier-fit {
  position: relative;
  z-index: 1;
  min-height: 62px;
  margin-top: auto;
  padding-top: 18px;
  border-top: 1px solid rgba(20, 32, 54, 0.1);
  color: #52627a;
  font-size: 14px;
  line-height: 1.45;
  transition: border-color 180ms ease, color 180ms ease;
}

.package-tier:hover .tier-fit {
  border-color: rgba(23, 92, 255, 0.18);
  color: #263852;
}

.package-compare {
  margin-top: 22px;
  border: 1px solid rgba(20, 32, 54, 0.12);
  border-radius: 8px;
  color: #263852;
  background: linear-gradient(135deg, #ffffff 0%, #f7f9fc 100%);
  overflow: hidden;
  box-shadow:
    0 18px 44px rgba(21, 38, 72, 0.1),
    inset 0 1px 0 rgba(255, 255, 255, 0.86);
}

.package-compare-title {
  margin: 0;
  padding: 24px 26px 18px;
  color: #172033;
  font-size: 23px;
  font-weight: 900;
  line-height: 1.35;
}

.package-compare-table {
  min-width: 650px;
  padding-bottom: 8px;
}

.compare-row {
  display: grid;
  grid-template-columns: minmax(290px, 1fr) repeat(3, minmax(92px, 0.32fr));
  align-items: center;
  gap: 14px;
  min-height: 78px;
  margin: 0 26px;
  padding: 12px 14px;
  border-top: 1px solid rgba(20, 32, 54, 0.09);
  color: #52627a;
  font-size: 14px;
}

.compare-row:first-child {
  border-top: 0;
}

.compare-head {
  min-height: 56px;
  color: #185fc4;
  font-size: 14px;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.compare-row b {
  text-align: center;
}

.compare-module-name {
  color: #40536d;
  font-size: 13px;
  font-weight: 650;
  line-height: 1.5;
}

.compare-package-mark {
  position: relative;
  display: grid;
  place-items: center;
  justify-self: center;
  width: 42px;
  height: 42px;
}

.compare-package-mark.is-on {
  border: 1px solid rgba(23, 92, 255, 0.13);
  border-radius: 8px;
  background: #f1f5fb;
  box-shadow: 0 9px 22px rgba(21, 38, 72, 0.1);
}

.compare-package-mark.is-off::before {
  content: "×";
  color: #d33f4f;
  font-size: 25px;
  font-weight: 650;
  line-height: 1;
}

.compare-package-cube {
  display: grid;
  grid-template-columns: repeat(2, 9px);
  grid-template-rows: repeat(2, 9px);
  gap: 2px;
  transform: rotate(45deg) scale(0.707);
}

.compare-package-cube i {
  display: block;
  border-radius: 2px;
  background: linear-gradient(135deg, #43c8ff, var(--module-color));
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.28);
}

.compare-package-cube i:nth-child(2) {
  background: linear-gradient(135deg, var(--module-color), #6c39ff);
}

.compare-package-cube i:nth-child(3) {
  background: linear-gradient(135deg, #173987, #315eff);
}

.compare-package-cube i:nth-child(4) {
  background: linear-gradient(135deg, #6c39ff, #ff6844);
}

@media (prefers-reduced-motion: reduce) {
  .module-atlas .module-card,
  .module-card-cube {
    transition: none;
  }

  .package-tier,
  .package-tier::after,
  .tier-badge,
  .tier-modules li,
  .tier-modules li::before,
  .tier-modules li::after,
  .tier-scope-meter span::before,
  .tier-fit {
    transition: none;
  }
}

/*///Подвал сайта*/
.site-footer {
  position: relative;
  z-index: 3;
  padding: 34px 0;
  border-top: 0;
  background: #ffffff;
  box-shadow: inset 0 1px 0 rgba(20, 32, 54, 0.06);
}

.footer-inner {
  width: min(1180px, calc(100% - 32px));
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  color: var(--muted);
}

.dm-credit {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  white-space: nowrap;
  border-radius: 9px;
  transition: opacity 180ms ease, transform 180ms ease, box-shadow 180ms ease;
}

.dm-credit:hover {
  opacity: 0.86;
  transform: translateY(-2px);
}

.dm-credit:focus-visible {
  outline: 3px solid rgba(23, 92, 255, 0.3);
  outline-offset: 6px;
}

.dm-credit img {
  width: 50px;
  height: auto;
}

.dm-credit-text {
  display: block;
  color: var(--brand);
  font-weight: 800;
  font-size: 16px;
  line-height: 1;
  text-align: right;
  background: linear-gradient(135deg, #123ac6, #315eff 55%, #ff553e);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

/*///Общие стили внутренних страниц АРМ*/
body.module-detail-body {
  position: relative;
  isolation: isolate;
  overflow-x: hidden;
  padding-top: var(--header-h);
  background:
    radial-gradient(circle at 8% 14%, rgba(67, 200, 255, 0.07), transparent 24%),
    radial-gradient(circle at 92% 64%, rgba(108, 57, 255, 0.055), transparent 26%),
    linear-gradient(145deg, #eff3f8 0%, #e9eef5 56%, #f1eff2 100%);
}

.module-page-geometry {
  position: absolute;
  z-index: 0;
  inset: var(--header-h) 0 0;
  overflow: hidden;
  pointer-events: none;
}

.module-page-geometry i {
  position: absolute;
  display: block;
  width: 190px;
  height: 190px;
  border: 1px solid rgba(49, 94, 255, 0.12);
  border-radius: 26px;
  transform: rotate(45deg);
  background: rgba(255, 255, 255, 0.16);
  box-shadow:
    22px 22px 0 rgba(49, 94, 255, 0.035),
    38px 42px 54px rgba(58, 76, 112, 0.06);
}

.module-page-geometry i::before {
  content: "";
  position: absolute;
  inset: 20%;
  border: 1px solid rgba(67, 200, 255, 0.11);
  border-radius: 15px;
  background: rgba(255, 255, 255, 0.1);
}

.module-page-geometry i:nth-child(1) {
  top: 5%;
  left: -82px;
  width: 220px;
  height: 220px;
}

.module-page-geometry i:nth-child(2) {
  top: 29%;
  right: -58px;
  width: 168px;
  height: 168px;
  border-color: rgba(108, 57, 255, 0.1);
  transform: rotate(45deg) scale(0.92);
}

.module-page-geometry i:nth-child(3) {
  top: 54%;
  left: 4%;
  width: 126px;
  height: 126px;
  border-color: rgba(255, 104, 68, 0.09);
  transform: rotate(45deg);
}

.module-page-geometry i:nth-child(4) {
  top: 77%;
  right: 7%;
  width: 248px;
  height: 248px;
  border-color: rgba(49, 94, 255, 0.095);
  transform: rotate(45deg) scale(0.96);
}

.module-page {
  position: relative;
  z-index: 1;
  padding: 56px 0 82px;
}

.module-hero {
  margin-bottom: 28px;
  padding: 54px;
  color: #ffffff;
  border-radius: 8px;
  background:
    linear-gradient(135deg, rgba(23, 92, 255, 0.88), rgba(108, 57, 255, 0.78), rgba(255, 91, 61, 0.72)),
    #0b1220;
}

.module-hero h1 {
  margin-bottom: 16px;
  font-size: clamp(40px, 6vw, 66px);
}

.module-layout {
  display: grid;
  grid-template-columns: 1fr 0.75fr;
  gap: 24px;
}

.detail-block {
  padding: 28px;
}

.engineer-layout {
  grid-template-columns: 1fr;
  gap: 38px;
}

.module-page[data-module-page="engineer"],
.module-page[data-module-page="head"],
.module-page[data-module-page="project"],
.module-page[data-module-page="executive"] {
  width: min(1280px, calc(100% - 24px));
  padding-bottom: 148px;
}

.module-page[data-module-page="engineer"] .module-hero,
.module-page[data-module-page="head"] .module-hero,
.module-page[data-module-page="project"] .module-hero,
.module-page[data-module-page="executive"] .module-hero {
  margin-bottom: 38px;
}

.module-page[data-module-page="head"] .module-hero h1,
.module-page[data-module-page="project"] .module-hero h1,
.module-page[data-module-page="executive"] .module-hero h1 {
  max-width: none;
  white-space: nowrap;
}

.module-page[data-module-page="executive"] .module-hero h1 {
  white-space: normal;
}

.engineer-overview,
.engineer-demo-gallery,
.engineer-capabilities-card {
  position: relative;
  padding: 0;
  overflow: hidden;
}

.engineer-overview::before,
.engineer-demo-gallery::before,
.engineer-capabilities-card::before {
  content: "";
  position: absolute;
  z-index: 2;
  inset: 0 0 auto;
  height: 4px;
  background: linear-gradient(90deg, #43c8ff, #315eff 42%, #7d43ff 70%, #ff6844);
}

.engineer-introduction,
.engineer-capabilities {
  padding: 34px 38px;
}

.engineer-introduction {
  background:
    radial-gradient(circle at 92% 18%, rgba(67, 200, 255, 0.055), transparent 25%),
    linear-gradient(135deg, #fbfcfd 0%, #f7f9fc 58%, #f8f6fb 100%);
}

.engineer-introduction .eyebrow,
.engineer-capabilities .eyebrow,
.engineer-demo-head .eyebrow {
  margin-bottom: 8px;
  color: var(--brand);
  font-size: 12px;
  font-weight: 850;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.engineer-introduction h2,
.engineer-capabilities h2,
.engineer-demo-head h2 {
  max-width: none;
  margin-bottom: 16px;
  font-size: clamp(27px, 3vw, 36px);
}

.engineer-introduction > p:not(.eyebrow) {
  max-width: 1080px;
  margin-bottom: 0;
  color: #44536a;
  font-size: 18px;
  line-height: 1.72;
}

.introduction-summary {
  position: relative;
  margin-top: 43px;
  padding: 35px 20px 20px;
  border: 1px solid rgba(23, 92, 255, 0.13);
  border-radius: 11px;
  background: linear-gradient(135deg, rgba(23, 92, 255, 0.045), rgba(108, 57, 255, 0.055));
}

.introduction-summary-heading {
  position: absolute;
  z-index: 2;
  top: -22px;
  left: 24px;
  display: flex;
  align-items: center;
  padding: 11px 18px;
  border: 1px solid rgba(49, 94, 255, 0.2);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 10px 25px rgba(32, 63, 132, 0.13);
}

.introduction-summary-heading h3 {
  margin: 0;
  color: #1d2c46;
  font-size: 18px;
  line-height: 1.25;
}

.introduction-summary ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.introduction-summary li {
  position: relative;
  min-height: 82px;
  padding: 14px 15px 14px 34px;
  border: 1px solid rgba(36, 74, 151, 0.1);
  border-radius: 8px;
  color: #506078;
  font-size: 13px;
  line-height: 1.48;
  background: rgba(255, 255, 255, 0.68);
}

.introduction-summary li:last-child:nth-child(odd) {
  grid-column: 1 / -1;
}

.introduction-summary li strong {
  display: block;
  margin-bottom: 4px;
  color: #1c2c46;
  font-size: 14px;
}

.introduction-summary li span {
  display: block;
}

.introduction-summary li::before {
  content: "";
  position: absolute;
  top: 18px;
  left: 15px;
  width: 8px;
  height: 8px;
  border-radius: 2px;
  background: linear-gradient(135deg, #43c8ff, #6c39ff);
  box-shadow: 0 4px 9px rgba(49, 94, 255, 0.22);
}

.engineer-feature-groups {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.engineer-feature-group {
  --group-accent: #315eff;
  position: relative;
  padding: 24px;
  overflow: hidden;
  border: 1px solid rgba(36, 74, 151, 0.12);
  border-radius: 12px;
  background:
    radial-gradient(circle at 100% 0, color-mix(in srgb, var(--group-accent) 13%, transparent), transparent 35%),
    linear-gradient(145deg, #fbfdff, #f4f7ff);
}

.engineer-feature-group::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  background: linear-gradient(180deg, #43c8ff, var(--group-accent));
}

.engineer-feature-group:nth-child(2) {
  --group-accent: #6c39ff;
}

.engineer-feature-group:nth-child(3) {
  --group-accent: #ff6844;
}

.engineer-feature-group:nth-child(4) {
  --group-accent: #16a9c7;
}

.engineer-feature-group:nth-child(5) {
  --group-accent: #315eff;
}

.engineer-feature-groups > .is-primary-feature,
.engineer-feature-groups > .is-terminal-feature {
  grid-column: 1 / -1;
}

/*///При 1–3 группах самая содержательная карточка становится основной, остальные заполняют следующую строку*/
.engineer-feature-groups.is-compact-layout {
  grid-template-columns:
    minmax(0, var(--feature-secondary-left, 1fr))
    minmax(0, var(--feature-secondary-right, 1fr));
}

.engineer-feature-groups.is-compact-layout > .engineer-feature-group {
  grid-column: auto;
}

.engineer-feature-groups.is-compact-layout > .is-primary-feature {
  grid-column: 1 / -1;
}

.engineer-feature-groups.is-compact-layout[data-feature-count="1"] > .is-primary-feature,
.engineer-feature-groups.is-compact-layout[data-feature-count="2"] > .is-secondary-feature {
  grid-column: 1 / -1;
}

.engineer-feature-groups.is-compact-layout > .is-primary-feature .engineer-feature-items {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 26px;
}

/*///Начиная с 5 групп каждая пара получает собственное соотношение ширин по объёму содержимого*/
.engineer-feature-groups.is-weighted-pair-layout {
  grid-template-columns: repeat(100, minmax(0, 1fr));
  column-gap: 0;
}

.engineer-feature-groups.is-weighted-pair-layout
  > .engineer-feature-group:not(.is-primary-feature):not(.is-terminal-feature) {
  grid-column: span var(--feature-column-span, 50);
}

.engineer-feature-groups.is-weighted-pair-layout > .is-pair-left {
  margin-right: 9px;
}

.engineer-feature-groups.is-weighted-pair-layout > .is-pair-right {
  margin-left: 9px;
}

.engineer-feature-group-head {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 19px;
}

.engineer-feature-group-index {
  min-width: 34px;
  color: var(--group-accent);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.08em;
}

.engineer-feature-group h3 {
  margin: 0;
  color: #17243a;
  font-size: 19px;
  line-height: 1.25;
}

.engineer-feature-items {
  display: grid;
  gap: 13px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.engineer-feature-group.is-primary-feature .engineer-feature-items {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 26px;
}

.engineer-feature-items li {
  position: relative;
  padding-left: 18px;
  color: #506078;
  font-size: 14px;
  line-height: 1.55;
}

.engineer-feature-items li::before {
  content: "";
  position: absolute;
  top: 8px;
  left: 0;
  width: 7px;
  height: 7px;
  border-radius: 2px;
  background: linear-gradient(135deg, #43c8ff, var(--group-accent));
  box-shadow: 0 4px 10px color-mix(in srgb, var(--group-accent) 28%, transparent);
}

.engineer-feature-items strong {
  display: block;
  margin-bottom: 3px;
  color: #24334b;
  font-size: 14px;
}

.engineer-feature-items span {
  display: block;
}

.engineer-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 30px;
}

.engineer-meta p {
  margin: 0;
  padding: 10px 14px;
  border: 1px solid rgba(23, 92, 255, 0.12);
  border-radius: 8px;
  color: var(--muted);
  font-size: 13px;
  background: rgba(238, 244, 251, 0.75);
}

.engineer-meta span,
.engineer-meta strong {
  color: #1d2b44;
}

.engineer-demo-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 30px 38px 24px;
  background: linear-gradient(135deg, #fbfcfd 0%, #f7f9fc 58%, #f8f6fb 100%);
}

.engineer-demo-head h2 {
  margin-bottom: 0;
}

.demo-slide-counter {
  min-width: 64px;
  display: flex;
  align-items: baseline;
  justify-content: flex-end;
  color: #8794aa;
  font-variant-numeric: tabular-nums;
}

.demo-slide-counter strong {
  color: var(--brand);
  font-size: 32px;
  line-height: 1;
}

/*///Демонстрационные слайдеры интерфейсов*/
.engineer-slider {
  --demo-delay: 5600ms;
  position: relative;
  padding: 26px 56px;
  outline: none;
  background:
    radial-gradient(circle at 12% 8%, rgba(67, 200, 255, 0.17), transparent 26%),
    radial-gradient(circle at 90% 88%, rgba(108, 57, 255, 0.2), transparent 28%),
    linear-gradient(145deg, #06142b, #0b1740 58%, #241c4f);
}

.engineer-slider:focus-visible {
  box-shadow: inset 0 0 0 3px rgba(67, 200, 255, 0.64);
}

.demo-slider-viewport {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(123, 170, 255, 0.24);
  border-radius: 12px;
  background: #f7f9fc;
  box-shadow: 0 24px 58px rgba(0, 6, 32, 0.34);
}

.demo-slider-track {
  display: flex;
  will-change: transform;
  transition: transform 620ms cubic-bezier(0.2, 0.78, 0.24, 1);
}

.demo-slide {
  flex: 0 0 100%;
  min-width: 0;
  margin: 0;
  background: #ffffff;
}

.demo-slide-media {
  /* // Кадр слайдера имеет пропорцию 2.05:1. Рекомендуемый размер фото для полного заполнения: 2050×1000 px. */
  aspect-ratio: 2.05 / 1;
  display: grid;
  place-items: center;
  overflow: hidden;
  background:
    linear-gradient(90deg, rgba(23, 92, 255, 0.035) 1px, transparent 1px),
    linear-gradient(0deg, rgba(23, 92, 255, 0.035) 1px, transparent 1px),
    #f9fbff;
  background-size: 24px 24px;
}

.demo-slide-open {
  width: 100%;
  height: 100%;
  display: grid;
  place-items: center;
  padding: 0;
  border: 0;
  cursor: zoom-in;
  background: transparent;
}

.demo-slide-open:focus-visible {
  outline: 3px solid #315eff;
  outline-offset: -3px;
}

.demo-slide img {
  width: 84%;
  height: 78%;
  display: block;
  object-fit: contain;
  object-position: center center;
  margin-top: 0;
  user-select: none;
  -webkit-user-drag: none;
}

.demo-slide img.demo-image-table {
  width: 100%;
  height: 100%;
  margin-top: 0;
  object-position: center center;
}

.demo-slide img.demo-image-frame {
  width: 100%;
  height: 100%;
  margin-top: 0;
  object-position: center center;
}

.demo-slide img.demo-image-center {
  align-self: center;
  margin-top: 0;
  object-position: center center;
}

.demo-slide img.demo-image-graph {
  width: 78%;
  height: 80%;
  align-self: center;
  margin-top: 0;
  object-position: center center;
}

.demo-slide figcaption {
  min-height: 66px;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 15px 22px;
  color: #eaf2ff;
  background: linear-gradient(90deg, #07152f, #112451);
}

.demo-slide figcaption span {
  min-width: 36px;
  color: #50d7ff;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: 0.1em;
}

.demo-slide figcaption strong {
  font-size: 15px;
  line-height: 1.4;
}

.demo-slider-arrow {
  position: absolute;
  z-index: 4;
  top: calc(50% - 35px);
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid rgba(112, 164, 224, 0.25);
  border-radius: 9px;
  color: rgba(196, 226, 255, 0.84);
  font: inherit;
  cursor: pointer;
  background: rgba(10, 28, 60, 0.72);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06), 0 8px 20px rgba(0, 8, 35, 0.22);
  transition: transform 180ms ease, color 180ms ease, background 180ms ease, border-color 180ms ease;
}

.demo-slider-arrow.is-prev {
  left: 4px;
}

.demo-slider-arrow.is-next {
  right: 4px;
}

.demo-slider-arrow svg {
  width: 22px;
  height: 22px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.demo-slider-arrow:hover,
.demo-slider-arrow:focus-visible {
  border-color: rgba(106, 207, 244, 0.52);
  color: #e3f7ff;
  background: rgba(25, 55, 108, 0.86);
  transform: scale(1.03);
  outline: none;
}

.demo-slider-footer {
  min-height: 46px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: 20px;
  padding: 18px 4px 0;
}

.demo-slider-dots {
  display: flex;
  align-items: center;
  gap: 9px;
}

.demo-slider-dot {
  width: 9px;
  height: 9px;
  padding: 0;
  border: 0;
  border-radius: 99px;
  cursor: pointer;
  background: rgba(255, 255, 255, 0.34);
  transition: width 180ms ease, background 180ms ease;
}

.demo-slider-dot.is-active {
  width: 30px;
  background: linear-gradient(90deg, #43c8ff, #6c39ff);
}

.demo-slider-dot:focus-visible {
  outline: 2px solid #ffffff;
  outline-offset: 3px;
}

.demo-autoplay {
  display: flex;
  align-items: center;
  justify-self: end;
}

.demo-autoplay-progress {
  width: 112px;
  height: 3px;
  overflow: hidden;
  border-radius: 99px;
  background: rgba(255, 255, 255, 0.16);
}

.demo-autoplay-progress i {
  width: 100%;
  height: 100%;
  display: block;
  transform: scaleX(0);
  transform-origin: left;
  border-radius: inherit;
  background: linear-gradient(90deg, #43c8ff, #6c39ff, #ff6844);
}

.engineer-slider.is-running .demo-autoplay-progress i {
  animation: demo-autoplay-progress var(--demo-delay) linear forwards;
}

.engineer-slider.is-paused .demo-autoplay-progress i {
  animation-play-state: paused;
}

@keyframes demo-autoplay-progress {
  to {
    transform: scaleX(1);
  }
}

body.lightbox-open {
  overflow: hidden;
}

/*///Полноэкранный просмотр изображений*/
.demo-lightbox {
  position: fixed;
  z-index: 1200;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 22px;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at 50% 20%, rgba(63, 89, 255, 0.22), transparent 34%),
    rgba(1, 7, 22, 0.88);
  backdrop-filter: blur(14px);
  transition: opacity 260ms ease, visibility 260ms ease;
}

.demo-lightbox.is-open {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
}

.demo-lightbox-panel {
  position: relative;
  width: min(1780px, 96vw);
  max-height: calc(100vh - 44px);
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  overflow: hidden;
  border: 1px solid rgba(119, 177, 255, 0.3);
  border-radius: 14px;
  transform: translateY(28px) scale(0.88);
  opacity: 0;
  background: #07142d;
  box-shadow: 0 36px 110px rgba(0, 0, 0, 0.58);
  transition: transform 340ms cubic-bezier(0.18, 0.78, 0.22, 1), opacity 240ms ease;
}

.demo-lightbox.is-open .demo-lightbox-panel {
  transform: translateY(0) scale(1);
  opacity: 1;
}

.demo-lightbox-panel > img {
  width: 100%;
  max-height: calc(100vh - 112px);
  display: block;
  object-fit: contain;
  background: #f8faff;
}

.demo-lightbox-panel > p {
  min-height: 58px;
  display: flex;
  align-items: center;
  margin: 0;
  padding: 14px 72px 14px 20px;
  color: #edf4ff;
  font-size: 14px;
  font-weight: 750;
  line-height: 1.4;
  background: linear-gradient(90deg, #07152f, #152858);
}

.demo-lightbox-close {
  position: absolute;
  z-index: 2;
  right: 14px;
  bottom: 10px;
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid rgba(119, 210, 255, 0.42);
  border-radius: 9px;
  color: #8bddff;
  cursor: pointer;
  background: rgba(37, 68, 126, 0.5);
  transition: color 180ms ease, background 180ms ease, transform 180ms ease;
}

.demo-lightbox-close svg {
  width: 19px;
  height: 19px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
}

.demo-lightbox-close:hover,
.demo-lightbox-close:focus-visible {
  color: #ffffff;
  background: linear-gradient(135deg, #175cff, #6c39ff);
  transform: translateY(-1px);
  outline: none;
}

@media (prefers-reduced-motion: reduce) {
  .demo-slider-track,
  .demo-slider-arrow,
  .demo-slider-dot {
    transition: none;
  }

  .engineer-slider.is-running .demo-autoplay-progress i {
    animation: none;
  }

  .demo-lightbox,
  .demo-lightbox-panel,
  .demo-lightbox-close {
    transition: none;
  }
}

/*///Адаптивные правила внутренних страниц и главной*/
@media (max-width: 700px) {
  .module-atlas {
    grid-template-columns: minmax(0, 1fr);
  }

  .module-page-geometry i {
    opacity: 0.68;
  }

  .module-page-geometry i:nth-child(1) {
    left: -86px;
    width: 158px;
    height: 158px;
  }

  .module-page-geometry i:nth-child(2) {
    right: -72px;
    width: 132px;
    height: 132px;
  }

  .module-page-geometry i:nth-child(3) {
    left: -34px;
    width: 104px;
    height: 104px;
  }

  .module-page-geometry i:nth-child(4) {
    right: -92px;
    width: 178px;
    height: 178px;
  }

  .module-page[data-module-page="engineer"],
  .module-page[data-module-page="head"],
  .module-page[data-module-page="project"],
  .module-page[data-module-page="executive"] {
    width: calc(100% - 22px);
    max-width: calc(100% - 22px);
    margin-inline: auto;
    padding-bottom: 120px;
    overflow: hidden;
  }

  .module-page[data-module-page="engineer"] .module-hero h1,
  .module-page[data-module-page="head"] .module-hero h1,
  .module-page[data-module-page="project"] .module-hero h1,
  .module-page[data-module-page="executive"] .module-hero h1 {
    max-width: 100%;
    font-size: clamp(28px, 8vw, 38px);
    line-height: 1.08;
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: normal;
  }

  .module-page[data-module-page="executive"] .module-hero h1 {
    font-size: clamp(27px, 7.45vw, 30px);
  }

  .module-page[data-module-page="engineer"] .module-hero,
  .module-page[data-module-page="head"] .module-hero,
  .module-page[data-module-page="project"] .module-hero,
  .module-page[data-module-page="executive"] .module-hero,
  .engineer-layout,
  .engineer-overview,
  .engineer-demo-gallery,
  .engineer-capabilities-card,
  .engineer-slider,
  .demo-slider-viewport,
  .demo-slider-track,
  .demo-slide,
  .demo-slide-media {
    min-width: 0;
    max-width: 100%;
  }

  .engineer-layout {
    display: block;
  }

  .engineer-demo-gallery,
  .engineer-capabilities-card {
    margin-top: 32px;
  }

  .module-page[data-module-page="engineer"] .hero-copy,
  .module-page[data-module-page="head"] .hero-copy,
  .module-page[data-module-page="project"] .hero-copy,
  .module-page[data-module-page="executive"] .hero-copy {
    max-width: 100%;
  }

  .engineer-introduction,
  .engineer-capabilities {
    padding: 32px 24px;
  }

  .engineer-introduction > p:not(.eyebrow) {
    font-size: 16px;
    line-height: 1.65;
  }

  .introduction-summary {
    margin-top: 40px;
    padding: 34px 14px 14px;
  }

  .introduction-summary-heading {
    top: -21px;
    left: 14px;
    padding: 10px 16px;
  }

  .introduction-summary ul {
    grid-template-columns: 1fr;
  }

  .introduction-summary li:last-child:nth-child(odd) {
    grid-column: auto;
  }

  .engineer-feature-groups,
  .engineer-feature-group.is-primary-feature .engineer-feature-items {
    grid-template-columns: 1fr;
  }

  .engineer-feature-groups.is-compact-layout,
  .engineer-feature-groups.is-compact-layout > .is-primary-feature .engineer-feature-items {
    grid-template-columns: 1fr;
  }

  .engineer-feature-groups.is-compact-layout > .engineer-feature-group {
    grid-column: auto;
  }

  .engineer-feature-groups.is-weighted-pair-layout {
    grid-template-columns: 1fr;
  }

  .engineer-feature-groups.is-weighted-pair-layout
    > .engineer-feature-group:not(.is-primary-feature):not(.is-terminal-feature),
  .engineer-feature-groups.is-weighted-pair-layout > .is-primary-feature,
  .engineer-feature-groups.is-weighted-pair-layout > .is-terminal-feature {
    grid-column: auto;
    margin-inline: 0;
  }

  .engineer-feature-groups > .is-primary-feature,
  .engineer-feature-groups > .is-terminal-feature {
    grid-column: auto;
  }

  .engineer-feature-group {
    padding: 21px;
  }

  .engineer-meta {
    align-items: stretch;
    flex-direction: column;
  }

  .engineer-demo-head {
    align-items: flex-start;
    padding: 28px 22px 22px;
  }

  .demo-slide-counter {
    min-width: 58px;
    flex-shrink: 0;
    white-space: nowrap;
  }

  .engineer-slider {
    padding: 12px 44px;
  }

  .demo-slider-viewport {
    border-radius: 9px;
  }

  .demo-slide figcaption {
    min-height: 58px;
    padding: 12px 15px;
  }

  .demo-slider-arrow {
    top: calc(50% - 31px);
    width: 38px;
    height: 38px;
  }

  .demo-slider-arrow.is-prev {
    left: 4px;
  }

  .demo-slider-arrow.is-next {
    right: 4px;
  }

  .demo-slider-footer {
    padding-inline: 2px;
  }

  .demo-autoplay-progress {
    width: 72px;
  }

  .demo-lightbox {
    padding: 10px;
  }

  .demo-lightbox-panel {
    width: calc(100vw - 20px);
    max-height: calc(100vh - 20px);
    border-radius: 10px;
  }

  .demo-lightbox-panel > img {
    max-height: calc(100vh - 88px);
  }

  .demo-lightbox-panel > p {
    min-height: 54px;
    padding: 12px 58px 12px 14px;
    font-size: 12px;
  }

  .demo-lightbox-close {
    right: 9px;
    bottom: 8px;
    width: 36px;
    height: 36px;
  }
}

/*///Пропорциональный масштаб Full HD-интерфейса для 2K*/
@media (min-width: 2000px) and (max-width: 3199px) {
  :root {
    --header-h: 96px;
  }


  /* Внутренние страницы находятся ниже закреплённой шапки */
  body.module-detail-body {
    padding-top: var(--header-h);
  }


  /* Верхний бар полностью увеличивается со 100% до 133,333% */
  .header-inner {
    width: 1180px;
    max-width: none;
    min-height: 72px;

    zoom: 1.333333;
  }


  /* Главный экран нельзя увеличивать целиком из-за 100svh */
  .hero,
  .hero-inner {
    min-height: calc(100svh - var(--header-h));
  }

  .hero-inner {
    width: min(1573px, calc(100% - 64px));

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

    gap: 64px;
    padding: 75px 0;
  }

  /*
  Увеличиваем только содержимое главного экрана.
  Фон и высота экрана остаются привязанными к окну.
  */
  .hero-content,
  .hero-panel-static {
    zoom: 1.333333;
  }


  /* Основные секции остаются полноэкранными */
  .section {
    width: 100%;
    max-width: none;

    padding-top: 104px;
    padding-bottom: 104px;

    scroll-margin-top: calc(var(--header-h) + 24px);
  }


  /* Раздел «О продукте» */
  .about-section {
    width: 100%;
    max-width: none;

    padding-top: 75px;
    padding-bottom: 131px;
  }

  .about-section::before {
    top: -32px;
    bottom: -24px;
  }

  .about-section::after {
    right: -64px;
    top: 123px;

    width: 240px;
    height: 240px;

    border-radius: 29px;

    box-shadow:
      32px 32px 0 rgba(67, 200, 255, 0.22),
      -32px 32px 0 rgba(255, 104, 68, 0.13);
  }


  /* Раздел карточек АРМ */
  .modules-section {
    width: 100%;
    max-width: none;

    padding-bottom: 160px;
  }


  /* Раздел пакетов */
  .packages-section {
    width: 100%;
    max-width: none;

    padding-top: 85px;
    padding-bottom: 104px;
  }

  .packages-section::before {
    top: calc(0px - var(--modules-bridge-height) - 51px);
    bottom: -37px;
  }

  .packages-section::after {
    top: 181px;
    right: -101px;

    width: 307px;
    height: 307px;

    border-radius: 37px;
  }


  /*
  Содержимое основных разделов увеличивается целиком.
  Все вложенные тексты, карточки, кнопки, изображения,
  отступы и таблицы сохраняют пропорции Full HD.
  */
  .about-section > .section-head,
  .about-section > .info-grid,
  .about-section > .about-demo-gallery,
  .modules-section > .section-head,
  .modules-section > .modules-grid,
  .packages-section > .section-head,
  .packages-section > .package-board {
    width: 1180px;
    max-width: none;

    margin-right: auto;
    margin-left: auto;

    zoom: 1.333333;
  }


  /*
  Все четыре страницы АРМ получают одну ширину.
  Введение, слайдер и возможности увеличиваются вместе.
  */
  .module-page[data-module-page="engineer"],
  .module-page[data-module-page="head"],
  .module-page[data-module-page="project"],
  .module-page[data-module-page="executive"] {
    width: 1280px;
    max-width: none;

    margin-right: auto;
    margin-left: auto;

    padding: 56px 0 148px;

    zoom: 1.333333;
  }


  /* Декоративные элементы также увеличиваются пропорционально */
  .about-geometry i,
  .modules-geometry i,
  .module-page-geometry i {
    zoom: 1.333333;
  }


  /* Полноэкранный просмотр изображений */
  .demo-lightbox {
    padding: 29px;
  }

  .demo-lightbox-panel {
    width: min(2373px, 96vw);
    max-height: calc(100vh - 59px);

    border-radius: 19px;
  }

  .demo-lightbox-panel > img {
    max-height: calc(100vh - 149px);
  }

  .demo-lightbox-panel > p {
    min-height: 77px;

    padding:
      19px
      96px
      19px
      27px;

    font-size: 19px;
  }

  .demo-lightbox-close {
    right: 19px;
    bottom: 13px;

    width: 51px;
    height: 51px;

    border-radius: 12px;
  }

  .demo-lightbox-close svg {
    width: 25px;
    height: 25px;
  }


  /* Подвал */
  .site-footer {
    padding: 45px 0;
  }

  .footer-inner {
    width: 1180px;
    max-width: none;

    zoom: 1.333333;
  }
}

/*///Пропорциональный масштаб Full HD-интерфейса для 4K*/
@media (min-width: 3200px) {
  :root {
    --header-h: 144px;
  }


  /* Внутренние страницы находятся ниже закреплённой шапки */
  body.module-detail-body {
    padding-top: var(--header-h);
  }


  /* Верхний бар увеличивается со 100% до 200% */
  .header-inner {
    width: 1180px;
    max-width: none;
    min-height: 72px;

    zoom: 2;
  }


  /* Главный экран сохраняет высоту относительно окна */
  .hero,
  .hero-inner {
    min-height: calc(100svh - var(--header-h));
  }

  .hero-inner {
    width: min(2360px, calc(100% - 96px));

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

    gap: 96px;
    padding: 112px 0;
  }

  /*
  Увеличивается только внутреннее содержимое главного экрана.
  Высота самого экрана остаётся привязанной к окну.
  */
  .hero-content,
  .hero-panel-static {
    zoom: 2;
  }


  /* Основные полноэкранные секции */
  .section {
    width: 100%;
    max-width: none;

    padding-top: 156px;
    padding-bottom: 156px;

    scroll-margin-top: calc(var(--header-h) + 36px);
  }


  /* Раздел «О продукте» */
  .about-section {
    width: 100%;
    max-width: none;

    padding-top: 112px;
    padding-bottom: 196px;
  }

  .about-section::before {
    top: -48px;
    bottom: -36px;
  }

  .about-section::after {
    right: -96px;
    top: 184px;

    width: 360px;
    height: 360px;

    border-radius: 44px;

    box-shadow:
      48px 48px 0 rgba(67, 200, 255, 0.22),
      -48px 48px 0 rgba(255, 104, 68, 0.13);
  }


  /* Раздел карточек АРМ */
  .modules-section {
    width: 100%;
    max-width: none;

    padding-bottom: 240px;
  }


  /* Раздел пакетов */
  .packages-section {
    width: 100%;
    max-width: none;

    padding-top: 128px;
    padding-bottom: 156px;
  }

  .packages-section::before {
    top: calc(0px - var(--modules-bridge-height) - 76px);
    bottom: -56px;
  }

  .packages-section::after {
    top: 272px;
    right: -152px;

    width: 460px;
    height: 460px;

    border-radius: 56px;
  }


  /*
  Содержимое разделов сохраняет Full HD-разметку
  и равномерно увеличивается в два раза.
  */
  .about-section > .section-head,
  .about-section > .info-grid,
  .about-section > .about-demo-gallery,
  .modules-section > .section-head,
  .modules-section > .modules-grid,
  .packages-section > .section-head,
  .packages-section > .package-board {
    width: 1180px;
    max-width: none;

    margin-right: auto;
    margin-left: auto;

    zoom: 2;
  }


  /*
  Все четыре страницы АРМ получают одинаковую ширину.
  Введение, возможности и слайдер увеличиваются целиком.
  */
  .module-page[data-module-page="engineer"],
  .module-page[data-module-page="head"],
  .module-page[data-module-page="project"],
  .module-page[data-module-page="executive"] {
    width: 1280px;
    max-width: none;

    margin-right: auto;
    margin-left: auto;

    padding: 56px 0 148px;

    zoom: 2;
  }


  /* Декоративные элементы */
  .about-geometry i,
  .modules-geometry i,
  .module-page-geometry i {
    zoom: 2;
  }


  /* Полноэкранный просмотр изображений */
  .demo-lightbox {
    padding: 44px;
  }

  .demo-lightbox-panel {
    width: min(3560px, 96vw);
    max-height: calc(100vh - 88px);

    border-radius: 28px;
  }

  .demo-lightbox-panel > img {
    max-height: calc(100vh - 224px);
  }

  .demo-lightbox-panel > p {
    min-height: 116px;

    padding:
      28px
      144px
      28px
      40px;

    font-size: 28px;
  }

  .demo-lightbox-close {
    right: 28px;
    bottom: 20px;

    width: 76px;
    height: 76px;

    border-radius: 18px;
  }

  .demo-lightbox-close svg {
    width: 38px;
    height: 38px;
  }


  /* Подвал */
  .site-footer {
    padding: 68px 0;
  }

  .footer-inner {
    width: 1180px;
    max-width: none;

    zoom: 2;
  }
}

@media (max-width: 1180px) {
  .about-section .info-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: auto;
    width: 100%;
    margin-left: 0;
    transform: none;
  }

  .about-section .info-block:nth-child(1) {
    grid-column: 1;
    grid-row: 1;
  }

  .about-section .info-block:nth-child(2) {
    grid-column: 1 / -1;
    grid-row: 2;
    align-self: stretch;
  }

  .about-section .info-block:nth-child(3) {
    grid-column: 2;
    grid-row: 1;
  }

  .about-section .info-block {
    min-height: 0;
    padding: 24px 40px;
  }

}

@media (max-width: 1080px) {
  .hero-inner,
  .module-layout {
    grid-template-columns: 1fr;
  }

  .hero-content {
    left: 0;
  }

  .package-tier {
    min-height: 0;
  }

}

@media (max-width: 900px) {
  :root {
    --header-h: 118px;
  }

  .module-atlas .module-visual.has-card-image {
    height: 214px;
    min-height: 214px;
  }

  .module-card-image-head {
    --module-image-y: 15%;
  }

  .module-card-image-project {
    --module-image-y: 15%;
  }

  .header-inner {
    align-items: flex-start;
    flex-direction: column;
    padding: 14px 0;
    gap: 14px;
  }

  .main-nav {
    flex-wrap: wrap;
    margin-left: 0;
  }

  .info-grid,
  .package-tier-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .bridge-hero-about {
    height: 210px;
    margin-top: 0;
    margin-bottom: 0;
    overflow: visible;
  }

  .tier-pro {
    grid-column: 1 / -1;
  }

  .tier-modules-wide {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

}

@media (max-width: 640px) {
  :root {
    --header-h: 154px;
  }

  .module-atlas .module-visual.has-card-image {
    height: 204px;
    min-height: 204px;
  }

  .module-card-image-head {
    --module-image-y: 15%;
  }

  .module-card-image-project {
    --module-image-y: 15%;
  }

  .header-inner,
  .section,
  .hero-inner,
  .module-page,
  .footer-inner {
    width: min(100% - 22px, 1180px);
  }

  .hero,
  .hero-inner {
    min-height: calc(100svh - var(--header-h));
  }

  .hero-inner {
    display: block;
    padding: 36px 0;
  }

  .hero-content,
  .hero-panel,
  .hero-copy {
    width: 100%;
    max-width: 100%;
  }

  .hero-content {
    left: 0;
    top: 0;
  }

  .hero-actions .button {
    min-height: 46px;
    padding-inline: 22px;
    font-size: 14px;
  }

  h1 {
    font-size: 40px;
  }

  .hero-copy {
    font-size: 17px;
  }

  .hero-panel {
    min-height: 0;
    margin-top: 42px;
    padding: 18px;
  }

  .main-nav {
    width: 100%;
    gap: 2px;
  }

  .nav-link,
  .modules-trigger {
    padding-inline: 7px;
    font-size: 13px;
  }

  .section {
    padding: 56px 0;
  }

  .bridge-hero-about {
    height: 176px;
    margin-top: 0;
    margin-bottom: 0;
    overflow: visible;
  }

  .about-section {
    padding-top: 44px;
    padding-bottom: 72px;
  }

  .about-section::after {
    width: 110px;
    height: 110px;
    right: -42px;
  }

  .about-geometry i:first-child {
    left: -54px;
    width: 104px;
    height: 104px;
  }

  .about-geometry i:last-child {
    right: -58px;
    bottom: 6%;
    width: 92px;
    height: 92px;
  }

  .section-head,
  .footer-inner {
    align-items: flex-start;
    flex-direction: column;
  }

  .info-grid,
  .package-tier-grid {
    grid-template-columns: 1fr;
  }

  .about-section .info-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .about-section .info-block:nth-child(1),
  .about-section .info-block:nth-child(2),
  .about-section .info-block:nth-child(3) {
    grid-column: auto;
    grid-row: auto;
    display: block;
  }

  .about-section .info-block {
    min-height: 0;
    padding: 20px 32px;
  }

  .package-board {
    padding: 18px 0;
  }

  .package-tier {
    padding: 22px;
  }

  .tier-pro {
    grid-column: auto;
  }

  .tier-modules-wide {
    grid-template-columns: 1fr;
  }

  .package-compare {
    overflow-x: auto;
  }

  .modules-dropdown {
    left: 0;
    right: auto;
    width: min(320px, calc(100vw - 24px));
  }

  .module-hero {
    padding: 34px 24px;
  }

  .modules-section {
    padding-bottom: 92px;
  }

  .packages-section {
    padding-top: 56px;
  }

  .module-atlas {
    padding: 14px;
    gap: 14px;
  }

  .module-atlas .module-card {
    flex-basis: 100%;
    min-width: 100%;
  }

  .module-card-marker {
    left: 14px;
    top: 14px;
  }

  .module-card-signal {
    right: 20px;
    width: 82px;
  }
}

/*///Единый фон главного экрана и пиксельного перехода без шва*/
.hero-stage {
  --hero-bridge-height: clamp(156px, 8.125vw, 312px);
  --hero-edge-mask: linear-gradient(to bottom, #000 0 58%, transparent 58%);
  position: relative;
  z-index: 5;
  isolation: isolate;
  background: #f8fbff;
}

.hero-stage::before {
  content: "";
  position: absolute;
  z-index: 0;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at 22% 28%, rgba(59, 94, 255, 0.38), transparent 34%),
    linear-gradient(138deg, #081426 0%, #101a3b 48%, #33215e 73%, #d74e3e 100%);
  -webkit-mask-image:
    linear-gradient(#000 0 0),
    var(--hero-edge-mask);
  -webkit-mask-position:
    center top,
    center bottom;
  -webkit-mask-size:
    100% calc(100% - var(--hero-bridge-height)),
    100% var(--hero-bridge-height);
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-composite: source-over;
  mask-image:
    linear-gradient(#000 0 0),
    var(--hero-edge-mask);
  mask-position:
    center top,
    center bottom;
  mask-size:
    100% calc(100% - var(--hero-bridge-height)),
    100% var(--hero-bridge-height);
  mask-repeat: no-repeat;
  mask-composite: add;
}

.hero-stage::after {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at 22% 28%, rgba(59, 94, 255, 0.38), transparent 34%),
    linear-gradient(138deg, #081426 0%, #101a3b 48%, #33215e 73%, #d74e3e 100%);
  clip-path: inset(
    calc(100% - var(--hero-bridge-height) - 2px)
    0
    calc(var(--hero-bridge-height) - 2px)
    0
  );
}

.hero-stage .hero {
  z-index: 1;
  background: transparent;
}

.bridge-hero-about {
  z-index: 2;
  height: var(--hero-bridge-height);
  margin: 0;
  overflow: visible;
  isolation: isolate;
  background: transparent;
}

.about-section::before {
  clip-path: none;
  background: #f8fbff;
}

@media (max-width: 900px) {
  :root {
    --modules-bridge-height: 140px;
  }

  .hero-stage {
    --hero-bridge-height: 140px;
  }
}

@media (max-width: 640px) {
  :root {
    --modules-bridge-height: 104px;
  }

  .hero-stage {
    --hero-bridge-height: 104px;
  }
}

/*///Переключатель языка RU / EN*/
.language-switcher {
  --language-segment-width: 36px;
  --language-switch-padding: 3px;

  position: relative;
  flex: 0 0 auto;

  display: grid;
  grid-template-columns: repeat(2, var(--language-segment-width));

  min-height: 40px;
  margin-left: 2px;
  padding: var(--language-switch-padding);

  overflow: hidden;
  isolation: isolate;

  border: 0;
  border-radius: 8px;

  background: rgba(31, 45, 68, 0.055);

  transform: translateX(0px);
}

.language-switcher::before {
  content: "";

  position: absolute;
  z-index: 0;

  top: var(--language-switch-padding);
  bottom: var(--language-switch-padding);
  left: var(--language-switch-padding);

  width: var(--language-segment-width);

  border-radius: 6px;

  background: rgba(31, 45, 68, 0.13);

  box-shadow:
    inset 0 0 0 1px rgba(31, 45, 68, 0.055),
    0 2px 8px rgba(31, 45, 68, 0.06);

  transform: translateX(0);

  transition:
    transform 190ms cubic-bezier(0.22, 1, 0.36, 1),
    background 190ms ease;

  pointer-events: none;
}

.language-switcher[data-active-language="en"]::before {
  transform: translateX(var(--language-segment-width));
}

.language-switcher__option {
  position: relative;
  z-index: 1;

  min-width: var(--language-segment-width);
  min-height: 34px;

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

  border-radius: 6px;

  color: #785270;

  font-family: inherit;
  font-size: 12px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: 0.035em;
  text-transform: uppercase;

  transition: color 170ms ease;
}

.language-switcher__option:hover,
.language-switcher__option[aria-current="page"] {
  color: #412644;
}

.language-switcher__option:focus-visible {
  outline: 2px solid rgba(23, 92, 255, 0.52);
  outline-offset: -2px;
}

@media (max-width: 640px) {
  .header-inner {
    position: relative;
  }

  .brand-link {
    min-width: 0;
  }

  .language-switcher {
    position: absolute;
    top: 21px;
    right: 0;
    margin-left: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .language-switcher::before,
  .language-switcher__option {
    transition: none;
  }
}
