/* ═══════════════════════════════════════════════════════════════
   LANDING SECTIONS — Figma «Landing page» node 1:116
   Atmospheric glows now live on body (hero.css).
   This file: layout, typography, cards, components.
   ═══════════════════════════════════════════════════════════════ */

/* ── Параллакс-фон для секций с градиентным фоном ─────────────────
   Слой растянут на -30% сверху и снизу: при translateY(±N px)
   края не обнажаются. Двигается JS медленнее контента.          */
.parallax-bg {
  position: absolute;
  inset: -30% 0;
  z-index: 0;
  pointer-events: none;
  will-change: transform;
}

/* Контент поверх фонового слоя */
.quiz-section > .section__inner,
.quiz-section > .quiz-section__e27,
.quiz-section > span[id="register"],
.partners > .section__inner {
  position: relative;
  z-index: 1;
}

/* На мобиле параллакс не работает — фон занимает ровно секцию */
@media (max-width: 767px) {
  .parallax-bg {
    inset: 0;
    transform: none !important;
    will-change: initial;
  }
}

/* ────────────────────────────────────────────────────────────────
   SHARED
   ──────────────────────────────────────────────────────────────── */
.section {
  position: relative;
  width: 100%;
  /* transparent — body background shows through */
  background: transparent;
  overflow-x: clip;
}

.section__inner {
  position: relative;
  z-index: 1;
  max-width: 1440px;
  margin: 0 auto;
  padding-left: 128px;
  padding-right: 128px;
  box-sizing: border-box;
}

@media (max-width: 1439px) {
  .section__inner {
    padding-left: clamp(20px, 6.67vw, 128px);
    padding-right: clamp(20px, 6.67vw, 128px);
  }
}

.s-title {
  margin: 0;
  font-family: "Montserrat", system-ui, sans-serif;
  font-weight: 700;
  font-size: clamp(1.5rem, calc(2rem * var(--scale, 1)), 2rem);
  line-height: 110%;
  color: #fff;
  text-wrap: balance;
  overflow-wrap: normal; /* только по пробелам и реальным дефисам, не посередине слова */
  hyphens: none;         /* без автоматической расстановки переносов */
  word-break: normal;
}

.s-lead {
  margin: 0;
  font-family: "Montserrat", system-ui, sans-serif;
  font-weight: 400;
  font-size: clamp(0.95rem, calc(1rem * var(--scale, 1)), 1rem);
  line-height: 130%;
  color: #c4c5cc;
  text-wrap: pretty;
  overflow-wrap: break-word;
}

/* shared card shell */
.ld-card {
  position: relative;
  overflow: hidden;
  background: #0c0d16;
  box-shadow: inset 0 0 0 1px #232a6d;
  border-radius: var(--radius-3, 12px);
  padding: var(--space-5, 32px);
  box-sizing: border-box;
}

/* inner glow blob */
.glow {
  position: absolute;
  pointer-events: none;
  border-radius: 50%;
  z-index: 0;
}

/* ────────────────────────────────────────────────────────────────
   WHY — Figma 1:271 — 1440 × 705
   top=64 | head=89 | gap=64 | cards=360 | bottom=128
   ──────────────────────────────────────────────────────────────── */
.why {
  position: relative;
  padding: 64px 0 128px;
  overflow-x: clip;
}

/* Ellipse 33: 18×18, #FF8CC6 — (720+285)/1440=69.8% */
.why__dot--e33 {
  position: absolute;
  left: 69.8%;
  top: min(649px, calc(100% - 60px));
  pointer-events: none;
  z-index: 1;
}

/* Ellipse 30: 18×18, #047EFE, blur 12 — blue dot */
/* index-test.html: left=49, top=483; SVG 42×42 */
.why__dot--e30 {
  position: absolute;
  left: calc(50% - 671px);
  top: 483px;
  pointer-events: none;
  z-index: 1;
}

/* Ellipse 32: 12×12, #FF8CC6 — (720+61)/1440=54.2% */
.why__dot {
  position: absolute;
  left: 54.2%;
  top: 117px;
  pointer-events: none;
  z-index: 1;
}

.why__head {
  max-width: 786px;
  margin-bottom: 64px;
}

.why__head .s-title { margin-bottom: 16px; }
.why__head .s-lead  { max-width: 593px; }

/* cards grid */
.why__grid { display: flex; flex-direction: column; gap: 12px; }
.why__row  { display: flex; gap: 12px; }

.why-card {
  min-height: 174px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

/* asymmetric widths (Figma: row1=680+492, row2=492+680) */
.why__row:first-child .why-card:first-child { flex: 0 1 680px; }
.why__row:first-child .why-card:last-child  { flex: 0 1 492px; }
.why__row:last-child  .why-card:first-child { flex: 0 1 492px; }
.why__row:last-child  .why-card:last-child  { flex: 0 1 680px; }

.why-card__title {
  margin: 0;
  font-family: "Montserrat", system-ui, sans-serif;
  font-weight: 700;
  font-size: 24px;
  line-height: 130%;
  text-wrap: balance;
  overflow-wrap: break-word;
  letter-spacing: -0.01em;
  color: #fff;
  position: relative;
  z-index: 1;
}

.why-card__text {
  margin: 0;
  font-size: 16px;
  line-height: 130%;
  letter-spacing: normal;
  color: #c4c5cc;
  position: relative;
  z-index: 1;
}

.why-card__icon {
  position: absolute;
  top: 16px;
  right: 16px;
  width: 64px;
  height: 64px;
  z-index: 1;
  pointer-events: none;
}
.why-card__icon img { display: block; width: 100%; height: 100%; object-fit: contain; }

/* Ellipse 27 (section-level): 602×359, left=-134, top=443 in 1440px.
   left использует vw чтобы пропорционально смещаться на любом экране:
   854/1440 = 59.3vw → на 390px: 195-231=-36px (почти у левого края, blur виден) */
.why__e27 {
  position: absolute;
  left: calc(50% - 59.3vw);
  top: 443px;
  width: clamp(280px, 41.8vw, 602px);  /* 602/1440 = 41.8vw */
  height: clamp(180px, 24.9vw, 359px); /* 359/1440 = 24.9vw */
  background: rgba(0, 55, 194, 0.70);
  border-radius: 9999px;
  filter: blur(200px);
  pointer-events: none;
  z-index: 0;
}

/* Ellipse 27 per-card glows (inside overflow:hidden cards) */
.why-card .glow {
  background: rgba(0, 55, 194, 0.70);
  border-radius: 9999px;
  filter: blur(200px);
}
/* Card 1: Проверить себя — 432×257, left:-37, top:-161 */
.why__row:first-child .why-card:first-child .glow {
  width: 432px; height: 257px; left: -37px; top: -161px;
}
/* Card 2: Получить результат — 432×184, left:-27, top:116 */
.why__row:first-child .why-card:last-child .glow {
  width: 432px; height: 184px; left: -27px; top: 116px;
}
/* Card 3: Получить сертификат — 442×290, left:-135, top:0 */
.why__row:last-child .why-card:first-child .glow {
  width: 442px; height: 290px; left: -135px; top: 0px;
}
/* Card 4: Стать частью — 432×184, left:-58, top:-12 */
.why__row:last-child .why-card:last-child .glow {
  width: 432px; height: 184px; left: -58px; top: -12px;
}

/* 901–1200px: 2 колонки, узкие карточки */
@media (max-width: 1200px) and (min-width: 901px) {
  .why-card {
    padding-right: 96px;
  }
  .why-card__text br { display: none; }
  .why-card__title br { display: none; }
}

@media (max-width: 900px) {
  .why__row { flex-direction: column; }
  .why__row .why-card { flex: none !important; width: 100%; }
  .why-card__text br { display: none; }
  .why-card__title br { display: none; }
}

/* 768px: ограничиваем ширину текста, чтобы не заезжал на иконку */
@media (max-width: 800px) and (min-width: 431px) {
  .why-card__title,
  .why-card__text {
    max-width: calc(100% - 88px);
  }
}

/* только Mobile — одинаковый glow для всех карточек */
@media (max-width: 430px) {
  .why-card .glow,
  .why__row:first-child .why-card:first-child .glow,
  .why__row:first-child .why-card:last-child .glow,
  .why__row:last-child .why-card:first-child .glow,
  .why__row:last-child .why-card:last-child .glow {
    width: 280px;
    height: 180px;
    left: -40px;
    top: -60px;
  }
}

/* только Mobile — иконка рядом с заголовком, текст снизу */
@media (max-width: 430px) {
  .why-card {
    display: grid;
    grid-template-columns: 40px 1fr;
    grid-template-rows: auto auto;
    column-gap: 12px;
    row-gap: 12px;
    align-items: start;
  }

  .why-card__icon {
    position: static;
    grid-column: 1;
    grid-row: 1;
    width: 40px;
    height: 40px;
    align-self: center;
  }

  .why-card__icon svg,
  .why-card__icon img {
    width: 40px;
    height: 40px;
  }

  .why-card__title {
    grid-column: 2;
    grid-row: 1;
    align-self: center;
  }

  .why-card__text {
    grid-column: 1 / -1;
    grid-row: 2;
  }
}

/* ────────────────────────────────────────────────────────────────
   QUIZ — Figma 1:330 — 1440 × 851
   top=128 | head=72 | gap=64 | panel=8+443+8 | bottom=128
   ──────────────────────────────────────────────────────────────── */
.quiz-section {
  padding: 0 0 80px;
  background: linear-gradient(180deg, #0E60BB 0%, #081A31 74.52%, #0C0D16 100%);
  position: relative;
}

.quiz-section__e27 {
  position: absolute;
  left: 152px;
  top: 775px;
  width: 1136px;
  height: 128px;
  background: rgba(0, 55, 194, 0.70);
  border-radius: 9999px;
  filter: blur(200px);
  pointer-events: none;
}

.quiz-section__head {
  max-width: 786px;
  margin-bottom: 64px;
}
.quiz-section__head .s-title { margin-bottom: 16px; }

/* panel bleeds 40px past content (Figma: panel x=88, content x=128) */
.quiz-panel-outer {
  margin-left: -40px;
  margin-right: -40px;
  padding: 8px;
  background: rgba(255, 255, 255, 0.10);
  border-radius: 16px;
  position: relative;
  overflow: hidden;
}

.quiz-e27 {
  position: absolute;
  left: -121px;
  top: 403px;
  width: 545px;
  height: 128px;
  background: #579DFF;
  border-radius: 9999px;
  filter: blur(100px);
  pointer-events: none;
}

.quiz-e28 {
  position: absolute;
  left: -173px;
  top: 253px;
  width: 545px;
  height: 128px;
  background: #5C57FF;
  border-radius: 9999px;
  filter: blur(100px);
  pointer-events: none;
}

@media (max-width: 1439px) {
  .quiz-panel-outer { margin-left: 0; margin-right: 0; }
}

.quiz-panel {
  background: #0c0d16;
  border-radius: 8px;
  padding: 32px;
  position: relative;
  overflow: hidden;
}

/* glows inside the panel card */
.quiz-panel::before {
  content: "";
  position: absolute;
  left: 931px;
  top: -126px;
  width: 402px;
  height: 239px;
  background: rgba(0, 55, 194, 0.70);
  border-radius: 9999px;
  filter: blur(200px);
  pointer-events: none;
}
.quiz-panel::after {
  content: "";
  position: absolute;
  left: -112px;
  top: 322px;
  width: 460px;
  height: 141px;
  background: rgba(77, 48, 255, 0.70);
  border-radius: 9999px;
  filter: blur(200px);
  pointer-events: none;
}

.quiz-meta {
  font-size: 16px;
  font-weight: 400;
  line-height: 130%;
  color: #c4c5cc;
  margin: 0 0 16px;
  position: relative;
  z-index: 1;
}

.quiz-progress {
  display: flex;
  align-items: center;
  gap: 4px;
  margin-bottom: 16px;
  position: relative;
  z-index: 1;
}
.quiz-progress__seg           { height: 4px; border-radius: 32px; }
.quiz-progress__seg--done     { width: 62px; background: #ff8cc6; }
.quiz-progress__seg--active,
.quiz-progress__seg--next     { width: 20px; background: #047efe; }

.quiz-body {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 24px;
  align-items: flex-start;
  position: relative;
  z-index: 1;
}

.quiz-question {
  flex: 1 1 280px;
  max-width: 580px;
  margin: 0;
  font-family: "Montserrat", system-ui, sans-serif;
  font-weight: 500;
  font-size: 24px;
  line-height: 110%;
  letter-spacing: normal;
  color: #fff;
  text-wrap: balance;
}
@media (max-width: 1200px) {
  .quiz-question br { display: none; }
}

@media (max-width: 800px) {
  .quiz-body {
    flex-direction: column;
    gap: 16px;
  }

  .quiz-question,
  .quiz-answers {
    flex: 0 0 auto;
    max-width: 100%;
    width: 100%;
  }
}

.quiz-answers {
  flex: 1 1 280px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.quiz-opt {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 48px;
  height: auto;
  padding: 12px 20px;
  border-radius: 8px;
  border: none;
  outline: 1px white solid;
  outline-offset: -1px;
  background: transparent;
  font-family: inherit;
  font-size: 16px;
  font-weight: 500;
  line-height: 140%;
  color: #fff;
  text-align: left;
  cursor: pointer;
  transition: background 0.2s, outline-color 0.2s;
  width: 100%;
}
.quiz-opt:hover          { outline-color: rgba(255,255,255,0.55); background: rgba(255,255,255,0.04); }
.quiz-opt.is-selected    { background: #047efe; outline: 1px #047efe solid; }
.quiz-opt.is-correct     { background: #1ca76a; outline: 1px #1ca76a solid; }
.quiz-opt.is-wrong       { background: #c53652; outline: 1px #c53652 solid; }
.quiz-opt:disabled       { cursor: default; opacity: 1; }
.quiz-opt__num           { font-weight: 500; flex-shrink: 0; line-height: 140%; }

.quiz-footer {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  margin-top: 24px;
  position: relative;
  z-index: 1;
}

@media (max-width: 800px) {
  .quiz-footer {
    flex-direction: column;
    align-items: stretch;
    margin-top: 20px;
    gap: 20px;
  }

  .quiz-next {
    width: 100%;
    text-align: center;
  }
}
.quiz-footer__logo img {
  display: block;
  height: 42px;
  width: auto;
  max-width: min(240px, 72vw);
  object-fit: contain;
}

.quiz-next {
  height: 58px;
  padding: 12px 24px;
  border-radius: 8px;
  background: #047efe;
  color: #fff;
  font-size: 16px;
  font-weight: 500;
  line-height: 140%;
  gap: 10px;
}

/* ────────────────────────────────────────────────────────────────
   HOW — Figma 1:389 — 1440 × 708
   top=128 | head=35 | gap=64 | steps=295 | gap=64 | cta=58 | bottom=64
   ──────────────────────────────────────────────────────────────── */
.how {
  padding: 128px 0 64px;
  position: relative;
  overflow-x: clip;
}

.how__e26 {
  position: absolute;
  left: calc(50% - 1010px);
  top: 683px;
  width: 1042px;
  height: 182px;
  background: rgba(77, 48, 255, 0.70);
  border-radius: 9999px;
  filter: blur(200px);
  pointer-events: none;
}

.how__e28 {
  position: absolute;
  left: calc(50% - 72px);
  top: 307px;
  width: 664px;
  height: 96px;
  background: rgba(0, 55, 194, 0.70);
  border-radius: 9999px;
  filter: blur(200px);
  pointer-events: none;
}

.how__dot--e30 {
  position: absolute;
  left: calc(50% - 648px);
  top: 20px;
  pointer-events: none;
  z-index: 1;
}

/* how__dot--e33: (720+464)/1440=82.2% */
.how__dot--e33 {
  position: absolute;
  left: 82.2%;
  top: min(657px, calc(100% - 60px));
  pointer-events: none;
  z-index: 1;
}

/* head: title left + subtitle right on same baseline */
.how__head {
  display: flex;
  flex-direction: row;
  align-items: flex-end;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 16px;
  max-width: 1184px;
  margin-bottom: 64px;
}
.how__head .s-title { max-width: 386px; }
.how__head .s-lead  { width: 593px; }

@media (max-width: 900px) {
  .how__head { flex-direction: column; align-items: flex-start; }
}

/* 4 equal columns, h=295, no gap (borders are separators) */
.how__steps {
  display: flex;
  align-items: flex-start;
  max-width: 1184px;
}

@media (max-width: 1100px) { .how__steps { flex-wrap: wrap; } }

.how-step {
  flex: 1 0 0;
  padding: 32px;
  display: flex;
  flex-direction: column;
  gap: 24px;
  box-sizing: border-box;
}
.how-step:nth-child(1),
.how-step:nth-child(2) {
  border-right: 1px solid #232a6d;
  align-self: stretch;
}
.how-step:nth-child(3) {
  border-radius: 12px;
}
.how-step:last-child {
  align-self: stretch;
  background: #181C45;
  border-radius: 12px;
}

@media (max-width: 1100px) {
  .how-step { flex: 1 1 45%; }
}
@media (max-width: 520px) {
  .how-step { flex: 1 1 100%; }
}

.how-step__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.how-step__icon { width: 24px; height: 24px; color: #ff8cc6; flex-shrink: 0; }
.how-step__icon svg,
.how-step__icon img { display: block; width: 24px; height: 24px; object-fit: contain; }

.how-step__num {
  font-family: "Montserrat", system-ui, sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 130%;
  color: #c4c5cc;
}

.how-step__content {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.how-step__title {
  margin: 0;
  font-family: "Montserrat", system-ui, sans-serif;
  font-weight: 700;
  font-size: 24px;
  line-height: 130%;
  color: #fff;
}

.how-step__text {
  margin: 0;
  font-size: 16px;
  line-height: 130%;
  color: #c4c5cc;
}

.how-step:last-child .how-step__icon { color: #fff; }
.how-step:last-child .how-step__num { color: #CDE4F2; }
.how-step:last-child .how-step__text { color: #CDE4F2; }

@media (max-width: 1100px) {
  .how-step__text br { display: none; }
  .how-step__title br { display: none; }
}

.how__cta {
  display: flex;
  justify-content: center;
  margin-top: 64px;
}

.how-cta-btn {
  height: 58px;
  padding: 12px 24px;
  border-radius: 8px;
  background: #047efe;
  color: #fff;
  font-size: 16px;
  font-weight: 500;
  line-height: 140%;
  gap: 10px;
}

/* ────────────────────────────────────────────────────────────────
   ABOUT — Figma 1:454 — 1440 × 699
   top=64 | left-col start=64 | right-col start=115 | bottom=64
   ──────────────────────────────────────────────────────────────── */
.about {
  padding: 64px 0;
  position: relative;
  overflow-x: clip;
}
.about__e27 {
  position: absolute;
  left: calc(50% + 25.6vw); /* 368px @ 1440px → пропорционально на любом экране */
  top: 152px;
  width: clamp(140px, 15.6vw, 225px);  /* 225px @ 1440px */
  height: clamp(260px, 42.8vw, 616px); /* 616px @ 1440px */
  border-radius: 50%;
  background: rgba(0, 55, 194, 0.70);
  filter: blur(200px);
  z-index: 0;
  pointer-events: none;
}
/* about__dot--e32: (720-141)/1440=40.2% */
.about__dot--e32 {
  position: absolute;
  left: 40.2%;
  top: 332px;
  width: 12px; height: 12px;
  border-radius: 50%;
  background: #047EFE;
  filter: blur(2px);
  z-index: 2;
  pointer-events: none;
}

/* 2-column: 576 | 576 */
.about__layout {
  display: grid;
  grid-template-columns: 576px 576px;
  gap: 32px;
  align-items: stretch;
}

@media (max-width: 1200px) { .about__layout { gap: 48px; } }
@media (max-width: 1100px) { .about__layout { grid-template-columns: 1fr; gap: 40px; } }

.about__intro { display: flex; flex-direction: column; }
.about__intro .s-title   { margin-bottom: 16px; }
.about__intro .s-lead    { max-width: 576px; line-height: 150%; }
@media (max-width: 1100px) { .about__desc br, .about-card__text br { display: none; } }

.about__logo {
  margin-top: auto;
  width: 278px;
  display: block;
}
.about__logo img, .about__logo svg { display: block; width: 100%; height: auto; }

/* текст во всю ширину и отступ до мишки — после базовых правил */
@media (max-width: 1100px) {
  .about__intro .s-lead { max-width: 100%; }
  .about__logo { margin-top: 48px; }
}

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

@media (max-width: 425px) {
  .about__logo {
    width: 100%;
    display: flex;
    justify-content: center;
  }
}

/* right column starts 51px lower (Figma: right y=115, left y=64) */
.about__cards {
  display: flex;
  flex-direction: column;
  gap: 20px;
  margin-top: 51px;
}

.about-card {
  position: relative;
  overflow: hidden;
  background: #0c0d16;
  border: 1px solid #232a6d;
  border-radius: 12px;
  padding: 32px;
  box-sizing: border-box;
}

/* per-card inner glow (Ellipse 26) */
.about-card__glow {
  position: absolute;
  width: 459px; height: 182px;
  border-radius: 9999px;
  background: rgba(77, 48, 255, 0.70);
  filter: blur(200px);
  pointer-events: none;
  z-index: 0;
}
.about-card:first-child .about-card__glow {
  left: 293px; top: 48px;
}
.about-card:nth-child(2) .about-card__glow {
  left: -9px; top: 51px;
}
.about-card:last-child .about-card__glow {
  left: 147px; top: 0px;
}

.about-card__title {
  position: relative; z-index: 1;
  margin: 0 0 16px;
  font-family: "Montserrat", system-ui, sans-serif;
  font-weight: 700; font-size: 24px; line-height: 130%;
  color: #fff;
  text-wrap: balance;
  overflow-wrap: break-word;
}
.about-card__text {
  position: relative; z-index: 1;
  margin: 0;
  font-size: 16px; line-height: 130%; color: #c4c5cc;
}

/* Мобилка: однострочный layout — glow смещается вниз, в зону логотипа;
   карточки масштабируются под узкий экран */
@media (max-width: 600px) {
  .about__e27 {
    top: 260px; /* на 1-колонке медведь примерно здесь */
  }

  .about-card__glow {
    width: 220px;
    height: 100px;
    filter: blur(75px);
  }
  .about-card:first-child .about-card__glow {
    left: auto;
    right: -20px;
    top: 40px;
  }
  .about-card:nth-child(2) .about-card__glow {
    left: -20px;
    top: 40px;
  }
  .about-card:last-child .about-card__glow {
    left: auto;
    right: -20px;
    top: 30px;
  }
}

/* ────────────────────────────────────────────────────────────────
   TEAM & DOCS — Figma 1:481 — 1440 × 1352
   ──────────────────────────────────────────────────────────────── */
.teamdocs { padding: 64px 0 120px; position: relative; overflow-x: clip; }
.teamdocs__e26 {
  position: absolute;
  left: calc(50% - 217px);
  top: 1194px;
  width: 1042px; height: 130px;
  border-radius: 9999px;
  background: rgba(77, 48, 255, 0.70);
  filter: blur(200px);
  z-index: 0;
  pointer-events: none;
}
.teamdocs__e28 {
  position: absolute;
  left: calc(50% - 816px);
  top: 417px;
  width: 1136px; height: 128px;
  border-radius: 9999px;
  background: rgba(0, 55, 194, 0.70);
  filter: blur(200px);
  z-index: 0;
  pointer-events: none;
}
/* teamdocs__dot--e31: (720+232)/1440=66.1% */
.teamdocs__dot--e31 {
  position: absolute;
  left: 66.1%;
  top: min(647px, calc(100% - 60px));
  width: 40px; height: 40px;
  border-radius: 50%;
  background: #047EFE;
  filter: blur(10px);
  z-index: 2;
  pointer-events: none;
}
.teamdocs__dot--e30 {
  position: absolute;
  left: calc(50% - 633px);
  top: 1291px;
  width: 18px; height: 18px;
  border-radius: 50%;
  background: #015883;
  filter: blur(6px);
  z-index: 2;
  pointer-events: none;
}
.teamdocs__dot--e32 {
  position: absolute;
  left: calc(50% - 659px);
  top: 343px;
  width: 12px; height: 12px;
  border-radius: 50%;
  background: #FF8CC6;
  filter: blur(2px);
  z-index: 0;
  pointer-events: none;
}

.teamdocs__head {
  display: grid;
  grid-template-columns: 580px 1fr;
  gap: 24px;
  align-items: start;
  margin-bottom: 64px;
}
@media (max-width: 1000px) { .teamdocs__head { grid-template-columns: 1fr; gap: 12px; } }

.teamdocs__head .s-title { margin: 0; }
.teamdocs__head .s-lead  { margin: 0; max-width: 580px; }

.teamdocs__team-label {
  font-family: "Montserrat", system-ui, sans-serif;
  font-weight: 700; font-size: 24px; line-height: 130%; color: #fff;
  margin: 0 0 24px;
}

/* horizontal scroll — bleeds to page edges */
.team-scroll {
  display: flex;
  gap: 24px;
  margin-bottom: 128px;
  margin-left: calc(-50vw + 50%);
  margin-right: calc(-50vw + 50%);
  padding-left: calc(50vw - 50%);
  padding-right: calc(50vw - 50%);
  overflow-x: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
  cursor: grab;
  user-select: none;
}
.team-scroll.is-dragging { cursor: grabbing; }
.team-scroll::-webkit-scrollbar { display: none; }

.team-card { display: flex; flex-direction: column; flex: 0 0 278px; }

.team-card__photo {
  width: 278px; height: 278px;
  border-radius: 12px;
  background: linear-gradient(145deg, #131830 0%, #0c0d16 70%);
  flex-shrink: 0; overflow: hidden;
}
.team-card__photo img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 12px; pointer-events: none; -webkit-user-drag: none; }

.team-card__body { margin-top: 16px; display: flex; flex-direction: column; gap: 12px; }
.team-card__name { margin: 0; font-family: "Montserrat", system-ui, sans-serif; font-weight: 500; font-size: 20px; line-height: 130%; color: #fff; }

.team-badge {
  display: inline-flex; align-items: center; padding: 7px 15px;
  border-radius: 32px;
  border: 1px solid #CDE4F2;
  font-size: 14px; color: #c4c5cc; width: fit-content;
}

/* docs panel (bleeds 40px each side) */
.docs-panel-outer {
  margin-left: 0;
  margin-right: 0;
  padding: 8px;
  background: linear-gradient(180deg, rgba(77, 48, 255, 0.7) 0%, rgba(8, 112, 220, 0.7) 100%);
  border-radius: 16px;
}

.docs-panel {
  background: #0c0d16;
  border-radius: 8px;
  padding: 32px;
  position: relative;
  overflow: hidden;
}

.docs-panel__glow {
  position: absolute;
  width: 978px; height: 167px;
  left: 50%; top: 176px;
  transform: translateX(-50%);
  background: rgba(0, 55, 194, 0.70);
  filter: blur(200px);
  border-radius: 9999px;
  pointer-events: none; z-index: 0;
}

.docs-panel__title {
  position: relative; z-index: 1;
  margin: 0 0 24px;
  font-family: "Montserrat", system-ui, sans-serif;
  font-weight: 700; font-size: 24px; line-height: 130%; color: #fff;
}

.docs-grid {
  position: relative; z-index: 1;
  display: flex; gap: 24px;
  width: 100%;
  max-width: 1184px;
}

.doc-card {
  padding: 32px;
  background: #181C45;
  outline: 1px solid #181C45; outline-offset: -1px;
  border-radius: 12px;
  height: 372px;
  flex: 1 1 0;
  display: flex; flex-direction: column;
  justify-content: space-between;
  box-sizing: border-box;
  position: relative;
  overflow: hidden;
}

.doc-card__glow {
  position: absolute;
  width: 459px; height: 182px;
  right: -100px; top: 100px;
  border-radius: 9999px;
  background: rgba(4, 126, 254, 0.70);
  filter: blur(200px);
  pointer-events: none; z-index: 0;
}
.doc-card__icon { position: relative; z-index: 1; width: 24px; height: 24px; color: #ff8cc6; flex-shrink: 0; }
.doc-card__icon svg { display: block; width: 24px; height: 24px; }

.doc-card__title {
  position: relative; z-index: 1;
  margin: 24px 0 16px;
  font-family: "Montserrat", system-ui, sans-serif;
  font-weight: 700; font-size: 24px; line-height: 130%; color: #fff;
}
.doc-card__text  { position: relative; z-index: 1; margin: 0; flex: 1; font-family: "Montserrat", system-ui, sans-serif; font-weight: 400; font-size: 16px; line-height: 130%; color: #c4c5cc; }

/* медиазапросы — строго после базовых стилей */
@media (max-width: 1100px) {
  .docs-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
  }
  .doc-card { height: auto; min-height: 200px; flex: none; width: 100%; }
  .doc-card__title { width: 100%; max-width: 100%; }
  .doc-card__text  { width: 100%; max-width: 100%; font-size: 18px; }
  .doc-card__title br,
  .doc-card__text br { display: none; }
}
@media (max-width: 520px) {
  .docs-grid { grid-template-columns: 1fr; }

  /* overflow: visible позволяет glow выходить за пределы панели наружу */
  .docs-panel {
    overflow: visible;
    padding: 24px 20px;
  }

  /* Панельный glow: у нижнего края, освещает и внутри и снаружи */
  .docs-panel__glow {
    width: 260px;
    height: 120px;
    left: 50%;
    top: auto;
    bottom: -160px;
    transform: translateX(-50%);
    filter: blur(70px);
    background: rgba(4, 78, 220, 0.85);
  }

  /* Glow внутри карточки: уменьшен и перепозиционирован под размер */
  .doc-card__glow {
    width: 220px;
    height: 100px;
    right: -30px;
    top: 60px;
    filter: blur(70px);
    background: rgba(4, 126, 254, 0.55);
  }
}

@media (max-width: 425px) {
  .doc-card { height: 372px; }
  .doc-card__text { font-size: 16px; }
  .doc-card__title br,
  .doc-card__text br { display: revert; }
}

@media (max-width: 425px) {
  .geo__placeholder {
    text-align: left;
  }
  .geo__note {
    text-align: left;
  }
}
.doc-card__actions { position: relative; z-index: 1; display: flex; flex-direction: column; gap: 16px; margin-top: 24px; }

.doc-card__link {
  display: inline-flex; align-items: center; gap: 16px;
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: 16px; font-weight: 500; color: #fff; text-decoration: none; line-height: 140%;
}
.doc-card__link:hover { color: rgba(100, 180, 255, 0.95); }
.doc-card__link svg  { width: 24px; height: 24px; flex-shrink: 0; }

/* ────────────────────────────────────────────────────────────────
   PARTNERS — Figma 1:601 — 1440 × 592
   top=128 | content~336 | bottom=128
   ──────────────────────────────────────────────────────────────── */
.partners {
  padding: 128px 0;
  background: transparent; /* фон теперь в .parallax-bg */
  position: relative;
  overflow: clip;
  border-top: 1px solid rgba(255,255,255,0.1);
  border-bottom: 1px solid rgba(255,255,255,0.1);
}

/* Фоновый слой для параллакса */
.partners > .parallax-bg {
  background: linear-gradient(259.96deg, #181C45 -16.15%, #0561C1 18.05%, #0870DC 51.59%, #0561C1 86.44%, #181C45 120.64%);
}

@media (max-width: 900px) {
  /* Убираем parallax-bg полностью — он может оставлять зазоры при transform.
     Сплошной фон ставим прямо на секцию, он всегда покрывает 100% ширины. */
  .partners {
    background: #0561C1;
  }
  .partners > .parallax-bg {
    display: none;
  }
}

.partners__layout {
  display: grid;
  grid-template-columns: 580px 1fr;
  gap: 24px; align-items: start;
}
@media (max-width: 1100px) { .partners__layout { grid-template-columns: 1fr; gap: 40px; } }

.partners__intro {
  min-width: 0;
  max-width: 100%;
}

.partners__intro .s-title { margin-bottom: 16px; }
.partners__intro .s-lead  {
  max-width: 580px;
  width: 100%;
  color: #CDE4F2;
  overflow-wrap: break-word;
  word-wrap: break-word;
}

.partners__cta {
  margin-top: 137px;
  display: flex; flex-direction: column; gap: 16px; align-items: flex-start;
}
.partners__cta .btn {
  height: 58px;
  padding: 12px 24px;
  border-radius: 8px;
  background: #fff;
  border: none;
  color: #0870DC;
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 140%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  box-sizing: border-box;
}

.partners__note {
  font-family: "Montserrat", system-ui, sans-serif;
  font-weight: 400;
  font-size: 14px;
  line-height: 16px;
  color: #CDE4F2;
  max-width: 580px;
  width: 100%;
  margin: 0;
  overflow-wrap: break-word;
  word-wrap: break-word;
}

/* logo grid 3×3 */
.partners-logos {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  width: 100%;
  max-width: 580px;
  min-width: 0;
  box-sizing: border-box;
}

@media (max-width: 1100px) {
  .partners {
    padding: 72px 0;
  }

  .partners__layout {
    min-width: 0;
  }

  .partners__intro .s-title {
    line-height: 1.08;
    margin-bottom: 12px;
  }

  .partners__intro .s-lead {
    font-size: 14px;
    line-height: 1.35;
    max-width: 100%;
  }

  .partners__intro .s-lead br,
  .partners__note br {
    display: none;
  }

  .partners__note {
    font-size: 13px;
    line-height: 1.4;
    max-width: 100%;
  }

  .partners__cta {
    margin-top: 28px;
    gap: 12px;
  }

  .partners__cta .btn {
    font-size: 15px;
    min-height: 52px;
    padding: 10px 20px;
  }

  .partners-logos {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: 12px;
    width: 100%;
    max-width: 100%;
    margin-left: 0;
    margin-right: 0;
    padding-left: 0;
    padding-right: 0;
    overflow: visible;
    cursor: default;
    user-select: auto;
  }

  .partner-cell {
    width: auto;
    min-width: 0;
    height: 96px;
    flex: none;
  }

}

/* 601–900px: ровно 3 колонки — ячейки достаточно широкие для оригинальных логотипов */
@media (max-width: 900px) and (min-width: 601px) {
  .partners-logos {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* ≤600px: 2 колонки — ячейки ≥130px, логотипы влезают без сжатия */
@media (max-width: 600px) {
  .partners-logos {
    grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
  }
}

/* Общие правила для всего диапазона ≤900px */
@media (max-width: 900px) {
  .partner-cell {
    height: 72px;
    padding: 10px;
    background: transparent;
  }

  .partner-cell--yandex,
  .partner-cell--skillbox,
  .partner-cell--rzd,
  .partner-cell--aeroflot,
  .partner-cell--1c,
  .partner-cell--avito,
  .partner-cell--sber,
  .partner-cell--netologia {
    padding: 12px;
  }

  /* height: auto — пропорциональное масштабирование при сжатии ячейки */
  .partner-cell--yandex img    { width: 112px; height: auto; max-width: 100%; }
  .partner-cell--skillbox img  { width: 130px; height: auto; max-width: 100%; }
  .partner-cell--rzd img       { width: 86px;  height: auto; max-width: 100%; }
  .partner-cell--aeroflot img  { width: 134px; height: auto; max-width: 100%; }
  .partner-cell--1c img        { width: 66px;  height: auto; max-width: 100%; }
  .partner-cell--avito img     { width: 114px; height: auto; max-width: 100%; }
  .partner-cell--sber img      { width: 130px; height: auto; max-width: 100%; }
  .partner-cell--netologia img { width: 144px; height: auto; max-width: 100%; }
}

.partner-cell {
  height: 96px;
  border-radius: 12px;
  display: flex; align-items: center; justify-content: center;
  padding: 16px;
  box-sizing: border-box;
  background: rgba(24, 28, 69, 0.30);
  overflow: hidden;
}

@media (min-width: 901px) {
  .partner-cell {
    flex: 0 0 auto;
  }

  .partner-cell--yandex {
    padding: 32px 33px;
  }
  .partner-cell--yandex img {
    width: 112px;
    height: 32px;
  }
  .partner-cell--skillbox {
    padding: 32px 24px;
  }
  .partner-cell--skillbox img {
    width: 130px;
    height: 32px;
  }
  .partner-cell--rzd {
    padding: 29px 46px;
  }
  .partner-cell--rzd img {
    width: 86px;
    height: 38px;
  }
  .partner-cell--aeroflot {
    padding: 34px 22px;
  }
  .partner-cell--aeroflot img {
    width: 134px;
    height: 28px;
  }
  .partner-cell--1c {
    padding: 32px 56px;
  }
  .partner-cell--1c img {
    width: 66px;
    height: 32px;
  }
  .partner-cell--avito {
    padding: 31px 32px;
  }
  .partner-cell--avito img {
    width: 114px;
    height: 34px;
  }
  .partner-cell--sber {
    padding: 35px 24px;
  }
  .partner-cell--sber img {
    width: 130px;
    height: 26px;
  }
  .partner-cell--netologia {
    padding: 39px 17px;
  }
  .partner-cell--netologia img {
    width: 144px;
    height: 18px;
  }
}

.partner-cell img {
  display: block;
  max-width: 100%; max-height: 100%;
  object-fit: contain;
}
.partner-cell span {
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: 14px; font-weight: 700;
  color: #fff; text-align: center;
}

/* ────────────────────────────────────────────────────────────────
   GEO — Figma 1:649 — 1440 × 851
   top=128 | head=35 | gap=64 | map=500 | bottom=124
   ──────────────────────────────────────────────────────────────── */
.geo { padding: 128px 0 124px; position: relative; overflow-x: clip; }

.geo__head { margin-bottom: 64px; }

.geo__map-slot {
  width: 1184px;
  max-width: 100%;
}

/* Убери .geo__map-slot--show-draft со слота, чтобы снова показать плейсхолдер и скрыть черновик */
.geo__map-slot--show-draft .geo__map-container--placeholder {
  display: none !important;
}

.geo__map-slot:not(.geo__map-slot--show-draft) .geo__map-container--draft {
  display: none !important;
}

.geo__map-container--draft {
  justify-content: stretch;
  align-items: stretch;
  padding: 0;
}

.geo__map-draft__lead {
  position: absolute;
  z-index: 2;
  top: 32px;
  left: 32px;
  width: 560px;
  max-width: calc(100% - 64px);
  min-height: 52px;
  margin: 0;
  box-sizing: border-box;
  font-family: "Montserrat", system-ui, sans-serif;
  font-weight: 400;
  font-size: 20px;
  line-height: 130%;
  color: #fff;
  text-align: left;
}

.geo__map-draft__note {
  position: absolute;
  z-index: 2;
  top: 464px;
  left: 32px;
  width: 370px;
  max-width: calc(100% - 64px);
  min-height: 64px;
  margin: 0;
  box-sizing: border-box;
  font-family: "Montserrat", system-ui, sans-serif;
  font-weight: 400;
  font-size: 14px;
  line-height: 16px;
  color: #dddde6;
  text-align: left;
}

.geo__map-draft__root {
  position: relative;
  z-index: 1;
  flex: 1;
  min-height: 0;
  width: 100%;
  display: flex;
  flex-direction: column;
  padding-top: 72px;
  box-sizing: border-box;
}

/* Frame 51 — карта: left 380px, по вертикали по центру (равные отступы сверху/снизу) */
.geo__map-draft__map {
  position: absolute;
  top: 50%;
  left: 380px;
  transform: translateY(-50%);
  width: min(800px, calc(100% - 380px));
  height: auto;
  max-height: 500px;
  aspect-ratio: 800 / 500;
  object-fit: contain;
  object-position: left center;
  display: block;
  pointer-events: none;
}

.geo__map-container {
  position: relative;
  width: 1184px;
  max-width: 100%;
  height: 560px;
  border-radius: 12px;
  background: #181C45;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 48px 32px;
  box-sizing: border-box;
}

.geo__map {
  position: absolute;
  inset: 0;
  opacity: 0.3;
}

.geo__logo {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 492px;
  height: 432px;
  pointer-events: none;
}

.geo__placeholder {
  position: relative; z-index: 1;
  margin: 0;
  font-family: "Montserrat", system-ui, sans-serif;
  font-weight: 400; font-size: 20px; line-height: 130%;
  color: #fff;
  text-align: center;
  max-width: 560px;
}

.geo__note {
  position: absolute; z-index: 1;
  bottom: 32px;
  left: 50%;
  transform: translateX(-50%);
  margin: 0;
  font-family: "Montserrat", system-ui, sans-serif;
  font-weight: 400; font-size: 14px; line-height: 16px;
  color: #D0DDE6;
  text-align: center;
  max-width: 640px;
  width: 640px;
}

.geo__e28 {
  position: absolute;
  left: calc(50% - 248px);
  top: 183px;
  width: 1136px; height: 128px;
  border-radius: 9999px;
  background: rgba(0, 55, 194, 0.7);
  filter: blur(200px);
  z-index: 0;
  pointer-events: none;
  transform: translateX(-50%);
}

.news__e28 {
  position: absolute;
  left: calc(50% - 248px);
  top: 574px;
  width: 1136px; height: 128px;
  border-radius: 9999px;
  background: rgba(0, 55, 194, 0.7);
  filter: blur(200px);
  z-index: 0;
  pointer-events: none;
  transform: translateX(-50%);
}

.news__dot--e30 {
  position: absolute;
  left: calc(50% - 648px);
  top: 244px;
  width: 18px; height: 18px;
  border-radius: 50%;
  background: #FF8CC6;
  filter: blur(6px);
  z-index: 0;
  pointer-events: none;
}

/* news__dot--e32: (720+189)/1440=63.1% */
.news__dot--e32 {
  position: absolute;
  left: 63.1%;
  top: min(656px, calc(100% - 60px));
  width: 12px; height: 12px;
  border-radius: 50%;
  background: #047EFE;
  filter: blur(2px);
  z-index: 2;
  pointer-events: none;
}

.news__e26 {
  position: absolute;
  left: calc(50% + 304px);
  top: -99px;
  width: 1042px; height: 130px;
  border-radius: 9999px;
  background: rgba(77, 48, 255, 0.7);
  filter: blur(200px);
  z-index: 0;
  pointer-events: none;
  transform: translateX(-50%);
}

.geo__dot--e30 {
  position: absolute;
  left: calc(50% - 667px);
  top: 426px;
  width: 18px; height: 18px;
  border-radius: 50%;
  background: #047EFE;
  filter: blur(6px);
  z-index: 2;
  pointer-events: none;
}

/* geo__dot--e31: (720+628)/1440=93.6% */
.geo__dot--e31 {
  position: absolute;
  left: min(93.6%, calc(100% - 50px));
  top: 124px;
  width: 40px; height: 40px;
  border-radius: 50%;
  background: #FF8CC6;
  filter: blur(10px);
  z-index: 2;
  pointer-events: none;
}

/* geo__dot--e32: (720+455)/1440=81.6% */
.geo__dot--e32 {
  position: absolute;
  left: 81.6%;
  top: min(811px, calc(100% - 60px));
  width: 12px; height: 12px;
  border-radius: 50%;
  background: #047EFE;
  filter: blur(2px);
  z-index: 2;
  pointer-events: none;
}

.geo__aside {
  display: flex; flex-direction: column; gap: 24px;
  flex: 1 1 280px; min-width: 0;
}
.geo__aside .s-lead:first-child { color: #fff; font-size: 16px; line-height: 1.5; }
.geo__aside .s-lead:last-child  { font-size: 14px; line-height: 1.5; }

/* ────────────────────────────────────────────────────────────────
   NEWS — Figma 1:755 — 1440 × 692
   top=64 | head=72 | gap=64 | cards=418 | bottom=74
   ──────────────────────────────────────────────────────────────── */
.news { padding: 64px 0 124px; background: #0C0D16; position: relative; overflow-x: clip; }

.news__head { margin-bottom: 64px; }
.news__head .s-title { text-transform: uppercase; margin-bottom: 16px; }
.news__head .s-lead  { max-width: 576px; }

.news__scroll {
  position: relative;
  z-index: 3;
  display: flex;
  gap: 24px;
  overflow-x: auto;
  scrollbar-width: none;
  margin-left: calc(-50vw + 50%);
  margin-right: calc(-50vw + 50%);
  padding-left: calc(50vw - 50%);
  padding-right: calc(50vw - 50%);
  cursor: grab;
  user-select: none;
}
.news__scroll::-webkit-scrollbar { display: none; }
.news__scroll.is-dragging { cursor: grabbing; }

.news-card {
  flex: 0 0 379px;
  height: 428px;
  border-radius: 12px;
  overflow: hidden; background: #181C45;
  display: flex; flex-direction: column;
}

.news-card__img {
  width: 100%; height: 200px;
  border-radius: 12px;
  object-fit: cover;
  flex-shrink: 0;
  display: block;
}

.news-card__body  { padding: 24px 32px 32px; display: flex; flex-direction: column; flex: 1; }
.news-card__title { margin: 0 0 16px; font-family: "Montserrat",system-ui,sans-serif; font-weight: 700; font-size: 24px; line-height: 130%; color: #fff; text-wrap: balance; overflow-wrap: break-word; }
.news-card__text  { margin: 0; font-size: 16px; line-height: 130%; color: #c4c5cc; text-wrap: pretty; overflow-wrap: break-word; }

/* ────────────────────────────────────────────────────────────────
   FAQ — Figma 1:789 — 1440 × 799
   top=64 | head=35 | gap=64 | content≈508 | bottom=128
   ──────────────────────────────────────────────────────────────── */
.faq { padding: 64px 0 128px; position: relative; overflow-x: clip; }

.faq__dot--e32 {
  position: absolute;
  left: calc(50% - 645px);
  top: 283px;
  width: 12px; height: 12px;
  border-radius: 50%;
  background: #047EFE;
  filter: blur(2px);
  z-index: 0;
  pointer-events: none;
}

/* faq__dot--e31: (720+568)/1440=89.4% */
.faq__dot--e31 {
  position: absolute;
  left: 89.4%;
  top: min(611px, calc(100% - 60px));
  width: 40px; height: 40px;
  border-radius: 50%;
  background: #FF8CC6;
  filter: blur(10px);
  z-index: 0;
  pointer-events: none;
}

.faq__head { margin-bottom: 64px; }

/* two-column layout */
.faq__layout {
  display: grid;
  grid-template-columns: minmax(0, 781px) minmax(0, 379px);
  gap: 24px; align-items: start; max-width: 1184px;
}
@media (max-width: 1000px) { .faq__layout { grid-template-columns: 1fr; } }

/* Колонка аккордеона + Ellipse 30: 36px под низом списка; список выше шарика при раскрытии и из‑за blur */
.faq-list-col {
  position: relative;
  min-width: 0;
  z-index: 1;
  isolation: isolate;
}

.faq-list-col .faq__dot--e30 {
  position: absolute;
  left: 382px;
  top: calc(100% + 36px);
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #047efe;
  filter: blur(6px);
  z-index: 0;
  pointer-events: none;
}

@media (max-width: 1000px) {
  .faq-list-col .faq__dot--e30 {
    left: 50%;
    margin-left: -9px;
  }
}

/* accordion — свечение только внутри колонки вопросов (index-test Ellipse 26 / макет Ellipse 28) */
.faq-list {
  display: flex; flex-direction: column;
  position: relative;
  z-index: 1;
  border: 1px solid #232a6d;
  border-radius: 12px;
  background: rgba(24, 28, 69, 0.30);
  overflow: hidden;
  contain: paint;
}

/* Светятся только fill + blur; без box-shadow из Figma — иначе наследуется белый currentColor и всё «мылится». */
.faq-list__glow {
  position: absolute;
  left: -213px;
  top: 400px;
  width: 494px;
  height: 137px;
  border-radius: 9999px;
  background: rgba(77, 48, 255, 0.7);
  filter: blur(200px);
  z-index: 0;
  pointer-events: none;
  color: transparent;
}

/* Ellipse 29: 353×183, #0037C2 70%, left 652 top 132 (как в index-test / макет) */
.faq-list__glow--e29 {
  position: absolute;
  left: 652px;
  top: 132px;
  width: 353px;
  height: 183px;
  border-radius: 9999px;
  background: rgba(0, 55, 194, 0.7);
  filter: blur(200px);
  z-index: 0;
  pointer-events: none;
  color: transparent;
}

details.faq-item {
  position: relative;
  z-index: 1;
  border-bottom: 1px solid #232a6d;
}
details.faq-item:last-child { border-bottom: none; }

details.faq-item summary {
  list-style: none;
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  padding: 32px;
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: 20px; font-weight: 400; line-height: 130%;
  color: #fff; cursor: pointer; user-select: none;
}
details.faq-item summary::-webkit-details-marker { display: none; }

.faq-item__text { flex: 1; min-width: 0; }

.faq-item__icon { flex-shrink: 0; width: 24px; height: 24px; color: #c4c5cc; position: relative; }
.faq-item__icon::before,
.faq-item__icon::after { content: ""; position: absolute; background: currentColor; border-radius: 1px; }
.faq-item__icon::before { width: 14px; height: 2px; top: 50%; left: 50%; transform: translate(-50%,-50%); }
.faq-item__icon::after  { width: 2px; height: 14px; top: 50%; left: 50%; transform: translate(-50%,-50%); transition: opacity .2s; }
details[open] .faq-item__icon::after { opacity: 0; }
details[open] summary { padding-bottom: 16px; }

.faq-item__panel { padding: 0 32px 32px; font-size: 16px; line-height: 130%; color: #c4c5cc; }

/* help card + ИИ-чат — переключение с анимацией */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.faq-help {
  position: relative;
  width: 100%;
  max-width: 379px;
  margin: 0;
  padding: 0;
  border: none;
  background: transparent;
  overflow: visible;
}

.faq-help__stage {
  position: relative;
  width: 100%;
  max-width: 379px;
  min-height: 329px;
  transition: min-height 0.55s cubic-bezier(0.22, 1, 0.36, 1);
}

/* Высота при открытом чате = однократный замер колонки FAQ при загрузке (--faq-help-sync-height) */
.faq-help--chat-open .faq-help__stage {
  min-height: var(--faq-help-sync-height, 329px);
}

.faq-help__intro {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  gap: 24px;
  min-height: 329px;
  padding: 32px;
  border: 1px solid rgba(107, 179, 255, 0.3);
  border-radius: 12px;
  background: #047efe;
  overflow: hidden;
  box-sizing: border-box;
  transition:
    opacity 0.42s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.5s cubic-bezier(0.22, 1, 0.36, 1),
    visibility 0.5s step-end;
}

.faq-help__intro::before {
  content: "";
  position: absolute;
  right: -32px;
  top: -40px;
  width: 120px;
  height: 120px;
  background: radial-gradient(circle, rgba(255, 140, 198, 0.25) 0%, transparent 70%);
  filter: blur(20px);
  pointer-events: none;
}

.faq-help--chat-open .faq-help__intro {
  opacity: 0;
  transform: translateY(-18px) scale(0.94);
  visibility: hidden;
  pointer-events: none;
  transition:
    opacity 0.38s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.48s cubic-bezier(0.22, 1, 0.36, 1),
    visibility 0.48s step-end;
}

.faq-help__icon {
  position: absolute;
  top: 16px;
  right: 16px;
  width: 64px;
  height: 64px;
  z-index: 1;
  pointer-events: none;
}

.faq-help__title {
  margin: 0;
  padding-right: 48px;
  font-family: "Montserrat", system-ui, sans-serif;
  font-weight: 700;
  font-size: 24px;
  line-height: 130%;
  color: #fff;
  position: relative;
  z-index: 1;
}

.faq-help__text {
  margin: 0;
  font-size: 16px;
  line-height: 130%;
  color: #cde4f2;
  position: relative;
  z-index: 1;
}

.faq-help__cta {
  margin-top: auto;
  position: relative;
  z-index: 1;
  width: fit-content;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 58px;
  padding: 12px 24px;
  border-radius: 8px;
  border: none;
  background: #fff;
  color: #0870dc;
  font-family: "Montserrat", system-ui, sans-serif;
  font-weight: 500;
  font-size: 16px;
  line-height: 140%;
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

.faq-help__cta:hover,
.faq-help__cta:focus-visible {
  background: #f0f7ff;
  color: #0561c1;
  outline: none;
}

.faq-help__cta:focus-visible {
  box-shadow: 0 0 0 2px #fff, 0 0 0 4px #047efe;
}

.faq-help__cta:active {
  transform: scale(0.98);
}

/* чат — [hidden] нужен с !important: иначе display:flex перебивает UA display:none */
.faq-help__chat[hidden] {
  display: none !important;
}

.faq-help__chat {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.35);
  opacity: 0;
  transform: translateY(28px) scale(0.94);
  visibility: hidden;
  pointer-events: none;
  transition:
    opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1) 0.06s,
    transform 0.52s cubic-bezier(0.22, 1, 0.36, 1) 0.04s,
    visibility 0.52s step-end;
}

.faq-help--chat-open .faq-help__chat {
  z-index: 3;
  opacity: 1;
  transform: translateY(0) scale(1);
  visibility: visible;
  pointer-events: auto;
  transition:
    opacity 0.48s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.55s cubic-bezier(0.22, 1, 0.36, 1),
    visibility 0s step-start;
}

.faq-chat__head {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 24px;
  box-sizing: border-box;
  background: #047efe;
  border-radius: 12px 12px 0 0;
}

.faq-chat__title {
  margin: 0;
  min-width: 0;
  font-family: "Montserrat", system-ui, sans-serif;
  font-weight: 700;
  font-size: 16px;
  line-height: 24px;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: #fff;
}

.faq-chat__icon-btn {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  padding: 0;
  border: none;
  border-radius: 8px;
  background: transparent;
  color: #fff;
  cursor: pointer;
}

.faq-chat__icon-btn:hover,
.faq-chat__icon-btn:focus-visible {
  background: transparent;
  outline: none;
  box-shadow: none;
}

/* Занимает всё пространство между шапкой и футером — выше при компактном футере */
.faq-chat__body {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-height: 0;
  padding: 24px;
  overflow-x: hidden;
  overflow-y: auto;
  background: #f4f7fd;
  border-top: 1px solid #e7ecff;
  border-bottom: none;
  box-sizing: border-box;
  scrollbar-color: #b8c0d0 #f4f7fd;
}

.faq-chat__body::-webkit-scrollbar {
  width: 6px;
}
.faq-chat__body::-webkit-scrollbar-thumb {
  background: #b8c0d0;
  border-radius: 3px;
}

.faq-chat__bubble {
  display: flex;
  flex-direction: column;
  gap: 8px;
  box-sizing: border-box;
}

/* Входящее: max 279px; отступы 16 со всех сторон; от низа текста до низа пузыря 40px = gap 8 + время 16 + padding-bottom 16 */
.faq-chat__bubble--in {
  align-self: flex-start;
  width: 100%;
  max-width: 279px;
  padding: 16px;
  border: 1px solid #e7ecff;
  border-radius: 16px 16px 16px 0;
  background: #fff;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.04);
}

.faq-chat__bubble--out {
  align-self: flex-end;
  margin-left: 28px;
  max-width: min(279px, calc(100% - 28px));
  padding: 16px;
  border: 1px solid #e7ecff;
  border-radius: 16px 16px 0 16px;
  background: #dbeafe;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.04);
}

/* Текст сообщений — Figma: Montserrat 500, 14px, line-height 140%, letter-spacing -0.31px, #4D4D4D; ширина колонки ~247px за счёт padding пузыря */
.faq-chat__bubble-text {
  margin: 0;
  max-width: 100%;
  width: 100%;
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 140%;
  letter-spacing: -0.31px;
  color: #4d4d4d;
}

/* Время — Figma: Montserrat 500, 12px, line-height 16px, #C4C5CC; до текста 8px через gap у .faq-chat__bubble */
.faq-chat__time {
  display: block;
  margin: 0;
  max-width: 100%;
  align-self: flex-start;
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: 12px;
  font-weight: 500;
  line-height: 16px;
  letter-spacing: 0;
  color: #c4c5cc;
}

/* Футер: чуть выше компактного — 12+40+12; слева/справа 16px; ряд 40px, gap 12 */
.faq-chat__footer {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding-block: 12px;
  padding-inline: 16px;
  min-height: 64px;
  width: 100%;
  background: #fff;
  border-top: 1px solid #e7ecff;
  border-radius: 0 0 12px 12px;
  box-sizing: border-box;
}

.faq-chat__footer-inner {
  display: flex;
  flex-direction: row;
  flex-shrink: 0;
  align-items: center;
  justify-content: flex-start;
  gap: 12px;
  width: 100%;
  height: 40px;
  min-height: 40px;
  box-sizing: border-box;
}

/* Поле без рамки: высота = ряд 40px, line-height 40 + padding 0 — выравнивание с иконкой как в макете */
.faq-chat__input {
  flex: 1;
  align-self: center;
  min-width: 0;
  width: 0;
  height: 40px;
  margin: 0;
  padding: 0;
  border: none;
  border-radius: 0;
  box-shadow: none;
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: 15px;
  line-height: 40px;
  color: #2c3148;
  background: transparent;
  box-sizing: border-box;
  -webkit-appearance: none;
  appearance: none;
  transition: none;
}

.faq-chat__input::placeholder {
  color: #9aa3b5;
}

.faq-chat__input:focus {
  outline: none;
  border: none;
  box-shadow: none;
  background: transparent;
}

.faq-chat__input:focus-visible {
  outline: none;
}

/* Иконка отправки — только синий «Enter», без залитой кнопки */
.faq-chat__send {
  flex-shrink: 0;
  align-self: center;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  border-radius: 8px;
  background: transparent;
  color: #047efe;
  cursor: pointer;
  transition: background 0.2s ease, transform 0.15s ease, color 0.2s ease;
}

.faq-chat__send:hover,
.faq-chat__send:focus-visible {
  background: rgba(4, 126, 254, 0.08);
  color: #0561c1;
  outline: none;
}

.faq-chat__send:focus-visible {
  box-shadow: none;
}

.faq-chat__send svg {
  display: block;
  flex-shrink: 0;
}

.faq-chat__send:active {
  transform: scale(0.96);
}

@media (prefers-reduced-motion: reduce) {
  .faq-help__stage,
  .faq-help__intro,
  .faq-help__chat {
    transition: none !important;
  }
}

/* ────────────────────────────────────────────────────────────────
   FOOTER — Figma 1:827 — 1440 × 478
   top=64 | logo+nav=36+48gap | contacts=~145 | policy=64+136
   ──────────────────────────────────────────────────────────────── */
.site-footer {
  background: var(--bg-deep); /* Figma блок футера #0C0D16 */
  padding: 0;
  position: relative;
  overflow: hidden; /* свечения эллипсов не выходят за пределы футера */
  isolation: isolate;
}

/* Декоративные эллипсы — координаты от фрейма 1440px, calc(50% - 720px + left).
   Без box-shadow: смещённая тень из Figma (400px 400px 400px) в CSS давала наследуемый белый цвет и «мыло». */
.site-footer__glow {
  position: absolute;
  pointer-events: none;
  z-index: 0;
  color: transparent;
  border-radius: 9999px;
  box-sizing: border-box;
  filter: blur(200px);
}

/* Ellipse 26: 644×179, #4D30FF 70%, blur 400, top 218 left 407 */
.site-footer__glow--e26 {
  z-index: 1;
  width: 644px;
  height: 179px;
  left: calc(50% - 720px + 407px);
  top: 218px;
  background: rgba(77, 48, 255, 0.7);
}

/* Ellipse 29: 720×183, #0037C2 70%, blur 400, top 126 left -64 */
.site-footer__glow--e29 {
  width: 720px;
  height: 183px;
  left: calc(50% - 720px - 64px);
  top: 126px;
  background: rgba(0, 55, 194, 0.7);
}

/* Ellipse 28: 720×176, #0037C2 70%, blur 400, top 116 left 899 */
.site-footer__glow--e28 {
  width: 720px;
  height: 176px;
  left: calc(50% - 720px + 899px);
  top: 116px;
  background: rgba(0, 55, 194, 0.7);
}

@media (max-width: 900px) {
  .site-footer__glow--e26,
  .site-footer__glow--e29,
  .site-footer__glow--e28 {
    transform: scale(0.65);
    transform-origin: top center;
    filter: blur(140px);
  }
}

/* Figma Frame 80: 64px от верха блока футера до меню (и ряд лого); боковые 128 */
.site-footer__inner {
  position: relative; z-index: 1;
  max-width: 1440px; margin: 0 auto;
  padding: 64px 128px 0;
  box-sizing: border-box;
}
@media (max-width: 1439px) {
  .site-footer__inner {
    padding: 64px clamp(20px, 6.67vw, 128px) 0;
  }
}

/* Верхний ряд: Figma Frame 80 — меню и лого по верхнему краю */
.site-footer__top-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 24px;
  margin-bottom: 64px; /* Figma: от низа ряда лого/меню до Frame 168 */
}

@media (min-width: 1440px) {
  .site-footer__top-row {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: 0;
    align-items: start;
    flex-wrap: nowrap;
  }

  .site-footer__nav {
    margin-left: 217px;
    width: max-content;
    max-width: 100%;
  }
}

.site-footer__logos {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: clamp(18px, 2.5vw, 32px);
  row-gap: clamp(14px, 2vw, 24px);
  flex-shrink: 0;
  width: fit-content;
  max-width: 100%;
  min-width: min-content;
}

.site-footer__logo {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  line-height: 0;
  text-decoration: none;
}

.site-footer__logo-vs {
  display: block;
  flex: 0 0 auto;
  height: 52px;
  width: auto;
  max-width: min(240px, 55vw);
  object-fit: contain;
}

.site-footer__logo img {
  display: block;
  height: 44px;
  width: auto;
  max-width: min(176px, 48vw);
  object-fit: contain;
}

/* 16px / 140% ≈ 22px высота строки как у Hug 22 в макете */
.site-footer__nav { display: flex; flex-wrap: wrap; gap: 8px 20px; align-items: center; }
.site-footer__nav a {
  font-family: "Montserrat",system-ui,sans-serif;
  font-size: 16px; font-weight: 500; line-height: 140%; letter-spacing: -0.01em;
  color: #fff; text-decoration: none; white-space: nowrap; transition: color .2s;
}
.site-footer__nav a:hover { color: rgba(100,180,255,.95); }

/* Figma Frame 169: 1184× Hug, horizontal space-between — левый и правый блок на одной линии сверху */
.site-footer__contacts {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-start;
  gap: 24px 32px;
  width: 100%;
  max-width: 1184px;
  box-sizing: border-box;
}
@media (max-width: 1200px) {
  .site-footer__contacts {
    justify-content: flex-start;
    column-gap: 40px;
  }
}
@media (max-width: 700px) {
  .site-footer__contacts {
    flex-direction: column;
    align-items: stretch;
  }
}

.site-footer__col {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 24px;
  flex: 0 1 379px;
  min-width: 0;
  max-width: 379px;
}
@media (max-width: 700px) {
  .site-footer__col {
    flex: 1 1 auto;
    max-width: none;
  }
}

/* Figma: текст колонок футера — Montserrat 400, 16 / 130%, -0.01em, #FFF, ширина 379 Fill */
.site-footer__col-text {
  margin: 0;
  padding: 0;
  width: 100%;
  max-width: 379px;
  box-sizing: border-box;
  font-family: "Montserrat", system-ui, sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 130%;
  letter-spacing: -0.01em;
  color: #ffffff;
  text-align: left;
}

.socials { display: flex; align-items: center; gap: 16px; }

/* Иконки из images/*.svg — уже 58×58, скругление 12px как в макете */
.social-btn {
  flex-shrink: 0;
  width: 58px;
  height: 58px;
  border-radius: 12px;
  border: none;
  padding: 0;
  background: transparent;
  display: block;
  text-decoration: none;
  cursor: pointer;
  transition: opacity 0.2s ease, transform 0.15s ease;
}
.social-btn:hover { opacity: 0.92; transform: translateY(-1px); }
.social-btn:focus-visible {
  outline: 2px solid rgba(100, 180, 255, 0.85);
  outline-offset: 2px;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible {
  outline: 2px solid #64b4ff;
  outline-offset: 2px;
}

.notify-form {
  margin-top: 12px;
  display: grid;
  gap: 10px;
  width: min(420px, 100%);
}

.notify-form__label {
  display: inline-block;
  color: #fff;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.3;
}

.notify-form__row {
  display: grid;
  gap: 8px;
  grid-template-columns: 1fr 1fr;
}

.notify-form__input,
.notify-form__select {
  width: 100%;
  border: 1px solid rgba(255, 255, 255, 0.25);
  border-radius: 10px;
  background: rgba(9, 18, 55, 0.62);
  color: #fff;
  font: 500 14px/1.4 "Montserrat", system-ui, sans-serif;
  padding: 11px 12px;
  transition: border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

.notify-form__input::placeholder {
  color: rgba(255, 255, 255, 0.65);
}

.notify-form__select option {
  color: #0f163f;
}

.notify-form__input:hover,
.notify-form__select:hover {
  border-color: rgba(100, 180, 255, 0.8);
}

.notify-form__input:focus-visible,
.notify-form__select:focus-visible {
  outline: 2px solid #64b4ff;
  outline-offset: 0;
  border-color: #64b4ff;
  box-shadow: 0 0 0 4px rgba(100, 180, 255, 0.22);
}

.notify-form__submit {
  width: 100%;
  min-height: 50px;
}

.notify-form__message {
  margin: 2px 0 0;
  color: rgba(255, 255, 255, 0.75);
  font-size: 13px;
  line-height: 1.4;
}

.notify-form__message--success,
.notify-form__message--error {
  margin-top: 12px;
  padding: 14px 16px;
  border-radius: 10px;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.5;
  border: 1px solid transparent;
  animation: venue-form-msg-in 0.35s ease;
}

.notify-form__message--success {
  color: #c8e6c9;
  background: rgba(76, 175, 80, 0.16);
  border-color: rgba(129, 199, 132, 0.45);
}

.notify-form__message--error {
  color: #ffcdd2;
  background: rgba(229, 57, 53, 0.14);
  border-color: rgba(239, 83, 80, 0.4);
}

@keyframes venue-form-msg-in {
  from {
    opacity: 0;
    transform: translateY(6px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.geo-heatmap__svg-wrap {
  position: relative;
  flex: 1;
  min-height: 0;
}

.geo-heatmap__svg-object {
  width: 100%;
  height: 100%;
  display: block;
  border-radius: 12px;
  background: #181C45;
}

#geo-heatmap-object path[id^="RU-"]:hover {
  filter: brightness(1.18);
}

.geo-heatmap__legend {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 10px;
}

.geo-heatmap__legend-label {
  color: rgba(255, 255, 255, 0.82);
  font-size: 12px;
}

.geo-heatmap__legend-bar {
  width: 180px;
  height: 8px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.28);
  background: linear-gradient(90deg, hsl(210 100% 22%), hsl(210 100% 66%));
}

.geo-heatmap__popup {
  position: absolute;
  left: 0;
  top: 0;
  z-index: 5;
  pointer-events: none;
  max-width: 280px;
  border-radius: 10px;
  padding: 12px 14px;
  background: rgba(4, 11, 38, 0.92);
  border: 1px solid rgba(100, 180, 255, 0.45);
  color: #fff;
  font-size: 14px;
  line-height: 1.35;
  box-shadow: 0 10px 26px rgba(0, 0, 0, 0.35);
}

@media (max-width: 800px) {
  .geo-heatmap__svg-object {
    height: 250px;
  }

  .geo-heatmap__legend {
    gap: 6px;
  }

  .geo-heatmap__legend-bar {
    width: 110px;
  }

  .notify-form__row {
    grid-template-columns: 1fr;
  }
}
.social-btn img {
  display: block;
  width: 58px;
  height: 58px;
  border-radius: 12px;
}

/* Figma: 192×58, padding 12/24, radius 8, обводка 1px #fff; текст Montserrat 500 16 / 140% / -0.01em */
.site-footer__partner-cta {
  box-sizing: border-box;
  width: 192px;
  height: 58px;
  padding: 12px 24px;
  border-radius: 8px;
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 140%;
  letter-spacing: -0.01em;
  background: transparent !important;
  border: 1px solid #fff !important;
  color: #fff !important;
}
.site-footer__partner-cta:hover {
  background: rgba(255, 255, 255, 0.08) !important;
  border-color: #fff !important;
  color: #fff !important;
}

/* Policy Block: линия #2C2F45; 24px до ссылок; gap 16px между рядом ссылок и © */
.site-footer__policy {
  margin-top: 64px;
  margin-left: auto;
  margin-right: auto;
  padding: 24px 0 48px;
  max-width: 1184px;
  width: 100%;
  box-sizing: border-box;
  border-top: 1px solid #2c2f45;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 16px; /* Figma: от низа ссылок до копирайта */
}
/* Figma Frame 171: один ряд на 1184px, space-between */
.site-footer__policy-links {
  display: flex;
  flex-wrap: nowrap;
  justify-content: space-between;
  align-items: center;
  gap: 0;
  width: 100%;
  box-sizing: border-box;
  margin-bottom: 0;
}
/* Figma: Montserrat 400, 14px / 16px, -0.01em, #C4C5CC */
.site-footer__policy-links a {
  flex: 0 1 auto;
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 16px;
  letter-spacing: -0.01em;
  color: #c4c5cc;
  text-decoration: none;
  transition: color 0.2s;
  white-space: nowrap;
}
.site-footer__policy-links a:hover { color: #fff; }

@media (max-width: 1100px) {
  .site-footer__policy-links {
    flex-direction: column;
    align-items: center;
    gap: 8px;
  }
  .site-footer__policy-links a {
    white-space: normal;
    text-align: center;
  }
}

/* Figma: © — Montserrat 400, 14px / 16px, -0.01em, #FFF, по центру */
.site-footer__copy {
  margin: 0;
  text-align: center;
  font-family: "Montserrat", system-ui, sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 16px;
  letter-spacing: -0.01em;
  color: #ffffff;
}

/* ── scroll anchor helper ── */
.anchor-offset { scroll-margin-top: 100px; }

/* ═══════════════════════════════════════════════════════════════
   LANDING — глобальная адаптация (узкие экраны)
   ═══════════════════════════════════════════════════════════════ */
@media (max-width: 768px) {
  .s-title {
    font-size: clamp(22px, 6vw, 32px);
  }

  .s-lead {
    font-size: 14px;
    line-height: 1.35;
  }

  .why {
    padding: 48px 0 80px;
  }

  .why__head {
    margin-bottom: 40px;
  }

  .why-card__title {
    font-size: clamp(18px, 4.5vw, 24px);
  }

  .quiz-section {
    padding: 0 0 56px;
    margin-top: 50px;
  }

  .quiz-section__head {
    margin-bottom: 40px;
  }

  .quiz-panel {
    padding: 20px;
  }

  .quiz-question {
    font-size: clamp(18px, 4.5vw, 24px);
  }

  .how {
    padding: 72px 0 48px;
  }

  .how__head {
    margin-bottom: 40px;
  }

  .how__head .s-lead {
    width: 100%;
    max-width: 100%;
  }

  .how-step {
    padding: 24px;
  }

  .how-step__title {
    font-size: clamp(18px, 4vw, 24px);
  }

  .how__cta {
    margin-top: 40px;
  }

  .about {
    padding: 48px 0;
  }

  .geo {
    padding: 64px 0 80px;
  }

  .geo__head {
    margin-bottom: 40px;
  }

  .geo__map-container {
    height: min(560px, 72vh);
    min-height: 280px;
    padding: 24px 16px;
  }

  .geo__map-container--draft {
    padding: 0;
  }

  .geo__map-draft__lead {
    top: 24px;
    left: 16px;
    max-width: calc(100% - 32px);
    font-size: clamp(16px, 4.2vw, 20px);
  }

  .geo__map-draft__note {
    top: auto;
    bottom: 24px;
    left: 16px;
    width: auto;
    max-width: calc(100% - 32px);
    min-height: 0;
    font-size: 13px;
    line-height: 1.35;
  }

  .geo__map-draft__map {
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: min(800px, calc(100% - 32px));
    height: auto;
    max-height: min(500px, 42vh);
    max-width: calc(100% - 32px);
  }

  .geo__logo {
    width: min(492px, 92vw);
    height: auto;
    max-height: 55vh;
  }

  .geo__placeholder {
    font-size: clamp(15px, 3.8vw, 20px);
  }

  .geo__note {
    width: auto;
    max-width: calc(100% - 24px);
    left: 50%;
    transform: translateX(-50%);
    bottom: 16px;
    font-size: 13px;
    line-height: 1.35;
  }

  .news {
    padding: 48px 0 80px;
  }

  .news__head {
    margin-bottom: 40px;
  }

  .news-card {
    flex: 0 0 min(379px, 86vw);
    height: auto;
    min-height: 360px;
  }

  .news-card__body {
    padding: 20px 24px 28px;
  }

  .news-card__title {
    font-size: clamp(18px, 4vw, 24px);
  }

  .faq {
    padding: 48px 0 80px;
  }

  .faq__head {
    margin-bottom: 40px;
  }

  details.faq-item summary {
    padding: 20px 16px;
    font-size: clamp(16px, 3.8vw, 20px);
    gap: 12px;
  }

  .faq-item__panel {
    padding: 0 16px 24px;
    font-size: 15px;
  }

  details[open] summary {
    padding-bottom: 12px;
  }

  .faq-help__intro {
    padding: 24px;
  }

  .faq-help__title {
    font-size: clamp(18px, 4vw, 24px);
  }

  .ld-card {
    padding: 24px;
  }

  .site-footer__policy {
    margin-top: 48px;
    padding: 20px 0 40px;
  }

  .anchor-offset {
    scroll-margin-top: 80px;
  }
}

@media (max-width: 800px) {
  .quiz-footer {
    flex-direction: column;
    align-items: center;
    gap: 24px;
  }

  .quiz-footer__logo {
    display: flex;
    justify-content: center;
  }

  .quiz-next {
    width: 100%;
    max-width: 100%;
    justify-content: center;
  }
}

@media (max-width: 770px) {
  .quiz-footer {
    align-items: flex-start;
  }

  .quiz-footer__logo {
    justify-content: flex-start;
  }
}

@media (max-width: 480px) {
  .quiz-next,
  .how-cta-btn {
    width: 100%;
    max-width: 100%;
    justify-content: center;
  }

  .site-footer__partner-cta {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }
}

@media (max-width: 430px) {
  .geo__placeholder {
    text-wrap: balance;
    width: calc(100% - 32px);
    max-width: calc(100% - 32px);
  }
  .geo__note {
    text-wrap: balance;
    width: calc(100% - 32px);
    max-width: calc(100% - 32px);
    left: 16px;
    transform: none;
  }
}

@media (max-width: 380px) {
  .news-card__body {
    padding: 16px 16px 20px;
  }
  .news-card__title {
    text-align: left;
    font-size: clamp(16px, 4.5vw, 20px);
  }
  .news-card__text {
    text-align: left;
    font-size: 14px;
  }
}

@media (max-width: 340px) {
  .news-card {
    flex: 0 0 min(379px, 94vw);
  }
  .news-card__body {
    padding: 12px 12px 16px;
  }
  .news-card__title {
    font-size: 15px;
    margin-bottom: 10px;
  }
  .news-card__text {
    font-size: 13px;
  }

  details.faq-item summary {
    padding: 20px 16px;
    gap: 12px;
  }
  .faq-item__text {
    font-size: 14px;
    text-wrap: pretty;
  }
  .faq-item__panel {
    padding: 0 16px 20px;
    font-size: 14px;
  }
  .faq__head {
    margin-bottom: 32px;
  }
}

@media (max-width: 390px) {
  .site-footer__policy-links {
    flex-direction: column;
    align-items: center;
  }
  .site-footer__policy-links a {
    text-align: center;
    width: 100%;
  }
}

@media (max-width: 340px) {
  .site-footer__col-text {
    text-wrap: balance;
  }
  .site-footer__col-text br {
    display: none;
  }
}

@media (max-width: 480px) {
  .site-footer__copy {
    line-height: 1.6;
  }
}

/* Шарики видны на всех экранах — позиционирование через % масштабируется автоматически */

/* ═══════════════════════════════════════════════════════════════
   SCROLL-REVEAL — стиль как на runway-ai.ru
   Элементы стартуют invisible+смещены, появляются при входе
   в viewport (класс .is-visible добавляет JS через IntersectionObserver)
   ═══════════════════════════════════════════════════════════════ */

.reveal {
  opacity: 0;
  transform: translateY(32px);
  transition:
    opacity  1.4s cubic-bezier(0.16, 1, 0.3, 1),
    transform 1.4s cubic-bezier(0.16, 1, 0.3, 1);
  transition-delay: var(--reveal-delay, 0s);
}

.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Hero-контент: чуть быстрее первого экрана */
.hero__content.reveal {
  transition-duration: 1.1s;
  transition-delay: 0.05s;
}

/* Заголовки, лиды и hero-элементы — только fade, без смещения.
   Текст стоит на своём месте, просто плавно появляется. */
.s-title.reveal,
.s-lead.reveal,
.hero__title.reveal,
.hero__lead.reveal,
.hero__content.reveal,
.badges.reveal {
  transform: none;
}
.s-title.reveal.is-visible,
.s-lead.reveal.is-visible,
.hero__title.reveal.is-visible,
.hero__lead.reveal.is-visible,
.hero__content.reveal.is-visible,
.badges.reveal.is-visible {
  transform: none;
}

/* На мобиле — то же самое, reveal работает */

/* prefers-reduced-motion: отключаем анимации */
@media (prefers-reduced-motion: reduce) {
  .reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

/* ≤900px: скрываем декоративные шарики по всем секциям */
@media (max-width: 900px) {
  .why__dot,
  .about__dot,
  .teamdocs__dot,
  .news__dot,
  .faq__dot,
  .scale__dot,
  [class*="__dot--"] {
    display: none;
  }
}
