/* Правовые страницы: оферта и политика обработки персональных данных.
 *
 * Отдельный файл, а не правила внутри landing.css: эти страницы открываются
 * редко, а landing.css грузится на каждый визит — незачем тащить в него
 * вёрстку, которую почти никто не увидит.
 *
 * Токены и шапка берутся из tokens.css и landing.css, поэтому здесь только
 * то, чего в лендинге нет: длинный текст, оглавление, таблица, реквизиты.
 */

/* Документ читают, а не просматривают: колонка уже, чем у лендинга.
 * 760px — примерно 90 знаков в строке, дальше глаз теряет начало строки. */
.legal .wrap {
  max-width: 820px;
}

.legal {
  background: var(--canvas);
  padding: 56px 0 80px;
}

.legal-back {
  margin: 0 0 24px;
  font-size: 15px;
  font-weight: 600;
}

.legal-back a {
  color: var(--accent-strong);
}

.legal-back a:hover {
  color: var(--text);
}

.legal h1 {
  margin: 0;
  font-size: 38px;
  line-height: 1.18;
  font-weight: 700;
  letter-spacing: -0.025em;
}

.legal-meta {
  margin: 14px 0 0;
  font-size: 15px;
  color: var(--text-2);
}

/* Плашка «документ только на русском».
 *
 * Видна ТОЛЬКО в английском режиме: русскому читателю сообщение о том, что
 * документ доступен лишь по-русски, ничего не даёт и выглядит ошибкой.
 * Скрываем по атрибуту на <html>, который ставит i18n-core.js до отрисовки
 * тела, — поэтому плашка не успевает мелькнуть и на русском.
 *
 * Оформление намеренно не «ошибка» (не красная): это уведомление, а не сбой.
 * Акцентная рамка слева отделяет его от текста документа, не перетягивая
 * внимание с самого документа. */
.legal-ru-only {
  margin: 18px 0 0;
  padding: 14px 18px;
  border-left: 3px solid var(--accent);
  border-radius: 0 10px 10px 0;
  background: var(--accent-soft);
  font-size: 14px;
  line-height: 1.6;
  color: var(--text);
}

html[data-lang="ru"] .legal-ru-only {
  display: none;
}

/* Оглавление: в документе на одиннадцать разделов без него не сориентироваться. */
.legal-toc {
  margin: 32px 0 8px;
  padding: 22px 26px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 14px;
}

.legal-toc b {
  display: block;
  margin-bottom: 12px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--text-2);
}

.legal-toc ol {
  margin: 0;
  padding-left: 22px;
  columns: 2;
  column-gap: 32px;
  font-size: 15px;
  line-height: 1.9;
}

.legal-toc a {
  color: var(--text);
}

.legal-toc a:hover {
  color: var(--accent-strong);
  text-decoration: underline;
}

/* scroll-margin-top, потому что шапка sticky: без него переход по ссылке
   оглавления прятал заголовок раздела под шапкой. */
.legal section {
  scroll-margin-top: 100px;
}

.legal h2 {
  margin: 44px 0 0;
  font-size: 24px;
  line-height: 1.3;
  font-weight: 700;
  letter-spacing: -0.015em;
}

.legal p {
  margin: 14px 0 0;
  font-size: 16px;
  line-height: 1.65;
  color: var(--text);
}

.legal ul {
  margin: 14px 0 0;
  padding-left: 22px;
  font-size: 16px;
  line-height: 1.65;
}

.legal li {
  margin-top: 8px;
}

.legal b {
  font-weight: 700;
}

.legal a {
  color: var(--accent-strong);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.legal a:hover {
  color: var(--text);
}

/* Реквизиты: две колонки «что — значение», а не абзац с запятыми.
   Из такого списка проще выписать ИНН или почту. */
.legal-details {
  display: grid;
  grid-template-columns: max-content 1fr;
  gap: 10px 20px;
  margin: 18px 0 0;
  padding: 22px 26px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 14px;
  font-size: 16px;
}

.legal-details dt {
  font-weight: 700;
  color: var(--text-2);
}

.legal-details dd {
  margin: 0;
}

/* Таблица целей обработки: горизонтальная прокрутка на телефоне вместо
   сжатия колонок до нечитаемых двух слов в строке. */
.legal-table {
  display: block;
  overflow-x: auto;
  margin: 18px 0 0;
  border-collapse: collapse;
  font-size: 15px;
  -webkit-overflow-scrolling: touch;
}

.legal-table th,
.legal-table td {
  padding: 12px 16px;
  border: 1px solid var(--line);
  text-align: left;
  vertical-align: top;
  line-height: 1.5;
}

.legal-table th {
  background: var(--surface-2);
  font-weight: 700;
  white-space: nowrap;
}

.legal-table td {
  background: var(--surface);
}

.legal-foot {
  margin: 48px 0 0;
  padding-top: 24px;
  border-top: 1px solid var(--line);
  font-size: 15px;
  color: var(--text-2);
}

@media (max-width: 900px) {
  .legal {
    padding: 32px 0 56px;
  }

  .legal h1 {
    font-size: clamp(26px, 7vw, 32px);
  }

  .legal h2 {
    margin-top: 36px;
    font-size: 20px;
  }

  /* На телефоне две колонки оглавления дают строки в два слова. */
  .legal-toc ol {
    columns: 1;
    line-height: 1.8;
  }

  .legal-toc,
  .legal-details {
    padding: 18px 20px;
  }

  /* Реквизиты в столбик: max-content + 1fr на 342px ломает длинную почту. */
  .legal-details {
    grid-template-columns: 1fr;
    gap: 2px;
  }

  .legal-details dt {
    margin-top: 12px;
    font-size: 13px;
  }

  .legal-details dt:first-child {
    margin-top: 0;
  }
}
