/*
 * Правовые документы: оферта, политики, соглашения (tpl-legal.php).
 *
 * Поверх общей системы информационного раздела (blog.css) — то, чего
 * длинному юридическому тексту не хватает: видимая граница разделов,
 * оглавление и сквозная нумерация пунктов, чтобы ссылка «пункт 6.3»
 * из текста находилась глазами.
 *
 * Колонка текста — те же 840px, что в статьях: строка длиннее читается
 * тяжело, а документ и так читают через силу.
 */

.s24-legal { color: #234; font-size: 15px; line-height: 1.62; }

/* ——— оглавление ——— */
.s24-legal__toc {
	max-width: 840px; margin: 0 0 34px; padding: 22px 26px;
	background: #f4f8fd; border: 1px solid #d5e8ff; border-radius: 16px;
}
.s24-legal__toc-label {
	margin: 0 0 12px; color: #728ba7;
	font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em;
}
.s24-legal__toc-list { margin: 0; padding: 0; list-style: none; counter-reset: s24-toc; }
.s24-legal__toc-list li { counter-increment: s24-toc; margin: 0 0 7px; padding-left: 30px; position: relative; }
.s24-legal__toc-list li:last-child { margin-bottom: 0; }
.s24-legal__toc-list li::before {
	content: counter(s24-toc); position: absolute; left: 0; top: 0;
	min-width: 21px; text-align: right;
	color: #93a7bc; font-size: 13px; font-weight: 700; font-variant-numeric: tabular-nums;
}
.s24-legal__toc-list a { color: #102f51; text-decoration: none; border-bottom: 1px solid transparent; }
.s24-legal__toc-list a:hover { color: #fa4a10; border-bottom-color: #ffb59c; }

/* ——— тело документа ——— */
.s24-legal__body { max-width: 840px; counter-reset: s24-section; }
.s24-legal__body h2 {
	margin: 40px 0 16px; padding-top: 26px; border-top: 1px solid #e8f1fb;
	font-size: 23px; line-height: 1.25; color: #102f51;
	scroll-margin-top: 20px;
}
.s24-legal__body h2:first-child { margin-top: 8px; padding-top: 0; border-top: 0; }
.s24-legal__body h3 { margin: 26px 0 10px; font-size: 18px; line-height: 1.3; color: #102f51; }
.s24-legal__body p { margin: 0 0 14px; }
.s24-legal__body strong { color: #102f51; }
.s24-legal__body a { color: #fa4a10; }
.s24-legal__body ul, .s24-legal__body ol { margin: 0 0 18px; padding-left: 22px; }
.s24-legal__body li { margin-bottom: 9px; }
.s24-legal__body li:last-child { margin-bottom: 0; }
.s24-legal__body ul ul, .s24-legal__body ol ul, .s24-legal__body ol ol { margin: 10px 0 0; }

/* Определения в разделе терминов: термин выносим на отдельную строку. */
.s24-legal__body ul > li > strong:first-child { display: inline-block; margin-bottom: 2px; }

/*
 * Сквозная нумерация пунктов «раздел.пункт».
 *
 * Включается классом --numbered только на документах, где разделы
 * пронумерованы в самом тексте: счётчик секций считает h2 и обязан
 * совпасть с числом в заголовке. Списки внутри пунктов (ul, вложенные ol)
 * не трогаем — селекторы прямых потомков.
 */
.s24-legal__body--numbered h2 { counter-increment: s24-section; }
.s24-legal__body--numbered > ol { counter-reset: s24-item; list-style: none; padding-left: 0; }
.s24-legal__body--numbered > ol > li { counter-increment: s24-item; position: relative; padding-left: 52px; }
.s24-legal__body--numbered > ol > li::before {
	content: counter(s24-section) "." counter(s24-item);
	position: absolute; left: 0; top: 0; width: 42px; text-align: right;
	color: #7088a2; font-weight: 700; font-variant-numeric: tabular-nums;
}
.s24-legal__body--numbered > ol > li > ul { padding-left: 20px; }

/* ——— реквизиты в конце документа ——— */
.s24-legal__body h2:last-of-type + p {
	margin-top: 4px; padding: 22px 24px; border-radius: 16px;
	background: #f4f8fd; border: 1px solid #d5e8ff; color: #102f51; line-height: 1.75;
}

/*
 * Разделы политик.
 *
 * Оферта размечена заголовками h2, а политики достались от прежнего
 * редактора в другом виде: раздел — это одиночный <ol><li><strong>, а
 * нумерация держится на атрибуте start. Переверстывать их ради стилей
 * нельзя (это правовые тексты, любое движение — новая редакция), поэтому
 * приводим к виду заголовка тот код, который уже есть.
 */
.s24-legal__body ol > li:only-child > strong {
	display: block; margin: 0;
	font-size: 21px; line-height: 1.3; color: #102f51;
}
.s24-legal__body ol > li:only-child { margin: 0; padding-left: 6px; }
.s24-legal__body ol > li:only-child::marker { color: #7088a2; font-weight: 700; }
.s24-legal__body ol:has(> li:only-child > strong) {
	margin: 38px 0 16px; padding-top: 26px; border-top: 1px solid #e8f1fb;
}
.s24-legal__body > *:first-child.s24-legal__section-first,
.s24-legal__body ol:has(> li:only-child > strong):first-child {
	margin-top: 4px; padding-top: 0; border-top: 0;
}

@media (max-width: 780px) {
	.s24-legal__body ol > li:only-child > strong { font-size: 19px; }
	.s24-legal__body ol:has(> li:only-child > strong) { margin-top: 30px; padding-top: 20px; }
}

@media (max-width: 780px) {
	.s24-legal__body h2 { margin-top: 32px; padding-top: 20px; font-size: 20px; }
	.s24-legal__body h3 { font-size: 17px; }
	.s24-legal__toc { padding: 18px 18px; }
	.s24-legal__body--numbered > ol > li { padding-left: 44px; }
	.s24-legal__body--numbered > ol > li::before { width: 36px; }
	.s24-legal__body h2:last-of-type + p { padding: 18px 18px; }
}
