/* ==========================================================================
   Умный помощник отдела СМК — дизайн-макет первого экрана и первых блоков
   Этап 2. Стиль: Mindly (Behance 255471239) — спокойная сине-индиговая гамма,
   тонкий гротеск + акцентный курсивный сериф, мягкие градиенты, «софтбокс».
   ========================================================================== */

/* ---------- Токены ---------- */
:root {
  /* Тёмная часть (hero) — индиго/кобальт, приглушённый */
  --indigo-950: #131845;
  --indigo-900: #1a2060;
  --indigo-800: #242c7e;
  --indigo-700: #333f9f;
  --indigo-600: #3d4fd0;
  --indigo-500: #4a5bd9;
  --indigo-400: #6e7be4;
  --lavender-500: #7e88e0;
  --lavender-400: #9aa3ea;
  --lavender-300: #bcc2f0;
  --lavender-200: #d6daf6;
  --lavender-100: #eceefa;
  --lavender-50: #f4f5fc;

  /* Светлая часть */
  --paper: #f7f9fb;
  --white: #ffffff;

  /* Акценты (взяты из логотипа) */
  --accent: #38bdf8;
  --accent-deep: #1c8cff;
  --accent-soft: #7cc4ff;

  /* Текст — правка 8: только белый / чёрный / голубой */
  --ink: #000000;
  --ink-soft: #000000;
  --ink-mute: #1c8cff;
  --line: #dce3ee;
  --line-soft: #e9eef6;

  /* Геометрия */
  --radius: 20px;
  --radius-sm: 12px;
  --shadow-card: 0 18px 42px -26px rgba(21, 50, 94, 0.3);
  --shadow-lift: 0 30px 70px -32px rgba(21, 50, 94, 0.38);
  --maxw: 1560px; /* правка 6: шире, под 16:9 */

  /* Шрифты */
  --font-head: "Manrope", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-body: "Lora", Georgia, "Times New Roman", serif;
  --font-accent: "Cormorant Garamond", Georgia, serif;
}

/* ---------- База ---------- */
*,
*::before,
*::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--font-body);
  font-size: 17px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

h1, h2, h3, h4 {
  font-family: var(--font-head);
  font-weight: 300;
  line-height: 1.12;
  margin: 0;
  letter-spacing: -0.015em;
}

p { margin: 0 0 1em; }
p:last-child { margin-bottom: 0; }

a { color: inherit; text-decoration: none; }

img { max-width: 100%; height: auto; display: block; } /* v_seo: height:auto — чтобы width/height-атрибуты не «расплющивало» на мобильных */

.wrap {
  width: 100%;
  max-width: var(--maxw);
  margin: 0 auto;
  padding: 0 32px;
}

.visually-hidden {
  position: absolute; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* Акцентный сериф (аналог «calm» в референсе): СМК, цифры-вехи */
.accent {
  font-family: var(--font-accent);
  font-style: italic;
  font-weight: 400;
  letter-spacing: 0.005em;
}

/* ==========================================================================
   Блок 1 — Шапка
   ========================================================================== */
.topbar {
  position: absolute;
  inset: 0 0 auto 0;
  z-index: 5;
  padding: 26px 0;
}

.topbar__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.topbar__contacts {
  display: flex;
  align-items: center;
  gap: 22px;
  flex-wrap: wrap;
}

.topbar__link {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  color: rgba(255, 255, 255, 0.86);
  font-family: var(--font-head);
  font-size: 15px;
  font-weight: 400;
  letter-spacing: 0.01em;
  transition: color 0.25s ease;
}

.topbar__link:hover { color: var(--white); }

.topbar__link svg { flex: none; opacity: 0.75; }

.topbar__logo { display: flex; align-items: center; gap: 12px; position: relative; }

.topbar__logo img { width: 120px; height: auto; } /* v3 п.2: на 30% больше (92→120) */

/* --- Галочки по чекбоксам логотипа (v3 п.2) ---
   Квадратики ISO-карточки измерены в logo-new.png (1377x1142):
   x 924..1008 (67.1%..73.2%), центры рядов y 45.0% / 55.9% / 66.7%.
   Стеклянные: ставим svg поверх img, по очереди «рисуем» галочку,
   держим 2.4с, пауза 4с, повтор. */
.logo-check {
  position: absolute;
  width: 6.2%;
  aspect-ratio: 1;
  left: 67.4%;
  pointer-events: none;
}
.logo-check svg { width: 100%; height: 100%; display: block; }
.logo-check path {
  stroke-dasharray: 26;
  stroke-dashoffset: 26;
}
.logo-check--1 { top: 42.2%; }
.logo-check--2 { top: 53.1%; }
.logo-check--3 { top: 63.9%; }

body.started .logo-check path {
  animation: check-draw 8.4s ease-in-out infinite;
}
body.started .logo-check--2 path { animation-delay: 0.55s; }
body.started .logo-check--3 path { animation-delay: 1.1s; }

@keyframes check-draw {
  0%        { stroke-dashoffset: 26; }
  6.5%      { stroke-dashoffset: 0; }   /* галочка проставилась */
  38%       { stroke-dashoffset: 0; }   /* держим все три */
  41%, 100% { stroke-dashoffset: 26; }  /* пауза 4с и повтор */
}

.topbar__wordmark {
  display: none;
  font-family: var(--font-head);
  font-size: 13px;
  font-weight: 500;
  line-height: 1.25;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.9);
}

/* ==========================================================================
   Блок 2 — Hero
   ========================================================================== */
.hero {
  position: relative;
  overflow: hidden;
  padding: 64px 0 0;
  background:
    radial-gradient(120% 95% at 78% 8%, #3d4fd0 0%, rgba(61, 79, 208, 0) 58%),
    radial-gradient(90% 80% at 12% 6%, #2a34a8 0%, rgba(42, 52, 168, 0) 62%),
    linear-gradient(168deg, #232c96 0%, #2e3ab5 34%, #4a56cf 62%, #7e88e0 100%);
  color: var(--white);
}

/* виньетка по углам — «софтбокс» */
.hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(140% 110% at 50% 42%, rgba(0, 0, 0, 0) 52%, rgba(12, 16, 60, 0.42) 100%);
  pointer-events: none;
}

.hero__inner { position: relative; z-index: 2; padding-bottom: 0; }

/* --- «Фонарики»: однократный проход (2 шт.), затем мягкое дыхание --- */
.beams {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  overflow: hidden;
}

.beam-run {
  position: absolute;
  inset: 0;
  overflow: hidden;
  contain: paint;
  animation: beam-run 6.4s cubic-bezier(0.34, 0.06, 0.2, 1) 2s 1 both;
}

.beam {
  position: absolute;
  width: 620px;
  height: 620px;
  border-radius: 50%;
  filter: blur(72px);
  opacity: 0.5;
  animation: beam-breathe 11s ease-in-out 8.4s infinite;
}

.beam--1 {
  top: -160px; left: -80px;
  background: radial-gradient(circle, rgba(124, 196, 255, 0.5) 0%, rgba(124, 196, 255, 0) 68%);
}

.beam--2 {
  top: -80px; left: 300px;
  width: 520px; height: 520px;
  background: radial-gradient(circle, rgba(184, 172, 255, 0.42) 0%, rgba(184, 172, 255, 0) 66%);
  animation-delay: 0.4s, 9.2s;
}

@keyframes beam-run {
  0%   { opacity: 0; transform: translate3d(-11%, -7%, 0) scale(0.94); }
  38%  { opacity: 1; }
  100% { opacity: 1; transform: translate3d(16%, 12%, 0) scale(1.04); }
}

@keyframes beam-breathe {
  0%, 100% { opacity: 0.34; }
  50%      { opacity: 0.56; }
}

/* --- Сетка hero (v4 п.4-6): слева заголовок+логотип и подзаголовок ~40%,
       справа монитор на уровне шапки --- */
.hero__grid {
  display: grid;
  grid-template-columns: minmax(320px, 40%) minmax(0, 1fr);
  gap: 24px 40px;
  align-items: start;
  min-height: 0;
  padding-bottom: 0;
}

.hero__head { padding-top: 64px; }

/* заголовок слева + увеличенный логотип справа от него (v4 п.5) */
.hero__title-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 28px;
}

.hero__logo {
  flex: none;
  width: clamp(150px, 15.5vw, 235px);
}

.hero__logo img { width: 100%; height: auto; }

.hero__title {
  font-size: clamp(34px, 3.4vw, 50px); /* правка 7: крупные уменьшены */
  font-weight: 200;
  letter-spacing: -0.02em;
  margin-bottom: 22px;
}

.hero__title .accent {
  font-size: 1.1em;
  color: var(--accent-soft);
  margin-left: 0.06em;
}

/* v4 п.6: подзаголовок — на всю ширину колонки под заголовком и логотипом,
   выравнивание «по ширине окна» */
.hero__sub {
  font-size: 19px; /* правка 7: мелкие увеличены */
  line-height: 1.62;
  color: rgba(255, 255, 255, 0.82);
  margin: 22px 0 0;
  text-align: justify;
  hyphens: auto;
  lang: ru;
}

/* ---------- Блок 2 — Hero: появление при загрузке (правка 2) ----------
   Анимации запускаются классом .started на <body> (ставит JS после загрузки
   шрифтов/оформления), поэтому вылет всегда виден, а не «проглатывается»
   стартом страницы. */
.anim-down,
.anim-left,
.anim-rise { opacity: 0; }

body.started .anim-down {
  animation: anim-down 1.1s cubic-bezier(0.22, 0.68, 0.16, 1) 0.15s forwards;
}

body.started .anim-left {
  animation: anim-left 1.1s cubic-bezier(0.22, 0.68, 0.16, 1) 0.7s forwards;
}

body.started .anim-rise {
  animation: anim-rise 1.4s cubic-bezier(0.22, 0.68, 0.16, 1) 0.45s forwards;
}

/* подсветка текстовой части после вылетов («как в ТЗ») */
.hero__flash {
  position: absolute;
  inset: -18px -26px;
  border-radius: 24px;
  background: radial-gradient(60% 80% at 30% 40%, rgba(124, 196, 255, 0.22), rgba(124, 196, 255, 0) 70%);
  opacity: 0;
  pointer-events: none;
}

body.started .hero__flash {
  animation: hero-flash 2.6s ease-in 2.1s 1 both;
}

@keyframes hero-flash {
  0%, 100% { opacity: 0; }
  45%      { opacity: 1; }
}

@keyframes anim-down {
  from { opacity: 0; transform: translate3d(0, -64px, 0); }
  to   { opacity: 1; transform: none; }
}

@keyframes anim-left {
  from { opacity: 0; transform: translate3d(-72px, 0, 0); }
  to   { opacity: 1; transform: none; }
}

@keyframes anim-rise {
  from { opacity: 0; transform: translate3d(30px, 26px, 0); }
  to   { opacity: 1; transform: none; }
}

/* --- Монитор (v4 п.4): фронтальный Dell из 3333.png (кадрировано до
   1200x940, monitor-front.png), размещён в правой части hero, верх кадра
   на уровне шапки/меню; картинка видна целиком, без обрезки.
   Стекло (измерено по пикселям): x 23..1178, y 22..668 →
   left 1.92% top 2.34% width 96.17% height 68.72%; рамка слева/сверху/справа
   одинаковая (~1.5% ширины), снизу толще — как в жизни. Интерфейс лежит
   ПОВЕРХ картинки монитора (illusion «реальный экран»). */
.hero__device {
  position: relative;
  display: flex;
  justify-content: flex-end;
  margin-right: 0;
  /* правка 4: верх монитора — на один уровень с шапкой/меню по горизонтали */
  margin-top: -38px;
}

.monitor {
  position: relative;
  /* во всю правую колонку; пропорции картинки 1200:940 сохраняются */
  width: 100%;
}

.monitor__img {
  display: block;
}

/* v_seo: класс переехал на <picture> — внутренний img наследует растяжение */
.monitor__img img {
  width: 100%;
  height: auto;
  display: block;
  filter: drop-shadow(0 46px 64px rgba(8, 12, 44, 0.45));
}

.monitor__screen {
  position: absolute;
  /* правка 4 (v4.1): чуть увеличено и смещено вправо — интерфейс теперь
     с запасом перекрывает чужое изображение стекла (стекло: x 23..1178,
     y 22..668): оверлей 21.6..1186 / 20.7..679 — края на 1-10px заезжают
     на рамку монитора (рамка слева/справа ~19px, снизу 41px — видна) */
  left: 1.8%;
  top: 2.2%;
  width: 97.0%;
  height: 70.0%;
  border-radius: 4px;
  overflow: hidden;
  background: #fbfcfe;
}

/* --- Интерфейс «Список дел» в стиле Outlook ---
   v3: экран Dell крупный (~2.2:1 по площади), базовый кегль интерфейса
   поднят с 12px до 15px, чтобы список читался масштабно */
.app {
  display: flex;
  flex-direction: column;
  height: 100%;
  font-family: var(--font-head);
  color: #1f2a44;
  background: #fbfcfe;
  font-size: 15px;
}

.app__ribbon {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 6px 14px;
  background: linear-gradient(180deg, #ffffff, #f1f4fa);
  border-bottom: 1px solid #e2e8f2;
}

.app__tabs { display: flex; gap: 13px; }

.app__tab {
  font-size: 14px;
  color: #64708c;
  padding-bottom: 3px;
  border-bottom: 2px solid transparent;
  white-space: nowrap;
}

.app__tab--on {
  color: var(--accent-deep);
  border-bottom-color: var(--accent-deep);
  font-weight: 600;
}

.app__title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 7px 14px 5px;
}

.app__title h4 {
  font-family: var(--font-head);
  font-size: 17px;
  font-weight: 600;
  letter-spacing: 0;
  color: #16233f;
}

.app__badge {
  font-size: 13px;
  font-weight: 600;
  color: #1573c4;
  background: #e6f4ff;
  border: 1px solid #cbe8ff;
  border-radius: 999px;
  padding: 3px 9px;
  white-space: nowrap;
}

.tasklist {
  list-style: none;
  margin: 0;
  padding: 0 6px 6px;
  display: flex;
  flex-direction: column;
  gap: 1px;
  overflow: hidden;
}

.task {
  display: grid;
  grid-template-columns: 16px 1fr auto;
  align-items: center;
  gap: 9px;
  padding: 2px 9px;
  border-radius: 7px;
  border: 1px solid transparent;
  transition: background 0.2s ease;
}

.task__num {
  font-size: 13px;
  color: #97a2b8;
  text-align: center;
  font-variant-numeric: tabular-nums;
}

.task__text {
  font-size: 15px;
  line-height: 1.35;
  color: #22304c;
}

.task__meta {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 13px;
  color: #7c88a2;
  white-space: nowrap;
}

.task__flag {
  width: 9px; height: 9px;
  border-radius: 2px;
  background: #c9d3e6;
}

.task--done { background: #f3f7f4; }

.task--done .task__text {
  color: #7b886f;
  text-decoration: line-through;
  text-decoration-color: rgba(123, 136, 111, 0.55);
}

.task--done .task__flag { background: #6fbf8a; }

.task--done .task__meta { color: #8aa08f; }

.task--active {
  background: #eef4ff;
  border-color: #cfe2ff;
}

.task--active .task__flag { background: var(--accent-deep); }

.task--active .task__meta { color: #1573c4; }

.task__check {
  font-size: 14px;
  color: #6fbf8a;
}

/* курсор мыши на экране — правка 4: медленно, из нижнего левого угла
   монитора в правый верхний и обратно. Движение по left/top в % от экрана
   (раньше был transform в % от размера самой иконки — курсор смещался
   всего на несколько пикселей). */
.cursor {
  position: absolute;
  width: 26px;
  height: 26px;
  left: 6%;
  top: 86%;
  z-index: 3;
  filter: drop-shadow(0 2px 5px rgba(20, 30, 60, 0.3));
  animation: cursor-move 14s ease-in-out infinite alternate;
}

@keyframes cursor-move {
  0%   { left: 6%;  top: 86%; }
  100% { left: 88%; top: 8%;  }
}

/* --- «Пол» — правка 5: отступ от низа монитора до меню уменьшен --- */
.hero__floor {
  position: relative;
  z-index: 2;
  height: 30px;
  margin-top: -12px;
  background: linear-gradient(180deg, var(--lavender-100) 0%, var(--lavender-50) 70%, var(--paper) 100%);
  border-radius: 50% 50% 0 0 / 24px 24px 0 0;
}

/* ==========================================================================
   Меню-якоря (10 кнопок) — липкое
   ========================================================================== */
.anchors {
  position: sticky;
  top: 0;
  z-index: 20;
  background: rgba(247, 249, 251, 0.88);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid transparent;
  transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

.anchors--stuck {
  border-bottom-color: var(--line);
  box-shadow: 0 12px 32px -26px rgba(21, 50, 94, 0.5);
}

.anchors__inner {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  padding: 18px 32px;
  /* v3 п.4: два ряда по 5 кнопок, выровнены по ширине контейнера */
  justify-content: space-between;
}

.anchor {
  font-family: var(--font-head);
  font-size: 13.5px; /* чтобы «Реализованные автоматизации» влезал без [...] на ширине 1280 */
  font-weight: 500;
  letter-spacing: 0;
  color: var(--ink);
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  padding: 10px 6px;
  flex: 1 1 calc(20% - 10px);
  min-width: 0;
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  transition:
    transform 0.25s cubic-bezier(0.22, 0.68, 0.16, 1),
    box-shadow 0.25s ease,
    border-color 0.25s ease,
    color 0.25s ease;
}

.anchor:hover,
.anchor:focus-visible {
  transform: translateY(-2px) scale(1.03);
  border-color: #b9d8f5;
  color: var(--accent-deep);
  box-shadow: 0 14px 30px -20px rgba(28, 140, 255, 0.6);
  outline: none;
}

/* ==========================================================================
   Секции светлой части — правка 9: отступы разделов уменьшены в 2 раза
   ========================================================================== */
.section { padding: 48px 0; }

.section--tight { padding: 36px 0; }

.section__label {
  font-family: var(--font-head);
  font-size: 25px; /* v3 п.6: надзаголовки разделов ×2 (12.5→25) */
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--accent-deep);
  margin-bottom: 14px;
}

/* v4.1 (правка 2): текстовые блоки занимают всю ширину контейнера —
   так красивее и компактнее. Правило действует и для будущих разделов. */
.section__title {
  font-size: clamp(26px, 2.4vw, 34px); /* правка 7 */
  font-weight: 300;
  margin-bottom: 14px;
  max-width: none;
}

.section__lead {
  font-size: 17px;
  color: var(--ink);
  max-width: none;
}

.hello {
  font-family: var(--font-head);
  font-size: 34px; /* v3 п.5: ×2 (17→34) */
  font-weight: 400;
  color: var(--ink-mute);
  letter-spacing: 0.01em;
  margin-bottom: 8px;
}

/* ---------- Reveal при скролле ---------- */
.reveal {
  opacity: 0;
  transform: translate3d(0, 26px, 0);
  transition:
    opacity 0.85s cubic-bezier(0.22, 0.68, 0.16, 1),
    transform 0.85s cubic-bezier(0.22, 0.68, 0.16, 1);
  transition-delay: calc(var(--i, 0) * 95ms);
}

.reveal.is-in { opacity: 1; transform: none; }

/* v4 п.7: нижний отступ блока «Проблемы» убираем — зазор до синего блока
   задаёт .solutions { margin-top: 44px }, чтобы он был ровно как
   отступ «заголовок раздела → карточки» (44px) */
#problems { padding-bottom: 0; }

/* ---------- Блок 3 — Проблемы (4 карточки) ---------- */
.cards {
  display: grid;
  list-style: none; /* v4.2 п.7: убрать маркеры li на карточках */
  margin: 0;
  padding: 0; /* v4.2: убрать встроенный отступ ul — левый край карточек на линии контейнера */
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
  margin-top: 44px;
}

.card {
  position: relative;
  background: var(--white);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  padding: 30px 30px 32px;
  box-shadow: var(--shadow-card);
  transition:
    transform 0.3s cubic-bezier(0.22, 0.68, 0.16, 1),
    box-shadow 0.3s ease,
    border-color 0.3s ease;
}

.card:hover {
  transform: translateY(-4px);
  border-color: #c9e2fb;
  box-shadow: var(--shadow-lift);
}

.card__num {
  font-family: var(--font-accent);
  font-style: italic;
  font-size: 30px; /* правка 7: номера уменьшены */
  line-height: 1;
  color: var(--accent-deep); /* правка 8: голубой */
  margin-bottom: 12px;
}

.card h3 {
  font-size: 21px;
  font-weight: 500;
  margin-bottom: 12px;
  letter-spacing: -0.01em;
}

.card p {
  font-size: 17px; /* v4.2 п.4: единый кегль текста */
  color: var(--ink); /* правка 8: чёрный */
  line-height: 1.62;
}

/* ---------- Блок 4 — Решения ----------
   v4 п.7: отступ синего блока от карточек = 44px, как между заголовком
   раздела и 4 карточками (`.cards { margin-top: 44px }`). Дальше по сайту
   держим одинаковый умеренный ритм отступов. */
.solutions-band { padding: 0 0 48px; }

.solutions {
  margin-top: 44px;
  border-radius: var(--radius);
  padding: 32px 40px;
  color: var(--white);
  background:
    radial-gradient(110% 130% at 88% 6%, rgba(124, 196, 255, 0.3) 0%, rgba(124, 196, 255, 0) 58%),
    linear-gradient(150deg, #2b35a4 0%, #3d4fd0 46%, #6c78dd 100%);
  box-shadow: var(--shadow-lift);
}

.solutions h3 {
  font-size: clamp(22px, 2.1vw, 28px);
  font-weight: 300;
  margin-bottom: 14px;
}

/* v4 п.8: текст — по всей ширине синего блока */
.solutions p {
  font-size: 18px;
  line-height: 1.62;
  color: var(--white); /* правка 8: белый на тёмном */
  max-width: none;
  text-align: justify;
}

/* ---------- Блок 5 — О руководителе команды: цепочка вех ---------- */
.track { margin-top: 46px; }

.track__list {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 20px;
  margin: 0 0 46px;
  padding: 0;
  position: relative;
}

/* Правка 10: горизонтальная линия-коннектор под вехами удалена */

.milestone { position: relative; text-align: left; }

/* Правка 10: точки-маркеры («знаки» на линии) удалены */

.milestone__value {
  font-size: 28px; /* правка 7 */
  font-weight: 300;
  line-height: 1.1;
  letter-spacing: -0.015em;
  margin-bottom: 8px;
}

.milestone__value .accent { color: var(--accent-deep); font-size: 1.1em; }

.milestone__label {
  font-family: var(--font-head);
  font-size: 15px; /* правка 7 */
  line-height: 1.45;
  color: var(--ink); /* правка 8 */
}

.bio {
  max-width: none; /* v4.1 правка 2: на всю ширину контейнера */
  font-size: 17px;
  color: var(--ink); /* правка 8 */
  border-left: 2px solid var(--accent-deep); /* голубая черта */
  padding-left: 26px;
}

/* ==========================================================================
   Блок 8 — Как это работает
   ========================================================================== */
.steps {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 22px;
  margin-top: 46px;
}

.step {
  background: var(--white);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  padding: 28px 26px 30px;
  box-shadow: var(--shadow-card);
}

.step__num {
  font-family: var(--font-head);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: var(--accent-deep);
  margin-bottom: 14px;
}

.step h3 {
  font-size: 17.5px;
  font-weight: 500;
  margin-bottom: 10px;
}

.step p {
  font-size: 17px;
  color: var(--ink-soft);
  line-height: 1.6;
}

/* n8n: скриншот канваса + пульсация одной ноды */
/* v4 п.32: подпись над рисунком n8n */
.canvas-caption {
  font-family: var(--font-body);
  font-size: 17px;
  line-height: 1.62;
  color: var(--ink);
  max-width: none; /* v4.1 правка 2: на всю ширину контейнера */
  margin-bottom: 18px;
}

.canvas {
  position: relative;
  margin-top: 40px;
  border-radius: var(--radius);
  overflow: hidden;
  border: 1px solid var(--line);
  background: var(--white);
  box-shadow: var(--shadow-card);
}

.canvas img { width: 100%; height: auto; }

.canvas__pulse {
  position: absolute;
  border-radius: 14px;
  pointer-events: none;
  border: 2px solid rgba(28, 140, 255, 0.75);
  box-shadow: 0 0 0 4px rgba(28, 140, 255, 0.14), 0 0 30px rgba(28, 140, 255, 0.4);
  animation: node-pulse 2.6s ease-in-out infinite;
}

@keyframes node-pulse {
  0%, 100% { opacity: 0.45; box-shadow: 0 0 0 3px rgba(28, 140, 255, 0.1), 0 0 18px rgba(28, 140, 255, 0.28); }
  50%      { opacity: 1;    box-shadow: 0 0 0 7px rgba(28, 140, 255, 0.16), 0 0 38px rgba(28, 140, 255, 0.5); }
}

.canvas__status {
  position: absolute;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-head);
  font-size: 12px;
  font-weight: 600;
  color: #1573c4;
  background: rgba(255, 255, 255, 0.94);
  border: 1px solid #cfe2ff;
  border-radius: 999px;
  padding: 6px 12px;
  box-shadow: 0 12px 26px -16px rgba(21, 50, 94, 0.45);
}

.canvas__dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--accent-deep);
  animation: node-pulse 2.6s ease-in-out infinite;
}

/* ---------- Заглушка «макет» ---------- */
.mock-tag {
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 50;
  font-family: var(--font-head);
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink-soft);
  background: rgba(255, 255, 255, 0.94);
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 8px 14px;
  box-shadow: 0 14px 30px -18px rgba(21, 50, 94, 0.5);
}

.mock-note {
  margin-top: 40px;
  padding: 30px 34px;
  border: 1px dashed var(--lavender-300);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.6);
  font-family: var(--font-head);
  font-size: 14.5px;
  line-height: 1.6;
  color: var(--ink-soft);
}

.mock-note strong { color: var(--ink); font-weight: 600; }

/* ==========================================================================
   Блоки полного сайта (web_all) — компоненты по ТЗ_этап1_2
   Правила: текстовые блоки на всю ширину контейнера (правка 2 v4.1);
   отступы между элементами умеренные и одинаковые, секция = 48px (правка 7 v4).
   ========================================================================== */

/* ---------- Блок 6 — Реализованные автоматизации ---------- */
.feature { margin-top: 44px; }          /* тот же ритм, что «заголовок → карточки» */
.feature h3 {
  font-size: 21px;
  font-weight: 500;
  margin-bottom: 12px;
  letter-spacing: -0.01em;
  color: var(--accent-deep); /* v4.2 п.5: подзаголовки голубым, кегль без изменений */
}
.feature__sub {
  font-family: var(--font-head);
  font-size: 14px;
  color: var(--ink);
  margin: -6px 0 10px;
}
.feature p { font-size: 17px; line-height: 1.62; color: var(--ink); }

/* диалог «Сотрудник пишет / Помощник отвечает» */
.dialog {
  margin-top: 18px;
  padding: 22px 26px;
  background: var(--white);
  border: 1px solid var(--line-soft);
  border-left: 3px solid var(--accent-deep);
  border-radius: var(--radius-sm);
  box-shadow: var(--shadow-card);
}
.dialog__line { font-size: 17px; margin: 0 0 10px; color: var(--ink); }
.dialog__line:last-child { margin-bottom: 0; }
.dialog__line strong { color: var(--accent-deep); font-weight: 600; }

/* список с галочками */
.ticks {
  list-style: none;
  margin: 14px 0 0;
  padding: 0;
  display: grid;
  gap: 8px;
}
.ticks li {
  position: relative;
  padding-left: 28px;
  font-size: 17px;
  line-height: 1.55;
}
.ticks li::before {
  content: "";
  position: absolute;
  left: 0; top: 0.32em;
  width: 16px; height: 16px;
  background: no-repeat center/16px 16px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231c8cff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.5 12.5l5 5.5L19.5 6'/%3E%3C/svg%3E");
}

/* иллюстрации блоков с подписями */
.shot {
  margin: 22px 0 0;
  background: var(--white);
  border: 1px solid var(--line-soft);
  border-radius: var(--radius);
  box-shadow: var(--shadow-card);
  padding: 18px 18px 12px;
}
.shot img { margin: 0 auto; }
.shot figcaption {
  font-family: var(--font-head);
  font-size: 13.5px;
  color: var(--ink);
  text-align: center;
  padding: 12px 6px 8px;
}

/* ---------- Блок 7 — Другие автоматизации ----------
   v4.2 п.7: карточки с нумерацией 01–04 как в «Сколько времени…», без точек;
   сетка наследуется от .cards (2×2). */

/* ---------- Блок 10 — Как это внедряется (5 шагов) ---------- */
.steps--process { grid-template-columns: repeat(5, minmax(0, 1fr)); }

/* ---------- Блок 11 — Стоимость ----------
   v4.2 п.10: секция сделана синим блоком (класс .solutions); прежние
   белые карточки/таблица (.price*) удалены за ненадобностью. */

/* ---------- Блок 12 — FAQ (аккордеон) ---------- */
.faq { margin-top: 44px; display: grid; gap: 12px; }
.faq__item {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  overflow: hidden;
  transition: border-color 0.25s ease, box-shadow 0.25s ease;
}
.faq__item:hover { border-color: #b9d8f5; }
.faq__item[open] { border-color: #b9d8f5; box-shadow: var(--shadow-card); }
.faq__q {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  font-family: var(--font-head);
  font-size: 16.5px;
  font-weight: 500;
  color: var(--ink);
  padding: 18px 22px;
  transition: color 0.25s ease;
}
.faq__q::-webkit-details-marker { display: none; }
.faq__q:hover { color: var(--accent-deep); }
.faq__q::after {
  content: "";
  flex: none;
  width: 12px; height: 12px;
  border-right: 2px solid var(--accent-deep);
  border-bottom: 2px solid var(--accent-deep);
  transform: rotate(45deg) translateY(-2px);
  transition: transform 0.25s ease;
}
.faq__item[open] .faq__q::after { transform: rotate(-135deg) translateY(-2px); }
.faq__a { padding: 0 22px 20px; }
.faq__a p { font-size: 17px; line-height: 1.62; color: var(--ink); margin: 0; }

/* ---------- Блок 13 — Контакты ---------- */
.contacts {
  margin-top: 44px;
  border-radius: var(--radius);
  padding: 44px 40px;
  color: var(--white);
  background:
    radial-gradient(110% 130% at 88% 6%, rgba(124, 196, 255, 0.3) 0%, rgba(124, 196, 255, 0) 58%),
    linear-gradient(150deg, #2b35a4 0%, #3d4fd0 46%, #6c78dd 100%);
  box-shadow: var(--shadow-lift);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
}
.contacts__col { min-width: 0; }
.contacts .section__title { color: var(--white); margin-bottom: 22px; }
/* v4.2 п.11: логотип в правой части блока, масштаб — по высоте блока */
.contacts__logo { flex: none; width: clamp(120px, 14vw, 190px); }
.contacts__logo img { width: 100%; height: auto; }
.contacts__list { display: flex; flex-wrap: wrap; gap: 14px 34px; }
.contacts__link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--font-head);
  font-size: 21px;
  color: var(--white);
  transition: color 0.25s ease, transform 0.25s ease;
}
.contacts__link:hover { transform: translateY(-2px); color: var(--accent-soft); }

/* ---------- Подвал ---------- */
.footer {
  border-top: 1px solid var(--line);
  padding: 26px 0 30px;
  background: var(--white);
}
.footer__inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}
.footer__copy { font-family: var(--font-head); font-size: 13.5px; margin: 0; }
.footer__copy a { color: var(--accent-deep); }
.footer__nav { display: flex; flex-wrap: wrap; gap: 18px; }
.footer__nav a {
  font-family: var(--font-head);
  font-size: 13.5px;
  color: var(--ink);
  transition: color 0.25s ease;
}
.footer__nav a:hover { color: var(--accent-deep); }

/* ==========================================================================
   Адаптив
   ========================================================================== */
@media (max-width: 1080px) {
  .hero__grid { grid-template-columns: 1fr; gap: 34px; min-height: 0; }
  .hero__head { padding-top: 0; max-width: 620px; }
  .hero__device { margin-top: 0; justify-content: center; }
  .track__list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 720px) {
  body { font-size: 16px; }
  .wrap { padding: 0 20px; }
  .hero { padding-top: 124px; }
  .hero__device { margin-right: 0; }
  .hello { font-size: 24px; }
  .section__label { font-size: 19px; }
  .topbar { padding: 18px 0; }
  .topbar__inner { align-items: flex-start; }
  .topbar__contacts { flex-direction: column; align-items: flex-start; gap: 8px; }
  .topbar__wordmark { display: none; }
  .hero__title { font-size: 34px; }
  .hero__title-row { flex-wrap: wrap; }
  .hero__logo { width: 150px; }
  .hero__floor { height: 70px; border-radius: 50% 50% 0 0 / 34px 34px 0 0; margin-top: -34px; }
  .anchors__inner { padding: 14px 20px; gap: 8px; justify-content: flex-start; }
  .anchor { font-size: 12.5px; padding: 9px 13px; flex: 0 1 auto; text-align: left; }
  .section { padding: 64px 0; }
  .cards, .steps { grid-template-columns: 1fr; }
  .track__list { grid-template-columns: 1fr; gap: 24px; }
  .milestone__value { margin-bottom: 4px; }
  .bio { padding-left: 18px; }
  .solutions { padding: 30px 24px; }
  .contacts { flex-direction: column; align-items: flex-start; padding: 30px 24px; }
  .contacts__logo { width: 130px; align-self: center; }
  .mock-tag { display: none; }
  /* на узких экранах экран монитора мелкий — интерфейс масштабируем,
     чтобы все 8 задач помещались (замер: при 9px список влезает с запасом) */
  .app { font-size: 9px; }
  .app__ribbon { padding: 2px 8px; gap: 9px; }
  .app__tab { font-size: 8.5px; padding-bottom: 2px; }
  .app__title { display: none; } /* на мелком экране монитора заголовок панели не помещается */
  .app__badge { font-size: 8px; padding: 1px 6px; }
  .task { padding: 0 6px; gap: 5px; }
  .task__text { font-size: 9px; line-height: 1.35; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .task__num { font-size: 8px; }
  .task__meta { font-size: 8px; gap: 4px; }
  .task__flag { width: 7px; height: 7px; }
  .tasklist { padding: 0 4px 3px; }
  .cursor { width: 14px; height: 14px; animation-duration: 18s; }
}

/* Уважение к prefers-reduced-motion */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .anim-down, .anim-left, .anim-rise {
    opacity: 1;
    animation: none;
  }
  .beam-run, .beam, .cursor, .canvas__pulse, .canvas__dot { animation: none; }
  .reveal { opacity: 1; transform: none; transition: none; }
}
