/* Перенос строк задаёт ширина блока, а не разметка: ручных <br> в текстах нет.
   Подключается последним, чтобы перекрывать ширины из остальных файлов. */

/* Заголовки ломаются на равные по длине строки, абзацы — без висячих слов. */
h1, h2, h3,
.product-promise, .human-note, .human-caption, .approach-human-note, .flow-caption {
  text-wrap: balance;
}
p, li, dd, figcaption, .map-description, .product-lead, .section-copy {
  text-wrap: pretty;
}

/* Мера набора: заголовок держит три-четыре слова в строке на любой ширине.
   Значения в ch привязаны к кеглю, поэтому строка не удлиняется вслед за шрифтом. */
.hero h1 { max-width: 15ch; }
.hero-copy { max-width: 42ch; }
.editorial-heading h2 { max-width: 16ch; }
.chapter-title h2 { max-width: 18ch; }
.expertise-copy h2 { max-width: 12ch; }
.systems-message h2 { max-width: 16ch; }
.section-heading h2 { max-width: 15ch; }
.team-copy h2 { max-width: 16ch; }
.contact-info h2 { max-width: 12ch; }
.approach-human > div > p { max-width: 14ch; }
.approach-human-note { max-width: 26ch; }
.human-caption { max-width: 22ch; }
.formats-heading h3, .experience-formats h3 { max-width: 14ch; }
.product-questions h2 { max-width: 14ch; }
.product-detail h1 { max-width: 18ch; }

/* Ссылка, которая раньше держалась на переносе, теперь блок по правилам вёрстки. */
.editorial-heading > p > .text-link { display: block; margin-top: 15px; }
.product-feature-list article > p > a { display: inline-block; margin-top: 9px; }
.product-feature-list article > p > a + a { margin-left: 14px; }

/* Подписи внутри схем. Ширину узлов задаёт сама схема (min-width и колонка),
   поэтому ограничиваем только текст — иначе стрелка вылезает из рамки. */
.processing-orbit span { max-width: 11ch; }
.review-node, .output-node { flex-wrap: wrap; }
.evidence-source span { max-width: 12ch; }

/* Контакты в реквизитах: две строки задаёт вёрстка, а не перенос в тексте. */
.contact-lines a { display: block; }
