.pp-table { width:100%; max-width:100%; border-collapse:collapse; margin:1rem 0; font-size:0.95rem; table-layout:fixed; }
.pp-table td { padding:8px 12px; vertical-align:top; line-height:1.5; word-wrap:break-word; overflow-wrap:anywhere; }
/* Первая колонка (нумерация) уже по умолчанию, задаём минимальную ширину */
.pp-table td:first-child { width:55px; white-space:nowrap; }
/* На мобильных строки превращаются в блоки — отключим nowrap чтобы не торчало */
@media (max-width:640px){
  .pp-table td:first-child { white-space:normal; width:auto; }
  .pp-table b { white-space:normal !important; }
}
/* Строка заголовка внутри сложных таблиц (когда colspan не используется для названия) */
.pp-table tr:first-child td b { font-size:0.96rem; }
/* Зебра */
.pp-table tr:nth-child(even) { background:rgba(0,0,0,0.03); }
/* Выравнивание ссылок */
.pp-table a { color:inherit; text-decoration:underline; }
.pp-table a:hover { text-decoration:none; }
/* Адаптив: превращаем строки в блоки на узких экранах */
@media (max-width:640px){
  .pp-table td { display:block; padding:6px 10px; }
  .pp-table tr { display:block; margin-bottom:.85rem; border-bottom:1px solid rgba(0,0,0,0.08); }
  .pp-table tr:last-child { border-bottom:none; }
  .pp-table td:first-child { font-weight:600; width:auto; }
}
/* Печать: убираем фон зебры */
@media print {
  .pp-table tr:nth-child(even) { background:transparent; }
  .pp-table td { padding:4px 8px; }
}

/* Границы для таблицы согласия */
.consent-table.bordered-table { border:1px solid rgba(0,0,0,0.25); }
.consent-table.bordered-table td { border:1px solid rgba(0,0,0,0.18); vertical-align:top; }
.consent-table.bordered-table td p { margin:0 0 6px; }
.consent-table.bordered-table td p:last-child { margin-bottom:0; }
.consent-table.bordered-table tr:first-child td { background:rgba(0,0,0,0.06); font-weight:600; }
.legal-doc { background:#fff; padding:1.5rem 1.75rem; border-radius:12px; box-shadow:0 4px 14px rgba(0,0,0,0.08); word-wrap:break-word; overflow-wrap:anywhere; }
.legal-doc b, .legal-doc strong, .legal-doc p, .legal-doc a { overflow-wrap:anywhere; word-break:break-word; }
.table-wrapper { overflow-x:auto; width:100%; }
/* Фиксированный лэйаут для таблицы согласия, чтобы колонки распределялись равномерно */
.consent-table { table-layout:fixed; width:100%; }
/* Сбрасываем правило ширины первой колонки внутри consent-table */
.consent-table td:first-child { width:auto !important; white-space:normal !important; }
/* Центрируем сам блок документа относительно родителя и убираем возможный горизонтальный сдвиг */
.legal-doc { max-width:100%; margin:0 auto; }
/* Перенос длинных слов и URL, чтобы не растягивали таблицу */
.consent-table td { word-wrap:break-word; overflow-wrap:break-word; }
/* Лёгкое уменьшение шрифта в узких экранах для предотвращения горизонтального скролла */
@media (max-width:576px){ .consent-table { font-size:0.88rem; } }
@media (max-width:768px){
  .legal-doc { padding:1rem 1.1rem; }
  .consent-table col.col-goal, .consent-table col.col-subjects, .consent-table col.col-data, .consent-table col.col-methods { width:auto; }
}

/* Колонки таблицы согласия: при table-layout:fixed все четыре получались по
   245px, и в последней — самой длинной — текст рвался по два слова в строку.
   Раздаём ширину по объёму содержимого. */
.consent-table td:nth-child(1) { width: 22%; }
.consent-table td:nth-child(2) { width: 15%; }
.consent-table td:nth-child(3) { width: 25%; }
.consent-table td:nth-child(4) { width: 38%; }

/* overflow-wrap: anywhere из .pp-table рвал слова посреди («докумен‑\nта»).
   break-word переносит только когда слово реально не влезает. */
.consent-table td { overflow-wrap: break-word; }

/* Юридические документы читаются, а не разглядываются: на широких экранах
   даём странице больше места, иначе таблица из четырёх колонок не дышит. */
@media (min-width: 1200px) {
  .doc-box { max-width: 1140px; }
}

@media (max-width: 640px) {
  /* В блочном режиме проценты не нужны */
  .consent-table td:nth-child(1),
  .consent-table td:nth-child(2),
  .consent-table td:nth-child(3),
  .consent-table td:nth-child(4) { width: auto; }
}
