/* ============================================================================
   ТАП · Главная — рефайнмент-пасс (уплотнение пустот + реестр улучшений 01–09)
   ----------------------------------------------------------------------------
   Drop-in слой. Подключать ПОСЛЕ основного styles.css сайта.
   Ничего в дизайн-системе не меняется: все правила опираются на её токены
   (--ink-*, --blue-*, --s-*, --r-*, --ease, --font-mono). Новых цветов и
   шрифтов не вводится. Можно оставить отдельным файлом или влить в styles.css.
   ============================================================================ */

/* ── 1. Вертикальный ритм: уплотнение пустот между секциями ──────────────────
   Было: padding clamp(64px,6vw,92px); шов между светлыми clamp(56px,5vw,72px);
   .sh margin-bottom var(--s-8). Стало плотнее. */
.section { padding: clamp(48px, 4.4vw, 68px) 0; }
.section:not(.section--dark) + .section:not(.section--dark) { padding-top: clamp(38px, 3.4vw, 52px); }
.sh { margin-bottom: var(--s-6); }

@media (max-width: 600px) {
  .section { padding: var(--s-10) 0; }
  .section:not(.section--dark) + .section:not(.section--dark) { padding-top: var(--s-8); }
}

/* ── 2. Леджер-линия в шапке секции (реестр #08) ─────────────────────────────
   Заголовок капится по читаемой мере, правая половина шапки пустая.
   Eyebrow тянет hairline до края контейнера. h2/p сохраняют меру чтения. */
.sh { max-width: none; }
.sh h2 { max-width: 800px; }
.sh .eyebrow { display: flex; align-items: center; gap: var(--s-4); white-space: nowrap; }
.sh .eyebrow::after { content: ""; flex: 1 1 auto; height: 1px; background: var(--ink-100); }
.section--dark .sh .eyebrow::after { background: rgba(255,255,255,0.12); }
@media (max-width: 700px) {
  .sh .eyebrow { display: block; white-space: normal; }
  .sh .eyebrow::after { display: none; }
}

/* ── 3. Баланс героя (реестр #06) ────────────────────────────────────────────
   Правая колонка (стек платформы) короче текстовой — под ней зиял ~100px.
   Центрируем стек по вертикали и подтягиваем нижний паддинг героя.
   Только десктопная 2-колоночная раскладка (ДС схлопывает грид ≤1000px). */
@media (min-width: 1001px) {
  .hero-inner > .fade-up.d-3 { align-self: center; }
  .hero { padding-bottom: var(--s-10); }
}

/* ── 4. Бейдж AI·ГА в стеке героя (реестр #04) ───────────────────────────────
   В одну строку и непрозрачный фон, чтобы не налезал на подпись слоя.
   (Сопровождается правкой разметки — см. README, п. B2.) */
.tap-stack__ai-badge { white-space: nowrap; background: var(--ink-900); }

/* ── 5. Плитки отраслей: убрать внутреннюю пустоту (реестр #01) ───────────────
   Подпись и ссылка раньше были opacity:0 до hover, а min-height:190px держал
   место под них — плитки выглядели полупустыми. Делаем контент видимым всегда,
   высоту задаёт контент; на hover анимируется только стрелка. */
.industry-tile { min-height: 0; }
.industry-tile__note {
  font-size: 12.5px; line-height: 1.45; color: var(--ink-500); margin-top: 2px;
  opacity: 1; transform: none;
}
.industry-tile__link {
  margin-top: auto; padding-top: 12px;
  font-family: var(--font-mono); font-size: 11px; letter-spacing: .04em;
  color: var(--blue-600); display: inline-flex; align-items: center; gap: 6px;
  opacity: 1; transform: none;
}
.industry-tile__link .arrow { transition: transform .18s var(--ease); }
@media (hover: hover) {
  .industry-tile:hover .industry-tile__link .arrow { transform: translateX(3px); }
}
@media (prefers-reduced-motion: reduce) { .industry-tile__link .arrow { transition: none; } }

/* ── 6. Карточки «Типовые симптомы»: уплотнить внутренний паддинг (реестр #03) ─ */
.pain { padding: var(--s-6); }

/* ── 7. Карточки кейсов: ссылка-футер с разделителем (реестр #02) ─────────────
   В сетке равной высоты короткие карточки растягиваются. Оформляем ссылку
   «Читать кейс» как футер с hairline-разделителем — провал читается осознанно.
   ВНИМАНИЕ: это правило относится к стилям карточек кейсов (вариант B).
   Если у вас отдельный файл case-cards.css — внесите туда, заменив
   правило `.cc--b .cc__read { margin-top: auto; }`. */
.cc--b .cc__read {
  margin-top: auto; width: 100%;
  padding-top: var(--s-4); border-top: 1px solid var(--ink-100);
}

/* ── 8. Правый навигатор-реестр разделов 01–09 (реестр #09) ───────────────────
   Тонкий фиксированный индекс пронумерованных секций в правом поле.
   Номера видны всегда, подпись — по hover, активный раздел подсвечен синим.
   Показывается только при ширине >1480px (чтобы не налезать на контент 1280px).
   Разметка + скрипт — см. README (п. B4 и tap-section-rail.js). */
.secrail {
  position: fixed; right: 22px; top: 50%; transform: translateY(-50%);
  z-index: 40; display: flex; flex-direction: column; gap: 1px;
}
.secrail__item {
  display: flex; align-items: center; justify-content: flex-end; gap: 9px;
  text-decoration: none; padding: 5px 4px; border-radius: var(--r-sm);
}
.secrail__label {
  font-family: var(--font-mono); font-size: 11px; letter-spacing: .04em;
  color: var(--ink-600); white-space: nowrap;
  opacity: 0; transform: translateX(5px);
  transition: opacity .2s var(--ease), transform .2s var(--ease);
}
.secrail__num {
  font-family: var(--font-mono); font-size: 10px; letter-spacing: .06em;
  color: var(--ink-400); width: 15px; text-align: right;
  transition: color .2s var(--ease);
}
.secrail__dot {
  width: 7px; height: 7px; border-radius: 50%; flex: none;
  background: var(--ink-300);
  transition: background .2s var(--ease), transform .2s var(--ease), box-shadow .2s var(--ease);
}
.secrail__item:hover .secrail__label { opacity: 1; transform: none; }
.secrail__item:hover .secrail__dot { background: var(--blue-400); }
.secrail__item.is-active .secrail__label { opacity: 1; transform: none; color: var(--ink-700); }
.secrail__item.is-active .secrail__num { color: var(--blue-700); }
.secrail__item.is-active .secrail__dot {
  background: var(--blue-600); transform: scale(1.3); box-shadow: 0 0 0 3px var(--blue-50);
}
@media (max-width: 1480px) { .secrail { display: none; } }
@media (prefers-reduced-motion: reduce) {
  .secrail__label, .secrail__num, .secrail__dot { transition: none; }
}
