/* Правовые документы: политика, правила обработки, согласие.
 *
 * Отдельный файл, а не строки в sections.css: здесь длинный сплошной текст,
 * какого больше нигде на сайте нет, и правила для него не должны случайно
 * доставаться посадочным страницам.
 *
 * Главное решение — ширина строки. Документ печатался во всю ширину экрана:
 * на 1440 это больше полутора сотен знаков в строке, и глаз на возврате
 * теряет начало следующей. Здесь колонка ограничена по знакам, а не по
 * пикселям, — тогда мера держится при любом кегле.
 */

.rr-legal__crumbs {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--rr-space-2);
	font-size: var(--rr-size-xs);
	color: var(--rr-text-tertiary);
}

.rr-legal__crumbs a { color: inherit; }
.rr-legal__crumbs a:hover { color: var(--rr-accent); }
.rr-legal__crumbs span[aria-hidden] { color: var(--rr-text-muted); }

.rr-legal__head {
	margin-top: var(--rr-space-6);
	padding-bottom: var(--rr-space-9);
	border-bottom: 1px solid var(--rr-border-soft);
}

.rr-legal__head .rr-h1 { max-width: 20ch; }

.rr-legal__rev {
	margin-top: var(--rr-space-5);
	font-family: var(--rr-font-mono);
	font-size: 13px;
	letter-spacing: .02em;
	color: var(--rr-text-tertiary);
}

/* Оглавление сбоку, текст в своей колонке. Сетка, а не флоат: оглавление
   должно прилипать к верху экрана и не тащить за собой текст. */
.rr-legal__grid {
	display: grid;
	grid-template-columns: 280px minmax(0, 1fr);
	gap: var(--rr-space-16);
	margin-top: var(--rr-space-14);
	align-items: start;
}

.rr-legal__aside {
	position: sticky;
	top: var(--rr-space-8);
	display: flex;
	flex-direction: column;
	gap: var(--rr-space-9);
	/* Оглавление из одиннадцати разделов на невысоком экране не помещается —
	   прокручивается само, а не уезжает под сгиб. */
	max-height: calc(100dvh - var(--rr-space-16));
	overflow-y: auto;
	overscroll-behavior: contain;
}

.rr-legal__toc-t {
	display: block;
	margin-bottom: var(--rr-space-4);
	color: var(--rr-text-tertiary);
}

.rr-legal__toc ol {
	display: flex;
	flex-direction: column;
	gap: var(--rr-space-3);
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: rr-toc;
}

.rr-legal__toc li {
	counter-increment: rr-toc;
	display: flex;
	gap: var(--rr-space-3);
	font-size: var(--rr-size-sm);
	line-height: 1.4;
}

.rr-legal__toc li::before {
	content: counter(rr-toc);
	flex: none;
	min-width: 1.6em;
	font-family: var(--rr-font-mono);
	font-size: 12px;
	line-height: 1.5;
	color: var(--rr-text-muted);
}

.rr-legal__toc a { color: var(--rr-text-secondary); }
.rr-legal__toc a:hover { color: var(--rr-accent); }

.rr-legal__near {
	display: flex;
	flex-direction: column;
	gap: var(--rr-space-3);
	padding-top: var(--rr-space-8);
	border-top: 1px solid var(--rr-border-soft);
	font-size: var(--rr-size-sm);
}

.rr-legal__near a { color: var(--rr-text-secondary); }
.rr-legal__near a:hover { color: var(--rr-accent); }

/* ── Сам документ ──────────────────────────────────────────────────────── */

.rr-legal__doc {
	max-width: 74ch;
	font-size: 1.0625rem;
	line-height: 1.65;
	color: var(--rr-text-secondary);
}

.rr-legal__doc > * + * { margin-top: var(--rr-space-5); }

.rr-legal__doc h2 {
	margin-top: var(--rr-space-16);
	font-family: var(--rr-font-display);
	font-weight: 700;
	/* Кегль ниже, чем у заголовков посадочных: в документе одиннадцать
	   разделов подряд, и дисплейный размер превращает страницу в афишу. */
	font-size: clamp(1.25rem, 1.05rem + .9vw, 1.625rem);
	line-height: 1.2;
	letter-spacing: -.01em;
	color: var(--rr-text-primary);
	scroll-margin-top: var(--rr-space-8);
}

.rr-legal__doc h3 {
	margin-top: var(--rr-space-9);
	font-weight: 600;
	font-size: 1.125rem;
	line-height: 1.3;
	color: var(--rr-text-primary);
}

.rr-legal__doc :is(ul, ol) {
	display: flex;
	flex-direction: column;
	gap: var(--rr-space-3);
	margin-left: 0;
	padding-left: var(--rr-space-6);
}

.rr-legal__doc li { padding-left: var(--rr-space-2); }
.rr-legal__doc li::marker { color: var(--rr-accent); }

.rr-legal__doc strong { color: var(--rr-text-primary); font-weight: 600; }

.rr-legal__doc a {
	color: var(--rr-accent);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.rr-legal__doc a:hover { color: var(--rr-text-primary); }

/* Таблица получателей данных: единственное место документа, где сплошной
   текст не годится — сведения нужны рядом друг с другом. */
.rr-legal__doc table {
	width: 100%;
	border-collapse: collapse;
	font-size: var(--rr-size-sm);
}

.rr-legal__doc :is(th, td) {
	padding: var(--rr-space-4);
	text-align: left;
	vertical-align: top;
	border-bottom: 1px solid var(--rr-border-soft);
}

.rr-legal__doc th {
	font-weight: 600;
	color: var(--rr-text-primary);
	white-space: nowrap;
}

/* Широкая таблица на узком экране прокручивается внутри себя, а не тащит
   вбок всю страницу. */
.rr-legal__doc .rr-legal__scroll {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

/* Врезка для важного: срок ответа, порядок отзыва. */
.rr-legal__doc blockquote {
	margin-left: 0;
	margin-right: 0;
	padding: var(--rr-space-6);
	background: var(--rr-card-bg);
	border: 1px solid var(--rr-card-border);
	border-left: 3px solid var(--rr-accent);
	border-radius: var(--rr-radius-tile);
	color: var(--rr-text-secondary);
}

.rr-legal__doc blockquote > * + * { margin-top: var(--rr-space-3); }

@media (max-width: 1023px) {
	.rr-legal__grid {
		grid-template-columns: minmax(0, 1fr);
		gap: var(--rr-space-9);
	}

	/* На узком экране оглавление не липнет и не прокручивается само:
	   оно становится обычным блоком в начале документа. */
	.rr-legal__aside {
		position: static;
		max-height: none;
		overflow: visible;
		padding: var(--rr-space-6);
		background: var(--rr-card-bg);
		border: 1px solid var(--rr-card-border);
		border-radius: var(--rr-radius-card);
	}

	.rr-legal__doc { max-width: none; }
}

@media (max-width: 639px) {
	.rr-legal__head .rr-h1 { max-width: none; }
	.rr-legal__doc { font-size: 1rem; }
	.rr-legal__doc h2 { margin-top: var(--rr-space-11); }
}
