/* Sticky-хедер: залипание делает сам браузер (position: sticky на .rd-navbar-wrap),
   поэтому плашка НИКОГДА не выпадает из потока — двигать раскладку нечему.
   JS только переключает класс .is-stuck — вся геометрия здесь, в CSS. */
@media (min-width: 1200px) {
	/* overflow:hidden у .page делает её scroll-контейнером и глушит sticky;
	   overflow-x:clip режет горизонтальный вылет, но контейнера НЕ создаёт */
	.page {
		overflow: visible;
		overflow-x: clip;
	}

	/* display:contents убирает бокс хедера: липнет только навбар, а слайдер
	   (site_header_breadcrumbs, лежит внутри .page-head на внутренних страницах)
	   остаётся в потоке страницы и уезжает при скролле. Sticky на самом .page-head
	   пиннил ВЕСЬ хедер вместе со слайдером. */
	.page-head {
		display: contents;
		/* ponytail: геометрия хедера в теме фиксирована — держим её константами,
		   а не JS-замером: замер живого DOM в изменённом состоянии врёт (класс
		   снимается, но layout в том же кадре ещё старый). Меняется вёрстка
		   шапки — правятся эти числа.
		   --bar-height: натуральная высота плашки меню,
		   --bar-compact: высота залипшей полосы,
		   --top-panel: натуральная высота верхней панели (замер rect: 61px) */
		/* логотип фиксирован на 55px в обоих состояниях (--logo-height), поэтому
		   высоты плашки = логотип + дышащие поля: 55+2*11.5=78, 55+2*4.5=64.
		   Компактная обязана вмещать 55px без обрезки — отсюда пол 64 */
		--logo-height: 55px;
		--bar-height: 78px;
		--bar-compact: 64px;
		--top-panel: 61px;
		/* ponytail: натуральная высота навбара = обвязка навбара (замер: 177-92=85px,
		   верхняя панель + padding .rd-navbar-inner) + текущая плашка. Бокс навбара
		   держим этой константой в ОБОИХ состояниях — иначе сжатие вынимает
		   высоту из потока и весь контент прыгает вверх */
		--nav-height: calc(85px + var(--bar-height));
		/* один тайминг и одна кривая на ВСЕ участвующие свойства — иначе переход
		   читается как несколько мелких рывков (у темы свой all .3s, перебиваем).
		   Кривая БЕЗ ease-in: у .4,0,.2,1 первые ~15% времени давали ~2% пути —
		   при быстром скролле страница уже уехала на 76px, а шапка ещё стояла,
		   и переход читался как «несколько этапов». Замер скоростей логотипа:
		   0, 0, -4, -6.6, -11.5, -14.7 px/кадр против ~45 px/кадр у страницы. */
		--bar-anim: .16s cubic-bezier(0, 0, .2, 1);
	}

	/* top: 0 в ЛЮБОМ состоянии — фазы «прилипла, но ещё не сжалась» физически нет.
	   Верхняя панель не уезжает за край отрицательным top, а сворачивается
	   анимацией ниже: одна причина движения вместо двух. */
	.page-head .rd-navbar-wrap {
		position: sticky;
		z-index: 100;
		top: 0;
		/* !important — RD Navbar вешает на wrap инлайновый height: auto */
		height: var(--nav-height) !important;
		/* бокс сжимается вместе с содержимым (см. .is-stuck ниже) — тем же
		   таймингом, что и всё остальное движение шапки */
		transition: height var(--bar-anim), margin var(--bar-anim);
	}

	/* Сентинел (его вставляет active_menu.js перед навбаром) — это МЕРА того,
	   сколько скролла отделяет верх страницы от плашки меню. Пока верхняя
	   полоса не ушла под край окна, шапка стоит целиком.
	   Высота живёт здесь, а не в JS: в этом файле вся геометрия шапки. Тут же
	   гасится отрицательным margin — в раскладке сентинел не занимает ничего.
	   Был нулевой высоты, из-за чего is-stuck включался на ПЕРВОМ пикселе
	   скролла: верхняя полоса схлопывалась, едва тронешь колесо. */
	.page-head-sentinel {
		height: calc(var(--nav-height) - var(--bar-height));
		margin-bottom: calc(var(--bar-height) - var(--nav-height));
	}

	/* залипшая шапка = РОВНО компактная полоса: верхняя панель сворачивается,
	   отступы навбара снимаются, бокс плашки сжимается. Всё — анимируемыми
	   свойствами с общим --bar-anim: display:none давал рывок (не анимируется). */

	.page-head .rd-navbar-inner {
		transition: padding var(--bar-anim) !important;
	}

	.page-head.is-stuck .rd-navbar-inner {
		padding-top: 0;
		padding-bottom: 0;
	}

	/* border-box: padding/margin/border панели переживают height:0 (оставляли 16px),
	   поэтому гасим их тем же переходом */
	.page-head .rd-navbar-inner > .rd-navbar-top-panel {
		height: var(--top-panel);
		/* overflow виден в покое: с 2026-08-12 в полосе живёт переключатель языков
		   (`.language__block--inline`, db_patch 2026-08-12-03), и его выпадающий
		   список рисуется НИЖЕ полосы — при `hidden` он обрезался по её краю и
		   выглядел «уехавшим под меню». Обрезка нужна только на схлопывании
		   в компактную шапку, поэтому переехала в состояние `.is-stuck` ниже. */
		overflow: visible;
		transition: height var(--bar-anim), padding var(--bar-anim), margin var(--bar-anim),
			border-width var(--bar-anim), opacity var(--bar-anim) !important;
	}

	.page-head .language__block {
		transition: opacity var(--bar-anim) !important;
	}

	.page-head.is-stuck .rd-navbar-inner > .rd-navbar-top-panel,
	.page-head.is-stuck .language__block {
		height: 0;
		padding: 0;
		margin: 0;
		border-width: 0;
		opacity: 0;
		overflow: hidden;
		pointer-events: none;
	}

	/* бокс плашки в потоке не двигает раскладку: за место отвечает sticky,
	   плашка из потока не выпадает */
	.active-menu-bar {
		position: relative;
		height: var(--bar-height);
		align-items: center;
		transition: height var(--bar-anim) !important;
	}

	/* центрирование меню в СВОБОДНОМ месте: menu-wrap занимает ровно остаток
	   контейнера после логотипа, а пункты центрируются внутри него — зазор
	   «логотип → меню» и «меню → правый край» равны по построению, при любом
	   числе пунктов и в обоих состояниях. flex на ul гасит float:left у li */
	.page-head .rd-navbar-menu-wrap {
		flex: 1;
	}

	/* тема даёт nav-wrap inline-block (.rd-navbar-top-panel.rd-navbar-static
	   .rd-navbar-nav-wrap — специфичнее, отсюда !important): он сжимается по
	   контенту, и меню центрировалось бы в своём же боксе, а не в остатке */
	.page-head .rd-navbar-nav-wrap {
		display: block !important;
		width: auto !important;
	}

	/* padding-left списка (40px от темы) сместил бы центр content-box вправо
	   на половину — центрируем по самому боксу */
	.page-head .rd-navbar-nav {
		display: flex;
		justify-content: center;
		align-items: center;
		padding-left: 0;
	}

	/* правый край панели = правый край логотипа: иначе центр «свободного места»
	   уезжает на половину этого отступа и зазоры расходятся */
	.page-head .rd-navbar-panel {
		align-items: center;
	}

	.page-head .rd-navbar-brand {
		margin-right: 0 !important;
	}

	.page-head.is-stuck .active-menu-bar {
		height: var(--bar-compact);
	}

	/* компактная полоса: сжимаются только внутренности, бокс — нет.
	   height задана явно в ОБОИХ состояниях: auto -> Npx браузер не анимирует */
	.page-head .rd-navbar-panel,
	.page-head .rd-navbar-menu-wrap,
	.page-head .rd-navbar-nav-wrap {
		height: var(--bar-height);
		transition: height var(--bar-anim), margin var(--bar-anim) !important;
	}

	.page-head.is-stuck .rd-navbar-panel,
	.page-head.is-stuck .rd-navbar-menu-wrap,
	.page-head.is-stuck .rd-navbar-nav-wrap {
		height: var(--bar-compact);
	}

	.page-head .rd-navbar-nav > li {
		line-height: var(--bar-height);
		transition: line-height var(--bar-anim), margin var(--bar-anim), padding var(--bar-anim) !important;
	}

	.page-head .rd-navbar-nav-wrap {
		margin-top: 0 !important;
	}

	.page-head.is-stuck .rd-navbar-nav > li {
		line-height: var(--bar-compact);
		margin-top: 0;
		padding-top: 0;
		padding-bottom: 0;
	}

	/* подменю открывается от низа ВИДИМОЙ полосы, а не натурального бокса */
	.page-head.is-stuck .rd-navbar-dropdown {
		top: var(--bar-compact);
		margin-top: 0;
	}

	/* Залипшая шапка = РОВНО компактная полоса. Бокс сжимается вместе с
	   содержимым, а снятая высота возвращается в поток отступом — раскладка
	   не двигается (оба свойства идут одним --bar-anim, сумма постоянна).
	   Раньше бокс держали на var(--nav-height) в обоих состояниях, и под
	   64-пиксельной полосой оставалось 99px прозрачного sticky-бокса: между
	   меню и первым экраном зияла дыра, сквозь которую проезжал контент.
	   Заодно ушёл костыль pointer-events: ловить клики этой пустоте больше
	   нечем — её нет. */
	.page-head.is-stuck .rd-navbar-wrap {
		height: var(--bar-compact) !important;
		margin-bottom: calc(var(--nav-height) - var(--bar-compact));
	}

	/* белый фон на всю ширину экрана — отдельным слоем под содержимым */
	.active-menu-bar:before {
		content: "";
		position: absolute;
		top: 0;
		height: var(--bar-height);
		left: 50%;
		width: 100vw;
		transform: translateX(-50%);
		background-color: white;
		box-shadow: 0 2px 8px rgba(0, 0, 0, .12);
		opacity: 0;
		transition: opacity var(--bar-anim), height var(--bar-anim);
		z-index: -1;
	}

	.page-head.is-stuck .active-menu-bar:before {
		opacity: 1;
		height: var(--bar-compact);
	}

	/* логотип одной высоты в обоих состояниях — сжимать и анимировать нечего:
	   он помещается и в компактную полосу, ширина меню от скролла не зависит */
	.page-head .rd-navbar-brand img {
		height: var(--logo-height);
		width: auto;
	}
}

@media (prefers-reduced-motion: reduce) {
	.page-head,
	.page-head *,
	.page-head *:before {
		transition: none !important;
	}
}

.sidebar {
    display: flex;
    justify-content: center;
}
.sidebar > .collations-links{
    display: grid;
    grid-template-columns: repeat(2, max-content);
    grid-auto-rows: max-content;
    grid-gap: 15px;
}
.sidebar .collation-link>a {
    font-weight: 600;
    color: #ffa200;
    transition: 0.2s linear;
}
.sidebar .collation-link>a:hover {
    color: #ff7e00;
}

